v1.0.9 · 2026-06-21
Tài liệu API thanh toán Việt Nam | ucake API Docs
Bộ API tiêu chuẩn cho hệ thống thanh toán Việt Nam, bao gồm chi hộ, tra cứu chi hộ, tạo tài khoản ảo, đóng tài khoản ảo, tra cứu tài khoản ảo, tra cứu số dư công ty, tạo mã QR động và thông báo bất đồng bộ.
Base path: /vnpay/api/v1
API endpoints
API chi hộ
POST /vnpay/api/v1/payment
Gọi API này để chuyển tiền tới tài khoản ngân hàng của người dùng.
Trường yêu cầu
amount - integer - Bắt buộc - Số tiền chi hộ. Khoảng tiền: 50,000 đến 50,000,000.orderNo - string - Bắt buộc - Mã đơn hàng merchant, phải duy nhất cho mỗi lần gọi.accountName - string - Bắt buộc - Tên người dùngphoneNo - string - Không bắt buộc - Số điện thoại người dùngaccountNo - string - Bắt buộc - Số tài khoản người dùngaccountType - integer - Bắt buộc - Loại tài khoản: 0 số tài khoản, 1 số thẻ.bankCode - string - Bắt buộc - Mã ngân hàngmessage - string - Bắt buộc - Ghi chú chi hộreturnURL - string - Bắt buộc - URL callback thông báocompanyID - string - Bắt buộc - ID công ty do backend cấp.merchantID - string - Bắt buộc - ID merchant do backend cấp.timestamp - number - Bắt buộc - Dấu thời giansign - string - Bắt buộc - Chữ ký
Trường phản hồi
amount - integer - Số tiền giao dịchorderNo - string - Mã đơn hàng merchant được truyền vào.tradeNo - string - Mã giao dịchcreateTime - string - Thời gian tạo giao dịch. Định dạng: yyyy-MM-dd HH:mm:ss.updateTime - string - Thời gian cập nhật giao dịch cuối cùng.bankCode - string - Mã ngân hàngphoneNo - string - Số điện thoạiaccountName - string - Tên người dùngaccountNo - string - Số tài khoản người dùngaccountType - integer - Loại tài khoảnmessage - String - Ghi chú
API tra cứu kết quả chi hộ
GET /vnpay/api/v1/paymentResult
Khi chi hộ đang xử lý, có thể chờ thông báo hoặc chủ động tra cứu.
Trường yêu cầu
orderNo - string - Bắt buộc - Mã đơn hàng đã truyền vào API chi hộ.tradeNo - string - Bắt buộc - Mã giao dịch được API chi hộ trả về.companyID - string - Bắt buộc - ID công ty do backend cấp.merchantID - string - Bắt buộc - ID merchant do backend cấp.sign - string - Bắt buộc - Chữ kýtimestamp - number - Bắt buộc - Dấu thời gian
Trường phản hồi
amount - integer - Số tiền giao dịchorderNo - string - Mã đơn hàng merchanttradeNo - string - Mã giao dịchcreateTime - string - Thời gian tạo giao dịchupdateTime - string - Thời gian cập nhật giao dịch cuối cùng.bankCode - string - Mã ngân hàngphoneNo - string - Số điện thoạiaccountName - string - Tên người dùngaccountNo - string - Số tài khoản người dùngaccountType - integer - Loại tài khoảnmessage - string - Ghi chú
Tạo tài khoản ảo
POST /vnpay/api/v1/createVirtualCard
Tạo tài khoản ảo và trả về số tài khoản, chuỗi QRCode và liên kết ảnh VietQR.
Trường yêu cầu
orderNo - string - Bắt buộc - Mã đơn giao dịchaccountName - string - Không bắt buộc - Tên tài khoản ảophoneNo - string - Không bắt buộc - Số điện thoại người dùngbankCode - string - Không bắt buộc - Ngân hàng dùng để tạo tài khoản ảo.companyID - string - Bắt buộc - ID công ty do backend cấp.merchantID - string - Bắt buộc - ID merchant do backend cấp.timestamp - string - Bắt buộc - Dấu thời giansign - string - Bắt buộc - Chữ kýtotalFee - Long - Không bắt buộc - Số tiền thu hộ
Trường phản hồi
orderNo - string - Mã đơn giao dịchbankCode - string - Mã ngân hàngaccountName - string - Tên tài khoảnaccountNo - string - Số tài khoảnaccountStatus - integer - Trạng thái: 0 đã đóng, 1 hoạt động.createdTime - string - Thời gian tạoexpireTime - string - Thời gian hết hạncloseTime - string - Thời gian đóngQRCode - String - Dữ liệu chuỗi mã QRQRImgUrl - String - Liên kết ảnh VietQR
Đóng tài khoản ảo
POST /vnpay/api/v1/closeVirtualCard
Đóng tài khoản ảo chỉ định và trả về trạng thái sau khi đóng.
Trường yêu cầu
accountNo - string - Không bắt buộc - Số tài khoản ngân hàng được trả về khi tạo.bankCode - string - Không bắt buộc - Mã ngân hàngcompanyID - string - Không bắt buộc - ID công ty do backend cấp.merchantID - string - Không bắt buộc - ID merchant do backend cấp.timestamp - integer - Không bắt buộc - Dấu thời giansign - string - Không bắt buộc - Chữ ký
Trường phản hồi
bankCode - string - Mã ngân hàngaccountName - string - Tên tài khoảnaccountNo - string - Số tài khoảnaccountStatus - integer - Trạng thái: 0 đã đóng, 1 hoạt động.createdTime - string - Thời gian tạoexpireTime - string - Thời gian hết hạncloseTime - string - Thời gian đóng
Tra cứu tài khoản ảo
GET /vnpay/api/v1/queryVirtualCard
Tra cứu trạng thái tài khoản ảo theo bankCode, accountName và accountNo.
Trường yêu cầu
bankCode - string - Có - Mã ngân hàngaccountName - string - Có - Tên tài khoảnaccountNo - string - Có - Số tài khoảncompanyID - string - Có - ID công ty do backend cấp.merchantID - string - Có - ID merchant do backend cấp.sign - string - Có - Chữ kýtimestamp - string - Có - Dấu thời gian
Trường phản hồi
bankCode - string - Mã ngân hàngaccountName - string - Tên tài khoảnaccountNo - string - Số tài khoảnaccountStatus - integer - Trạng thái: 0 đã đóng, 1 hoạt động.createdTime - string - Thời gian tạoexpireTime - string - Thời gian hết hạncloseTime - string - Thời gian đóng
Tra cứu số dư công ty
POST /vnpay/api/v1/queryBalance
Tra cứu số dư hiện tại của tài khoản công ty.
Trường yêu cầu
companyID - string - Bắt buộc - ID công ty do backend cấp.merchantID - string - Bắt buộc - ID merchant do backend cấp.sign - string - Bắt buộc - Chữ kýtimestamp - integer - Bắt buộc - Dấu thời gian
Trường phản hồi
companyID - string - ID công ty do backend cấp.merchantID - string - ID merchant do backend cấp.balance - string - Số dư hiện tại của công ty
Tạo mã QR động
POST /vnpay/api/v1/createDynamicQr
Tạo mã QR động cho số tiền chỉ định và trả về chuỗi QR cùng thời gian hết hạn.
Trường yêu cầu
merchantID - string - Bắt buộc - ID merchant do backend cấp.companyID - string - Bắt buộc - ID công ty do backend cấp.orderNo - string - Bắt buộc - Mã đơn giao dịchamount - Long - Bắt buộc - Số tiền thu hộmessage - string - Không bắt buộc - Ghi chútimestamp - string - Bắt buộc - Dấu thời giansign - string - Bắt buộc - Chữ ký
Trường phản hồi
orderNo - string - Mã đơn giao dịchamount - Long - Số tiền thu hộexpiresAt - string - Thời gian hết hạn của mã QR độngqrCode - String - Dữ liệu chuỗi mã QR
Callbacks
Thông báo kết quả chi hộ
URL đã truyền vào API chi hộ.
Khi chi hộ đang xử lý có kết quả cuối cùng, hệ thống sẽ gọi URL đã truyền vào API chi hộ để thông báo.
companyID - string - ID công tymerchantID - string - ID merchantorderNo - string - Mã đơn hàng merchanttradeNo - string - Mã giao dịchbankCode - string - Mã ngân hàngaccountNo - string - Số tài khoảnamount - number - Số tiền giao dịchmessage - string - Ghi chú chi hộresult - String - Nguyên nhân khi giao dịch thất bại.updateTime - String - Thời gian cập nhật giao dịchstatus - number - Trạng thái giao dịch: 0 thành công, 3 thất bại, 4 đã hủy.sign - string - Chữ ký
Thông báo kết quả thu hộ
URL thông báo được cấu hình trong backend merchant.
Sau khi tài khoản ảo nhận tiền, thông tin thu hộ sẽ được gửi cho đối tác.
companyID - string - ID công tymerchantID - string - ID merchantorderNo - string - Mã đơn hàng merchanttradeNo - string - Mã giao dịchbankCode - string - Mã ngân hàngaccountNo - string - Số tài khoản ảoamount - number - Số tiền thu hộmessage - string - Thông tin giao dịch do hệ thống thanh toán trả về.senderName - string - Người thanh toánsenderAccount - string - Tài khoản thanh toánsenderBankCode - string - Mã ngân hàng của người thanh toánsign - string - Chữ ký
Thông báo hoàn tiền
URL thông báo hoàn tiền được cấu hình trong backend merchant.
Sau khi hoàn tiền đơn hàng thành công, thông tin hoàn tiền sẽ được gửi cho đối tác.
companyID - string - ID công tymerchantID - string - ID merchantorderNo - string - Mã đơn hàng merchanttradeNo - string - Mã giao dịchbankCode - string - Mã ngân hàngaccountNo - string - Số tài khoản ngân hàngamount - number - Số tiền giao dịchupdateTime - string - Thời gian cập nhậtstatus - string - Trạng thái: 5 đã hoàn tiền.sign - string - Chữ ký