Tự động đối soát
chuyển khoản ngân hàng
QH2Pay nhận biến động số dư từ ngân hàng, đẩy ngay về hệ thống của bạn qua Webhook kèm mã đơn hàng đã tách sẵn — kế toán không phải mở app ngân hàng để dò từng dòng nữa.
- Không lưu mật khẩu ngân hàng
- Kết nối BIDV Open API chính thức
- Webhook xác thực bằng token riêng
Tiền vào hôm nay
1.284.500.000 ₫
55
Ngân hàng sinh được VietQR
BIDV
Kết nối Open API chính thức
3 lần
Tự gửi lại webhook khi lỗi
Napas 247
Chuẩn mã QR chuyển nhanh
Tính năng
Mọi thứ cần để tự động hoá dòng tiền vào
Từ lúc khách quét mã đến lúc đơn hàng được xác nhận — QH2Pay xử lý toàn bộ, hệ thống của bạn chỉ cần lắng nghe một webhook.
Webhook realtime
Mỗi khoản tiền vào được đẩy ngay về endpoint của bạn, kèm token xác thực trong header. Server bận thì QH2Pay tự gửi lại sau 5 phút, tối đa 3 lần.
Tài khoản ảo (VA)
Cấp cho mỗi khách hàng một số tài khoản định danh riêng trên tài khoản BIDV của bạn. Tiền vào khớp theo số VA, không phụ thuộc khách ghi nội dung gì.
VietQR động
Sinh ảnh QR kèm sẵn số tiền và nội dung chỉ bằng một URL, nhúng thẳng vào thẻ <img>. Hỗ trợ 55 ngân hàng theo chuẩn Napas 247.
Tự tách mã đơn hàng
Khai báo cấu trúc mã thanh toán một lần, QH2Pay tự tách mã đơn khỏi nội dung chuyển khoản và gửi kèm trong webhook để bạn khớp đơn.
Thông báo & Google Sheets
Báo tiền vào qua Telegram và Lark cho kế toán, tự ghi từng giao dịch vào Google Sheets — không cần viết dòng code nào.
API & bảo mật
REST API tra cứu lịch sử giao dịch và danh sách ngân hàng, xác thực bằng Bearer token. Token chỉ lưu bản băm, thu hồi được bất cứ lúc nào.
Cách hoạt động
Ba bước, từ mã QR đến đơn hàng đã xác nhận
-
Kết nối tài khoản BIDV
Liên kết tài khoản doanh nghiệp qua BIDV Open API. QH2Pay chỉ nhận thông báo biến động số dư — không lưu mật khẩu, không có quyền chuyển tiền.
-
Hiện VietQR kèm mã đơn
Ghép mã đơn hàng vào nội dung chuyển khoản trên URL sinh QR. Khách quét là số tiền và nội dung đã điền sẵn, không nhập tay.
-
Nhận webhook & cập nhật đơn
Tiền vào, webhook bắn về kèm trường
codelà mã đơn đã tách sẵn. Hệ thống của bạn chỉ việc đổi trạng thái đơn.
GET /img-qr
Đơn DH10293 · 450.000 ₫ · ảnh minh hoạ sinh trực tiếp từ API
<img src="https://qh2pay.com/img-qr?bank_code=BIDV&account_no=96247100868&amount=450000&memo=DH10293" alt="Quét mã để thanh toán đơn DH10293" />
curl "https://qh2pay.com/api/transactions?type=in" \
-H "Authorization: Bearer {API_TOKEN}" \
-H "Accept: application/json"
public function handle(Request $request)
{
$token = $request->header('QHTECH-TOKEN');
if (! hash_equals(config('services.qhtech.webhook_token'), (string) $token)) {
return response()->json(['success' => false], 401);
}
if ($request->transferType === 'in') {
// Khớp đơn theo mã đã tách sẵn: $request->code
}
return response()->json(['success' => true]);
}
POST /webhooks/qh2pay
QHTECH-TOKEN: {token}
{
"transaction_id": "20260921143208000017",
"gateway": "BIDV",
"transactionDate": "2026-09-21 14:32:08",
"accountNumber": "96247100868",
"code": "DH10293",
"content": "DH10293 thanh toan don hang",
"transferType": "in",
"transferAmount": 450000,
"referenceCode": "FT26264812345"
}
Kiểm tra token trong header rồi trả về 200 OK — nếu không nhận được 2xx, QH2Pay gửi lại sau 5 phút, tối đa 3 lần. Xem tài liệu đầy đủ
Ngân hàng
55 ngân hàng hỗ trợ VietQR
Khách chuyển khoản từ bất kỳ ngân hàng nào trong hệ thống Napas. Biến động số dư tự động hiện nhận qua tài khoản BIDV của bạn.
QH2Pay có cần mật khẩu internet banking của tôi không?
Không. QH2Pay kết nối qua BIDV Open API — kênh chính thức do ngân hàng cấp phép — và chỉ nhận thông báo biến động số dư. Hệ thống không lưu mật khẩu và không có quyền thực hiện lệnh chuyển tiền.
Khách chuyển tiền nhưng ghi sai nội dung thì sao?
Đó là lý do có tài khoản ảo (VA): mỗi khách hàng nhận một số tài khoản riêng, nên chỉ cần chuyển đúng số tài khoản là khớp, bất kể nội dung chuyển khoản viết gì.
Nếu server của tôi sập lúc webhook bắn về?
QH2Pay gửi lại sau 5 phút, tối đa 3 lần. Bạn cũng có thể gửi lại thủ công từ nhật ký webhook trên dashboard, hoặc gọi API lịch sử giao dịch để đồng bộ những gì đã bỏ lỡ.
Tích hợp mất bao lâu?
Tối thiểu chỉ cần hai thứ: một URL sinh QR để hiện cho khách, và một endpoint nhận webhook. Tài liệu tiếng Việt có sẵn code mẫu PHP/Laravel cho từng bước.
Có dùng nhiều tài khoản ngân hàng cùng lúc được không?
Được. Mọi tài khoản hiển thị chung một dashboard, và mỗi webhook đều kèm mã ngân hàng cùng số tài khoản nhận tiền để bạn phân luồng.
Sẵn sàng bỏ hẳn việc đối soát thủ công?
Để lại thông tin, đội ngũ QH2Pay sẽ tư vấn và đi cùng bạn suốt quá trình kết nối tài khoản, tích hợp webhook.