POST /v1/withdrawals

Create withdrawal

Pays out USDT to a whitelisted address. Payouts within your auto-payout caps are broadcast immediately; larger ones go to review.

Body parameters

network string required

Network to pay out on.

address string required

Must be in your withdrawal whitelist and past its 24-hour cooldown.

amount string required

Amount debited from your balance; the network withdrawal fee is deducted from it.

reference string

Idempotency key — repeating it returns the original withdrawal.

Response 201

{
    "uuid": "1c0a…",
    "reference": "payout-77",
    "status": "processing",
    "network": "TRC20",
    "address": "TXYZ…",
    "amount": "50",
    "network_fee": "1",
    "net_payout": "49",
    "tx_hash": null,
    "rejection_reason": null,
    "created_at": "2026-10-16T21:00:00Z",
    "completed_at": null
}

All requests must be signed — see Authentication.

BODY='{"network":"TRC20","address":"TXYZ\u2026","amount":"50.00","reference":"payout-77"}'
SIG=$(printf '%s' "$BODY" | openssl dgst -sha256 -hmac "$ZYVO_SECRET" | cut -d" " -f2)
curl -X POST https://api.zyvopay.com/v1/withdrawals \
  -H "X-Zyvo-Key: $ZYVO_KEY" \
  -H "X-Zyvo-Signature: $SIG" \
  -H "Content-Type: application/json" \
  -d "$BODY"
Try it live

Requests hit the live API with your keys. Your secret stays in this browser tab.