Callback การถอนเงิน

เมื่อคำสั่งถอนเงินดำเนินการเสร็จสิ้นหรือล้มเหลว ระบบจะแจ้งเตือนร้านค้าผ่าน Webhook (URL ที่ระบุตอนสร้างคำสั่งถอนเงิน) โดยส่ง POST request พร้อม Content-Type: application/json ไปยัง notify URL ของร้านค้าพร้อมข้อมูลด้านล่าง Signature จะถูกส่งใน header X-Signature ผู้ใช้ต้องตรวจสอบ Signature ก่อนดำเนินการต่อ

Method : POST

ข้อมูล Callback

{
    "merchant_id" : "[merchant id]",
    "platform_order_id" : "[platform order id]",
    "client_order_id" : "[merchant order id]",
    "mode" : "WITHDRAW",
    "bank" : "[bank code]",
    "account_no" : "[account number]",
    "account_name" : "[account name]",
    "amount" : "[amount]",
    "status" : "PAID",
    "timestamp" : [timestamp]
}

คำอธิบาย

พารามิเตอร์คำอธิบาย
merchant_idรหัสร้านค้า
platform_order_idรหัสคำสั่งซื้อของแพลตฟอร์ม
client_order_idรหัสคำสั่งซื้อของร้านค้า
modeWITHDRAW สำหรับการแจ้งเตือนการถอนเงิน
bankรหัสธนาคาร
account_noเลขที่บัญชี
account_nameชื่อบัญชี
amountจำนวนเงิน
statusสถานะ SUCCESS FAIL

ตัวอย่าง HTTP Request ทั้งหมด

POST /callback HTTP/1.1
Content-Type: application/json
Connection: Close
X-Signature: 6cd4a32478f5ec8e69343988dc9137e37d3eb02123adc3248ec4ea0aeca2e922

{
    "merchant_id" : "AA12345678",
    "platform_order_id" : "THBW2024042821130xxxxxxxxx",
    "client_order_id" : "ORDER0123456789789445566",
    "mode" : "WITHDRAW",
    "bank": "KBANK",
    "account_no": "1234567890",
    "account_name": "สมชาย นามสมมุติ",
    "amount" : "1000.00",
    "status" : "SUCCESS",
    "timestamp" : 112233445566
}

การจัดการ Callback

เพื่อให้การจัดการ Callback จากระบบ ถูกต้อง กรุณาพัฒนาระบบรับ Webhook โดยคำนึงถึงสิ่งต่อไปนี้:

การตอบกลับ HTTP Status 200: ระบบของคุณต้องตอบกลับด้วย HTTP status code 200 เมื่อได้รับและประมวลผล Callback สำเร็จ หากระบบไม่ได้รับการตอบกลับ 200 ระบบจะส่ง Callback ซ้ำหลังจากรอสักครู่จนกว่าจะได้รับการยืนยัน

การจัดการ Callback ซ้ำ (Idempotency): เป็นเรื่องปกติที่อาจเกิด Callback ซ้ำ ตรวจสอบให้ระบบของคุณยืนยันแต่ละ Callback โดยใช้ platform_order_id หรือ client_order_id ก่อนดำเนินการ พัฒนาระบบให้ Callback ซ้ำไม่ทำให้เกิดการดำเนินการหรือธุรกรรมทางการเงินซ้ำ

ขั้นตอนเหล่านี้เป็นไปตามมาตรฐานอุตสาหกรรมสำหรับการพัฒนา Webhook และช่วยให้การประมวลผล Callback มีความทนทานและเชื่อถือได้