Khi nói về tự động xác nhận chuyển khoản, hai cụm từ luôn xuất hiện: API ngân hàng và webhook. Nghe có vẻ kỹ thuật, nhưng ý tưởng đằng sau khá đơn giản. Bài này giải thích bằng ngôn ngữ dễ hiểu, để bạn — kể cả không phải dân lập trình — nắm được hệ thống "tự biết bạn vừa nhận tiền" như thế nào.
1. API ngân hàng là gì?
API (Application Programming Interface) là cách để hai phần mềm "nói chuyện" với nhau theo một quy tắc thống nhất. API ngân hàng là kênh chính thức để phần mềm bên ngoài truy vấn hoặc nhận thông tin từ hệ thống ngân hàng — ví dụ: kiểm tra số dư, lấy danh sách giao dịch gần đây.
Hình dung đơn giản: thay vì bạn tự mở app ngân hàng xem có giao dịch mới không, phần mềm sẽ "hỏi" ngân hàng giúp bạn theo cách tự động và có cấu trúc.
Có hai kiểu lấy thông tin giao dịch thường gặp:
- Hỏi định kỳ (polling): phần mềm cứ vài giây lại hỏi ngân hàng "có giao dịch mới không?". Đơn giản nhưng có độ trễ và tốn tài nguyên.
- Được báo ngay khi có (webhook): ngân hàng/hệ thống chủ động báo về ngay khi có giao dịch. Nhanh hơn, hiệu quả hơn. Đây là phần tiếp theo.
2. Webhook là gì?
Webhook là cơ chế "báo ngay khi có sự kiện". Thay vì bạn liên tục đi hỏi, hệ thống sẽ tự gửi một thông báo đến địa chỉ bạn đăng ký ngay khi sự kiện xảy ra.
Ví dụ dễ hình dung: thay vì cứ 5 phút bạn ra hộp thư xem có thư chưa, người đưa thư bấm chuông nhà bạn ngay khi có thư. Webhook chính là "tiếng chuông" đó cho phần mềm.
Trong ngữ cảnh thanh toán: ngay khi tài khoản ngân hàng có tiền vào, một thông báo (webhook) chứa thông tin giao dịch — số tiền, nội dung, thời gian — được gửi tới hệ thống xử lý. Hệ thống đối chiếu với đơn hàng đang chờ và cập nhật trạng thái "đã thanh toán".
3. Luồng hoạt động khi khách chuyển khoản
Ghép lại, một giao dịch tự động đi qua các bước sau:
- Khách chuyển khoản vào tài khoản ngân hàng của người bán (thường quét mã VietQR đã điền sẵn số tiền + nội dung).
- Ngân hàng ghi nhận tiền vào.
- Thông tin giao dịch được đưa ra qua API/webhook ngân hàng.
- Phần mềm xác thực đối chiếu giao dịch: so khớp số tiền và nội dung với đơn hàng đang chờ.
- Báo kết quả về website/hệ thống của người bán: đơn được tự động chuyển sang "đã thanh toán".
- Website xử lý tiếp: giao hàng số tự động, gửi email xác nhận, cập nhật kho...
Toàn bộ chuỗi này thường diễn ra trong vài giây đến vài chục giây, tuỳ tốc độ xử lý của ngân hàng — không cần ai mở app ngân hàng kiểm tra thủ công.
4. Điểm mấu chốt: tiền đi đâu?
Đây là điều nhiều người hiểu nhầm. Trong mô hình đọc giao dịch qua API/webhook ngân hàng:
- Tiền của khách chuyển thẳng vào tài khoản ngân hàng của người bán, y như chuyển khoản thông thường.
- Lớp phần mềm xác thực chỉ đọc thông tin giao dịch để đối chiếu, không cầm giữ dòng tiền.
Đây là điểm khác biệt về mặt vận hành so với một số mô hình mà tiền đi qua tài khoản của bên thứ ba rồi mới về tài khoản người bán. Khi chọn giải pháp, bạn nên hỏi rõ nhà cung cấp: tiền chuyển vào đâu, ai cầm giữ dòng tiền — để đánh giá đúng về vận hành.
5. Những lưu ý an toàn khi dùng API/webhook
API ngân hàng đụng tới dữ liệu nhạy cảm, nên hãy chú ý:
- Chọn nhà cung cấp minh bạch về việc họ truy cập dữ liệu gì, tiền có đi qua họ không.
- Webhook phải được xác thực: hệ thống nhận webhook cần kiểm tra chữ ký/nguồn gốc để chống giả mạo thông báo "đã nhận tiền".
- Nguyên tắc dữ liệu tối thiểu: chỉ đọc những gì cần để đối chiếu, không thu thập thừa.
- Phân quyền và bảo mật khoá: khoá tích hợp (API key) phải được giữ kín, không lộ ra mã nguồn công khai.
6. AzoPay đứng ở đâu trong bức tranh này
AzoPay là lớp phần mềm đọc và đối chiếu giao dịch trong sơ đồ trên. Khi tài khoản ngân hàng của bạn nhận tiền, AzoPay đọc thông tin giao dịch qua API/webhook ngân hàng, đối chiếu với đơn hàng và báo kết quả về hệ thống của bạn.
Đúng tinh thần ở mục 4: tiền của khách chuyển thẳng vào tài khoản ngân hàng của bạn, không đi qua AzoPay — AzoPay không cầm giữ dòng tiền. Vai trò của AzoPay là đọc giao dịch và tự động hóa khâu xác nhận, để bạn khỏi soi sao kê thủ công.
Muốn xem các cách tự động xác nhận chuyển khoản và nên chọn cách nào, đọc bài Tự động xác nhận chuyển khoản cho website bán hàng.