สมัครสมาชิก

ใช้งานได้
POST/api/v1/auth/register

สำหรับให้สมาชิกสมัครสมาชิกใหม่

Headers

ฟิลด์ชนิดจำเป็นคำอธิบาย
Authorizationstring—ไม่ใช้ — endpoint นี้เป็น public ไม่ต้องแนบ token สมาชิก
X-Api-Keystringใช่API key ของ agent (ak_…) จากหน้า bo
X-Timestampstringใช่เวลา sign เป็น unix milliseconds (คลาดเคลื่อนได้ ±300 วินาที)
X-Noncestringใช่ค่าไม่ซ้ำต่อ request (UUIDv4) กัน replay
X-Signaturestringใช่hex(HMAC-SHA256(secret, canonical)) — ดูหน้า Authentication
X-Player-IPstring—IP จริงของผู้เล่น (IPv4/IPv6) — แนะนำให้ส่ง (ใช้ใน login history)
X-Player-UAstring—User-Agent ของผู้เล่น (optional — ลง login history)
X-Request-Idstring—correlation id ของฝั่งคุณ — ระบบ echo กลับใน request_uuid (แนะนำให้ส่ง)
x-langstring—th (default) หรือ en — ภาษาของ message

Request bodyapplication/json

ฟิลด์ชนิดจำเป็นคำอธิบาย
phonestringใช่เบอร์มือถือไทยของสมาชิก (รูปแบบ 0XXXXXXXXX 10 หลัก) — 1 เบอร์สมัครได้ 1 บัญชีต่อ agent
passwordstringใช่รหัสผ่าน 6-72 ตัวอักษร
full_namestring—ชื่อ-นามสกุล (ไม่เกิน 100 ตัวอักษร) — ควรตรงกับชื่อบัญชีธนาคาร
bankobjectใช่ข้อมูลธนาคาร
└ bank_codestringใช่รหัสธนาคารมาตรฐานของระบบ เช่น KBANK, SCB, BBL
└ account_numberstringใช่เลขบัญชีธนาคาร
└ account_namestringใช่ชื่อ - สกุล
acquisition_channelstring—ช่องทางที่สมาชิกรู้จักเว็บ (dropdown ตอนสมัครตรง) — ถ้ามากับลิงก์แนะนำที่กำหนดช่องทางไว้ ระบบใช้ค่าจากลิงก์แทน; ไม่ส่ง = DIRECTYOUTUBE | FACEBOOK | LINE | TIKTOK | GOOGLE | INSTAGRAM | TWITTER | DIRECT | BACKOFFICE | OTHER
referral_codestring—โค้ดลิงก์แนะนำ (?ref=<code> ไม่เกิน 32 ตัวอักษร) — โค้ดผิด/หมดอายุ/ข้าม agent จะถูกเพิกเฉย (สมัครสำเร็จตามปกติ ไม่ error)
ตัวอย่าง request
{
  "phone": "0812345678",
  "password": "P@ssw0rd123",
  "full_name": "สมชาย ใจดี",
  "bank": {
    "bank_code": "KBANK",
    "account_number": "1234567890",
    "account_name": "สมชาย ใจดี"
  },
  "acquisition_channel": "FACEBOOK",
  "referral_code": "AB12CD34"
}

Response

ฟิลด์ใน data

ฟิลด์ชนิดจำเป็นคำอธิบาย
access_tokenstring—JWT สำหรับแนบ Authorization: Bearer — สมัครเสร็จเข้าสู่ระบบให้ทันที
expires_innumber—อายุ access token เป็นวินาที (900 = 15 นาที)
refresh_tokenstring—สำหรับขอ access token ใหม่ มีอายุ 7 วัน
userobject—ข้อมูลสรุปของสมาชิกที่สร้างใหม่
└ idstring—id สมาชิก (uuid)
└ usernamestring—username (prefix ของ agent + เบอร์โทร ตัวพิมพ์เล็ก ≤20 ตัวอักษร)
└ rolestring—บทบาทMEMBER
└ statusstring—สถานะบัญชี — สมัครใหม่เป็น ACTIVE ทันที
└ member_tierstring | null—ระดับสมาชิก — เริ่มที่ NEW
└ full_namestring | null—ชื่อ-นามสกุล
└ selected_promotion_idstring | null—โปรฝากเงินที่สมาชิกเลือกไว้ (สมัครใหม่ = null)
ตัวอย่าง response
{
  "success": true,
  "code": 0,
  "message": "สำเร็จ",
  "data": {
    "access_token": "eyJhbGciOiJIUzI1NiIs…",
    "expires_in": 900,
    "user": {
      "id": "0f1e2d3c-4b5a-6978-8796-a5b4c3d2e1f0",
      "username": "abc0812345678",
      "role": "MEMBER",
      "status": "ACTIVE",
      "member_tier": "NEW",
      "full_name": "สมชาย ใจดี",
      "selected_promotion_id": null
    }
  },
  "request_uuid": "3c9d2f61-7b04-4e8a-9f27-1a5c8e0d4b72"
}

Error codes ที่พบได้

codeชื่อHTTPข้อความ
1004USER_ALREADY_EXISTS409ผู้ใช้นี้มีอยู่แล้วเบอร์นี้เคยสมัครกับ agent นี้แล้ว (username ซ้ำ)
4001VALIDATION_ERROR400ข้อมูลไม่ถูกต้อง
4002BAD_REQUEST400คำขอไม่ถูกต้องไม่รู้จักโดเมน agent หรือ prefix+เบอร์ยาวเกิน 20 ตัวอักษร
9003TOO_MANY_REQUESTS429คำขอมากเกินไป กรุณาชะลอความเร็วเกิน rate limit ของกลุ่ม auth (10 ครั้ง/นาที/IP)