Cryptocurrency
Crypto payout to the recipient's wallet — in cryptocurrency or in fiat converted into the token
Before you start
Authorization
How to sign your requests with the API token.
Payouts overview
Common request format, response fields and statuses.
This payout destination is not enabled for all merchants. Check availability with your manager, and make sure your merchant balance is sufficient before creating a payout.
Overview
| Payout currency | What the recipient gets | Payment type |
|---|---|---|
USDT, USDC, BTC, ETH, LTC, TRX, TON, SOL, BNB, DOGE, XMR, MATIC | Exactly the payout amount in this cryptocurrency | CRYPTO |
RUB, USD | The amount converted into the token at the provider's rate at payout time | CRYPTO |
The token and the network (e.g. USDT on TRC-20) are set by the terminal of your payout service, not by the request. Ask your manager which tokens and networks are enabled. Use separate services (serviceId) for different networks of the same token.
Crypto amounts take up to 8 decimal places (USDT, USDC and fiat — up to 2). A request with more decimal places is rejected with 400.
account fields
| Field | Type | Required | Description |
|---|---|---|---|
name | string | ✅ Yes | Recipient name |
requisites | string | ✅ Yes | Recipient requisites: card number, phone number, PIX key, etc., depending on paymentType |
userId | string | ✅ Yes | User ID in your system |
requisites is the recipient's wallet address in the token network, without spaces. name can hold the recipient's name or any string.
| Field | Type | Required | Description |
|---|---|---|---|
destTag | string | ❌ No | Wallet destination tag / memo. Required by networks and exchanges that use one: funds are lost without it |
Check the address and the network before sending: a blockchain transfer cannot be reversed. A payout to an address of another network is not returned.
Request example
A payout in cryptocurrency:
curl -X POST "https://api.panel.valutix.kz/v1/payouts" \
-H "Content-Type: application/json" \
-H "X-Api-Token: YOUR_API_TOKEN" \
-d '{
"amount": 150.5,
"currency": "USDT",
"paymentType": "CRYPTO",
"serviceId": 7,
"externalId": "payout-123",
"account": {
"name": "Client",
"requisites": "TSt8vjaid4b5UumFJ...",
"userId": "user_12345"
}
}'A payout in fiat — the recipient gets the equivalent of 10000 RUB in the terminal token:
curl -X POST "https://api.panel.valutix.kz/v1/payouts" \
-H "Content-Type: application/json" \
-H "X-Api-Token: YOUR_API_TOKEN" \
-d '{
"amount": 10000,
"currency": "RUB",
"paymentType": "CRYPTO",
"serviceId": 8,
"externalId": "payout-124",
"account": {
"name": "Client",
"requisites": "rDsbeomae4FXwgQTJp9Rs64Qg9vDiTCdBv",
"destTag": "12345678",
"userId": "user_12345"
}
}'Response
The response is a standard payout object with the CREATED status. Store the id to track the payout.
Payout object fields
The payout moves to COMPLETED once the transfer is confirmed in the network, and to FAILED if the provider rejects it. If the provider did not confirm creating the transfer because of a connection failure, the payout stays PROCESSING until it is checked manually: this rules out sending the funds twice.