Cryptocurrency transactions
BV Integration option
This integration option allows customers and merchants make payments and payouts in cryptocurrencies, even if the currencies of their wallets differ.
To make a transaction, it is required to indicate an amount in a fiat currency for exchange. An amount in a cryptocurrency equivalent to the amount in the fiat currency will be withdrawn from the crypto wallet of the sender and credited to the crypto wallet of the recipient.
This method supports the following cryptocurrencies:
| Cryptocurrency name | Cryptocurrency code | Cryptocurrency standard |
| Binance Coin | BNB | |
| Bitcoin | BTC | |
| Bitcoin Cash | BCH | |
| Cardano | ADA | |
| Dai | DAI | |
| Dogecoin | DOGE | |
| Ethereum | ETH | |
| Litecoin | LTC | |
| Ripple | XRP | |
| Solana | SOL | |
| Tether | USDT | ERC20 |
| Tether | USDT | TRC20 |
| Tronix | TRX | |
| USD Coin | USDC |
Warning
After the transaction made by this alternative payment method is completed, the amount in the fiat currency can change.
In the webhook notifications and in the response to the transaction status request the processed amount in the fiat currency is assigned to the amount parameter.
The processed amount in the cryptocurrency is multiplied by 100 000 000 and rounded according to the mathematical rounding rules. It is assigned to the conversion.converted_amount parameter.
Payment
The cryptocurrency payment flow consists of the following stages:
- The customer initiates a payment, indicates an amount in a fiat currency which should be converted for a payment. Additionally, the customer can select the cryptocurrency of his/ her wallet.
- The merchant sends a request to process a payment with the parameters described below.
- The merchant redirects the customer to the URL of the acquirer's checkout page received in the response, so that the customer can complete the payment.
- On the acquirer's checkout page, the customer selects the cryptocurrency, if it has not been indicated before, and finalizes the payment.
- PaySage.io gets informed of the settled payment. If
notification_urlis submitted in the request, the merchant receives a webhook notification on the payment status and amounts debited in the fiat and crypto wallet currencies.
Info
In case of the integration with the payment widget or the payment page, it is the PaySage.io widget that displays the acquirer's checkout page in the iframe mode to your customer.
Request
Parameters of the payment widget and the payment token
In case of the integration with the payment widget or the payment page, initiate the widget or create a payment token with the following additional parameters:
|
|||||||||||||||||||||
API request parameters
In case of the API integration, send a payment request with the following additional parameters:
|
|||||||||||||
Example of the payment request
{
"request": {
"amount":2900,
"currency":"EUR",
"description":"description",
"test": true,
"tracking_id":"your_unique_number",
"language":"en",
"notification_url":"https://example.com/notification",
"return_url":"https://example.com/return",
"method": {
"type": "fiat_to_crypto"
}
}
}
Response
In case of the integration with the payment widget or the payment page, PaySage.io redirects the customer to the acquirer's checkout to complete the payment.
In case of the API integration, the response additionally contains the fiat_to_crypto section with the cryptocurrency payment details, as well as the form section with the details of the acquirer's checkout. Redirect your customer to the URL received as a value of the form.action parameter, so that he/ she can complete the payment.
Example of the response to a payment request
{
"transaction": {
"uid": "2085ccec-33c8-4356-8d53-b081b4a07230",
"type": "payment",
"status": "pending",
"amount": 2900,
"currency": "EUR",
"description": "description",
"created_at": "2023-05-04T13:42:47Z",
"updated_at": "2023-05-04T13:42:51Z",
"method_type": "fiat_to_crypto",
"receipt_url": "https://backoffice.paysage.io/customer/transactions/2085ccec-33c8-4356-8d53-b081b4a07230/735179255e5ff84e8b752f85452563c946f069bbb5cd0fc54541637a095354c0?language=en",
"payment": {
"status": "pending",
"gateway_id": 2750,
"ref_id": "f123456a-265b-4cd1-9823-2aa7123565fc",
"message": "Transaction was initialized."
},
"fiat_to_crypto": {
"type": "fiat_to_crypto",
"currency": null
},
"customer": {
"email": null,
"ip": null
},
"message": "Transaction was initialized.",
"tracking_id": "your_unique_number",
"test": true,
"language": "en",
"additional_data": {
"payment_method": {
"type": "alternative"
}
},
"gateway": {
"iframe": true
},
"form": {
"action": "{form_url}",
"method": "GET",
"fields": []
}
}
}
Payout
The cryptocurrency payout flow consists of the following stages:
- The customer initiates a payout request, indicates an amount in a fiat currency and the recipient's wallet ID.
- The merchant sends a payout request with the additional parameters described below.
- PaySage.io gets informed of the settled payment. If
notification_urlis submitted in the request, the merchant receives a webhook notification on the payout status and amounts debited in the fiat and crypto wallet currencies.
Request
Send a payout request with the following parameters:
|
|||||||||||||||||||
Example of the payout request
{
"request":{
"amount":2500,
"currency":"USD",
"description":"description",
"test": true,
"tracking_id":"your_unique_number",
"language":"en",
"notification_url":"https://example.com/notification",
"method":{
"type":"fiat_to_crypto",
"currency": "BTC",
"recipient_wallet_id": "12345-abc-67890"
}
}
}
Response
The payout response additionally contains the fiat_to_crypto section with the parameters of the payment method used to make a payout.
Example of the response to a payout request
{
"transaction": {
"uid": "1158d867-1c5d-4093-896e-bded62b59d20",
"type": "payout",
"status": "pending",
"amount": 2500,
"currency": "USD",
"description": "description",
"created_at": "2023-05-04T19:50:11Z",
"updated_at": "2023-05-04T19:50:11Z",
"method_type": "fiat_to_crypto",
"receipt_url": "https://backoffice.paysage.io/customer/transactions/1158d867-1c5d-4093-896e-bded62b59d20/be8e9bf9b24c699392ae752d3f72e3757113193096ee8b7c294ddd3d4acd3faf?language=en",
"payout": {
"status": "pending",
"gateway_id": 2750,
"message": "Transaction was initialized."
},
"fiat_to_crypto": {
"type": "fiat_to_crypto",
"currency": "BTC",
"recipient_wallet_id": "12345-abc-67890"
},
"customer": {
"email": null,
"ip": "127.0.0.1"
},
"message": "Transaction was initialized.",
"tracking_id": "your_unique_number",
"test": true,
"language": "en",
"additional_data": {
"payment_method": {
"type": "alternative"
}
}
}
}
Webhook notifications
If notification_url is submitted in the transaction request, PaySage.io sends out a webhook notification with the following additional parameters:
|
|||||||||||||||||||||||||||||||||||
Example of the webhook notification on a successful payment
{
"transaction": {
"uid": "2085ccec-33c8-4356-8d53-b081b4a07230",
"type": "payment",
"status": "successful",
"amount": 2900,
"currency": "EUR",
"description": "description",
"created_at": "2023-05-04T13:42:47Z",
"updated_at": "2023-05-04T13:45:01Z",
"method_type": "fiat_to_crypto",
"receipt_url": "https://backoffice.paysage.io/customer/transactions/2085ccec-33c8-4356-8d53-b081b4a07230/12db53fdb53b1655f08af6577d77469e61376e433aa627dfffc4f53f28afb82b?language=en",
"payment": {
"status": "successful",
"gateway_id": 2750,
"ref_id": "da37b123-dddf-4d31-88af-b2dcdefd2c86",
"message": "Transaction was successfully processed."
},
"fiat_to_crypto": {
"type": "fiat_to_crypto"
},
"customer": {
"email": null,
"ip": "127.0.0.1"
},
"message": "Transaction was successfully processed.",
"tracking_id": "your_unique_number",
"test": false,
"language": "en",
"paid_at": "2023-05-04T13:45:01Z",
"additional_data": {
"provider_raw": {
"type": "IN",
"uuid": "da37b123-dddf-4d31-88af-b2dcdefd2c86",
"refund": null,
"status": "COMPLETE",
"address": {
"tag": null,
"uri": "0xC0Fdc9B1234aCE2D8f3B89C4472cae7727ABB6fe",
"address": "0xC0Fdc9B7715aCE2D8f3B89C1234cae7727ABB6fe",
"protocol": "ETH",
"alternatives": []
},
"refunds": [],
"subType": "merchantPayIn",
"reference": "2085ccec-33c8-4356-8d53-b081b4a07230",
"returnUrl": "https://api.paysage.io/beyag/transactions/returns/63496cb932bc335674f362af4b6a36729923e401361c6d1fd0fd87ce21a0eea5/2085ccec-33c8-4356-8d53-b081b4a07230",
"expiryDate": 1683208971000,
"merchantId": "1234b7e5-07cd-456b-a6e3-678abf4bu89a",
"dateCreated": 1683207771000,
"displayRate": {
"base": "ETH",
"rate": 1692.29,
"counter": "EUR"
},
"feeCurrency": {
"actual": 1.111e-05,
"amount": 1.111e-05,
"currency": "BTC"
},
"quoteStatus": "PAYMENT_OUT_PROCESSED",
"redirectUrl": "{form_url}",
"exchangeRate": {
"base": "ETH",
"rate": 0.06484203,
"counter": "BTC"
},
"paidCurrency": {
"actual": 0.01713657,
"amount": 0.01713657,
"currency": "ETH"
},
"transactions": [
{
"hash": "0x76e7d5e12345f19b234bf9f37d088fc1234a3ed1bdc5087085a31c0eb9978ec3",
"risk": {
"level": "LOW",
"alerts": [],
"resourceName": "UNKNOWN",
"resourceCategory": "UNKNOWN"
},
"amount": 0.01713657,
"sources": [
"0xF282C3A8f95Ad256BA8DAFB251ef89B43dc6c52f"
],
"dateCreated": 1683207883000,
"displayRate": {
"base": "ETH",
"rate": 1692.29,
"counter": "EUR"
},
"exchangeRate": {
"base": "BTC",
"rate": 15.4221,
"counter": "ETH"
},
"dateConfirmed": 1683207894000,
"networkFeeAmount": 0.015683724348894,
"networkFeeCurrency": "ETH"
}
],
"walletCurrency": {
"actual": 0.00111117,
"amount": 0.00111117,
"currency": "BTC"
},
"displayCurrency": {
"actual": 29,
"amount": 29,
"currency": "EUR"
},
"quoteExpiryDate": 1683218586000,
"merchantDisplayName": "Business Account",
"acceptanceExpiryDate": 1683207807000
},
"payment_method": {
"type": "alternative"
}
},
"gateway": {
"iframe": true
},
"conversion": {
"exchange_rate": {
"ETH_TO_EUR": 1692.29
},
"converted_amount": 1713657,
"converted_currency": "ETH"
}
}
}
CB Integration option
Payment
Info
This integration option supports only `EUR` currency.
Request
Parameters of the payment widget and the payment token
In the case of the integration with the payment widget or the payment page, initiate the widget or create a payment token with the following additional parameters:
|
|||||||||||||||||||||||||||
Payment request parameters
Payment flow:
- The customer initiates the payment on the merchant's website.
- The merchant sends a payment request to PaySage.io.
- PaySage.io returns a response containing a
form.actionparameter with a URL where the customer needs to be redirected. - The merchant redirects the customer to the URL from the response.
- The URL will display a payment page with the amount to be paid in
EURas well as the corresponding amount in cryptocurrency. The customer logs into their account or creates a new one, submits their card details and completes the payment.
The payment request needs to contain the following additional parameters:
|
|||||||||||||||||||||||
Request example
{
"request": {
"amount": 500,
"currency": "EUR",
"description": "Cryptocurrency",
"test": true,
"tracking_id": "9379992",
"language": "en",
"notification_url": "https://notification_url",
"return_url": "https://return_url",
"method": {
"type": "fiat_to_crypto"
},
"customer": {
"first_name": "John",
"last_name": "Doe",
"country": "DE",
"email": "john@example.com"
}
}
}
Response
Redirect your customer to the URL received as the value of the form.action parameter.
Response example
{
"transaction": {
"uid": "e67ea9a3-e098-4dbd-a87a-668a8e0565c6",
"type": "payment",
"status": "pending",
"amount": 500,
"currency": "EUR",
"description": "Cryptocurrency",
"created_at": "2025-06-04T14:18:00Z",
"updated_at": "2025-06-04T14:18:00Z",
"method_type": "fiat_to_crypto",
"receipt_url": "https://backoffice.paysage.io/customer/transactions/e67ea9a3-e098-4dbd-a87a-668a8e0565c6/8ebbca6f13e8f5e1b9e299ed79f61f849d5770cefd6c7aaae7200264762ccdbb?language=en",
"payment": {
"status": "pending",
"gateway_id": 4020,
"ref_id": "J6kzZp2LDXry",
"message": "Transaction was initialized."
},
"fiat_to_crypto": {
"type": "fiat_to_crypto"
},
"customer": {
"first_name": "John",
"last_name": "Doe",
"country": "DE",
"email": "john@example.com",
"ip": null
},
"manually_corrected_at": null,
"version": 0,
"message": "Transaction was initialized.",
"tracking_id": "9379992",
"test": true,
"language": "en",
"billing_address": {
"first_name": "John",
"last_name": "Doe",
"country": "DE",
"email": "john@example.com"
},
"additional_data": {
"payment_method": {
"type": "alternative"
}
},
"gateway": {
"iframe": false
},
"form": {
"action": "https://gateway.cb.live/payments/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJtZXJjaGFudCI6NCwib3JkZXIiOiIyODY4YzE5MS03NmM1LTQzNWEtOTA1Mi05M2E0OWZkY2Q0NjciLCJleHBpcmUiOjE3MTQ0Njc1OTN9.9bSQ_t3Ph0e9vTNdWcHC9pZb-4adU37fdorejjRMhGA",
"method": "GET",
"fields": []
}
}
}