Slip deposit
LivePOST
/api/v1/deposits/slipSubmit the member's transfer slip for verification.
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 |
Request bodyapplication/json
| Field | Type | Required | Description |
|---|---|---|---|
| account_id | string (uuid) | — | The recipient account the member transferred into (from deposit options, method SLIP) — recommended, helps match the transfer |
| slip_base64 | string (base64) | Yes | The slip image encoded as base64 (no data: prefix) — source file up to 12MB |
| content_type | string | Yes | The image MIME type, must be image/*, e.g. image/jpeg or image/png |
Request example
{
"account_id": "7c2f9d4e-8b1a-4f6c-9e3d-a5b7c9d1e2f3",
"slip_base64": "/9j/4AAQSkZJRgABAQAAAQABAAD…",
"content_type": "image/jpeg"
}Response
Fields in data
| Field | Type | Required | Description |
|---|---|---|---|
| order_id | string (uuid) | — | The created deposit order id |
| amount | number | — | The amount verified from the slip (THB) — already credited to the wallet |
Response example
{
"success": true,
"code": 0,
"message": "สำเร็จ",
"data": {
"order_id": "e4d8b2a6-9c1f-4e3b-a7d5-0f2c4a6e8b1d",
"amount": 500
},
"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 depositing through the member API is unavailable |
| 4001 | VALIDATION_ERROR | 400 | Validation errorNo slip image attached, or the file is not an image (image/*) |
| 4002 | BAD_REQUEST | 400 | Bad requestThe request's agent could not be resolved (unknown domain/credential) |
| 5008 | SLIP_VERIFY_FAILED | 422 | Could not verify the transfer slipSlip verification failed, e.g. unreadable image, wrong recipient account, or no matching transfer found |
| 5009 | SLIP_DUPLICATE | 409 | This slip has already been usedThis slip has already been used for a deposit |
| 9002 | SERVICE_UNAVAILABLE | 503 | Service unavailableThe internal payment service is temporarily unreachable — retry later |