VietQR — VND collections by QR code
CVPay is a Singapore-licensed payment provider that lets businesses accept VND payments through VietQR, the national QR payment standard used by virtually every bank and e-wallet in Vietnam.
What is VietQR?
VietQR is Vietnam’s national QR payment standard, operated by NAPAS (the national payment switch). One QR format is recognized by the mobile apps of essentially every retail bank and major e-wallet in the country, which makes it the default way Vietnamese consumers pay — for everything from street food to e-commerce.
For businesses, VietQR replaces manual bank transfers. Instead of showing customers a static account number and hoping they type the right amount and reference, you present a dynamic QR that already carries the amount and an order-bound reference. The customer scans, confirms, and the transfer reconciles itself.
Key facts
- Standard
- VietQR / NAPAS 247, EMVCo-compatible
- Coverage
- Recognized by the apps of all major Vietnamese banks and e-wallets
- Currency
- VND (Vietnamese dong)
- Pay-in speed
- Typically 1–3 minutes after the customer confirms
- Availability
- 24/7 including weekends and holidays
- QR type
- Dynamic — amount and order reference embedded per transaction
- Limits
- Per-transaction and daily limits follow your merchant configuration
How it works with CVPay
Accepting payments (pay-ins)
Create an order through the API and receive a VietQR payload bound to that order. Render it in your checkout or let CVPay’s hosted cashier page display it. The customer scans with any Vietnamese banking or wallet app, and your webhook receives the confirmation — typically within 1–3 minutes. Because every QR is dynamic, underpayments and orphan transfers are engineered out rather than reconciled after the fact.
Sending payouts
The same platform sends VND payouts to any VietQR-reachable bank account over the 24/7 fast-transfer network. Recipient-name verification is available before dispatch, and final status is delivered to your webhook. Typical arrival is minutes, day or night.
Integration
One REST API covers every payment method CVPay supports. Create an order, show the returned QR or account details to your customer, and receive the result on your webhook. A hosted cashier page and sandbox environment are available, and most merchants complete integration within days.
curl -X POST 'https://{api-base}/api/pay/qrcode' \
-d 'mchNo=M1234567890' \
-d 'appId=YOUR_APP_ID' \
-d 'mchOrderNo=ORDER-2026-0001' \
-d 'wayCode=QRCODE247' \
-d 'currency=vnd' \
-d 'amount=500000' \
-d 'sign=...'
# Response contains a VietQR payload bound to this order.
# Simplified example — see the API docs for the full
# field list and MD5 signature spec.Frequently asked questions
Which banks and wallets can pay a VietQR code?+
Essentially all of them. VietQR is the national standard: customers of every major Vietnamese retail bank, and users of major e-wallets, can scan the same QR from their own app.
What is the difference between dynamic and static QR?+
A static QR only encodes an account, so the customer types the amount and reference by hand — a major source of reconciliation errors. CVPay issues dynamic QR codes with the amount and order reference embedded, so payments match orders automatically.
How fast do payments arrive?+
Typically within 1–3 minutes of the customer confirming in their app, 24/7. Your systems are notified through a signed webhook.
Does a QR code expire?+
Yes — each QR is bound to an order with a validity window. If a customer pays after expiry, the payment can still be recovered and matched through order-rescue flows rather than being lost.
Can I use VietQR for payouts too?+
Payouts are sent as account-to-account fast transfers to any Vietnamese bank account, which covers every VietQR-reachable recipient. QR parsing is also supported on the payout side, so a recipient’s VietQR code can be used to pre-fill their account details.
Start accepting payments today.
Create an account and go live, or talk to our team about your requirements.



