Mã QR tạo ra theo chuẩn VietQR của NAPAS 247, nên quét được bằng ứng dụng Mobile Banking của cả 42 ngân hàng hỗ trợ tại Việt Nam.
Mã VietQR là gì và chuẩn NAPAS 247 hoạt động như thế nào?
Cấu trúc chuỗi dữ liệu VietQR (ID-Length-Value)
Một chuỗi VietQR là sự kết hợp của các trường dữ liệu theo định dạng TLV (Tag-Length-Value), trong đó độ dài mỗi trường được mã hóa bằng đúng 2 chữ số:
- Tag 00: Phiên bản chuẩn dữ liệu (giá trị cố định
01). - Tag 01: Phương thức khởi tạo. Giá trị
11đại diện cho mã tĩnh (người chuyển tự nhập tiền), giá trị12đại diện cho mã động (có sẵn số tiền cụ thể). - Tag 38: Thông tin tài khoản thụ hưởng. Bao gồm mã định danh VietQR
A000000727, mã BIN ngân hàng 6 chữ số (ví dụ:970423) và số tài khoản người nhận cùng mã dịch vụQRIBFTTA(chuyển nhanh liên ngân hàng đến số tài khoản). - Tag 53: Đồng tiền giao dịch theo ISO 4217 (
704là mã của Việt Nam Đồng). - Tag 54: Số tiền giao dịch bằng số nguyên dương (được bỏ qua nếu không cố định số tiền).
- Tag 58: Quốc gia thanh toán (
VN). - Tag 62: Thông tin bổ sung, chứa trường
08là nội dung chuyển khoản. - Tag 63: Mã kiểm tra toàn vẹn CRC-16/CCITT-FALSE gồm 4 ký tự hex viết hoa, tính toán trên toàn bộ chuỗi ký tự trước đó kèm
6304.
Câu hỏi thường gặp
Mã QR này có quét được trên ứng dụng ngân hàng của tôi không?
Có, nếu ứng dụng hỗ trợ VietQR. Mã được tạo theo chuẩn VietQR của NAPAS (dựa trên chuẩn EMVCo), chuẩn mà ứng dụng của 42 ngân hàng trong danh sách và nhiều ví điện tử dùng để quét chuyển khoản. Khi quét, ứng dụng tự điền ngân hàng, số tài khoản, số tiền, nội dung và hiện tên chủ tài khoản để người chuyển kiểm tra trước khi xác nhận.
Mã QR chuyển khoản có thời hạn hết hạn không?
Không. Mã tạo ở đây dùng được chừng nào tài khoản còn hoạt động. Nếu mã có kèm số tiền, lần quét nào cũng điền đúng số tiền đó, nên với khoản thu cố định bạn có thể in mã dán tại quầy.
Vì sao có app quét được mã nhưng app khác báo "Mã QR không hợp lệ"?
Mỗi app kiểm tra mã ở mức chặt khác nhau, nên một mã sai nhẹ có thể vẫn quét được ở app này mà bị từ chối ở app khác. Các nguyên nhân thường gặp:
- Nội dung chuyển khoản có dấu: chuẩn EMVCo chỉ cho phép ký tự ASCII trong nội dung. Chữ có dấu chiếm nhiều byte, làm lệch độ dài khai báo và mã kiểm tra CRC. benri tự chuyển nội dung sang không dấu trước khi tạo mã.
- Nhập số thẻ thay vì số tài khoản: mã chuyển đến tài khoản (
QRIBFTTA) và mã chuyển đến thẻ (QRIBFTTC) khác nhau. benri nhận ra số thẻ NAPAS (16 hoặc 19 số bắt đầu bằng 9704) và tạo mã chuyển đến thẻ; nếu ngân hàng của người quét không hỗ trợ, hãy dùng số tài khoản. - Viền trắng quanh mã quá hẹp: chuẩn QR yêu cầu viền trắng tối thiểu 4 ô. Khi in hoặc chụp màn hình, đừng cắt sát mép mã.
Tại sao không nên viết tiếng Việt có dấu trong nội dung chuyển tiền?
Vì chuẩn VietQR chỉ cho phép ký tự không dấu trong nội dung chuyển khoản. Chữ có dấu hoặc emoji làm sai độ dài khai báo và mã kiểm tra của chuỗi, khiến nhiều ứng dụng báo mã không hợp lệ hoặc cắt mất nội dung. Công cụ tự bỏ dấu nội dung trước khi tạo mã.
Công cụ có thu thập số tài khoản hay theo dõi tiền chuyển không?
Không. Mã QR được tạo ngay trên trình duyệt của bạn; benri không nhận số tài khoản và không biết ai chuyển tiền cho bạn. Nếu bạn bật "Nhớ thông tin trên máy này", ngân hàng và số tài khoản được lưu trên trình duyệt của bạn để lần sau tự điền. benri chỉ nhận những gì bạn chủ động gửi qua nút Góp ý / Báo lỗi.