Tạo mã QR
Mã QR chuyển khoản ngân hàng, chia sẻ Wi-Fi, danh thiếp hoặc liên kết — tạo ngay trên máy bạn.
Cách tính
Mã QR chuyển khoản ở Việt Nam theo chuẩn VietQR do NAPAS ban hành, dựa trên định dạng EMVCo mà các loại QR thanh toán trên thế giới dùng chung. Nội dung mã không phải là một đường link: nó là một chuỗi các trường "mã trường – độ dài – giá trị" nối liền nhau, trong đó có mã ngân hàng nhận (BIN 6 chữ số do NAPAS cấp), số tài khoản, mã dịch vụ, và tuỳ chọn thêm số tiền cùng nội dung chuyển khoản.
Bốn chữ số cuối cùng của chuỗi là mã kiểm tra CRC-16. Ứng dụng ngân hàng tính lại mã này khi quét và từ chối mã nếu không khớp — đó là cách nó phát hiện một mã bị in mờ hoặc bị sửa. Điều đáng nói là mã kiểm tra được tính trên cả chính hai chữ "63" và "04" mở đầu trường của nó; tính thiếu phần này là lý do phổ biến nhất khiến một mã QR trông đúng nhưng không ứng dụng nào quét được.
Trang này dựng chuỗi đó ngay trên trình duyệt của bạn, rồi vẽ ma trận QR bằng SVG. Số tài khoản bạn nhập không đi qua máy chủ nào — không có máy chủ nào để nó đi qua, vì toàn bộ trang là tệp HTML tĩnh.
Ba chế độ còn lại dùng định dạng riêng: Wi-Fi theo cú pháp WIFI:T:…;S:…;P:…;; mà cả Android lẫn iOS đều đọc được, và danh thiếp theo chuẩn vCard 3.0 — chọn bản 3.0 thay vì 4.0 mới hơn vì camera iPhone và phần lớn ứng dụng quét đọc bản 3.0 ổn định hơn nhiều.
Công thức
Chuỗi VietQR = 00「01」 + 01「11 hoặc 12」 + 38「GUID + BIN + số TK + mã dịch vụ」 + 53「704」 + 54「số tiền」 + 58「VN」 + 62「nội dung」 + 63「CRC-16」
Trường 01 mang giá trị 11 với mã dùng lại nhiều lần và 12 với mã đã ghi sẵn số tiền. 53「704」 là mã tiền tệ ISO của đồng Việt Nam, 58「VN」 là mã quốc gia.
Ví dụ
Mã chuyển khoản tới tài khoản Vietcombank 1234567890, không ghi sẵn số tiền:
- Phiên bản định dạng
- 000201
- Kiểu khởi tạo (dùng lại được)
- 010211
- Thông tin người nhận
- 38540010A00000072701240006970436011012345678900208QRIBFTTA
- Tiền tệ và quốc gia
- 53037045802VN
- Mã kiểm tra CRC-16
- 6304BE57
Trong đó 970436 là BIN của Vietcombank và QRIBFTTA là mã dịch vụ "chuyển tới số tài khoản". Nếu bạn nhập số thẻ thay vì số tài khoản, mã dịch vụ đổi thành QRIBFTTC.
Câu hỏi thường gặp
Mã QR này có dùng được ở mọi ngân hàng không?
Được, miễn là ngân hàng của người quét có hỗ trợ VietQR — hiện gần như toàn bộ ngân hàng tại Việt Nam đều hỗ trợ. Người quét không cần dùng cùng ngân hàng với bạn; chuyển khoản đi qua hệ thống NAPAS.
Có nên ghi sẵn số tiền vào mã không?
Tuỳ mục đích. Mã không có số tiền dùng lại được nhiều lần, hợp để in ra dán ở quầy hay để trong hồ sơ cá nhân. Mã có sẵn số tiền hợp với một khoản thanh toán cụ thể, vì người trả không cần gõ lại số và không gõ nhầm.
Vì sao nội dung chuyển khoản bị bỏ dấu?
Vì nhiều ứng dụng ngân hàng vẫn hiển thị nội dung có dấu thành ký tự lỗi trong sao kê của người nhận. Một nội dung không ai đọc được thì không còn tác dụng, nên trang này chủ động bỏ dấu thay vì để ứng dụng làm hỏng nó.
Số tài khoản của tôi có bị gửi đi đâu không?
Không. Toàn bộ chuỗi mã và hình QR được tạo bằng JavaScript ngay trên thiết bị của bạn. Trang này là tệp HTML tĩnh, không có máy chủ nào nhận dữ liệu bạn nhập.
Nên chọn mức chống lỗi nào?
Mức M là mức phần lớn mã thanh toán dùng và là lựa chọn hợp lý cho hầu hết trường hợp. Chọn Q hoặc H nếu mã sẽ in ra và có nguy cơ bị bẩn, gấp hoặc mờ — đổi lại mã sẽ dày hơn nên cần in to hơn để vẫn quét được.
Tải PNG hay SVG?
SVG cho bản in và thiết kế, vì phóng to bao nhiêu cũng nét. PNG cho những nơi chỉ nhận ảnh, như đăng lên mạng xã hội hay chèn vào tin nhắn.
Mã QR Wi-Fi có gửi mật khẩu cho ai không?
Mật khẩu nằm ngay trong mã, ở dạng chữ thường không mã hoá — bất kỳ ai quét được mã đều đọc được mật khẩu. Đó là cách định dạng này hoạt động, nên chỉ dán mã ở nơi bạn chấp nhận cho người ta vào mạng.