กดรับโปรโมชั่น
ใช้งานได้POST
/api/v1/promotions/:id/claimสมาชิกกดรับโบนัสเอง — ใช้ได้เฉพาะ CASHBACK / FREE_CREDIT / DAILY_LOGIN โบนัสเข้ากระเป๋าทันทีในรายการเดียว (atomic) ถ้าโปรมีตัวคูณเทิร์นจะเกิด claim ติดเทิร์นที่ล็อกการถอน
โปรที่มี wager_multiplier จะสร้าง claim สถานะติดเทิร์น (ดูได้ที่ active-claim) และล็อกการถอนจนเทิร์นครบ — โปรที่ไม่มีตัวคูณปิดจบทันทีตอนรับ
กันกดซ้ำฝั่ง UI ด้วย — ฝั่งเซิร์ฟเวอร์กันรับซ้ำพร้อมกันไว้แล้ว (ทำงานใน transaction เดียว) กดซ้ำจะได้ 6004/6006 ไม่ใช่โบนัสสองก้อน
Headers
| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
| Authorization | string | ใช่ | ใช้ — แนบ Bearer <access_token> ของสมาชิก |
| X-Api-Key | string | ใช่ | API key ของ agent (ak_…) จากหน้า bo |
| X-Timestamp | string | ใช่ | เวลา sign เป็น unix milliseconds (คลาดเคลื่อนได้ ±300 วินาที) |
| X-Nonce | string | ใช่ | ค่าไม่ซ้ำต่อ request (UUIDv4) กัน replay |
| X-Signature | string | ใช่ | hex(HMAC-SHA256(secret, canonical)) — ดูหน้า Authentication |
| X-Player-IP | string | — | IP จริงของผู้เล่น (IPv4/IPv6) — แนะนำให้ส่ง (ใช้ใน login history) |
| X-Player-UA | string | — | User-Agent ของผู้เล่น (optional — ลง login history) |
| X-Request-Id | string | — | correlation id ของฝั่งคุณ — ระบบ echo กลับใน request_uuid (แนะนำให้ส่ง) |
| x-lang | string | — | th (default) หรือ en — ภาษาของ message |
Path parameters
| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
| id | string | ใช่ | id โปรโมชั่น (uuid) จากรายการ "โปรโมชั่นทั้งหมด" — ต้องเป็นโปรของ agent เดียวกับสมาชิก |
Response
ฟิลด์ใน data
| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
| claim_id | string | — | id ของรายการรับโบนัสที่เพิ่งสร้าง |
| bonus_thb | string | — | ยอดโบนัสที่เข้ากระเป๋า (THB) |
| balance | string | — | ยอดคงเหลือหลังโบนัสเข้า (THB) |
| day | number | null | — | DAILY_LOGIN เท่านั้น: วันของสตรีคที่เพิ่งรับ (1-7 วนรอบสัปดาห์ ขาดวันแล้วเริ่มนับ 1 ใหม่) — ชนิดอื่นเป็น null |
ตัวอย่าง response
{
"success": true,
"code": 0,
"message": "รับโปรโมชั่นสำเร็จ",
"data": {
"claim_id": "9d4c1f2a-6b8e-4d05-93a7-c51e0f8b2d46",
"bonus_thb": "50.00",
"balance": "175.50",
"day": null
},
"request_uuid": "7f3e9c1b-5d24-48a6-b0e8-1c9f2d7a4e35"
}Error codes ที่พบได้
| code | ชื่อ | HTTP | ข้อความ |
|---|---|---|---|
| 6001 | PROMOTION_NOT_FOUND | 404 | ไม่พบโปรโมชั่นไม่พบโปรโมชั่นในสังกัด agent ของสมาชิก หรือโปรไม่ ACTIVE / อยู่นอกช่วงเริ่ม-สิ้นสุด |
| 6002 | PROMOTION_NOT_CLAIMABLE | 422 | โปรโมชั่นนี้รับอัตโนมัติเมื่อฝากเงินโปรชนิดนี้กดรับเองไม่ได้ — NEW_REGISTER / FIRST_DEPOSIT / GOLDEN_MINUTE แจกอัตโนมัติตอนยอดฝากเข้า |
| 6003 | PROMOTION_NOT_ELIGIBLE | 422 | ยังไม่เข้าเงื่อนไขรับโปรโมชั่นไม่เข้าเงื่อนไข: กระเป๋าไม่ใช่โหมด TRANSFER · ระดับสมาชิกไม่อยู่ใน eligible_tiers · ยอดฝากวันนี้ไม่ถึง min_deposit_thb · โบนัสคำนวณได้ 0 (เช่น CASHBACK แต่ยังไม่ฝากวันนี้) · งบโปรโมชั่นหมดแล้ว |
| 6004 | PROMOTION_ALREADY_CLAIMED | 409 | รับโปรโมชั่นนี้ไปแล้วครบเพดานจำนวนครั้งแล้ว — ตลอดอายุโปร หรือของวันนี้ (CASHBACK และ DAILY_LOGIN รับได้วันละ 1 ครั้งเสมอ ตามวันเวลาไทย) |
| 6006 | PROMOTION_ACTIVE_CLAIM_EXISTS | 409 | มีโปรโมชั่นที่ยังทำเทิร์นไม่ครบอยู่มีโบนัสก้อนก่อนที่ยังทำเทิร์นไม่ครบ (ดู active-claim) — ต้องเคลียร์ก่อนจึงรับโปรใหม่ได้ |
| 6007 | PROMOTION_BALANCE_TOO_HIGH | 422 | ยอดเงินคงเหลือต้องน้อยกว่าที่กำหนดจึงจะรับได้ยอดคงเหลือปัจจุบัน ≥ เพดาน require_balance_below_thb ของโปร (โปรนี้ให้เฉพาะตอนเงินใกล้หมด) |
| 6008 | PROMOTION_TURNOVER_NOT_MET | 400 | ยอดเทิร์นโอเวอร์ยังไม่ถึงเงื่อนไขรับโปรโมชั่นFREE_CREDIT ที่ตั้งเทิร์นขั้นต่ำ (min_turnover_thb) — ยอดเดิมพันตั้งแต่รับครั้งก่อนยังไม่ถึงเกณฑ์ |
| 9002 | SERVICE_UNAVAILABLE | 503 | บริการไม่พร้อมใช้งานระบบออกโบนัสไม่พร้อมใช้งานชั่วคราว — ลองใหม่ภายหลัง |
| 1001 | UNAUTHORIZED | 401 | ไม่ได้รับอนุญาต |
| 1007 | TOKEN_INVALID | 401 | โทเค็นไม่ถูกต้อง |