Transaction history
LiveGET
/api/v1/transactionsThe member's wallet ledger (settled entries only), newest first — by default only money entries are shown, game entries (BET/WIN/ROLLBACK) are excluded.
In-progress deposit/withdraw orders do not appear here — the ledger records an entry only once money actually moves in the wallet.
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 |
Query parameters
| Field | Type | Required | Description |
|---|---|---|---|
| type | string (ส่งซ้ำได้) | — | Repeatable — `?type=DEPOSIT&type=WITHDRAW` filters several types at once, and a single value still works. Omitted = all money entries (BET/WIN/ROLLBACK excluded); to see game entries, request that type explicitly.DEPOSIT | WITHDRAW | BET | WIN | ADMIN_ADJUST | BONUS | REFUND | ROLLBACK | BONUS_FORFEIT | AFFILIATE | WHEEL | JACKPOT | BET_ADJUST |
| from | string (YYYY-MM-DD) | — | Start date, anchored to Bangkok midnight and inclusive — omitted = no lower bound |
| to | string (YYYY-MM-DD) | — | End date, inclusive through the end of that Bangkok day — omitted = up to now |
| page | number | — | Page number starting at 1 (default 1) |
| limit | number | — | Rows per page (default 50, max 100) |
Response
Fields in data
| Field | Type | Required | Description |
|---|---|---|---|
| data | object[] | — | Transaction rows, newest created_at first |
| └ id | string | — | Transaction id (uuid) |
| └ type | string | — | Transaction typeDEPOSIT | WITHDRAW | BET | WIN | ADMIN_ADJUST | BONUS | REFUND | ROLLBACK | BONUS_FORFEIT | AFFILIATE | WHEEL | JACKPOT | BET_ADJUST |
| └ amount | string | — | Signed balance delta (THB, decimal as string) — positive = credit, negative = debit, e.g. "-300". |
| └ status | string | — | Always "SUCCESS" — the ledger records settled entries only. |
| └ description | string | null | — | Entry description, e.g. the bonus name |
| └ created_at | string (ISO 8601) | — | When the entry happened |
| pagination | object | — | Pagination block |
| └ page | number | — | Current page |
| └ limit | number | — | Effective page size |
| └ total | number | — | Total rows matching the filter |
| └ total_pages | number | — | Total pages |
Response example
{
"success": true,
"code": 0,
"message": "สำเร็จ",
"data": {
"data": [
{
"id": "c2a5e8f1-4d07-4b39-86ce-9f1b3d6a2e74",
"type": "BONUS",
"amount": "50",
"status": "SUCCESS",
"description": "โบนัส: เครดิตฟรี 50 บาท",
"created_at": "2026-07-05T04:12:30.000Z"
},
{
"id": "8e1d4b6a-2f95-4c07-b3e8-5a9c0d7f1e26",
"type": "WITHDRAW",
"amount": "-300",
"status": "SUCCESS",
"description": "ถอนเงินเข้าบัญชี KBANK",
"created_at": "2026-07-04T15:40:02.000Z"
},
{
"id": "5b9f2c7d-8a13-4e60-9d4b-1c6e3f0a8b52",
"type": "DEPOSIT",
"amount": "500",
"status": "SUCCESS",
"description": "ฝากเงินผ่านสลิปโอน",
"created_at": "2026-07-04T09:05:47.000Z"
}
],
"pagination": { "page": 1, "limit": 50, "total": 3, "total_pages": 1 }
},
"request_uuid": "d8f2b6a4-0c17-4e93-8b5d-6a1f9c3e7d20"
}Possible error codes
| code | Name | HTTP | Message |
|---|---|---|---|
| 4001 | VALIDATION_ERROR | 400 | Validation errorQuery validation failed — unknown type, page < 1, or limit outside 1-100 |
| 1001 | UNAUTHORIZED | 401 | Unauthorized |
| 1007 | TOKEN_INVALID | 401 | Token invalid |