Payment Docs
Payouts

Cryptocurrency

Crypto payout to the recipient's wallet — in cryptocurrency or in fiat converted into the token

Before you start

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 currencyWhat the recipient getsPayment type
USDT, USDC, BTC, ETH, LTC, TRX, TON, SOL, BNB, DOGE, XMR, MATICExactly the payout amount in this cryptocurrencyCRYPTO
RUB, USDThe amount converted into the token at the provider's rate at payout timeCRYPTO

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

FieldTypeRequiredDescription
namestring✅ YesRecipient name
requisitesstring✅ YesRecipient requisites: card number, phone number, PIX key, etc., depending on paymentType
userIdstring✅ YesUser 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.

FieldTypeRequiredDescription
destTagstring❌ NoWallet 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.

Next steps

On this page