สร้างขั้นตอนยืนยัน SMS อัตโนมัติด้วย API key ระดับบัญชี การกันยอด คำสั่งซื้อแบบ idempotent และรูปแบบ error ที่ชัดเจน
ทุกคำขอ API ต้องมี NumFlow API key ที่สร้างจากบัญชีปัจจุบัน ระบบจะใช้ยอดคงเหลือ สิทธิ์ rate limit และการควบคุมความเสี่ยงของบัญชีนั้น:X-API-Key + HMAC-SHA256 signature headers
นักพัฒนาเรียกใช้เฉพาะ NumFlow API เท่านั้น API key ยอดคงเหลือ คำสั่งซื้อ และประวัติกระเป๋าแยกตามบัญชี โดยไม่เปิดเผยข้อมูลสำคัญหรือข้อมูลของบัญชีอื่น
รูปแบบการคิดเงิน: หลังจัดสรรหมายเลข ระบบจะกันยอดตามราคาที่แสดงและตัดยอดเมื่อได้รับรหัส SMS แรก หากไม่มีรหัสและการยกเลิกหรือหมดเวลาสำเร็จ ระบบจะปล่อยยอดที่กันไว้ จำนวนเงินใน request body ไม่ถูกใช้เป็นยอดตัดเงินจริง
ขั้นตอนที่แนะนำ
1. ตรวจยอดและยืนยันว่ายอดคงเหลือที่ใช้ได้เพียงพอ
2. ใช้ Idempotency-Key ที่ไม่ซ้ำสำหรับแต่ละคำสั่งซื้อ และใช้ค่าเดิมเมื่อ retry จากปัญหาเครือข่าย
3. ตรวจผล SMS ทุก 3–5 วินาที และใช้ expires_at จากคำสั่งซื้อเป็นช่วงเวลารับรหัส
4. เมื่อได้รหัส คำสั่งซื้อจะสำเร็จและตัดยอดอัตโนมัติ ภายในช่วงเวลาที่มีผลให้ตรวจคำสั่งซื้อเดิม และยกเลิกเฉพาะเมื่อสถานะอนุญาต
Error response ใช้รูปแบบ JSON เดียวกัน: { success: false, error: { code, message } }
API_UNAUTHENTICATEDไม่มี API key, key ไม่ถูกต้อง หรือถูกยกเลิกAPI_SIGNATURE_REQUIREDข้อมูล request หรือ path parameter ไม่ถูกต้องAPI_SIGNATURE_INVALIDยอดคงเหลือที่ใช้ได้ไม่เพียงพอAPI_REPLAY_DETECTEDมีคำขอมากเกินไป โปรดลองใหม่ภายหลังIDEMPOTENCY_KEY_REQUIREDไม่มีหมายเลขพร้อมใช้สำหรับประเทศ บริการ หรือสายที่เลือกIDEMPOTENCY_KEY_REUSEDรหัสประเทศไม่ถูกต้องIDEMPOTENCY_RECOVERY_REQUIREDรหัสสายหรือเครือข่ายไม่ถูกต้องVALIDATION_ERRORรหัสบริการไม่ถูกต้องINSUFFICIENT_WALLET_BALANCEไม่พบคำสั่งซื้อหรือไม่ได้เป็นของบัญชี API key นี้RATE_LIMITEDยังไม่สามารถปิดคำสั่งซื้อก่อนรับรหัส SMSNO_FREE_PHONESคำสั่งซื้อได้รับรหัสหรือจบแล้ว จึงยกเลิกไม่ได้BAD_COUNTRYยังไม่ได้ตั้งค่าบริการหมายเลขในสภาพแวดล้อมนี้BAD_OPERATORบริการหมายเลขไม่พร้อมใช้งานชั่วคราวNO_PRODUCTการสั่งหมายเลขไม่พร้อมใช้งานชั่วคราว หากยังเกิดขึ้นให้ติดต่อฝ่ายช่วยเหลือORDER_NOT_FOUNDไม่สามารถดำเนินการได้ ให้รีเฟรชสถานะคำสั่งซื้อแล้วลองใหม่SMS_CODE_REQUIREDORDER_NOT_CANCELABLEORDER_STATE_CONFLICTORDER_BILLING_CONFLICTNUMBER_SERVICE_NOT_CONFIGUREDNUMBER_SERVICE_UNAVAILABLENUMBER_SERVICE_TEMPORARILY_UNAVAILABLEBUSINESS_ERRORสร้างบัญชี เติมยอดด้วย recharge code และสร้าง API key จากศูนย์บัญชี แต่ละบัญชีมีการคิดเงิน rate limit และประวัติคำสั่งซื้อแยกกัน
เปิดศูนย์บัญชี