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. 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. 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. 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. 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. 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. 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. 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.

BINBank NameShort Code
970436VietcombankVCB
970418BIDVBIDV
970405AgribankAGB
970415VietinbankCTG
970407TechcombankTCB
970422MB BankMB
970432VPBankVPB
970423TPBankTPB
970403SacombankSTB
970416ACBACB
970437HDBankHDB

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
TagExample ValueRequiredDescription
0001RequiredPayload Format Indicator (always "01")
0111OptionalPoint of Initiation Method (11=static, 12=dynamic)
38...RequiredNAPAS Merchant Account – contains BIN + account number
38 › 00A000000727RequiredNAPAS Application ID (AID)
38 › 01970436RequiredBank BIN (6 digits)
38 › 021234567890RequiredAccount number
524814OptionalMerchant Category Code (MCC)
53704RequiredTransaction Currency (704 = VND)
54150000OptionalTransaction Amount (whole VND, no decimals)
58VNRequiredCountry Code
59NGUYEN VAN ARequiredMerchant Name (UPPERCASE ASCII, no diacritics)
60HA NOIRequiredMerchant City (ASCII)
62 › 08Chuyen tienOptionalBill number / payment description
63XXXXRequiredCRC16-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 ANNguyễn Văn AnCommon Vietnamese name
TRAN THI BICHTrần Thị BíchFemale name with tone marks
LE HOANG LONGLê Hoàng LongName with circumflex vowels
PHAM DUC THANGPhạm Đức ThắngName 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 →