Transfer Funds to User Wallet
Transfers funds from the master account to a specific user wallet (sub-account). This is an asynchronous operation that returns immediately with HTTP 202 Accepted. The actual transfer result is delivered via webhook to your callback_url.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
wallet_id | string | Yes* | The system-assigned wallet identifier of the user wallet |
external_id | string | Yes* | Your unique identifier for the user wallet |
currency | string | Yes | The currency code (e.g., "USDTTRC20", "BTC") |
amount | number | Yes | The amount to transfer (must be positive) |
callback_url | string | Yes | URL to receive the transfer result via webhook |
* One of wallet_id or external_id is required.
Authentication
This endpoint requires authentication using one of the following methods:
| Authentication Type | Header | Description |
|---|---|---|
| OAuth 2.0 | Authorization | Bearer your_access_token |
| API Key | X-API-Key | your_api_key |
Example Request
curl -X POST "{{BASE_URL}}/wallets/transfer-to-user/" \
-H "X-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-d '{
"wallet_id": "w_abc123def456",
"currency": "USDTTRC20",
"amount": 100.00,
"callback_url": "https://your-website.com/webhooks/transfer"
}'
Response (HTTP 202 Accepted)
This endpoint returns immediately with HTTP 202 to indicate the transfer has been accepted for processing. The actual result will be sent to your callback_url via webhook.
| Field | Type | Description |
|---|---|---|
status | string | Always "accepted" |
transfer_id | string | Unique identifier for tracking this transfer |
message | string | Human-readable status message |
Example Response
{
"status": "accepted",
"transfer_id": "6d3f0960-5551-4af5-9601-aeecc512a87a",
"message": "Transfer accepted for processing"
}
Webhook Callback
Once the transfer is processed, a POST request is sent to your callback_url with the transfer result. Make sure your endpoint returns HTTP 200 to acknowledge receipt.
Error Codes
| Status Code | Error Code | Description |
|---|---|---|
| 400 | invalid_request | Missing required parameters or invalid values |
| 400 | insufficient_balance | Master account has insufficient balance |
| 401 | unauthorized | Authentication failed |
| 403 | forbidden | User doesn't have required permissions |
| 404 | not_found | Wallet not found |
| 500 | server_error | Internal server error |
Error Response Format
{
"error": {
"code": "insufficient_balance",
"message": "Master account has insufficient balance for this transfer",
"details": {}
}
}
Notes
- This is an asynchronous endpoint. HTTP 202 means the transfer was accepted, not completed.
- The
callback_urlis required to receive the transfer result. - The master account balance is decreased and the user wallet balance is increased by the specified amount.
- The transfer is atomic and will either succeed completely or fail completely.
- Use the
transfer_idto track the transfer status via the Transfer History endpoint. - Required scopes:
read,write.
iGaming Integration Note
Casino operators should use this endpoint to fund player wallets for gameplay. When a player makes a deposit through the platform, transfer the equivalent amount from your master account to the player's wallet. Since this is asynchronous, implement a callback handler to update the player's balance in your system once the transfer completes.