QR Code overview
QR Code is a modern payment solution that cuts the transaction process down to a few seconds with a single scan in a banking app.
🏷️ Static QR
A fixed code printed at the counter. Suitable for small household businesses that do not need much automation.
🔄 Dynamic QR
A unique code for each order. Automates bill settlement with 100% accurate reconciliation.
⚡ One-tap experience
Customers do not need to type anything, which reduces errors and speeds up payment.
Static QR
A static QR code is created once and used many times. Although the VietQR standard lets you embed the amount and description, keep the following in mind in practice:
- User behavior: Some banks (such as MBBank) still let customers edit the amount or description before confirming the transfer.
- Reconciliation: Because the information can be changed, the system must reconcile based on the actual amount received, the actual description and the transaction time.
- Use cases: Suitable for small shops or for receiving donations and contributions.
Dynamic QR
Each transaction generates a unique QR code with an identifier (billId/orderId).
- Accuracy: Dynamic QR codes usually lock the amount. Even if the bank allows editing the description, the system still identifies the correct order thanks to the identifier included in the data returned by the bank.
- Validity: You can configure an expiry time so the code is no longer valid after payment or after the set period.
- Use cases: Ideal for e-commerce, vending machines and point-of-sale (POS) systems.
Detailed comparison
| Criteria | Static QR | Dynamic QR |
|---|---|---|
| Creation | Created once, reused | Created per transaction |
| Amount & description | Can be prefilled, but many banks allow editing | Prefilled; some banks still allow editing, but reconciliation is by billId |
| Usage | Multiple uses | One-time use or until fully paid |
| Transaction reconciliation | Based on amount + description → prone to mismatches | Based on billId/orderId → fully accurate |
| Risk of wrong input / edited description | High | Low (the system reconciles by billId) |
| Expiry time | None | Yes |
| Suitable for | Small shops, flexible payments | Online sales, restaurants, automated systems |
| Flexibility | Medium | High |
Bank support
Static/dynamic QR support depends on each bank and the type of linked account.
👉 See the detailed table in [Important notes — QR support](/docs/luu-y-quan-trong#kha-nang-ho-tro-qr.