แก้ไขโปรไฟล์
ใช้งานได้PATCH
/api/v1/profileแก้ไขข้อมูลติดต่อของสมาชิก (อีเมล / LINE ID / รูปโปรไฟล์) — ชื่อ-นามสกุล เบอร์โทร และบัญชีธนาคารแก้ผ่านแอดมินเท่านั้น
แก้ได้เฉพาะ email / line_id / avatar_url — มีฟิลด์อื่นปนมาจะถูกปฏิเสธทั้ง request (4001) ส่วน selected_promotion_id เปลี่ยนผ่านโมดูลโปรโมชั่น
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 |
Request bodyapplication/json
| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
| string | — | อีเมล (รูปแบบอีเมลที่ถูกต้อง) | |
| line_id | string | — | LINE ID (ไม่เกิน 50 ตัวอักษร) |
| avatar_url | string | — | URL รูปโปรไฟล์ (ไม่เกิน 500 ตัวอักษร) |
ตัวอย่าง request
{
"email": "somchai@example.com",
"line_id": "somchai_jd"
}Response
ฟิลด์ใน data
| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
| id | string | — | id สมาชิก (uuid) |
| username | string | — | username (prefix ของ agent + เบอร์โทร) |
| phone | string | null | — | เบอร์มือถือ |
| full_name | string | null | — | ชื่อ-นามสกุล |
| string | null | — | อีเมล (ค่าหลังแก้ไข) | |
| line_id | string | null | — | LINE ID (ค่าหลังแก้ไข) |
| avatar_url | string | null | — | URL รูปโปรไฟล์ (ค่าหลังแก้ไข) |
| member_tier | string | null | — | ระดับสมาชิกNEW | BRONZE | SILVER | GOLD | VIP |
| status | string | — | สถานะบัญชีACTIVE | LOCKED | BANNED | PENDING_VERIFICATION |
| selected_promotion_id | string | null | — | โปรฝากเงินที่สมาชิกเลือกไว้ (null = ไม่รับโบนัส) |
| agent_id | string | null | — | id ของ agent ต้นสังกัด |
| created_at | string (ISO 8601) | — | วันเวลาสมัคร |
| last_login_at | string (ISO 8601) | null | — | เข้าสู่ระบบล่าสุด |
| bank | object | null | — | บัญชีธนาคารที่ผูกไว้ (อ่านอย่างเดียว) |
| └ bank_code | string | — | รหัสธนาคาร เช่น KBANK |
| └ bank_name | string | — | ชื่อธนาคารภาษาไทย |
| └ account_number | string | — | เลขบัญชี |
| └ account_name | string | — | ชื่อบัญชี |
ตัวอย่าง response
{
"success": true,
"code": 0,
"message": "สำเร็จ",
"data": {
"id": "0f1e2d3c-4b5a-6978-8796-a5b4c3d2e1f0",
"username": "abc0812345678",
"phone": "0812345678",
"full_name": "สมชาย ใจดี",
"email": "somchai@example.com",
"line_id": "somchai_jd",
"avatar_url": null,
"member_tier": "BRONZE",
"status": "ACTIVE",
"selected_promotion_id": null,
"agent_id": "7a6b5c4d-3e2f-4a19-b7c6-d5e4f3a2b1c0",
"created_at": "2026-06-01T04:12:33.000Z",
"last_login_at": "2026-07-05T02:41:07.000Z",
"bank": {
"bank_code": "KBANK",
"bank_name": "ธนาคารกสิกรไทย",
"account_number": "1234567890",
"account_name": "สมชาย ใจดี"
}
},
"request_uuid": "2e6c9b48-0d75-4f13-a8b2-7c4e1f9d5a36"
}Error codes ที่พบได้
| code | ชื่อ | HTTP | ข้อความ |
|---|---|---|---|
| 1001 | UNAUTHORIZED | 401 | ไม่ได้รับอนุญาตไม่ได้แนบ Authorization: Bearer |
| 1007 | TOKEN_INVALID | 401 | โทเค็นไม่ถูกต้องaccess token ไม่ถูกต้อง/หมดอายุ หรือ session ถูกเพิกถอนแล้ว (logout) |
| 1002 | FORBIDDEN | 403 | ไม่มีสิทธิ์เข้าถึงsession เป็นโหมด impersonation (อ่านอย่างเดียว) — แก้ไขข้อมูลไม่ได้ |
| 4001 | VALIDATION_ERROR | 400 | ข้อมูลไม่ถูกต้องรูปแบบฟิลด์ไม่ถูกต้อง หรือส่งฟิลด์อื่นนอกจาก email / line_id / avatar_url มา |