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?

It is the six-digit identifier for the receiving NAPAS member bank, not the account or card number.

Can I leave the amount empty?

Yes. The payer then enters VND in the banking app.

Does VietQR prove the account name?

No. Verify the beneficiary displayed by the bank before authorizing.

Why is the message limited?

A short ASCII reference is more interoperable and keeps the QR less dense.

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