All tools

VietQR bank transfer QR code generator

Bank transfer QR for Vietnamese banks, with a shareable card. Made on your device.

Check the account number and the bank carefully, and scan the code with your own banking app before you print or send it. This tool does not check the account holder's name.

Transfer details

The bank list (BIN numbers) is as of 2026-10-15 and can change when banks merge or rename. Test-scan with your own banking app before you print. The official lists are in the NAPAS and VietQR documentation.

Transfer to

Digits only, 6 to 19. Spaces and dashes are ignored.

Printed on the card image only, never inside the QR code. The banking app shows the real name when scanned.

Leave empty and the payer types the amount. With an amount the banking app fills it in.

0/25 characters

Accents and special characters are removed automatically (“Thanh toán” becomes “Thanh toan”), because the code holds plain text.

Some banking apps keep only the first 25 characters. Stay on 25 if you are not sure.

Card

Template
Card colours

The card keeps its own colours, also when the page is in dark mode.

QR look

Dot shape
Centre logo (optional)

PNG, JPG, WebP or SVG, up to 5 MB. It stays on your device and is embedded in the files you download.

Keep the code dark on a light background so every banking app can read it.

Preview

Loading…

Made on this device: the account number never leaves your browser, and nothing is saved but your bank and look.

Download and share

Code content

Code text (the VietQR string)

Choose a bank and enter an account number: the code appears here.

Paste it into any QR maker, or into “Check a code” to read it back.

What this tool does

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

  1. Choose the receiving bank. Type a name or code ("VCB", "vietcombank", "quan doi") and pick it from the list; accents do not matter.
  2. Enter the account number, or switch to "Card number". Spaces and dashes are fine, letters are refused.
  3. 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.
  4. Add a message such as an order number. It is cleaned automatically (see below).
  5. 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.

Frequently asked questions

Is my account number sent anywhere?

No. The code is built and drawn in your browser and there is no server call. Only your chosen bank and the code's look are remembered in this browser; the number, amount, message and names are not.

Will every Vietnamese banking app scan the code?

Many do, because the code follows the NAPAS VietQR format, but this cannot be promised for every app or bank. Scan the finished code with your own banking app, and a second one, before you print or send it.

Should I put an amount in the code?

Leave it empty for a code you reuse, such as a shop counter, and the payer types the amount. Add an amount for a single bill or order so the app fills it in; remember that the code is then wrong if the price changes.

Why is my message shortened and without accents?

The code carries plain text, so accents and special characters are removed and the message is cut to 25 characters, which every bank app tends to keep. You can allow 50, but some apps may cut it anyway.

Does the tool check that the account exists or whose it is?

No. It only checks the format: digits, length, a known bank and a correct CRC. Whether the account exists and who owns it is shown by the banking app when someone scans the code.