VietQR — Tiêu chuẩn QR thanh toán Việt Nam
VietQR là tiêu chuẩn mã QR thanh toán liên ngân hàng do Công ty Cổ phần Thanh toán Quốc gia Việt Nam (Napas) xây dựng, vận hành dưới sự chỉ đạo của Ngân hàng Nhà nước Việt Nam (NHNN), phối hợp cùng các ngân hàng thương mại và trung gian thanh toán triển khai từ năm 2018 và chính thức công bố tiêu chuẩn kỹ thuật vào năm 2021. VietQR cho phép khách hàng của bất kỳ ngân hàng hoặc ví điện tử nào tham gia hệ thống chỉ cần quét một mã QR duy nhất để khởi tạo giao dịch chuyển tiền, không phụ thuộc vào việc người bán và người mua dùng cùng một ứng dụng hay tổ chức tài chính.
Về bản chất, VietQR là một bộ tiêu chuẩn định dạng dữ liệu QR dựa trên chuẩn EMVCo — tổ chức quản lý tiêu chuẩn thanh toán quốc tế mà Visa, Mastercard, JCB, Discover và UnionPay cùng sáng lập — được Napas tùy biến cho hạ tầng chuyển mạch nội địa. Mã QR VietQR chứa các trường thông tin bắt buộc gồm: mã định danh ngân hàng (BIN — Bank Identification Number), số tài khoản thụ hưởng, số tiền giao dịch, nội dung chuyển khoản, mã giao dịch (nếu có), thông tin merchant (đối với QR động), đảm bảo tính tương thích xuyên suốt giữa các ngân hàng.
Phân loại mã QR trong hệ thống VietQR
Hệ thống VietQR phân thành hai loại mã chính, mỗi loại phục vụ một mô hình kinh doanh khác nhau:
Mã QR tĩnh (Static QR): Mã được in sẵn trên biển, menu, bao bì sản phẩm, sticker dán quầy và chứa thông tin cố định gồm BIN ngân hàng, số tài khoản thụ hưởng, tên merchant. Số tiền và nội dung chuyển khoản do người quét (người mua) tự nhập tại app ngân hàng trước khi xác nhận. Loại mã này phù hợp với hộ kinh doanh cá thể, cửa hàng nhỏ, quán ăn, dịch vụ vận tải nhỏ lẻ — đặc biệt là các merchant chưa có hệ thống POS (Point of Sale — thiết bị thanh toán tại điểm bán) hoặc không muốn đầu tư thiết bị phần cứng. Ưu điểm lớn nhất là chi phí triển khai gần như bằng 0: merchant chỉ cần in mã một lần, sau đó dán cố định tại điểm bán.
Mã QR động (Dynamic QR): Mã được sinh ra theo từng giao dịch cụ thể, thường hiển thị trên màn hình POS, màn hình máy tính tiền hoặc gửi qua API (Application Programming Interface — giao diện lập trình ứng dụng) tích hợp vào hệ thống bán hàng của merchant. Mã động chứa thêm các trường: số tiền cố định theo đơn, mã đơn hàng, mã merchant, thời gian hiệu lực của mã. Khi khách hàng quét, app ngân hàng tự động điền đầy đủ thông tin, khách chỉ cần xác nhận bằng sinh trắc học (vân tay, FaceID) hoặc PIN (mã số cá nhân). Loại này phù hợp với siêu thị, chuỗi bán lẻ, thương mại điện tử, dịch vụ hóa đơn có giá trị lớn.
Lợi thế so với POS truyền thống và xu hướng thay thế
So với thiết bị POS truyền thống, VietQR mang lại ba lợi thế cạnh tranh rõ rệt:
Thứ nhất, về chi phí merchant: POS truyền thống thu phí MDR (Merchant Discount Rate — tỷ lệ chiết khấu merchant) khoảng 1,8%–2,5% trên mỗi giao dịch thẻ quốc tế và khoảng 0,8%–1,2% cho thẻ nội địa, cộng thêm phí thuê thiết bị. VietQR hiện không thu MDR cho giao dịch chuyển khoản liên ngân hàng dưới hạn mức quy định, merchant chỉ phải trả phí đăng ký dịch vụ một lần với nhà cung cấp (thường từ vài trăm nghìn đến vài triệu đồng/năm) hoặc miễn phí nếu dùng trực tiếp API của ngân hàng.
Thứ hai, về tốc độ xử lý: Giao dịch VietQR được xử lý qua hệ thống chuyển mạch Napas 24/7 và xác nhận real-time (thời gian thực) trong khoảng 1–3 giây. Người bán nhận được thông báo tiền đã vào tài khoản ngay khi khách xác nhận thành công trên app, không phải đợi batch (xử lý theo lô) cuối ngày như thẻ tín dụng.
Thứ ba, về phạm vi tiếp cận: Tính đến 2026, VietQR được hỗ trợ bởi hơn 50 ngân hàng và trung gian thanh toán, bao phủ phần lớn tài khoản thanh toán cá nhân và doanh nghiệp tại Việt Nam. Người dùng có thể quét QR bằng app ngân hàng, app ví điện tử (MoMo, ZaloPay, VNPay Money, ShopeePay…) hoặc các app tài chính khác.
Theo số liệu công bố, hệ thống đã có khoảng 2,5 triệu điểm chấp nhận thanh toán VietQR trên toàn quốc, xử lý khoảng 150 triệu giao dịch mỗi tháng. NHNN đang khuyến khích các giao dịch bán lẻ dưới 10 triệu đồng chuyển sang VietQR để giảm phụ thuộc vào tiền mặt và hạn chế chi phí xã hội của việc in ấn, vận chuyển, kiểm đếm tiền mặt.
API tạo mã QR VietQR — công cụ cho lập trình viên
Napas cung cấp miễn phí API công khai để các merchant, dev (developer — lập trình viên) hoặc cá nhân tự tạo hình ảnh QR VietQR mà không cần đăng ký tài khoản. Cú pháp endpoint (điểm cuối) chuẩn:
https://img.vietqr.io/image/{bank_bin}-{account_number}-compact2.png?amount={amount}&addInfo={content}&accountName={name}
Trong đó: {bank_bin} là mã BIN ngân hàng thụ hưởng (ví dụ: Vietcombank là 970436, Techcombank là 970407, MB là 970422), {account_number} là số tài khoản, {amount} là số tiền, {addInfo} là nội dung chuyển khoản (lưu ý cần URL-encode nếu có ký tự đặc biệt), {accountName} là tên chủ tài khoản (tham khảo, không bắt buộc). Template (mẫu) compact2.png sinh mã QR có logo VietQR ở giữa; nếu cần mã đơn giản hơn có thể dùng compact.png, nếu cần in ấn chất lượng cao dùng print.png.
Đây là công cụ rất phổ biến trong cộng đồng lập trình viên Việt Nam để tích hợp vào hệ thống bán hàng, fanpage Facebook, chatbot, website thương mại điện tử. Ngoài API ảnh, các ngân hàng còn cung cấp API JSON chuẩn Napas để đối soát giao dịch tự động — thường yêu cầu merchant đăng ký hợp đồng merchant với ngân hàng.
Lưu ý bảo mật và rủi ro thường gặp
Khi sử dụng VietQR, người dùng cần lưu ý bốn điểm bảo mật quan trọng: (1) Luôn kiểm tra tên người thụ hưởng hiển thị trên app trước khi xác nhận — nếu tên không khớp với người bán thực tế, tuyệt đối không chuyển tiền; (2) Tuyệt đối không công khai mã QR tĩnh kèm số tiền lớn trên mạng xã hội vì kẻ gian có thể quét và chuyển nhầm; (3) Sau khi chuyển tiền, merchant cần đối soát qua app ngân hàng hoặc API, không nên tin tưởng hoàn toàn vào thông báo SMS/email vì có thể bị giả mạo; (4) Các giao dịch VietQR không thể hoàn tác tự động — nếu chuyển nhầm phải liên hệ ngân hàng thụ hưởng để yêu cầu tra soát theo quy trình của NHNN, thời gian xử lý có thể từ vài ngày đến vài tuần.
Câu hỏi thường gặp
Hỏi: VietQR và QR code của MoMo, ZaloPay có phải cùng một hệ thống không? Trả lời: Không hoàn toàn. MoMo và ZaloPay ban đầu dùng mã QR riêng (closed-loop — vòng khép kín) chỉ quét được trong hệ của họ. Từ 2021, các ví này đã đồng thời hỗ trợ tiêu chuẩn VietQR Napas, nghĩa là một mã QR VietQR duy nhất có thể được quét bởi app ngân hàng, MoMo, ZaloPay hay VNPay. Tuy nhiên, mã QR chỉ có logo MoMo/ZaloPay mà không có logo VietQR thì có thể là mã closed-loop cũ và chỉ chuyển được trong hệ đó.
Hỏi: Giao dịch VietQR có giới hạn số tiền tối đa không và có thu phí chuyển khoản không? Trả lời: Mỗi ngân hàng quy định hạn mức chuyển khoản riêng theo khung của NHNN, thường từ 100 triệu đến 500 triệu đồng/ngày cho khách hàng cá nhân đã xác thực sinh trắc học. Về phí: hầu hết ngân hàng hiện miễn phí chuyển khoản VietQR liên ngân hàng dưới 10 triệu đồng/lần để khuyến khích thanh toán không tiền mặt; trên 10 triệu có thể thu phí 3.000–15.000 đồng/giao dịch tùy chính sách từng ngân hàng.
Hỏi: Nếu khách hàng chuyển tiền VietQR nhầm vào tài khoản người khác thì xử lý thế nào? Trả lời: Người chuyển cần liên hệ ngay ngân hàng của mình cung cấp bằng chứng giao dịch (screenshot, mã giao dịch, thời gian). Ngân hàng gửi yêu cầu tra soát đến ngân hàng thụ hưởng qua hệ thống Napas; ngân hàng thụ hưởng liên hệ chủ tài khoản nhận nhầm đề nghị hoàn trả trong 5–10 ngày làm việc. Nếu chủ tài khoản nhận nhầm không đồng ý hoàn trả, vụ việc có thể phải xử lý qua tố tụng dân sự. Vì vậy việc kiểm tra tên người thụ hưởng trước khi xác nhận là cực kỳ quan trọng.
Nội dung mang tính tham khảo về sản phẩm và tiêu chuẩn thanh toán, không thay thế tư vấn nghiệp vụ tài chính – ngân hàng chính thức từ NHNN, Napas hoặc ngân hàng thương mại.