Cách tạo mã QR chuyển khoản ngân hàng cho cửa hàng (VietQR) và dùng cho an toàn

Mã QR chuyển khoản ngân hàng chứa gì, mã có hay không có số tiền, giới hạn nội dung, vì sao phải quét thử, và cách tránh bị dán đè mã QR giả ở quầy.

Trong bài này

Mã QR chuyển khoản là cách nhận tiền rẻ nhất ở Việt Nam: quán nhỏ, người làm tự do, chủ nhà trọ hay bàn tiệc cưới chỉ cần dán một mã ở chỗ dễ thấy, người chuyển quét bằng ứng dụng ngân hàng và vào thẳng màn hình chuyển tiền đã điền sẵn. Bài này giải thích mã chứa những gì, cách tạo mã cho chính tài khoản của bạn, những lựa chọn quan trọng (có số tiền hay không, nội dung dài tối đa bao nhiêu) và các thói quen an toàn để ý tưởng hay không biến thành chiêu lừa. Bạn có thể làm theo bằng công cụ tạo mã QR chuyển khoản VietQR, công cụ này tạo mã ngay trong trình duyệt và không gửi số tài khoản đi đâu. Đây là công cụ độc lập, không do NAPAS hay ngân hàng nào tạo ra hay bảo chứng, và các bước dưới đây là hướng dẫn thực hành chứ không đảm bảo mọi ứng dụng ngân hàng đều xử lý giống hệt nhau.

Mã thực sự chứa gì

Các mã bạn thấy ở quầy hàng theo định dạng VietQR mà NAPAS dùng cho chuyển khoản liên ngân hàng 247. Bên dưới là một chuỗi văn bản thông thường theo chuẩn QR EMV mà các ứng dụng thanh toán trên khắp thế giới dùng, còn mã QR chỉ là hình ảnh của chuỗi đó. Chuỗi là danh sách các trường, mỗi trường gồm mã hai chữ số, độ dài hai chữ số và giá trị. Những trường quan trọng với bạn:

  • ngân hàng, là một số sáu chữ số gọi là BIN (970436 là Vietcombank, 970422 là MBBank);
  • số tài khoản, hoặc số thẻ nếu chuyển tới thẻ;
  • dịch vụ, cho ứng dụng biết đích đến là tài khoản hay thẻ;
  • tiền tệ (704, đồng Việt Nam) và quốc gia (VN);
  • số tiền tuỳ chọn, tính bằng đồng nguyên, không có số thập phân;
  • nội dung tuỳ chọn, trở thành lời nhắn của giao dịch;
  • một mã kiểm tra ngắn (CRC) ở cuối để ứng dụng phát hiện chuỗi bị hỏng hay bị sửa.

Để ý điều không có ở đó: tên chủ tài khoản. Ứng dụng ngân hàng thường tra tên sau khi quét và hiện cho người chuyển. Đó là một ưu điểm chứ không phải thiếu sót, vì nó cho người chuyển xác nhận mình đang trả cho ai. Nó cũng có nghĩa là một cái tên in trên thẻ bên cạnh mã không chứng minh được gì; mã quyết định tiền đi đâu.

Tạo mã từng bước

  1. Chọn ngân hàng nhận tiền trong danh sách. Danh sách trong công cụ lấy từ một danh sách ngân hàng công khai tính đến ngày 15/10/2026; mã BIN có thể đổi khi ngân hàng sáp nhập hoặc đổi tên, đó là một lý do cần quét thử như bên dưới.
  2. Nhập số tài khoản. Dấu cách và dấu gạch ngang được bỏ qua, chữ cái bị từ chối, và một tài khoản có từ 6 đến 19 chữ số. Muốn nhận tiền vào thẻ thì chuyển sang số thẻ (16 đến 19 chữ số).
  3. Quyết định số tiền (phần sau) và nội dung.
  4. Chọn mẫu thẻ và kiểu dáng. Giữ mã màu tối trên nền sáng: mã nhạt hoặc đảo màu là lý do thường gặp nhất khiến quét thất bại. Có thể đặt logo ở giữa, và khi đó mức sửa lỗi được nâng lên để mã vẫn quét được dù bị che một phần.
  5. Tải PNG để gửi qua tin nhắn hoặc in, tải SVG nếu nhà in hay người thiết kế cần ảnh vector, hoặc in thẳng từ trang.

