Xác nhận chuyển khoản tự động, xử lý đơn hàng trong vài giây
Khách quét mã VietQR, tiền vào thẳng tài khoản ngân hàng của bạn. qhPay nhận biến động số dư, khớp đúng đơn và báo cho hệ thống của bạn qua callback có ký số.
Không giữ tiền hộ · Không cần thẻ · Có môi trường Test để thử ngay
Một đơn nạp game đi qua qhPay
POST /v1/payments 50.000đQH7KX2M9PApayment.paid có chữ ký HMACMọi thứ cần để nhận tiền chuyển khoản tự động
Thiết kế cho game, khoá học, shop online, SaaS và bất kỳ dịch vụ nào cần biết “khách đã trả tiền chưa”.
VietQR động
Mỗi đơn có QR riêng chứa sẵn số tiền và mã nội dung, khách không thể gõ sai.
Đối soát tự động
Khớp theo mã đơn, kiểm tra số tiền và tài khoản nhận. Xử lý chuyển thiếu, thừa, về trễ.
Callback có ký số
Báo kết quả về máy chủ của bạn bằng HMAC-SHA256 kèm timestamp, tự gửi lại tới 7 lần.
Bảo mật nhiều lớp
Xác thực 2 lớp, API key băm một chiều, khoá bí mật mã hoá AES-256, chống giả mạo webhook, email cảnh báo, nhật ký bảo mật.
Bảng điều khiển
Theo dõi doanh thu, đơn, biến động số dư chưa khớp, xuất Excel, gửi lại callback chỉ với một cú bấm.
Môi trường Test
API key Test riêng, giả lập chuyển khoản để kiểm thử toàn bộ luồng mà không tốn đồng nào.
Tích hợp trong một buổi chiều
Không cần ký hợp đồng với ngân hàng để bắt đầu. qhPay nhận biến động số dư qua SePay, Casso hoặc Open API của ngân hàng.
Đăng ký và khai báo tài khoản nhận tiền
Chọn ngân hàng, nhập số tài khoản. Tiền sẽ vào thẳng tài khoản này.
Kết nối nguồn biến động số dư
Dán URL webhook qhPay cấp vào SePay/Casso, hoặc nối Open API của BIDV, VietinBank.
Gọi API tạo đơn, nhận callback
Chuyển người dùng tới trang thanh toán, xử lý đơn khi nhận payment.paid.
curl -X POST https://qhpay.example/v1/payments \
-H "Authorization: Bearer qh_test_..." \
-H "Content-Type: application/json" \
-d '{
"orderId": "GAME-10293",
"amount": 50000,
"description": "Nap 550 kim cuong",
"returnUrl": "https://game.example/topup"
}'
{
"id": "pay_8Hk2...",
"status": "pending",
"transferContent": "QH7KX2M9PA",
"qrString": "00020101021238570010A000000727...",
"checkoutUrl": "https://qhpay.example/pay/pay_8Hk2...",
"expiresAt": "2026-10-20T10:15:01.000Z"
}
Ngân hàng hỗ trợ
Khách trả bằng bất kỳ ứng dụng ngân hàng hoặc ví nào quét được VietQR. Bạn nhận tiền ở các ngân hàng dưới đây.
Câu hỏi thường gặp
qhPay có giữ tiền của tôi không?
Không. Khách chuyển thẳng vào tài khoản ngân hàng của bạn. qhPay chỉ đọc thông báo biến động số dư để xác nhận đơn, vì vậy không hoạt động như một ví hay trung gian giữ tiền.
Tôi cần gì để bắt đầu?
Một tài khoản ngân hàng và một nguồn biến động số dư (SePay, Casso, hoặc Open API ngân hàng). Bạn có thể thử ngay ở chế độ Test mà chưa cần nguồn nào.
Khách chuyển sai số tiền thì sao?
Chuyển thiếu: đơn vẫn chờ và được đánh dấu “Chuyển thiếu”, khách chuyển bù sẽ tự cộng dồn. Chuyển thừa hoặc về sau khi hết hạn: đơn được xác nhận kèm cờ để bạn xử lý hoàn tiền nếu cần.
Khách quên ghi nội dung chuyển khoản?
QR đã chứa sẵn nội dung nên quét QR thì không thể quên. Nếu khách tự gõ tay mà thiếu mã, giao dịch nằm ở mục “Chưa khớp” để bạn đối chiếu thủ công.
Làm sao chắc callback đúng là từ qhPay?
Mỗi callback có header X-QhPay-Signature là HMAC-SHA256 của timestamp và nội dung, ký bằng khoá bí mật chỉ bạn và qhPay biết. Xem hướng dẫn kiểm tra chữ ký.
Sẵn sàng nhận thanh toán tự động?
Tạo tài khoản, lấy API key Test và chạy thử trong 5 phút.