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

FieldTypeNotes
assetstringAsset symbol — must exist on your balance.
chainstringNetwork id.
amountstringDecimal. Must be ≤ available balance.
destinationstringAddress valid for the chain.
destination_memostringOnly 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

  1. pending_approval — request landed; balance is locked.
  2. approved — operator approved; broadcast is queued.
  3. submitted — transaction is on the network.
  4. confirmed — settled. Balance is debited; webhook fires.
  5. failed — broadcast failed. Lock is returned to available.
  6. 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.