Free QR generator — no registration
Create a VietQR code for a Vietnamese bank transfer
Enter a NAPAS member bank BIN, receiving account, optional VND amount and transfer message to create a VietQR payload for NAPAS 247.
- NAPAS 247 account transfer
- VND amount is optional
- EMVCo-style CRC included
Learn more
Why use VietQR / NAPAS 247 instead of asking the payer to type everything?
A Vietnamese bank account number, bank selection and transfer message are easy to mistype on a phone. VietQR puts those fields in one scan. The payer's app must still display the receiving account for confirmation.
Avoid choosing the wrong bank
The six-digit bank BIN is encoded with the receiving account instead of relying on the payer to search a bank list.
Prepare amount and transfer message
A fixed VND amount and short ASCII message reduce typing errors for an order or invoice.
Use a familiar domestic flow
Participating Vietnamese banking apps can read VietQR and continue through their own authorization screen.
Inside the QR code
What is stored in a VietQR / NAPAS 247 payment symbol?
VietQR for account transfer uses the NAPAS application identifier A000000727 inside an EMVCo-style TLV payload. NAPAS describes the NAPAS 247 VietQR service as compliant with EMVCo and State Bank of Vietnam standards. The payload identifies the bank with a BIN, carries the account and declares VND currency code 704.
Bank BIN is not a card number
Use the six-digit BIN published for the receiving NAPAS member bank. Do not enter a branch code or the first digits of a card.
The account field identifies the destination
Enter the actual receiving account in the format accepted by that bank. A valid-looking payload does not prove the account exists.
Static and fixed-amount modes differ
Without an amount the payer enters VND after scanning. With an amount, the point-of-initiation field marks the payload as transaction-specific.
The transfer message is deliberately short
Keep the message within 25 ASCII characters so Vietnamese banking apps can carry it consistently.
CRC-16 protects the encoded text
The final checksum detects accidental changes to the TLV payload; it does not verify the recipient or settlement.
VietQR payload example
BIN 970415 · Account 112113366668888 · VND 79,000 — 00020101021238560010A000000727...53037045405790005802VN...6304 — A compatible Vietnamese banking app prepares a NAPAS 247 transfer and shows the beneficiary for confirmation.
Check before publishing
- Confirm the bank BIN from an official VietQR or bank list.
- Do not enter spaces or punctuation in the account number.
- Use digits only for VND; the generator adds the required amount format.
- Keep the message short and avoid emoji or accented characters.
- Scan with two participating Vietnamese banking apps.
- Confirm the receiving account name and actual receipt before delivering goods.
Checks to make before publishing a VietQR / NAPAS 247 code
Treat the generated code like printed bank details: verify every destination field and test the final display.
Copy the account from online banking
Do not reconstruct it from a debit-card number or an old screenshot.
Use a fixed amount for one invoice
Leave the amount empty only when the payer is meant to choose it.
Keep the transfer message recognizable
Use a short invoice or order reference rather than a sentence.
Show recipient information beside the code
Let the payer compare the printed name with the banking app.
Run a small real transfer
Confirm the beneficiary, amount, message and receipt before mass printing.
Advantages / Limitations
Advantages
- Fast entry for domestic account transfers.
- Optional amount supports reusable or invoice-specific codes.
- Uses the interoperable VietQR/NAPAS structure.
- Works on print and screens.
Limitations
- Requires a compatible participating banking app.
- Does not validate account ownership.
- A personal transfer code has no merchant callback.
- A replacement sticker can redirect payment.
How VietQR / NAPAS 247 works
Create, scan and verify a VietQR / NAPAS 247 payment
A Vietnamese bank account number, bank selection and transfer message are easy to mistype on a phone. VietQR puts those fields in one scan. The payer's app must still display the receiving account for confirmation.
Enter bank and account
Use the official six-digit BIN and receiving account.
Add amount and message
Prepare VND and a short reference, or leave amount empty for a reusable code.
Test in a banking app
Verify the displayed beneficiary and amount before publishing.
Use cases
Use cases
Shop counters
Accept a domestic bank transfer without asking customers to type an account.
Invoices
Prepare the exact amount and a short reconciliation message.
Service payments
Share a verified recipient code after completing a job.
Community collections
Use a reusable code when each payer chooses a different contribution.
Frequently asked questions
What is the bank BIN?
Can I leave the amount empty?
Does VietQR prove the account name?
Why is the message limited?
Create a VietQR / NAPAS 247 payment code
Create the payload, scan it in a participating Vietnamese banking app and verify the recipient before sharing.
Create a VietQR code