Creating a Cryptocurrency Payment
Create a card payment for a cryptocurrency transaction.
Note
The cryptocurrency feature is in beta testing. To enable this feature, contact Rapyd Client Support.
Relevant to payment method types that support this feature.
The Create Payment request for cryptocurrency must include the fields required for an account funding transaction (AFT). See Creating an AFT Payment.
The purchase of cryptocurrency is considered a high risk activity by card networks. For cryptocurrency transactions, card networks require additional monitoring and risk controls to improve security and compliance with anti-money laundering (AML) regulations.
Each cryptocurrency purchase transaction in Rapyd requires a special indicator and additional required fields related to the cardholder.
You can transfer cryptocurrency from a card:
Indirectly through the company wallet of a licensed business entity that manages the customer’s wallet, to top up the wallet for later purchase of cryptocurrency. The business forwards the cryptocurrency to the customer’s wallet. In the payment request, you specify the
customer
object.Directly to the cardholder’s own wallet. In the payment request, you include the person
ewallet
.
Transferring Cryptocurrency Indirectly
Use the following Create Payment request parameters:
Set
payment_method_options.special_condition_indicator
to cryptocurrency.Set
payment_method_options.aft
to true.Set
payment_method_options.purpose_code
to crypto_currency.Set the ID of the
customer
object or create a customer. See Create Customer.In the
customer
object:date_of_birth
is required.The following fields are recommended:
birth_country
email
nationality
occupation
The following customer
address
fields are required. See Create Address.city
country
line_1
of the addressphone_number
zip
Cryptocurrency for customer: Request
curl -X post https://sandboxapi.rapyd.net/v1/payments/ -H 'access_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 4, "currency": "GBP", "description": "Cryptocurrency payment - customer", "capture": true, "complete_payment_url": "https://complete.example.net", "error_payment_url": "https://error.example.net", "payment_method": { "type": "at_visa_card", "fields": { "number": "4111111111111111", "expiration_month": "12", "expiration_year": "31", "cvv": "456", "name": "John Doe" } }, "payment_method_options": { "special_condition_indicator": "cryptocurrency", "aft": true, "purpose_code": "crypto_currency" }, "customer": { "name": "John Doe", "email": "johndoe@rapyd.net", "business_vat_id": "12345678915", "occupation": "developer", "birth_country": "US", "date_of_birth": "09/12/1997", "nationality": "US", "phone_number": "+19175551234", "addresses": [{ "name": "John Doe", "line_1": "123 State Street", "line_2": "Apt.34", "line_3": "", "city": "Anytown", "state": "NY", "country": "US", "zip": "12345", "phone_number": "12125559999" } ] } } '
Cryptocurrency for customer: Response
{ "status": { "error_code": "", "status": "SUCCESS", "message": "", "response_code": "", "operation_id": "b4e297ad-ba06-46c4-b026-f0313c752196" }, "data": { "id": "payment_71fbb2bf0ffeca6029cc0748dfb0d76e", "amount": 4, "original_amount": 4, "is_partial": false, "currency_code": "GBP", "country_code": "AT", "status": "CLO", "description": "Cryptocurrency payment - customer", "merchant_reference_id": "", "customer_token": "cus_e43c4977b914239bf46dcbc52a225183", "payment_method": null, "payment_method_data": { "id": null, "type": "at_visa_card", "category": "card", "metadata": null, "image": "", "webhook_url": "", "supporting_documentation": "", "next_action": "not_applicable", "name": "John Doe", "last4": "1111", "acs_check": "unchecked", "cvv_check": "unchecked", "bin_details": { "type": "CREDIT", "brand": "VISA", "level": "CLASSIC", "issuer": "VISA EUROPE LIMITED", "country": "GB", "bin_number": "411111" }, "expiration_year": "31", "expiration_month": "12", "fingerprint_token": "ocfp_67f3a5bc9766b181f1624a6260174345", "network_reference_id": "000000564531014", "payment_account_reference": "V0010013018036782991622965076" }, "auth_code": "663915", "expiration": 1748504528, "captured": true, "refunded": false, "refunded_amount": 0, "receipt_email": "", "redirect_url": "", "complete_payment_url": "https://complete.example.net", "error_payment_url": "https://error.example.net", "receipt_number": "", "flow_type": "", "address": null, "statement_descriptor": "Doc Team", "transaction_id": "", "created_at": 1747899728, "metadata": {}, "failure_code": "", "failure_message": "", "paid": true, "paid_at": 1747899729, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual_codes": {}, "textual_codes": {}, "instructions": [], "ewallet_id": "ewallet_5efc4cbe901b903df7bb3f26eb769331", "ewallets": [ { "ewallet_id": "ewallet_5efc4cbe901b903df7bb3f26eb769331", "amount": 4, "percent": 100, "refunded_amount": 0 } ], "payment_method_options": { "aft": true, "purpose_code": "crypto_currency", "special_condition_indicator": "cryptocurrency" }, "payment_method_type": "at_visa_card", "payment_method_type_category": "card", "fx_rate": 1, "merchant_requested_currency": null, "merchant_requested_amount": null, "fixed_side": "", "payment_fees": null, "invoice": "", "escrow": null, "group_payment": "", "cancel_reason": null, "initiation_type": "customer_present", "mid": "mid_0f15e88b73d11e3eab39f5bad87e0759", "next_action": "not_applicable", "error_code": "", "remitter_information": {}, "save_payment_method": false, "merchant_advice_code": null, "merchant_advice_message": null, "transaction_link_id": null } }
Transferring Cryptocurrency Directly
Use the following Create Payment request parameters:
Set
payment_method_options.special_condition_indicator
to cryptocurrency.Set
payment_method_options.aft
to true.Set
payment_method_options.purpose_code
to crypto_currency.Set the ID of the cardholder’s person
ewallet
. See Create Wallet.The cardholder’s first name, last name, and country must match the values of the wallet contact.
The following wallet contact fields are required. See Add Contact to Wallet.
first_name
last_name
country
The following wallet contact
address
fields are required. See Create Address.city
line_1
of the addresszip
Cryptocurrency for person wallet: Request
curl -X post https://sandboxapi.rapyd.net/v1/payments/ -H 'access_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 1.07, "currency": "EUR", "description": "Cryptocurrency payment - person wallet", "capture": true, "ewallet": "ewallet_4d4b74f67ddf7cd8fd9ea33bf72aa3bd", "complete_payment_url": "https://complete.example.net", "error_payment_url": "https://error.example.net", "payment_method": { "type": "nl_visa_card", "fields": { "number": "4111111111111111", "expiration_month": "11", "expiration_year": "31", "cvv": "123", "name": "John Doe" } }, "payment_method_options": { "special_condition_indicator": "cryptocurrency", "aft": true, "purpose_code": "crypto_currency" } } '
Cryptocurrency for person wallet: Response
{ "status": { "error_code": "", "status": "SUCCESS", "message": "", "response_code": "", "operation_id": "851d1197-b7b0-43b2-a3c1-1353e227cf75" }, "data": { "id": "payment_bafcc78a0542ef64f3bbd145c130690c", "amount": 1.07, "original_amount": 1.07, "is_partial": false, "currency_code": "EUR", "country_code": "NL", "status": "CLO", "description": "Cryptocurrency payment - person wallet", "merchant_reference_id": "", "customer_token": "cus_77dbcd9f07c1d78a7702a46a3d8c1d4e", "payment_method": "card_38f74ed0a42211b2c9a08aa945074875", "payment_method_data": { "id": "card_38f74ed0a42211b2c9a08aa945074875", "type": "nl_visa_card", "category": "card", "metadata": null, "image": "", "webhook_url": "", "supporting_documentation": "", "next_action": "not_applicable", "name": "John Doe", "last4": "1111", "acs_check": "unchecked", "cvv_check": "unchecked", "bin_details": { "type": "CREDIT", "brand": "VISA", "level": "CLASSIC", "country": "NL", "bin_number": "411111" }, "expiration_year": "31", "expiration_month": "11", "fingerprint_token": "ocfp_c6abbccb3440fcb0fc34ae14126607fa", "network_reference_id": "000000111222999", "payment_account_reference": "V0010013018036782991622965076" }, "auth_code": "003603", "expiration": 1748504528, "captured": true, "refunded": false, "refunded_amount": 0, "receipt_email": "", "redirect_url": "", "complete_payment_url": "https://complete.example.net", "error_payment_url": "https://error.example.net", "receipt_number": "", "flow_type": "", "address": null, "statement_descriptor": "Doc Team", "transaction_id": "", "created_at": 1747899728, "metadata": {}, "failure_code": "", "failure_message": "", "paid": true, "paid_at": 1747899729, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual_codes": {}, "textual_codes": {}, "instructions": [ { "name": "instructions", "steps": [ { "step1": "" } ] } ], "ewallet_id": "ewallet_4d4b74f67ddf7cd8fd9ea33bf72aa3bd", "ewallets": [ { "ewallet_id": "ewallet_4d4b74f67ddf7cd8fd9ea33bf72aa3bd", "amount": 1.07, "percent": 100, "refunded_amount": 0 } ], "payment_method_options": { "aft": true, "purpose_code": "crypto_currency", "special_condition_indicator": "cryptocurrency" }, "payment_method_type": "nl_visa_card", "payment_method_type_category": "card", "fx_rate": 1, "merchant_requested_currency": null, "merchant_requested_amount": null, "fixed_side": "", "payment_fees": null, "invoice": "", "escrow": null, "group_payment": "", "cancel_reason": null, "initiation_type": "customer_present", "mid": "mid_7b624b32f161313347d554138d81858", "next_action": "not_applicable", "error_code": "", "remitter_information": {}, "save_payment_method": false, "merchant_advice_code": null, "merchant_advice_message": null, "transaction_link_id": null } }