The short answer
A QR code does not have a built-in expiry date. There is no countdown encoded in the pattern. Whether a code keeps working comes down to one thing: is the destination it points to still reachable? For static codes the destination is baked in and permanent. For dynamic codes the destination depends on a redirect server someone has to keep running — and that is where codes die.
Static QR codes don't expire
A static QR code has the information encoded directly into the pattern of squares. If it holds a URL, that URL is physically printed into the code. If it holds Wi-Fi details or a phone number, those are in there too. Nothing phones home, nothing needs a server, and no company sits between the scan and the data.
That means a static code works forever — as long as what it points to still exists. A static code linking to yourname.com keeps resolving for as many years as that website is online. The code itself never expires. The only way it "stops working" is if the destination it names goes away.
Dynamic QR codes depend on a redirect server
A dynamic QR code does not contain your final destination. It contains a short link pointing to the provider's server, which then redirects the scan to wherever you have set it. That indirection is the whole point — it is what lets you edit the destination, track scans, and reuse one printed code across campaigns.
But it introduces a dependency: the code only works as long as that redirect server keeps answering. If the provider shuts down, deletes your code, or switches it off because you stopped paying, the redirect breaks — and the code that looked permanent leads nowhere. We unpack the trade-off fully in static vs dynamic QR codes.
What actually makes a QR code stop working
When people say a code "expired," one of these is usually what happened:
You cancelled or downgraded your plan. This is the big one. Most dynamic-QR providers disable your codes the moment you stop paying — sometimes immediately, with no grace period. Every poster and package you printed instantly breaks.
The free trial ended. Some "free" dynamic codes are really time-limited trials. When the clock runs out, the redirect stops.
The provider deleted an inactive code. A few services remove dynamic codes that have not been scanned in a while.
The provider shut down. Smaller QR tools come and go. If the company disappears, so does the redirect server, and so do your codes.
The destination went dead. Even a perfectly healthy code fails if the page it points to returns a 404. This is the one cause that affects static and dynamic codes equally.
Notice that none of these is the code "expiring" on its own. Every one is about the destination — or the company standing in front of it — going away.
How EUQR keeps your codes working
This is exactly the failure we built EUQR to avoid. Two things make the difference:
A 90-day Recovery Page. If your subscription lapses or you downgrade, your dynamic codes do not snap to a dead 404. They fall back to your own branded Recovery Page for 90 days, so a paused campaign or an expired card never strands the people scanning your printed materials. You get a real window to renew, reprint, or migrate — on your terms, not on a switch flipped the moment you cancel.
No scan caps, EU hosting, stable infrastructure. Every plan has unlimited scans, so a code never breaks because a campaign went well. And your codes and redirect data are hosted in Amsterdam on infrastructure built to keep resolving. Start with the EUQR generator and your codes are built to last from day one.
How to keep your own QR codes working
Whatever provider you use, a few habits keep codes alive:
Use static codes for permanent, unchanging information. A link to your homepage, a Wi-Fi password, a phone number — encode it statically and it never depends on anyone.
Use dynamic codes when you need to edit or track — but choose a provider that does not kill your codes the instant you stop paying.
Keep the destination alive. Do not delete or move the page a code points to without updating the code (if it is dynamic) first.
Prefer a provider with a grace period. A cancellation should not equal an instant dead link across everything you have printed.