curl --request POST \
--url https://api.qbank.cl/platform/v1/segregated-wallets/{walletID}/sends \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"asset": "usdt",
"to_address": "TXYZdestination00000000000000000000",
"amount": "25.50",
"idempotency_key": "send-2026-07-11-a"
}
'
{
"send_id": "9c8b7a6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d",
"status": "processing",
"idempotency_key": "send-2026-07-11-a",
"idempotency_hit": true
}{
"send_id": "9c8b7a6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d",
"wallet_id": "b7e3a1c2-9f4d-4a8b-8c1e-2d3f4a5b6c7d",
"chain": "tron",
"asset": "USDT",
"to_address": "TXYZdestination00000000000000000000",
"amount_raw": "25500000",
"fee": "0.000000",
"fee_asset": "USDT",
"status": "processing",
"tx_id": "b1946ac92492d2347c6235b4d2611184e0f0f8c9d3a1e2b3c4d5e6f708192a3b",
"idempotency_key": "send-2026-07-11-a",
"created_at": "2026-07-11T12:05:00Z"
}{
"error": "insufficient_gas",
"message": "the wallet does not hold enough TRX to pay the network fee (minimum 5.000000 TRX); fund the wallet address with TRX and retry"
}Send crypto from the wallet
Sends crypto from the wallet itself (real source address, signed by the custodian). idempotency_key is required. Gas is on the client: if the wallet lacks native gas the send is rejected with 422 insufficient_gas before any charge. May bill the wallet_send fee (from the account ledger settlement balance, never the wallet’s on-chain funds; refunded if the core rejects). Requires a verified account and OTP. On an ambiguous failure the send stays pending — retry with the same key, never re-sent.
POST
/
v1
/
segregated-wallets
/
{walletID}
/
sends
curl --request POST \
--url https://api.qbank.cl/platform/v1/segregated-wallets/{walletID}/sends \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"asset": "usdt",
"to_address": "TXYZdestination00000000000000000000",
"amount": "25.50",
"idempotency_key": "send-2026-07-11-a"
}
'
{
"send_id": "9c8b7a6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d",
"status": "processing",
"idempotency_key": "send-2026-07-11-a",
"idempotency_hit": true
}{
"send_id": "9c8b7a6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d",
"wallet_id": "b7e3a1c2-9f4d-4a8b-8c1e-2d3f4a5b6c7d",
"chain": "tron",
"asset": "USDT",
"to_address": "TXYZdestination00000000000000000000",
"amount_raw": "25500000",
"fee": "0.000000",
"fee_asset": "USDT",
"status": "processing",
"tx_id": "b1946ac92492d2347c6235b4d2611184e0f0f8c9d3a1e2b3c4d5e6f708192a3b",
"idempotency_key": "send-2026-07-11-a",
"created_at": "2026-07-11T12:05:00Z"
}{
"error": "insufficient_gas",
"message": "the wallet does not hold enough TRX to pay the network fee (minimum 5.000000 TRX); fund the wallet address with TRX and retry"
}Authorizations
Session JWT (from register/login) or API key (pk_...).
X-API-Key: <token> is accepted as an alternative header.
Headers
Path Parameters
Body
application/json
Response
Idempotent replay of a previous send.
Available options:
tron, eth, btc Example:
"USDT"
Amount in minimal on-chain units.
Service fee charged from the ledger settlement balance.
Example:
"USDT"
Available options:
pending, processing, completed, failed