It turns a Vietnamese bank account (or card number), an optional amount and an optional message into a QR code that a banking app can scan to open a ready-made transfer. The code follows the VietQR standard that NAPAS, the national payment network, defines for interbank 247 transfers, which is built on the EMV merchant-presented QR format. You also get a card image you can send in a chat, print for a shop counter or put on an invoice. The account number is typed, encoded and drawn in this page: there is no request to a server, nothing is stored except your chosen bank and the look of the code. It is an independent tool, not made, checked or endorsed by NAPAS or by any bank.
How to make a transfer QR
- Choose the receiving bank. Type a name or code ("VCB", "vietcombank", "quan doi") and pick it from the list; accents do not matter.
- Enter the account number, or switch to "Card number". Spaces and dashes are fine, letters are refused.
- Add an amount if you want one. Leave it empty and the payer types it; fill it in and their app shows it ready. The chips give 50.000, 100.000, 200.000, 500.000 and 1.000.000 in one tap.
- Add a message such as an order number. It is cleaned automatically (see below).
- Pick a card template (transfer card, shop card with your shop name, or the QR alone) and a look for the code, then download a PNG or SVG, copy the image or print it.
The account holder's name and the shop name are optional and are printed on the card only. They are never inside the code, and the tool cannot check them: the banking app shows the real account holder when the code is scanned, which is exactly what the person paying should compare.
What is inside the code
A VietQR string is a list of fields, each written as a two-digit id, a two-digit length and the value. This tool writes, in order: the format (00), static or dynamic (01), the NAPAS account block (38) with the bank's six-digit BIN, the account or card number and the service (QRIBFTTA for an account, QRIBFTTC for a card), the currency 704 (VND, 53), the amount (54), the country VN (58), the message (62, field 08) and a CRC-16 check value (63) that lets a banking app detect a damaged string. The "Code content" box shows the exact string, and the "Check a code" tab reads any VietQR string or picture back and lists its fields.
Static or dynamic: with or without an amount
A code without an amount is static: it can be printed once and reused, and each payer types the amount. A code with an amount is dynamic in the way VietQR uses the word: the app fills the amount in, so it suits one invoice or one order, but it is wrong the moment the price changes. For a shop counter, a static code is usually right; for a bill sent to one customer, include the amount.
The transfer message
Banks accept only a limited set of characters, so the tool removes Vietnamese accents ("Thanh toán" becomes "Thanh toan"), keeps letters, digits, spaces and . , - _ / @ # & ( ), turns everything else into a space and trims it. It stops at 25 characters by default because some banking apps keep only that many; you can allow 50, but test the result with the apps your customers use.
Test before you print
Scan the finished code with your own banking app, and with a second bank's app if you can, before it goes on a wall or in an email. The bank list was taken from a public list as of 15 October 2026; BIN numbers can change when banks merge or rename, and a code for a bank that does not take QR transfers may not scan. Fraudsters also stick their own codes over a shop's real one: put yours where staff can see it, and when you pay someone else, check the name the banking app shows before you confirm.
For the printed size and contrast the tool shows hints; a logo in the middle raises the error correction to level H, and the built-in scan test confirms the picture reads back as exactly the text above. If you need a QR for something other than a bank transfer, use the QR code generator; to read a code from a photo, the QR code scanner; to put the code on a bill, the invoice generator. The step-by-step guide explains more about shops and safety.