VietQR transfer code generator
Build a VietQR code with the account number, amount and transfer note filled in. Generated on your own device, nothing is sent anywhere.
- Commonly used
- Vietcombank
- Techcombank
- MB
- VietinBank
- BIDV
- Agribank
- ACB
- VPBank
- Sacombank
- TPBank
- Other banks
- ABBANK
- BacABank
- BaoVietBank
- BVBank
- CAKE
- CBBank
- CIMB
- COOPBANK
- DongABank
- Eximbank
- GPBank
- HDBank
- HongLeong
- IBK Hà Nội
- IBK TP.HCM
- IndovinaBank
- KienLongBank
- LPBank
- MSB
- NamABank
- NCB
- Nonghyup
- OCB
- Oceanbank
- PGBank
- PublicBank
- PVcomBank
- SaigonBank
- SCB
- SeABank
- SHB
- ShinhanBank
- StandardChartered
- Timo
- Ubank
- UOB
- VietABank
- VietBank
- VIB
- Viettel Money
- VNPT Money
- VRB
- Woori
- No bank matches that
Optional, and not part of the code: the VietQR format carries no name field, banking apps look the real one up on scan. This box only feeds the branded image at the bottom of the page.
Leave blank to drop that line.
Pick a bank and enter an account number to generate the code.
This is what the code actually carries, in the EMVCo format Napas uses for VietQR. Any banking app scanning it lands on the same result.
The code above is built on your own device and nothing leaves the browser. The branded version has to be drawn by vietqr.io's servers, which means the account number, amount and note get sent to that service. Only press this if you are happy with that.
Step by step
Pick the receiving bank
Type in the bank box to search: it matches the full name, the everyday abbreviation (
vcb,tcb,stb), the former brand name, or the six-digit BIN itself. Once picked, check the BIN shown underneath - that number, not the name, is what decides which bank the money reaches.Enter the account number
Four to nineteen letters and digits, no spaces. The account holder box is optional: the VietQR format has nowhere to put a name, and banking apps look the real one up on scan. That box only feeds the shareable card and the branded image at the bottom of the page.
Add an amount and a note if you want one
Leave the amount blank and the sender types it themselves, which suits a fixed code stuck on a counter. Fill it in and the code becomes a one-transaction code. The transfer note drops Vietnamese accents automatically, because most domestic banking systems choke on them; the tool shows exactly what will end up in the code.
Choose a layout
The shareable card carries the name, account number and amount, which suits sending over a messenger or printing out. The plain code is the QR on its own, for dropping into your own design. The name line at the top of the card is editable.
Download the image or copy the payload
Download PNG saves it at high resolution, sharp enough to print. If you are generating the code somewhere else, copy the payload below - that is the actual content the code carries.
Frequently asked questions
No. The whole code-building step runs in JavaScript inside your browser: the tool assembles the EMVCo payload and paints the code onto a canvas, with no network call carrying the account number.
The one exception is the load branded version from vietqr.io button at the bottom. That one has to be drawn by their servers, so the account number, amount and note do get sent to that service. It only runs when you press it.
Because the VietQR format has no field for the recipient's name. The code carries only the bank's BIN and the account number; the banking app takes those, looks them up, and shows the real registered name. That is actually a good thing: it means nobody can fake a recipient name by editing a code.
Yes, in one field. With no amount the code carries a "reusable" flag - whoever scans it types their own figure, which suits a fixed code printed for a counter. With an amount it carries a "single transaction" flag. Neither expires and both can be scanned any number of times; the flag is just a hint to the banking app about which kind of code this is.
Most domestic core banking systems still handle transfer notes without accents. Left in, the note can arrive at the other end as a run of garbled characters, depending on the bank. The tool strips them up front and shows exactly what will be encoded so you can check first.
That is the actual content of the code, written in the EMVCo QR Code format Napas uses for VietQR. It is a run of fields joined together, each one shaped as id - length - value, with a CRC checksum as the last four characters.
Copy it to build the code elsewhere, or to compare against when you suspect a code is wrong. Scanning this string with any banking app lands on the same result.
The list follows the banks that have joined Napas's VietQR system. A bank that has not joined has no BIN, so no valid VietQR code can be built for it - that is a limit of the format, not of this tool. If your bank joined recently and is missing here, drop me a line and I will add it.
Yes. The downloaded image is built at high resolution, so anything from business-card size up stays sharp. A few things to keep in mind when printing: leave the white margin around the code alone, print it dark on a light background rather than inverted, and do not stick anything over the middle.
This tool runs entirely on your own machine. Nothing is sent to a server or anywhere else.