Withdraw
LivePOST
/api/v1/withdrawalsCreate a withdrawal request for the member.
The balance is locked as soon as the request is created; the payout happens after approval / auto-transfer. A new request can only be made once the previous one has finished.
Headers
| Field | Type | Required | Description |
|---|---|---|---|
| Authorization | string | Yes | Used — send Bearer <member access_token> |
| X-Api-Key | string | Yes | Agent API key (ak_…) from the bo screen |
| X-Timestamp | string | Yes | Signing time in unix milliseconds (±300s skew allowed) |
| X-Nonce | string | Yes | Unique per-request value (UUIDv4) for replay protection |
| X-Signature | string | Yes | hex(HMAC-SHA256(secret, canonical)) — see the Authentication page |
| X-Player-IP | string | — | The player's real IP (IPv4/IPv6) — recommended (used in login history) |
| X-Player-UA | string | — | The player's User-Agent (optional — recorded in login history) |
| X-Request-Id | string | — | Your correlation id — echoed back as request_uuid (recommended) |
| x-lang | string | — | th (default) or en — the language of message |
Response
Fields in data
| Field | Type | Required | Description |
|---|---|---|---|
| order_id | string (uuid) | — | The created withdrawal order id (status PENDING, balance locked) — track it via the transactions history |
Response example
{
"success": true,
"code": 0,
"message": "สำเร็จ",
"data": {
"order_id": "c9e1a3b5-7d2f-4c6a-8b0e-4f6a8c0e2d4b"
},
"request_uuid": "9f2b7d1e-4a83-4c1f-b2ce-6d5a0e8f3c21"
}Possible error codes
| code | Name | HTTP | Message |
|---|---|---|---|
| 1002 | FORBIDDEN | 403 | ForbiddenThe member is under a SEAMLESS-wallet agent — the wallet lives on the agent side, so withdrawing through the member API is unavailable |
| 2001 | INSUFFICIENT_BALANCE | 400 | Insufficient balanceThe floored balance is below 1 THB — nothing to withdraw |
| 2002 | WALLET_NOT_FOUND | 404 | Wallet not found |
| 2005 | WITHDRAW_IN_PROGRESS | 409 | A withdrawal is already in progressA previous withdrawal is still in progress — only one at a time |
| 2006 | WITHDRAW_BELOW_TIER_MIN | 422 | Balance is below the minimum required to withdrawThe balance is below the member tier's minimum withdrawal |
| 2007 | WITHDRAW_NO_BANK_ACCOUNT | 422 | No bank account on fileThe member has no bank account on file to receive the payout |
| 2008 | WITHDRAW_DAILY_LIMIT | 422 | Daily withdrawal limit reachedThe daily withdrawal limit has been reached |
| 2009 | WITHDRAW_WAGER_NOT_MET | 422 | Cannot withdraw while a bonus turnover requirement is activeAn active bonus turnover requirement blocks withdrawal until it is met |
| 9002 | SERVICE_UNAVAILABLE | 503 | Service unavailableThe internal payment service is temporarily unreachable — retry later |