What a static QR code is
A static QR code holds your actual content inside the black-and-white pattern. The URL, the UPI ID, the WiFi password — the characters themselves are encoded into the squares. Nothing is looked up when someone scans it. The phone's camera reads the pattern, decodes the text, and hands it to the right app.
Two things follow from that. First, a static QR code has no owner and no dependency: it will keep working in ten years whether or not the company that generated it still exists, because there is nothing left to depend on. Second, the content is fixed at the moment you generate it. Changing where it goes means generating a new code and replacing whatever you printed it on.
This is what every QR code on QR Gen's generators is — a WiFi code with your password inside it, a vCard with your contact details inside it, a UPI code with your payment address inside it.
What a dynamic QR code is
A dynamic QR code does not encode your destination at all. It encodes a short link belonging to a redirect service — something like example.io/a7f2k. When someone scans it, their phone opens that short link, the service looks up where it currently points, and forwards them there.
That indirection is the entire feature. Because the printed pattern only ever says example.io/a7f2k, the service can change the forwarding target whenever it likes, and every already-printed sticker follows along. The same lookup is a natural place to count scans, record rough times and locations, or refuse to forward after a certain date.
The trade-off is that you are now renting a dependency. The code works only as long as that service stays online, keeps your account active, and keeps the link mapped. Dynamic QR codes are almost always subscriptions for this reason: the vendor has an ongoing cost to serve every scan, and you have an ongoing reason to keep paying.
Static vs dynamic at a glance
| Static QR code | Dynamic QR code | |
|---|---|---|
| Editable destination | No. The destination is inside the pattern, so changing it means reprinting — unless you encoded a URL on a domain you control and change what that URL serves. | Yes. Re-point the short link in the vendor's dashboard and every printed copy follows. |
| Scan analytics | Not from the code itself. You can only measure what happens after the scan, using analytics on the destination page. | Yes. The redirect is counted, so you get scan totals and usually time, rough location, and device. |
| Expiry control | None. A static code cannot expire; it works until its destination stops working. | Yes. The service can stop forwarding after a date or a scan limit. |
| Typical cost | Free, one-off. No account and nothing to renew — on QR Gen, no signup either. | A monthly or annual subscription, usually tiered by number of codes and scans. Stop paying and the codes stop resolving. |
| Works if the generator disappears | Yes. There is nothing to look up. | No. Every scan depends on the redirect service. |
When a static QR is enough
A UPI payment QR at a shop counter. The code encodes your UPI ID, and your UPI ID is not going to change — it is the one part of the setup you actively want frozen. Adding a redirect between a customer's camera and their payment app would only introduce a way for payments to fail: if the redirect service is slow or down, the customer is standing at your counter with a phone that will not pay. A printed static code has no such failure mode. You also get the accounting you actually need from your UPI app's transaction history, which is a more trustworthy record of takings than a scan counter. See the UPI guide for small businesses for the full setup.
WiFi codes, contact cards, and location codes. Anything where the content is the payload rather than a link. A WiFi QR code cannot be dynamic in any useful sense — the phone needs the password itself, not a web address.
Anything printed once and thrown away. Event badges, a poster for next weekend, a table tent for a two-week promotion. The code will be in the bin before you would ever want to edit it.
When you need a dynamic QR
A restaurant menu QR you cannot reprint every week. This is the honest case for editability — but read it carefully, because most restaurants do not need a paid dynamic QR service to solve it. If your code points at yourrestaurant.com/menu, that page is already the editable layer: change the dishes and prices on the page, and every laminated table tent updates for free. You only need a real dynamic QR when the destination itself must move — you are switching from a PDF on one host to an ordering platform on another, and you cannot control the old URL. The restaurant menu QR guide goes through both setups.
Campaigns measured per placement. Same landing page, different codes on a flyer, a shop window, and a magazine ad, and you want to know which one pulled. Distinct redirect links give you that split cleanly.
Expensive or long-lived print runs. Packaging, equipment labels, signage that stays up for years. Here the cost of being wrong is a reprint of thousands of units, and a subscription is cheap insurance.
Codes that must stop working. A time-limited offer or an access link where you need the code to go dead on a specific date.
Does QRGen support dynamic QR codes?
No. QR Gen generates static QR codes only. Every code it produces — in the browser editor, through the API, and in bulk — encodes your content directly in the pattern. There is no redirect layer, which means there is no way to change a code's destination after you have made it, no scan counting, and no expiry setting. Nothing on this site will tell you how many times your code has been scanned, because nothing on this site sees the scan.
One feature comes close enough to be worth clarifying. The editor's Get Link button creates a short link like qrgenapp.com/qr/a7f2k and hands you a deletion token. That link opens a page showing your QR code, ready to share or download — it is a sharing convenience, not a redirect. The QR code itself still encodes your original content, so re-pointing the link would not change any code you have already printed, and there is no way to edit a stored link's content. You can delete it with your token.
If you want editability or measurement while staying on static codes, encode a URL you control and let your own stack do the rest:
- Own the destination. Point the code at a path on your own domain, then change what that path serves whenever you like. This gives you the editability of a dynamic QR with none of the subscription risk.
- Measure on the destination. Put analytics on the page the code opens, or route it through a short link with its own stats. Scans show up as visits.
- Use the API.
GET /api/qrandPOST /api/qr/batchreturn PNG or SVG for any data you pass, so regenerating a whole set of codes after a change is a script, not an afternoon. - Use the bulk generator. Upload a CSV and get a ZIP of uniquely encoded codes — the practical way to produce per-placement or per-item codes without a dashboard.
If your project genuinely needs re-pointable, trackable, expiring codes, use a dedicated dynamic QR service for those and keep QR Gen for everything that should just work forever.