Webhook realtime · VietQR động · Tài khoản ảo VA

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 ₫

Đang lắng nghe
POST /webhooks/qh2pay 200 OK

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

  1. 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.

  2. 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.

  3. Nhận webhook & cập nhật đơn

    Tiền vào, webhook bắn về kèm trường code là mã đơn đã tách sẵn. Hệ thống của bạn chỉ việc đổi trạng thái đơn.

Mã VietQR minh hoạ cho đơn DH10293, số tiền 450.000 đồng

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.

Câu hỏi thường gặp

Trước khi bạn tích hợp

Không tìm thấy câu trả lời? Nhắn cho đội kỹ thuật.

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.

Đăng ký tư vấn

Để lại thông tin, đội ngũ QH2Pay sẽ liên hệ lại với bạn.

Bằng việc gửi yêu cầu, bạn đồng ý với Chính sách bảo mật của QH2Pay. Thông tin chỉ dùng để liên hệ tư vấn.