v1.0.9 · 2026-06-21
เอกสาร Vietnam Payment API | ucake API Docs
ชุด API มาตรฐานสำหรับระบบชำระเงินเวียดนาม ครอบคลุมการจ่ายเงิน การตรวจสอบผลการจ่ายเงิน การสร้างบัญชีเสมือน การปิดบัญชีเสมือน การตรวจสอบบัญชีเสมือน การตรวจสอบยอดคงเหลือบริษัท การสร้าง QR แบบไดนามิก และการแจ้งเตือนแบบอะซิงโครนัส
Base path: /vnpay/api/v1
API endpoints
API จ่ายเงิน
POST /vnpay/api/v1/payment
เรียก API นี้เพื่อโอนเงินเข้าบัญชีธนาคารของผู้ใช้
ฟิลด์คำขอ
amount - integer - จำเป็น - จำนวนเงินที่จ่าย ช่วง 50,000 ถึง 50,000,000orderNo - string - จำเป็น - เลขคำสั่งซื้อของผู้ค้า ต้องไม่ซ้ำในแต่ละครั้งที่เรียกaccountName - string - จำเป็น - ชื่อผู้ใช้phoneNo - string - ไม่จำเป็น - เบอร์โทรผู้ใช้accountNo - string - จำเป็น - เลขบัญชีผู้ใช้accountType - integer - จำเป็น - ประเภทบัญชี: 0 เลขบัญชี, 1 เลขบัตรbankCode - string - จำเป็น - รหัสธนาคารmessage - string - จำเป็น - หมายเหตุการจ่ายเงินreturnURL - string - จำเป็น - URL แจ้งเตือน callbackcompanyID - string - จำเป็น - รหัสบริษัทที่ backend กำหนดmerchantID - string - จำเป็น - รหัสผู้ค้าที่ backend กำหนดtimestamp - number - จำเป็น - เวลาประทับsign - string - จำเป็น - ลายเซ็น
ฟิลด์คำตอบ
amount - integer - จำนวนเงินธุรกรรมorderNo - string - เลขคำสั่งซื้อของผู้ค้าที่ส่งเข้ามาtradeNo - string - เลขอ้างอิงธุรกรรมcreateTime - string - เวลาสร้างธุรกรรม รูปแบบ yyyy-MM-dd HH:mm:ssupdateTime - string - เวลาอัปเดตล่าสุดของธุรกรรมbankCode - string - รหัสธนาคารphoneNo - string - เบอร์โทรศัพท์accountName - string - ชื่อผู้ใช้accountNo - string - เลขบัญชีผู้ใช้accountType - integer - ประเภทบัญชีmessage - String - หมายเหตุ
API ตรวจสอบผลการจ่ายเงิน
GET /vnpay/api/v1/paymentResult
เมื่อการจ่ายเงินอยู่ระหว่างประมวลผล สามารถรอการแจ้งเตือนหรือตรวจสอบผลเองได้
ฟิลด์คำขอ
orderNo - string - จำเป็น - เลขคำสั่งซื้อที่ส่งเข้า API จ่ายเงินtradeNo - string - จำเป็น - เลขอ้างอิงธุรกรรมที่ API จ่ายเงินส่งกลับcompanyID - string - จำเป็น - รหัสบริษัทที่ backend กำหนดmerchantID - string - จำเป็น - รหัสผู้ค้าที่ backend กำหนดsign - string - จำเป็น - ลายเซ็นtimestamp - number - จำเป็น - เวลาประทับ
ฟิลด์คำตอบ
amount - integer - จำนวนเงินธุรกรรมorderNo - string - เลขคำสั่งซื้อของผู้ค้าtradeNo - string - เลขอ้างอิงธุรกรรมcreateTime - string - เวลาสร้างธุรกรรมupdateTime - string - เวลาอัปเดตล่าสุดของธุรกรรมbankCode - string - รหัสธนาคารphoneNo - string - เบอร์โทรศัพท์accountName - string - ชื่อผู้ใช้accountNo - string - เลขบัญชีผู้ใช้accountType - integer - ประเภทบัญชีmessage - string - หมายเหตุ
สร้างบัญชีเสมือน
POST /vnpay/api/v1/createVirtualCard
สร้างบัญชีเสมือนและส่งกลับเลขบัญชี ข้อมูล QRCode และลิงก์รูป VietQR
ฟิลด์คำขอ
orderNo - string - จำเป็น - เลขคำสั่งซื้อธุรกรรมaccountName - string - ไม่จำเป็น - ชื่อบัญชีเสมือนphoneNo - string - ไม่จำเป็น - เบอร์โทรผู้ใช้bankCode - string - ไม่จำเป็น - ธนาคารที่ใช้สร้างบัญชีเสมือนcompanyID - string - จำเป็น - รหัสบริษัทที่ backend กำหนดmerchantID - string - จำเป็น - รหัสผู้ค้าที่ backend กำหนดtimestamp - string - จำเป็น - เวลาประทับsign - string - จำเป็น - ลายเซ็นtotalFee - Long - ไม่จำเป็น - จำนวนเงินรับชำระ
ฟิลด์คำตอบ
orderNo - string - เลขคำสั่งซื้อธุรกรรมbankCode - string - รหัสธนาคารaccountName - string - ชื่อบัญชีaccountNo - string - เลขบัญชีaccountStatus - integer - สถานะ: 0 ปิด, 1 ใช้งานปกติcreatedTime - string - เวลาสร้างexpireTime - string - เวลาหมดอายุcloseTime - string - เวลาปิดQRCode - String - ข้อมูลสตริงของ QRQRImgUrl - String - ลิงก์รูป VietQR
ปิดบัญชีเสมือน
POST /vnpay/api/v1/closeVirtualCard
ปิดบัญชีเสมือนที่ระบุและส่งกลับสถานะหลังปิด
ฟิลด์คำขอ
accountNo - string - ไม่จำเป็น - เลขบัญชีธนาคารที่ส่งกลับตอนสร้างbankCode - string - ไม่จำเป็น - รหัสธนาคารcompanyID - string - ไม่จำเป็น - รหัสบริษัทที่ backend กำหนดmerchantID - string - ไม่จำเป็น - รหัสผู้ค้าที่ backend กำหนดtimestamp - integer - ไม่จำเป็น - เวลาประทับsign - string - ไม่จำเป็น - ลายเซ็น
ฟิลด์คำตอบ
bankCode - string - รหัสธนาคารaccountName - string - ชื่อบัญชีaccountNo - string - เลขบัญชีaccountStatus - integer - สถานะ: 0 ปิด, 1 ใช้งานปกติcreatedTime - string - เวลาสร้างexpireTime - string - เวลาหมดอายุcloseTime - string - เวลาปิด
ตรวจสอบบัญชีเสมือน
GET /vnpay/api/v1/queryVirtualCard
ตรวจสอบสถานะบัญชีเสมือนด้วย bankCode, accountName และ accountNo
ฟิลด์คำขอ
bankCode - string - ใช่ - รหัสธนาคารaccountName - string - ใช่ - ชื่อบัญชีaccountNo - string - ใช่ - เลขบัญชีcompanyID - string - ใช่ - รหัสบริษัทที่ backend กำหนดmerchantID - string - ใช่ - รหัสผู้ค้าที่ backend กำหนดsign - string - ใช่ - ลายเซ็นtimestamp - string - ใช่ - เวลาประทับ
ฟิลด์คำตอบ
bankCode - string - รหัสธนาคารaccountName - string - ชื่อบัญชีaccountNo - string - เลขบัญชีaccountStatus - integer - สถานะ: 0 ปิด, 1 ใช้งานปกติcreatedTime - string - เวลาสร้างexpireTime - string - เวลาหมดอายุcloseTime - string - เวลาปิด
ตรวจสอบยอดคงเหลือบริษัท
POST /vnpay/api/v1/queryBalance
ตรวจสอบยอดคงเหลือปัจจุบันของบัญชีบริษัท
ฟิลด์คำขอ
companyID - string - จำเป็น - รหัสบริษัทที่ backend กำหนดmerchantID - string - จำเป็น - รหัสผู้ค้าที่ backend กำหนดsign - string - จำเป็น - ลายเซ็นtimestamp - integer - จำเป็น - เวลาประทับ
ฟิลด์คำตอบ
companyID - string - รหัสบริษัทที่ backend กำหนดmerchantID - string - รหัสผู้ค้าที่ backend กำหนดbalance - string - ยอดคงเหลือปัจจุบันของบริษัท
สร้าง QR แบบไดนามิก
POST /vnpay/api/v1/createDynamicQr
สร้าง QR แบบไดนามิกสำหรับจำนวนเงินที่ระบุ และส่งกลับสตริง QR พร้อมเวลาหมดอายุ
ฟิลด์คำขอ
merchantID - string - จำเป็น - รหัสผู้ค้าที่ backend กำหนดcompanyID - string - จำเป็น - รหัสบริษัทที่ backend กำหนดorderNo - string - จำเป็น - เลขคำสั่งซื้อธุรกรรมamount - Long - จำเป็น - จำนวนเงินรับชำระmessage - string - ไม่จำเป็น - หมายเหตุtimestamp - string - จำเป็น - เวลาประทับsign - string - จำเป็น - ลายเซ็น
ฟิลด์คำตอบ
orderNo - string - เลขคำสั่งซื้อธุรกรรมamount - Long - จำนวนเงินรับชำระexpiresAt - string - เวลาหมดอายุของ QR แบบไดนามิกqrCode - String - ข้อมูลสตริง QR
Callbacks
แจ้งเตือนผลการจ่ายเงิน
URL ที่ส่งเข้า API จ่ายเงิน
เมื่อการจ่ายเงินที่กำลังประมวลผลมีผลลัพธ์สุดท้าย ระบบจะเรียก URL ที่ส่งเข้า API จ่ายเงินเพื่อแจ้งเตือน
companyID - string - รหัสบริษัทmerchantID - string - รหัสผู้ค้าorderNo - string - เลขคำสั่งซื้อของผู้ค้าtradeNo - string - เลขอ้างอิงธุรกรรมbankCode - string - รหัสธนาคารaccountNo - string - เลขบัญชีamount - number - จำนวนเงินธุรกรรมmessage - string - หมายเหตุการจ่ายเงินresult - String - สาเหตุเมื่อธุรกรรมล้มเหลวupdateTime - String - เวลาอัปเดตธุรกรรมstatus - number - สถานะธุรกรรม: 0 สำเร็จ, 3 ล้มเหลว, 4 ยกเลิกsign - string - ลายเซ็น
แจ้งเตือนผลการรับชำระ
URL แจ้งเตือนที่ตั้งค่าใน backend ของผู้ค้า
เมื่อบัญชีเสมือนได้รับเงิน ระบบจะส่งข้อมูลการรับชำระให้พาร์ทเนอร์
companyID - string - รหัสบริษัทmerchantID - string - รหัสผู้ค้าorderNo - string - เลขคำสั่งซื้อของผู้ค้าtradeNo - string - เลขอ้างอิงธุรกรรมbankCode - string - รหัสธนาคารaccountNo - string - เลขบัญชีเสมือนamount - number - จำนวนเงินรับชำระmessage - string - ข้อมูลธุรกรรมที่ระบบชำระเงินส่งกลับsenderName - string - ผู้ชำระเงินsenderAccount - string - บัญชีผู้ชำระเงินsenderBankCode - string - รหัสธนาคารของผู้ชำระเงินsign - string - ลายเซ็น
แจ้งเตือนการคืนเงิน
URL แจ้งเตือนการคืนเงินที่ตั้งค่าใน backend ของผู้ค้า
หลังจากคืนเงินคำสั่งซื้อสำเร็จ ระบบจะส่งข้อมูลการคืนเงินให้พาร์ทเนอร์
companyID - string - รหัสบริษัทmerchantID - string - รหัสผู้ค้าorderNo - string - เลขคำสั่งซื้อของผู้ค้าtradeNo - string - เลขอ้างอิงธุรกรรมbankCode - string - รหัสธนาคารaccountNo - string - เลขบัญชีธนาคารamount - number - จำนวนเงินธุรกรรมupdateTime - string - เวลาอัปเดตstatus - string - สถานะ: 5 คืนเงินแล้วsign - string - ลายเซ็น