Overview
Creates a withdrawal from your available merchant USD balance to a supported on-chain address.
Provide a unique X-Idempotency-Key for each withdrawal attempt so retries do not create duplicate transfers.
Only USDT on POLYGON is withdrawal-enabled right now. Use the token-level metadata from GET /v1/supported-chains to validate supported combinations before submitting a withdrawal.
Authentication
Unique request identifier used to deduplicate retries. Example: withdrawal-20260310-0001
Request Body
Amount to withdraw in USD decimal format. Example: 12.3400
Token to send on-chain. Allowed values: USDC, USDT
Destination chain for the withdrawal. Allowed values: SOLANA, TRON, APTOS, BASE, POLYGON, ETHEREUM
Address that will receive the withdrawal. Example: 4vJ9JU1bJJE96FWSJNMake sure the address format matches the selected chain and token pair.
Request Examples
cURL
Request Body
JavaScript
curl --request POST \
--url https://api.daya.co/v1/merchant/withdrawals \
--header 'X-Api-Key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--header 'X-Idempotency-Key: withdrawal-20260310-0001' \
--data '{
"amount_usd": "12.3400",
"token": "USDC",
"chain": "SOLANA",
"destination_address": "4vJ9JU1bJJE96FWSJN"
}'
Response
Withdrawal creation result. Identifier for the created transfer. Example: transactions/abc123
Success Response
{
"data" : {
"transaction_id" : "transactions/abc123"
}
}
Error Responses
400 Bad Request
409 Conflict
{
"error" : "Invalid request" ,
"request_id" : "550e8400-e29b-41d4-a716-446655440000" ,
"details" : {
"amount_usd" : "must be greater than zero"
}
}