How VietQR Works – Complete Guide
Everything about Vietnam's national bank transfer QR standard: Bank BINs, EMV payload, account name rules and supported apps.
What is VietQR?
VietQR is Vietnam's national QR code standard for instant interbank bank transfers, developed by NAPAS (National Payment Corporation of Vietnam) in cooperation with the State Bank of Vietnam (SBV). Officially launched in March 2022, VietQR enables any Vietnamese bank customer to make and receive transfers by scanning a single standardised QR code — no manual account entry required.
Before VietQR, transferring money to another bank required entering the recipient's bank name, account number, and branch details separately. VietQR encodes all of this in one QR code: the bank BIN identifies the receiving bank, and the account number identifies the recipient. The scanning customer's app populates the transfer form automatically.
VietQR is built on the EMV Merchant Presented Mode (MPM) specification — the same global framework used by PromptPay, PIX, and QRIS — with one important difference: NAPAS uses field ID 38 (instead of the more common ID 26) for the merchant account information.
Over 50 Vietnamese banks support VietQR, including the Big Four state-owned banks (Vietcombank, BIDV, Agribank, Vietinbank) and all major private banks. VietQR is also integrated in leading e-wallets including MoMo, ZaloPay, and VNPay.
How VietQR Works – Step by Step
- 1
Recipient generates a VietQR code
Enter your bank BIN (or select your bank), account number, account name in UPPERCASE, and optionally a pre-filled amount and description. The QR encodes all this as an EMV payload.
- 2
Sender opens any supported banking app
All Vietnamese banking apps and major e-wallets (MoMo, ZaloPay, VNPay) support VietQR scanning. The system is fully interoperable across all NAPAS-member banks.
- 3
Sender scans the QR code
The app reads the EMV payload, extracts the bank BIN (identifying the receiving bank), account number, and amount. No manual entry needed.
- 4
Transfer form is pre-filled
The sender's app automatically identifies the recipient's bank from the BIN and pre-fills the account number, account name, and amount (if embedded). The sender reviews and confirms.
- 5
Sender authenticates
The sender confirms the transfer using their bank's authentication (PIN, fingerprint or face ID). The credential never leaves their device.
- 6
Transfer completes via NAPAS
NAPAS routes the interbank transfer in real time. Funds arrive in the recipient's account within seconds, 24/7, including weekends and public holidays.
- 7
Both parties receive confirmation
The sender gets a transaction success notification. The recipient receives an instant credit alert via SMS and in-app notification from their bank.
Bank BIN System – Finding Your Bank's Code
A BIN (Bank Identification Number) is a 6-digit code uniquely assigned by NAPAS to each member bank. It is the primary routing identifier in VietQR — the recipient's bank app looks up the BIN to determine which institution to route the transfer to, without needing bilateral agreements between every pair of banks.
The BIN is encoded in tag 01 within the NAPAS merchant account field (field ID 38) of the EMV payload. qrpayhub.com includes a complete list of all major Vietnamese bank BINs and allows custom BIN entry for smaller institutions.
| BIN | Bank Name | Short Code |
|---|---|---|
| 970436 | Vietcombank | VCB |
| 970418 | BIDV | BIDV |
| 970405 | Agribank | AGB |
| 970415 | Vietinbank | CTG |
| 970407 | Techcombank | TCB |
| 970422 | MB Bank | MB |
| 970432 | VPBank | VPB |
| 970423 | TPBank | TPB |
| 970403 | Sacombank | STB |
| 970416 | ACB | ACB |
| 970437 | HDBank | HDB |
The VietQR EMV Payload (Tag ID 38 – not ID 26!)
VietQR is built on the EMV QR Code Merchant Presented Mode specification, but with a critical distinction: NAPAS uses field ID 38 for the merchant account information, whereas most other standards (PromptPay, PayNow, DuitNow) use ID 26. Any VietQR parser must look for the NAPAS AID A000000727 in tag 38, not tag 26.
000201 ← Payload Format Indicator 010211 ← Point of Initiation: 11 (static) 38[len] ← NAPAS Merchant Account (ID 38, not 26!) 0010A000000727 ← NAPAS AID 01[len]970436 ← Bank BIN (Vietcombank) 02[len]1234567890 ← Account Number 5204[mcc] ← Merchant Category Code 5303704 ← Currency: VND (704) 5406150000 ← Amount: 150,000 VND 5802VN ← Country Code 5913NGUYEN VAN A ← Merchant Name (UPPERCASE ASCII) 6010HA NOI ← Merchant City 6233 ← Additional Data 08[len]NOTE ← Bill number / description 6304XXXX ← CRC16-CCITT checksum
| Tag | Example Value | Required | Description |
|---|---|---|---|
| 00 | 01 | Required | Payload Format Indicator (always "01") |
| 01 | 11 | Optional | Point of Initiation Method (11=static, 12=dynamic) |
| 38 | ... | Required | NAPAS Merchant Account – contains BIN + account number |
| 38 › 00 | A000000727 | Required | NAPAS Application ID (AID) |
| 38 › 01 | 970436 | Required | Bank BIN (6 digits) |
| 38 › 02 | 1234567890 | Required | Account number |
| 52 | 4814 | Optional | Merchant Category Code (MCC) |
| 53 | 704 | Required | Transaction Currency (704 = VND) |
| 54 | 150000 | Optional | Transaction Amount (whole VND, no decimals) |
| 58 | VN | Required | Country Code |
| 59 | NGUYEN VAN A | Required | Merchant Name (UPPERCASE ASCII, no diacritics) |
| 60 | HA NOI | Required | Merchant City (ASCII) |
| 62 › 08 | Chuyen tien | Optional | Bill number / payment description |
| 63 | XXXX | Required | CRC16-CCITT checksum (4 hex chars) |
Vietnamese Account Name Rules
This is one of the most important and frequently misunderstood aspects of VietQR. The EMV standard encodes the merchant name field in plain ASCII — a character set that does not support Vietnamese diacritical marks (tone marks and special letters like ắ, ệ, ổ, ương, đ, ơ, ư, etc.).
Bank systems throughout Vietnam use ASCII-compatible account databases. Account names are therefore stored and transmitted as UPPERCASE Latin characters without any Vietnamese accents. This is not a VietQR-specific limitation — it is a property of the underlying banking infrastructure.
Rule: Convert all Vietnamese characters to their unaccented Latin equivalents and use UPPERCASE. For example: Đ → D, ắ → A, ệ → E, ổ → O, ư → U, ơ → O, ă → A. Tones (sắc, huyền, hỏi, ngã, nặng) are dropped entirely.
| ✅ Correct (ASCII) | ❌ Incorrect (Vietnamese) | Note |
|---|---|---|
| NGUYEN VAN AN | Nguyễn Văn An | Common Vietnamese name |
| TRAN THI BICH | Trần Thị Bích | Female name with tone marks |
| LE HOANG LONG | Lê Hoàng Long | Name with circumflex vowels |
| PHAM DUC THANG | Phạm Đức Thắng | Name with đ character |
qrpayhub.com's VietQR generator automatically normalises names: it converts lowercase to uppercase and warns users if Vietnamese diacritical characters are detected. The account name as stored by your bank is the authoritative reference — when in doubt, check your bank statement or banking app for the exact ASCII representation.
Supported Apps
All NAPAS-member banks are required to support VietQR in their mobile banking apps. As of 2025, this covers over 50 banks. Major e-wallets have also integrated VietQR scanning, making the standard accessible to virtually all Vietnamese mobile payment users.
Vietcombank VCB-Mobile
Banking App
BIDV Smart Banking
Banking App
Agribank E-Mobile
Banking App
Techcombank Mobile
Banking App
MB Bank
Banking App
VPBank NEO
Banking App
MoMo
E-Wallet
ZaloPay
E-Wallet
VNPay
Payment App
ShopeePay VN
E-Wallet
VietQR for Merchants
Vietnamese merchants — from street food stalls to large retailers — increasingly use VietQR as their primary payment method. Printed VietQR codes are displayed at counters, tables, and storefronts. Customers scan and pay directly to the merchant's bank account, with no card terminal or payment hardware required.
Static QR (no amount): A single printed QR code that the merchant uses repeatedly. Customers enter the amount themselves. Ideal for small shops and street vendors where transactions vary.
Dynamic QR (with amount): Generated per transaction with the exact amount embedded. Reduces input errors and supports automatic reconciliation. Used by restaurants, online stores, and businesses needing precise payment matching.
Merchants register for VietQR through their bank's merchant onboarding process. Some banks provide VietQR-branded display frames and stickers. The VietQR logo on a merchant's QR display indicates the code is NAPAS-compliant and accepted by all participating banks.
qrpayhub.com's VietQR generator supports both static and dynamic QR code generation, allowing merchants to quickly create codes for display or integration into invoices and websites — free, in-browser, with no account needed.
Vietnam's Cashless Payment Vision
The State Bank of Vietnam (SBV) has set ambitious national targets: at least 80% of adults with a bank account by 2025, and cashless payments representing the majority of retail transactions. VietQR is central to this strategy.
Vietnam's QR payment adoption has been remarkably fast. Within two years of launch, VietQR was supported by all major banks and processed hundreds of millions of transactions monthly. The combination of a young, tech-savvy population, widespread smartphone penetration, and government promotion has driven rapid uptake.
Vietnam is also integrating into the ASEAN regional QR interoperability framework. Cross-border QR payment linkages with Thailand (PromptPay) have been announced, enabling Vietnamese travellers to pay in Thailand and Thai tourists to pay in Vietnam using their home banking apps.
The e-wallet ecosystem — led by MoMo (31M+ users), ZaloPay (VNG), and VNPay — has amplified VietQR adoption by integrating the standard into super-apps used daily by tens of millions of Vietnamese consumers.
For businesses operating in or with Vietnam, adopting VietQR is no longer optional — it is increasingly the expected payment method for B2C and B2B transactions at all price points.
Ready to generate your VietQR Code?
Free, instant, works with all Vietnamese banking apps.
Open Generator →