Skip to content

Cryptocurrency transactions

XP Integration option

MF STREAM allows you to make payments and payouts in a cryptocurrency. This method supports the following cryptocurrencies:

Cryptocurrency name Cryptocurrency code Cryptocurrency standard
Ethereum ETH
Tether USDT ERC20
Submit as an empty string ("") in requests.
Tether USDT TRC20
Tether USDT BEP20
Binance USD BUSD BEP20
Binance USD BUSD ERC20
Submit as an empty string ("") in requests.
Bitcoin BTC
Dai DAI ERC20
Submit as an empty string ("") in requests.
Dai DAI BEP20
Dash DASH
Dogecoin DOGE
HUSD HUSD ERC20
Submit as an empty string ("") in requests.
Litecoin LTC
TrueUSD TUSD ERC20
Submit as an empty string ("") in requests.
USD Coin USDC ERC20
Submit as an empty string ("") in requests.
USD Coin USDC BEP20
XRP XRP XRP
Huobi Token HT TRC20
HUSD HUSD TRC20
Ethereum ETH TRC20
Ethereum ETH BEP20
TRON TRX TRX
BNB BNB BNB
Cardano ADA BEP20
CasinoCoin CSC Ripple
Dexsport DESU BEP20
Axie Infinity AXS TRC20
Axie Infinity AXS ERC20
Submit as an empty string ("") in requests.
Bitcoin BEP2 BTCB BEP20

Payment

The cryptocurrency payment flow consists of the following stages:

  1. Your customer initiates a payment request in the selected cryptocurrency.
  2. You initiate a widget, create a payment token or send a payment request with the additional parameters described below.
    • In case of the integration with the payment widget, it is the MF STREAM widget that shows a payment instruction and the QR-code to your customer.
    • In case of the API integration, you should use the received parameters and build a form to display the payment instruction.
  3. Your customer makes a payment according to the received instruction.
  4. MF STREAM gets informed of the payment. The widget shows the payment result to the customer. You receive a webhook notification on the payment status, if notification_url is submitted in your request.

Info

In the webhook notifications the payment amount is reported as multiplied by 100 000 000 and rounded according to the mathematical rounding rules.

Info

The QR code is valid for 30 minutes only.
Request

Parameters of the payment widget and the payment token

Initiate a widget or create a payment token with the following additional parameters:

object
A section of payment parameters.
amount
required
integer
Set to 0. The actual payment amount is specified in a webhook notification.
currency
required
string
A cryptocurrency code. See the list of possible codes above or in the cryptocurrency code reference.
object
A section of parameters of the required payment methods.
types
required
array
An array of the available and enabled payment methods displayed to the customer. Add crypto_currency as an array element.
object
A section of parameters of the cryptocurrency payment method.
token_standard
required
string
A cryptocurrency standard. See the list of possible codes above.
tag
conditionally required
string
A payment recipient ID. Required for payments in TRX.

API request parameters

Send a payment request with the following additional parameters:

amount
required
integer
Set to 0. The actual payment amount is specified in a webhook notification.
currency
required
string
A cryptocurrency code. See the list of possible codes above or in the cryptocurrency code reference.
object
A payment method section in the request.
type
required
string
Set to crypto_currency.
token_standard
required
string
A cryptocurrency standard. See the list of possible codes above.
tag
conditionally required
string
A payment recipient ID. Required for payments in TRX.
Response

In case of the integration with the payment widget, the customer gets a payment instruction with the QR-code in the widget.

In case of the API integration, the response additionally contains the crypto_currency section with the following parameters:

object
A section of the cryptocurrency payment parameters.
type
string
crypto_currency.
currency
string
A code of the cryptocurrency.
id
string
An identifier of the payment in the system of the payment method provider.
minimumAmount
string
A minimal amount of the payment in the specified currency.
address
string
A payment recipient ID.
destinationTag
string
A payment recipient ID for payments in TRX.
rate
string
A rate taken per a payment transaction in the specified currency.
qrCode
string
A Base64-encoded QR code.
expDate
string
An expiration date of the QR code in the UTC time zone.

Integrate the values of these parameters into your web form to show the relevant payment information to your customers.


Payout

The cryptocurrency payout flow consists of the following stages:

  1. Your customer initiates a payout request in the selected cryptocurrency.
  2. You send a payout request with the additional parameters described below.
  3. The system checks the available balance and processes a payout.
  4. You receive a webhook notification on the payout status, if notification_url is submitted in your request.

Info

In the webhook notifications the payment amount is reported as multiplied by 100 000 000 and rounded according to the mathematical rounding rules.

Request

To initiate a payout, send a payout request with the following parameters:

amount
required
integer
A payout amount. Multiply the actual amount by 100 000 000 and round it according to the mathematical rounding rules. See more information in the cryptocurrency code reference.
currency
required
string
A cryptocurrency code. See the list of possible codes above or in the cryptocurrency code reference.
object
A section of the payment method parameters.
type
required
string
Set to crypto_currency.
recipient_wallet_id
required
string
A wallet number to which the payout is transferred.
token_standard
required
string
A cryptocurrency standard. See the list of possible codes above.
tag
conditionally required
string
A payout recipient ID. Required for payments in TRX.
Response

The payout response additionally contains the crypto_currency section with the parameters which replicate the parameters from the request.