Skip to main content

Transfer Funds to User Wallet

POST
/wallets/transfer-to-user/

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

ParameterTypeRequiredDescription
wallet_idstringYes*The system-assigned wallet identifier of the user wallet
external_idstringYes*Your unique identifier for the user wallet
currencystringYesThe currency code (e.g., "USDTTRC20", "BTC")
amountnumberYesThe amount to transfer (must be positive)
callback_urlstringYesURL 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 TypeHeaderDescription
OAuth 2.0AuthorizationBearer your_access_token
API KeyX-API-Keyyour_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.

FieldTypeDescription
statusstringAlways "accepted"
transfer_idstringUnique identifier for tracking this transfer
messagestringHuman-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 CodeError CodeDescription
400invalid_requestMissing required parameters or invalid values
400insufficient_balanceMaster account has insufficient balance
401unauthorizedAuthentication failed
403forbiddenUser doesn't have required permissions
404not_foundWallet not found
500server_errorInternal 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_url is 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_id to 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.