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.
Features
Features
Scheme-specific validation
Account identifiers, amount formats, references and field lengths are checked for the selected payment standard.
Generated locally
The payment payload and barcode are created in the browser; the generator does not move money or register an account.
PNG and SVG exports
Download a raster image for everyday use or a scalable vector for invoices and high-quality print.
Protected fixed formats
Standards with prescribed rendering disable incompatible color, logo, shape and error-correction controls.
Optional payment context
Where the scheme permits it, prepare an amount, reference, due date or message to reduce payer entry.
Verification remains visible
The workflow reminds the payer to compare the beneficiary and amount in a compatible banking app.
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