API integration
Send payouts from your Volet.com account to Volet.com users and external crypto wallets through the Merchant API.
The Mass Payout API lets your application create, validate, and track payout transactions programmatically.
You can use the API for three main payout scenarios:
- Payouts to Volet.com users — send funds from your Volet.com account to another Volet.com account.
- Crypto payouts without conversion — send cryptocurrency from the same crypto balance to an external crypto wallet.
- Crypto payouts with conversion — send cryptocurrency to an external crypto wallet from another supported balance, such as USD, EUR, USDT, or another cryptocurrency.
How mass payouts work through the API
The Merchant API creates one payout transaction per request.
For mass payout batches, your backend prepares a list of recipients and creates a separate payout transaction for each item in the batch.
A typical batch flow:
- Prepare a payout batch in your system.
- Check your available Volet.com wallet balances.
- Check limits, tariffs, and exchange rates where needed.
- Validate each payout before creation.
- Create payout transactions through the API.
- Store returned transaction IDs in your system.
- Track payout statuses through the API.
- Reconcile completed, failed, cancelled, or refunded payouts.
Before you start
To send mass payouts through the API, you need:
- A verified Volet.com account.
- A configured API in the Payment Tools section.
- Sufficient balance in your Volet.com account.
- Recipient details required for each payout method.
See Enable mass payouts to create and configure your API.
Authentication
Merchant API requests require authentication headers.
Include the following headers in each API request:
| Header | Description |
|---|---|
Api-Name | API name configured in your Volet.com account. |
Account-Email | Email address of the Volet.com account that owns the API. |
Authentication-Token | SHA-256 token generated from password:YYYYMMDD:HH (UTC), where the password is set in your Volet.com account under Payment Tools. For example, SHA256("MySecret123:20261026:14"). Only the generated token is sent, never the password. |
Keep your API secret private. Never expose API credentials or authentication tokens in frontend code, mobile apps, bots, or client-side scripts.
Recommended payout flow
Before creating payouts, your backend should validate and prepare each payout item.
Recommended flow:
- Get wallet balances.
- Check minimum limits for the selected payout method and currency.
- Check tariffs or fees.
- Check exchange rate information if the payout uses conversion.
- Validate the payout request.
- Create the payout transaction.
- Store the returned
transactionId. - Poll transaction status until the payout reaches a final state.
Step 1: Get wallet balances
Use this method to check available balances in your Volet.com wallets before creating payouts.
Endpoint:
GET /api/account/balances
Example response:
[
{
"walletId": "W000000000001",
"amount": 1000.50,
"currency": "USD"
},
{
"walletId": "W000000000002",
"amount": 2500,
"currency": "USDT"
}
]
Use walletId as the source wallet when creating payout requests.
Step 2: Check limits and tariffs
Before sending payouts, check the minimum limits and tariffs for the selected payout method and currency pair.
Minimum limits:
GET /api/account/limits/min
Tariffs:
GET /api/account/tariffs
Use these methods to prevent payout creation errors caused by unsupported amounts, currencies, or payment methods.
Step 3: Check exchange rate information
Use exchange rate information when the payout requires conversion.
Endpoint:
POST /api/exchange-rate/information
Use this before creating payouts where the source currency and payout currency are different.
Example use cases:
- Send USDT to an external crypto wallet from a USD balance.
- Send BTC to an external crypto wallet from a EUR balance.
- Convert one supported crypto balance into another payout currency.
Payout method 1: Send payouts to Volet.com users
Use this method when the recipient has a Volet.com account.
Funds are transferred internally from your Volet.com account to the recipient's Volet.com account.
This method does not require blockchain confirmation and does not use external crypto wallet addresses.
Validate payout to a Volet.com user
Validate the payout before creating the transaction.
Endpoint:
POST /api/withdrawal/validation/internal-other
Example request:
{
"srcWalletId": "W000000000001",
"amount": 25,
"action": "GIVE",
"note": "Payout batch 2026-06-26 / recipient 001",
"srcCurrency": "USD",
"destCurrency": "USD",
}
Validation checks the payout details without creating a transaction.
Create payout to a Volet.com user
After successful validation, create the payout transaction.
Endpoint:
POST /api/withdrawal/internal-other
Example request:
{
"srcWalletId": "W000000000001",
"amount": 25,
"action": "GIVE",
"note": "Payout batch 2026-06-26 / recipient 001",
"srcCurrency": "USD",
"destCurrency": "USD",
}
Example response:
{
"transactionId": "11111111-1111-4111-8111-111111111111",
"paymentMethodType": "INTERNAL_OTHER",
"transactionType": "WITHDRAWAL",
"status": "CREATED",
"direction": "WITHDRAWAL",
"currency": "USD",
"amount": 25,
"createdAt": "2026-01-15T10:30:00",
"walletSrcId": "W000000000001",
"fullCommission": 0.13,
"comment": "Payout batch 2026-06-26 / recipient 001"
}
Store the returned transactionId in your system and use it to track payout status.
Optional: Validate Volet.com recipient accounts
If your payout flow collects recipient email addresses before payout creation, you can check whether Volet.com accounts exist before creating payout requests.
Endpoint:
GET /api/account/exists
You can also match account holder details when your flow requires additional recipient checks.
Endpoint:
GET /api/account/matching
Use these methods to reduce failed payouts caused by incorrect recipient details.
Payout method 2: Send crypto payouts without conversion
Use this method when you want to send cryptocurrency from the same crypto balance to an external crypto wallet.
For example:
- Send USDT from your USDT balance to an external USDT TRC-20 address.
- Send BTC from your BTC balance to an external BTC address.
- Send ETH from your ETH balance to an external ETH address.
The recipient does not need a Volet.com account.
Validate crypto payout without conversion
Validate the crypto payout before creating the transaction.
Endpoint:
POST /api/withdrawal/validation/cryptowallet
Example request:
{
"srcWalletId": "W000000000002",
"amount": 100,
"action": "GIVE",
"note": "Payout batch 2026-06-26 / recipient 002",
"destCurrency": "USDT_TRC20",
"address": {
"address": "TXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
},
"receiverInfo": {
}
}
Use the correct destCurrency for the payout token and blockchain network.
For networks that require a memo, destination tag, or similar identifier, include it in the address.memo field.
Example:
{
"address": {
"address": "rXXXXXXXXXXXXXXXXXXXXXXXX",
"memo": "123456"
}
}
Create crypto payout without conversion
After successful validation, create the payout transaction.
Endpoint:
POST /api/withdrawal/cryptowallet
Example request:
{
"srcWalletId": "W000000000002",
"amount": 100,
"action": "GIVE",
"note": "Payout batch 2026-06-26 / recipient 002",
"destCurrency": "USDT_TRC20",
"address": {
"address": "TXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
},
"receiverInfo": {
}
}
Example response:
{
"transactionId": "22222222-2222-4222-8222-222222222222",
"paymentMethodType": "CRYPTO_WALLET",
"transactionType": "WITHDRAWAL",
"status": "CREATED",
"direction": "WITHDRAWAL",
"currency": "USDT",
"amount": 100,
"createdAt": "2026-01-15T10:30:00",
"walletSrcId": "W000000000002",
"fullCommission": 0.25,
"comment": "Payout batch 2026-06-26 / recipient 002"
}
Payout method 3: Send crypto payouts with conversion
Use this method when the source balance and payout currency are different.
For example:
- Send USDT to an external wallet from a USD balance.
- Send BTC to an external wallet from a EUR balance.
- Send USDC on one supported network from another supported balance.
The recipient receives cryptocurrency to an external crypto wallet. Conversion is handled during the payout flow.
Validate crypto payout with conversion
Validate the payout before creating the transaction.
Endpoint:
POST /api/withdrawal/validation/crypto-external
Example request:
{
"srcWalletId": "W000000000001",
"amount": 100,
"action": "GIVE",
"note": "Payout batch 2026-06-26 / recipient 003",
"srcCurrency": "USD",
"destCurrency": "USDT_TRC20",
"address": {
"address": "TXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
},
"receiverInfo": {
"firstName": "Alex",
"lastName": "Example",
}
}
Use srcCurrency to define the source balance currency and destCurrency to define the cryptocurrency and network sent to the recipient.
Create crypto payout with conversion
After successful validation, create the payout transaction.
Endpoint:
POST /api/withdrawal/crypto-external
Example request:
{
"srcWalletId": "W000000000001",
"amount": 100,
"action": "GIVE",
"note": "Payout batch 2026-06-26 / recipient 003",
"srcCurrency": "USD",
"destCurrency": "USDT_TRC20",
"address": {
"address": "TXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
},
"receiverInfo": {
"firstName": "Alex",
"lastName": "Example",
}
}
Example response:
{
"transactionId": "33333333-3333-4333-8333-333333333333",
"paymentMethodType": "CRYPTO_EXTERNAL",
"transactionType": "WITHDRAWAL",
"status": "CREATED",
"direction": "WITHDRAWAL",
"currency": "USD",
"amount": 100,
"createdAt": "2026-01-15T10:30:00",
"walletSrcId": "W000000000001",
"fullCommission": 0.50,
"comment": "Payout batch 2026-06-26 / recipient 003"
}
Request fields
Common payout request fields:
| Field | Required | Used for | Description |
|---|---|---|---|
srcWalletId | No | All payout methods | Source wallet ID in your Volet.com account. |
amount | Yes | All payout methods | Payout amount. How the amount is interpreted depends on action. |
action | Yes | All payout methods | Amount mode. Possible values: GIVE, GET. |
note | No | All payout methods | Internal note or payout description. |
srcCurrency | No | Volet.com user payouts, crypto payouts with conversion | Source currency used for the payout. |
destCurrency | Yes | All payout methods | Currency credited to the recipient or sent to the external crypto wallet. |
destEmail | No | Volet.com user payouts | Recipient's Volet.com account email. |
destWalletId | No | Volet.com user payouts | Recipient wallet ID, where applicable. |
address.address | Yes | External crypto payouts | Recipient crypto wallet address. |
address.memo | No | External crypto payouts | Memo, destination tag, or similar identifier if required by the selected network. |
receiverInfo | No | External crypto payouts | Recipient information, such as name, email, date of birth, or company name, where required. |
GIVE and GET
Use action to define how the payout amount should be interpreted.
| Action | Meaning |
|---|---|
GIVE | The amount is treated as the amount to send from the source side. |
GET | The amount is treated as the amount the recipient should receive, where supported. |
For payouts with currency conversion, check exchange rate information before creating the payout. This helps your system show or store expected source and destination amounts before the transaction is created.
Tracking payout status
After creating a payout, store the returned transactionId.
Use transaction lookup to retrieve the latest payout status.
Endpoint:
GET /api/transactions/{id}
You can also search transaction history.
Endpoint:
GET /api/transactions
Useful filters include:
| Filter | Description |
|---|---|
paymentDirections | Filter by DEPOSIT or WITHDRAWAL. |
transactionStatus | Filter by transaction status. |
wallets | Filter by wallet IDs. |
startDate / endDate | Filter by creation date range. |
searchLabel | Search by text label, where applicable. |
offset / limit | Paginate results. |
sortOrder | Sort results by creation date. |