การสนับสนุนและประวัติเวอร์ชัน
ช่องทางติดต่อทีมสนับสนุน และประวัติการเปลี่ยนแปลงของเอกสารชุดนี้
สร้างจาก public-api.md โดยอัตโนมัติเวอร์ชัน 1.2.0ปรับปรุงล่าสุด 2026-09-20
#การขอความช่วยเหลือ (Support)
หากต้องการความช่วยเหลือด้านเทคนิค ติดต่อผู้ดูแลบัญชีของคุณหรือช่องทางสนับสนุนที่ได้รับ มาพร้อมข้อมูลยืนยันตัวตน สำหรับแบรนด์ที่ให้บริการอยู่ตอนนี้:
- Telegram:
@paymenow_support_bot - ศูนย์ช่วยเหลือ:
https://help.paymenow.asia
เมื่อแจ้งปัญหาคำขอที่ล้มเหลว กรุณาแจ้งค่า trace_id จาก details ของข้อผิดพลาด
(หรือ response header X-Request-ID) มาด้วย
ปัจจุบันยังไม่มีหน้าสถานะระบบสาธารณะ ส่วน GET /health รายงานเฉพาะสถานะของ
API gateway เท่านั้น
#ประวัติการเปลี่ยนแปลง (Changelog)
#v1.2.0 (2026-09-20)
ตรวจทานเอกสารฉบับนี้เทียบกับโค้ดที่ใช้งานจริงทั้งฉบับ สิ่งที่แก้ไข:
- แบรนด์และโฮสต์: เปลี่ยน
gateway.i-pay.one/pay.i-pay.one/docs.i-pay.one/[email protected]เป็นตัวแทน<domain>พร้อมค่าจริงที่ใช้อยู่ (api.paymenow.asia,sandbox-api.paymenow.asia) - การเลือก sandbox ใช้โฮสต์ ไม่ใช่ดูจากประเภทร้านค้าอย่างเดียว — production กับ sandbox เป็นคนละ base URL และคำกล่าวเดิมที่ว่าทั้งสองใช้ URL เดียวกันนั้นผิด
- การยืนยันตัวตน: ระบุให้ชัดว่า
PATHไม่รวม query string, ต้องตัด|ตัวท้ายเมื่อไม่มี body, รูปแบบคีย์ที่ถูกต้อง (pk_prod_/pk_demo_40 ตัวอักษร,sk_prod_/sk_demo_72 ตัวอักษร ไม่ใช่ "64 ตัวอักษร"), การแคชคีย์ 5 นาที และพฤติกรรมของ403 IP_NOT_WHITELISTED - เพิ่มเอกสารของ endpoint ใหม่:
GET /v1/payments/get-balance,POST /v1/payments/{id}/upload-slip(พร้อมรูปแบบลายเซ็นที่ใช้แฮชไฟล์),/v1/merchant-reports/*,/healthและตัวช่วย/sandbox/* - การรับเงิน: เพิ่ม
paid_amount(ยอดสตางค์ไม่ซ้ำที่ลูกค้าต้องโอนจริง) แก้เวลาหมดอายุ เริ่มต้นจาก 15 เป็น 10 นาที ระบุขั้นต่ำ 50 บาทและขั้นต่ำ/ขั้นสูงของร้านค้า และระบุว่าreference_idไม่ใช่กุญแจกันรายการซ้ำ payment_url: บันทึกเดิมเคยระบุว่าฟิลด์นี้ไม่เคยมีค่าจริงและไม่มีหน้าชำระเงินที่โฮสต์ให้ ทั้งสองข้อเลิกเป็นความจริงตั้งแต่กันยายน 2026 — หน้านั้นเปิดใช้แล้ว ฟิลด์นี้มีลิงก์จริง และตารางฟิลด์กับตัวอย่างด้านบนแสดงไว้แล้ว- การจ่ายเงินออก: ระบุขั้นต่ำ 100 บาท การกันจ่ายซ้ำ 5 นาที สถานะตอนสร้างเป็น
pending/processingและค่าbank_code: "PROMPTPAY"ถูกปฏิเสธตั้งแต่ขั้นตรวจสอบ (เส้นทาง PromptPay proxy เรียกผ่าน API นี้ไม่ได้) - การดูรายการ: แก้ให้ถูกต้องว่าไม่เคยคืน
qr_code,qr_code_imageหรือpaid_amount - การยกเลิก: แก้ให้ถูกต้องว่ารายการที่ยกเลิกแล้วรายงาน
status: "failed"ไม่ใช่cancelled - สถานะ: ระบุครบทั้งหมด (
pending,processing,pending_approval,completed,failed,expired,refunded,cancelled) พร้อมกฎการเปลี่ยนสถานะจริง การหมดเวลาให้expiredไม่ใช่failedซึ่งกลับคำที่ v1.1.0 ระบุไว้ผิด - Webhook: เพิ่ม
paidAmountและfailureReasonเพิ่มเอกสารของrefunded/transaction.refundedระบุว่าexpiredเป็นค่าปัจจุบันไม่ใช่ของเก่า ระบุสูตรลายเซ็นที่แน่นอน (timestamp + "|" + raw_bodyเซ็นด้วย secret key ของ API ไม่ใช่secretจากการตั้งค่า webhook) เพิ่ม headerX-Webhook-EventและX-Transaction-IDเวลารอส่ง 10 วินาที ช่วงส่งซ้ำคงที่ 1 นาที ซองของ event กลุ่มรายงาน และ ข้อควรระวังเรื่องการส่งซ้ำ อย่างน้อยหนึ่งครั้ง ของ webhook รายการธุรกรรม - ข้อผิดพลาด: แทนรายการรหัสที่กุขึ้นด้วยรหัสที่ระบบส่งออกจริง พร้อมรหัสสถานะ HTTP ของแต่ละตัว
ระบุว่า
PAYMENT_NOT_FOUND,PAYMENT_ERROR,DUPLICATE_REFERENCEและINVALID_BANK_CODEไม่ได้ถูกใช้ และเพิ่มเอกสารของdetails.reason/details.trace_idกับX-Request-ID - ขีดจำกัดการเรียกใช้: แก้จากตารางสมมติ 100/30/20 รายการ endpoint เป็นโควตาจริง
คือ 60/นาที ต่อร้านค้าสำหรับ
/v1/payments/*อีก 60/นาที แยกต่างหากสำหรับ/v1/merchant-reports/*และ 300/นาที ต่อ IP สำหรับตัวช่วยของ sandbox - Sandbox: แก้ตารางจำนวนเงินทดสอบ (
888.88ไม่ใช่ตัวกระตุ้น timeout) แยกผลลัพธ์ของ การรับเงินกับการจ่ายเงินออก และเขียนเอกสารของสถานการณ์timeout/invalid_accountให้ตรงความจริง - รหัสธนาคาร: เพิ่ม
032,039,045,052และอธิบายว่าระบบตรวจรหัสแค่ความยาว ส่วนตารางคือชุดรหัสที่แปลงเป็นชื่อธนาคารได้ - การขอความช่วยเหลือ: แทน URL อีเมล/เอกสาร/สถานะที่ไม่มีอยู่จริงด้วยช่องทาง Telegram และศูนย์ช่วยเหลือที่ใช้งานได้จริง
#v1.1.0 (2025-12-24)
- เปลี่ยนรูปแบบ payload ของ webhook เป็นโครงสร้างแบน
- เพิ่มฟิลด์
qr_code_imageใน response ของการรับเงิน (PNG แบบ Base64) - เพิ่มฟิลด์ของการรับเงิน:
bank_code,bank_account_no,bank_account_name - เพิ่มรหัสธนาคาร
- เพิ่มเอกสารเรื่องขีดจำกัดการเรียกใช้
- เพิ่มเอกสารเรื่องการหมดอายุของรายการ
- (รุ่นนี้ระบุไว้ด้วยว่าการหมดเวลาทำให้สถานะเป็น
failedซึ่งไม่ถูกต้อง และแก้แล้วใน v1.2.0)
#v1.0.0 (2024-12-12)
- รุ่นแรก
- รับเงินด้วย PromptPay QR
- จ่ายเงินออกเข้าบัญชีธนาคาร
- การยืนยันตัวตนด้วย HMAC-SHA256
- การแจ้งเตือนผ่าน webhook
- การแยกเส้นทางตามประเภทร้านค้า Sandbox/Production
หน้านี้แปลจากเอกสารต้นฉบับภาษาอังกฤษ ส่วนที่เป็นค่าทางเทคนิค — path, ชื่อฟิลด์, header, รหัสข้อผิดพลาด และชื่อคอลัมน์ในไฟล์ส่งออก — คงไว้เป็นภาษาอังกฤษตามที่ระบบใช้จริง

