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,000
  • orderNo - string - จำเป็น - เลขคำสั่งซื้อของผู้ค้า ต้องไม่ซ้ำในแต่ละครั้งที่เรียก
  • accountName - string - จำเป็น - ชื่อผู้ใช้
  • phoneNo - string - ไม่จำเป็น - เบอร์โทรผู้ใช้
  • accountNo - string - จำเป็น - เลขบัญชีผู้ใช้
  • accountType - integer - จำเป็น - ประเภทบัญชี: 0 เลขบัญชี, 1 เลขบัตร
  • bankCode - string - จำเป็น - รหัสธนาคาร
  • message - string - จำเป็น - หมายเหตุการจ่ายเงิน
  • returnURL - string - จำเป็น - URL แจ้งเตือน callback
  • companyID - string - จำเป็น - รหัสบริษัทที่ backend กำหนด
  • merchantID - string - จำเป็น - รหัสผู้ค้าที่ backend กำหนด
  • timestamp - number - จำเป็น - เวลาประทับ
  • sign - string - จำเป็น - ลายเซ็น

ฟิลด์คำตอบ

  • amount - integer - จำนวนเงินธุรกรรม
  • orderNo - string - เลขคำสั่งซื้อของผู้ค้าที่ส่งเข้ามา
  • tradeNo - string - เลขอ้างอิงธุรกรรม
  • createTime - string - เวลาสร้างธุรกรรม รูปแบบ yyyy-MM-dd HH:mm:ss
  • updateTime - 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 - ข้อมูลสตริงของ QR
  • QRImgUrl - 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 - ลายเซ็น