Static vs dynamic QR codes: which one should your business use?
Short answer: A static QR is one code reused for every payment, and the customer types the amount. A dynamic QR is created for a single transaction with the amount and order reference built in, so it reconciles automatically and expires after use. Online businesses should use dynamic QR.
Static QR
A static QR never changes. You print it once and customers scan it every time. It identifies who to pay, but not how much or for what. The customer types the amount, then shows you a screenshot or transaction ID as proof.
That's fine for a small walk-in shop where the cashier can see each payment arrive. It breaks down once volume grows or customers aren't standing in front of you.
Dynamic QR
A dynamic QR is generated for one transaction. It carries the exact amount and a reference, such as your order number. When the customer scans, their app shows the amount already filled in. When they approve, your system receives a confirmation tied to that order. The code can expire after a few minutes or a few days, and it can't be paid twice.
Side by side
| Static QR | Dynamic QR | |
|---|---|---|
| Amount | Typed by the customer | Built into the code |
| Order reference | None | Built into the code |
| Confirmation | Screenshot or manual check | Automatic, usually by webhook |
| Reconciliation | By hand at day end | Matched automatically |
| Reuse and fraud risk | Same code every time; fake screenshots are a known problem | Single use with expiry |
| Setup | Print and display | Generated by a dashboard or API |
| Best for | Small walk-in counters | E-commerce, apps, top-ups, invoices, social selling |
A simple rule
If you can see every payment arrive with your own eyes, a static QR may be enough. If you sell online, take orders on WhatsApp, run an app, or handle more than a few dozen payments a day, use dynamic QR. The time saved on matching payments alone usually justifies it.
Static and dynamic QR on Raast
Pakistan's Raast P2M service supports both static and dynamic QR codes, so both can be paid from Easypaisa, JazzCash and participating banking apps. The difference is entirely on the merchant side: how the code is created and what happens after it's paid. Read what Raast QR is for the background.
Dynamic QR with Qrix
Qrix creates an amount-locked dynamic Raast QR per order from the dashboard or API, with configurable expiry, real-time webhooks and auto-reconciliation.
Frequently asked questions
What is a dynamic QR code?
A dynamic QR code is generated for one transaction and includes the exact amount and a reference. It reconciles automatically and expires after use.
Can a dynamic QR be paid twice?
A properly implemented single-use dynamic QR cannot be paid twice and stops working after it expires.
Is a static QR safe?
Static QR is widely used, but because the customer types the amount and proof is often a screenshot, it carries more risk of errors and fake payment claims.
Do customers need a special app to pay a dynamic QR?
No. On Raast, both static and dynamic QR codes can be paid from participating banking and wallet apps.