VietQR Transfer Code
Bank-transfer QR for any Vietnamese bank, built in your browser.
The code is built entirely in this page. Your account number is never sent, stored or logged anywhere.
A VietQR code is the square every Vietnamese shop hangs by the till: scan it with any banking app and the transfer form is already filled in — bank, account number, and optionally the amount and a note. Under the hood it is a small text payload in the EMVCo format that NAPAS, the national payment switch, standardised for its 247 fast-transfer network. This tool builds that payload from your details and renders it as a code you can print, share or set as a shop sign.
More about VietQR Transfer Code
Most VietQR generators send your account number to their server to build the image. This one does not: the payload is assembled character by character in your browser, following the published NAPAS specification, and the page's security policy blocks it from calling out anywhere. Leave the amount empty and you get a static code that works forever, for any amount the sender types. Enter an amount and the code becomes a one-shot request for exactly that sum.
The transfer note is normalised before encoding: Vietnamese diacritics are stripped and đ becomes d, because many banks' systems mangle accented characters in transit. The preview under the field always shows the exact text that will be encoded, so there are no surprises when the code is scanned.
- Payload built to the NAPAS 247 / VietQR specification, verified byte for byte
- 42 transfer-supported banks in a searchable picker, matched with or without diacritics
- Static codes (reusable, sender types the amount) and dynamic codes (fixed amount)
- Transfer note sanitised live, with the encoded result previewed as you type
- Optional account-holder caption under the code — display only, never encoded
- PNG and SVG download, plus the raw payload string on the copy button
- Share link carries only the bank and amount, never the account number or note
How to use it
- 1Pick the bank — type part of its name or code and choose from the list.
- 2Enter the account number receiving the transfer.
- 3Optionally set an amount in VND and a transfer note.
- 4Check the preview, then download the code as PNG or SVG.
- 5Double-check the account number before printing or sharing the code.
Questions
Why is the account holder name not needed?
The NAPAS payload deliberately contains only the bank identifier and the account number — no names — and the sender's banking app looks the name up from the bank itself after scanning, which is also the safety check: an unexpected name means stop. This tool cannot do that lookup, so treat the caption field as a label, not a verification.
What is the difference between a static and a dynamic code?
A static code has no amount — it can be printed once and reused forever, with the sender typing the sum — while a dynamic code fixes the amount inside the payload for a specific invoice or a single request. Here the choice is automatic: leave the amount empty for static, fill it in for dynamic.
Why did my transfer note lose its accents?
The VietQR character set for notes is plain ASCII, and while some apps display accented text, many banks' forwarding systems corrupt it. Stripping diacritics up front — Ủng hộ becomes Ung ho — is what the official examples do and what arrives intact at every bank.
Is there a limit on the amount?
The payload field accepts up to 13 digits, but NAPAS 247 itself refuses single fast transfers of 500 million VND or more, so the tool warns you at that line. Individual banks may apply lower daily or per-transaction limits of their own.
Which banks can the code point to?
Any of the 42 banks currently flagged as receiving NAPAS 247 transfers, from Vietcombank and VietinBank to digital banks like CAKE and Timo. The list is a pinned snapshot — its date is shown under the picker — and is refreshed periodically rather than fetched live, which is what lets the page work without network access.