Skip to main content
POST
CryptoProcessing is required to collect sender data in compliance with local regulations. For more details, see User data collection. The sender_data and the end_user_reference you provide must be associated with the same customer.
For every error this endpoint returns and what it means, see API errors: Withdraw crypto.

Authorizations

X-Processing-Key
string
header
required

Your API key.

Headers

X-Processing-Signature
string
required

Hex-encoded HMAC-SHA512 signature of the request body, generated using your secret key.

Body

application/json
currency
string
required

The currency to withdraw from your merchant account — a cryptocurrency, or a fiat currency paired with convert_to to convert it into a cryptocurrency before sending. For a list of all available currencies, see API currency codes.

address
string
required

Cryptocurrency address where you want to send funds.

foreign_id
string
required

Unique ID of the withdrawal request. It must be unique among your withdrawals and exchanges, and it's case-insensitive.

Maximum string length: 255
end_user_reference
string
required

Persistent internal ID of the merchant's customer who initiates the withdrawal. Use the same value for the same customer across all requests. This value must refer to the same customer described in sender_data.

Do not include personal data, such as the customer's name or email address. Put personal details in sender_data.

sender_type
enum<string>
required

Type of the merchant's customer who initiates the withdrawal. The sender must be the same customer identified by end_user_reference.

Use natural if the sender is an individual person and legal if the sender is a legal entity. The selected type determines which fields must be included in sender_data.

Available options:
natural,
legal
sender_data
Natural person · object
required

Must contain the details of the merchant's customer who initiates the withdrawal. Which fields are required depends on sender_type.

receiver_type
enum<string>
required

Type of the withdrawal recipient.

Use natural if the recipient is an individual person, legal if the recipient is a legal entity, or self if the recipient is the same person or legal entity as the sender.

The selected type determines whether receiver_data is required and which fields it must contain.

Available options:
natural,
legal,
self
receiver_data
Natural person · object

Details of the withdrawal recipient. Omit this field entirely if receiver_type is self. Otherwise, which fields are required depends on receiver_type.

convert_to
string

The cryptocurrency to convert the funds into before sending. If omitted, funds are sent in the source currency without conversion.

amount

Amount to withdraw in the source currency, as a decimal string (for example, "0.0003") or a number. Required unless amount_to is specified instead — you can only specify either amount_to or amount, not both. For a fiat currency, at most 2 decimal places are allowed; for a cryptocurrency, digits after the 8th decimal place are dropped.

amount_to

Amount to send in the convert_to currency, as a decimal string or a number. Use this field when you want to convert funds and send a specific amount in the target currency set in convert_to. Required unless amount is specified instead — you can only specify either amount_to or amount, not both. Up to 8 decimal places.

tag
string

Tag/memo for currencies and destination wallets that support or require it. On withdrawal forms, display this field to the user, but allow it to be empty because some wallets do not require a tag/memo. Warn the user that if the destination wallet requires a tag/memo and it is not provided, the funds may be lost.

Response

Created

data
object
required
Last modified on October 29, 2026