Có số tiền hay không?

Mã không có số tiền là mã tĩnh theo nghĩa thường ngày: in một lần dùng được cho mọi khách, mỗi người tự gõ giá tiền. Đó là lựa chọn đúng cho quầy hàng, hộp quyên góp hay lời nhắc tiền nhà. Mã có số tiền điền sẵn con số cho người chuyển, tránh gõ nhầm, và hợp với một hoá đơn hay một đơn hàng, như hoá đơn bạn gửi cho một khách. Cái giá là mã sai ngay khi giá đổi, nên đừng in mã có số tiền rồi để đó cả tuần khi giá còn thay đổi. Dù chọn cách nào, số tiền cũng là đồng nguyên: 1.500.000 là một triệu năm trăm nghìn, và số thập phân bị từ chối.

Nội dung chuyển khoản và vì sao bị cắt ngắn

Ô nội dung hữu ích để khớp khoản tiền với đơn hàng ("DH1234"), nhưng ngân hàng chỉ nhận một nhóm ký tự hẹp và một số ứng dụng chỉ giữ nội dung ngắn. Vì vậy công cụ bỏ dấu tiếng Việt ("Thanh toán" thành "Thanh toan"), giữ chữ cái, chữ số, dấu cách và . , - _ / @ # & ( ), đổi mọi ký tự khác thành dấu cách và cắt ở 25 ký tự. Bạn có thể cho phép 50, nhưng một vài ứng dụng cắt ngắn nội dung dài mà không báo, nên hãy đặt phần quan trọng như mã đơn ở đầu.

Quét thử trước khi in

Quét mã đã tạo bằng ứng dụng ngân hàng của chính bạn mất mười giây và bắt được gần như mọi lỗi thật: sai một chữ số trong số tài khoản, ngân hàng không nhận chuyển khoản QR, mã BIN đã đổi. Hãy làm hai lần, với hai ứng dụng ngân hàng khác nhau nếu có thể, vì các ứng dụng khác nhau ở những gì chúng chấp nhận. Sau đó đối chiếu tên ứng dụng hiện ra với tên chủ tài khoản bạn mong đợi. Công cụ cũng đọc lại ảnh sau khi vẽ và cho biết ảnh có giải mã ra đúng chuỗi không, nhưng điều đó chỉ chứng tỏ ảnh đọc được, không chứng tỏ tài khoản đúng. Không gì thay được một lần quét bằng ứng dụng ngân hàng thật.

Mã dán đè giả và những cách khác để hỏng việc

Một chiêu quen thuộc là dán một mã QR khác đè lên mã thật của cửa hàng, để khách chuyển tiền cho người lạ. Vài thói quen làm việc này khó hơn nhiều:

  • Đặt mã chỗ nhân viên nhìn thấy, không chỉ chỗ khách với tới, và thỉnh thoảng nhìn lại.
  • In lên vật liệu khó che hay bóc lén, và nên ghi tên chủ tài khoản bên cạnh để khách biết ứng dụng phải hiện tên gì.
  • Khi là người chuyển tiền, luôn đọc tên trong ứng dụng ngân hàng trước khi xác nhận. Không phải tên cửa hàng thì dừng lại.
  • Hãy nghi ngờ mã nhận qua tin nhắn của người lạ, và bất kỳ mã nào yêu cầu bạn cài thêm thứ gì.
  • Nhớ rằng mã không chứng minh được tài khoản có tồn tại hay của ai; chỉ ngân hàng cho bạn biết điều đó.

Nếu chỉ cần mã cho một đường dẫn, mật khẩu Wi-Fi hay danh bạ, hãy dùng công cụ tạo mã QR. Muốn đọc lại một mã được gửi cho bạn và xem các trường của nó, mở tab "Kiểm tra mã" trong công cụ VietQR.

Công cụ được nhắc trong bài

Về trang blog