Payouts
Withdraw your balance to any address you control. Every payout waits for operator approval before broadcast — there is no auto-approval path. The approval queue is monitored 24/7.
POST /api/v1/merchant/payouts
Required scope: payouts.write. Required header: Idempotency-Key.
Body
| Field | Type | Notes |
|---|---|---|
asset | string | Asset symbol — must exist on your balance. |
chain | string | Network id. |
amount | string | Decimal. Must be ≤ available balance. |
destination | string | Address valid for the chain. |
destination_memo | string | Only for TON / XRP / Stellar / BSC (BEP-2) / EOS. |
Example
curl
curl -X POST https://api.swapss.lol/api/v1/merchant/payouts \
-H "Authorization: Bearer sk_live_..." \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"asset": "USDT",
"chain": "tron",
"amount": "100.00",
"destination": "TH...example"
}'Lifecycle
pending_approval— request landed; balance is locked.approved— operator approved; broadcast is queued.submitted— transaction is on the network.confirmed— settled. Balance is debited; webhook fires.failed— broadcast failed. Lock is returned to available.rejected— operator rejected. Lock is returned to available.
Daily caps
Each merchant has an optional 24h cap per asset. Requests that would
exceed the cap return 403 DAILY_CAP_EXCEEDED. Contact
your account manager to bump the cap.
GET /api/v1/merchant/payouts
Cursor pagination. Filters: status, asset, chain, cursor, limit.
GET /api/v1/merchant/payouts/{public_id}
Required scope: payouts.read or payouts.write.