Your QR code says it has expired
The code did not expire. Something between the code and its destination stopped answering — and which one decides whether you can fix it without reprinting.
Updated · Reviewed by the qrcodegenerator.in team
Decode the code to see the URL inside itIn this browser — nothing is uploaded
Choose a photo of the code
Read in this browser. A code that stopped working is often one nobody should be uploading anywhere.
——A short link decodes to itself here — open it yourself to see whether the destination still answers.- Symbology
- —
- Symbol
- —
- Encoding
- —
One decoder reads this page and the readout is what it recovered from the image. Nothing is uploaded, and no request is made to the address inside the code.
Worth knowing before you reprint anything
Static codes have nothing to expire
A static code contains the destination itself — the URL, the text, the Wi-Fi credentials. There is no service in the middle, so there is nothing anyone can switch off. They also cannot be edited, which is the trade.
Dynamic codes are worth the middle layer, if it holds
A dynamic code contains a short link you can repoint without reprinting. The whole question is what happens when you stop paying. Here the answer is that the code keeps resolving to wherever it last pointed and you stop getting the scan counts.
Reprinting is the expensive fix, so establish the cause first
If the symbol decodes, reprinting the same symbol will produce the same result. Only a code whose destination you cannot regain control of needs new artwork.
The short version, in 4 facts
- A QR code has no expiry field
- There is nowhere in the symbol to put one. The standard defines data, error correction and format bits, and none of them carries a date.
- What "this code has expired" actually means
- The code encoded a short link, and the service resolving that link chose to stop resolving it — usually because a trial ended or a plan lapsed.
- Whether you can fix it without reprinting
- Only if you still control the short domain in the code. If the domain belongs to the provider that switched it off, the printed codes point at an address you do not own and new artwork is the only way out.
- What happens here instead
- A printed code never stops resolving is one of four architectural rules this product does not trade away. A downgrade, a cancellation and a breached scan cap all leave every printed code resolving; measurement degrades, function does not.
Here, a printed code never stops resolving
It is the second of four architectural rules this product does not trade away, and it is enforced rather than intended. Downgrading past the plan limit, cancelling a subscription, or exceeding a scan cap all leave every code that is already printed resolving. Limits degrade measurement — the analytics stop counting — and never function. There is a regression test per clause and it runs every release.
Held up byapps/api/test/continuity.test.ts
One place the guarantee is deliberately narrowed
If you erase your account, personal data is removed and the resolution path is anonymised rather than deleted — the codes keep resolving with your identity stripped out. That is a decision, not an oversight: the people scanning a code on a table are not party to the erasure request, and a test blocks any field a printed code resolves through from being cleared. If you want a destination itself taken down, that is a separate request, and it warns you that the codes pointing at it change behaviour.
How to fix an expired QR code
Decode the code to see the URL inside it
The expiry message is on a page, not in the code. Decoding shows you the short link the symbol actually carries, and the domain in that link names who is refusing to resolve it.
Check whether you control that domain
If it is your own domain or one you can still administer, repoint it and every printed code starts working again. If it belongs to the provider, you cannot.
If you cannot, restore the plan or move the codes
Reinstating the lapsed plan is the fast fix and keeps you dependent on the same switch. Moving means new codes on a provider whose continuity behaviour you have checked — which is the question to ask before printing, not after.
Before you reprint, ask what happens when you stop paying
Ask to be shown rather than told. Here the answer is a named regression test that runs every release, and you can open it.
Questions
Can I recover a code whose provider shut off the link?
Only if you can still control that short domain — which usually means keeping their plan. Otherwise the printed codes point at an address you do not own, and a new code is the only way out. It is the reason the middle layer is worth choosing carefully.
Do your dynamic codes stop if I stop paying?
They keep resolving to their last destination. You lose the ability to change the destination and you lose scan measurement.
What happens if I go over the free scan limit?
Scans past 2,000 in a month stop being counted. Every code keeps resolving.
Is there any way to make a QR code expire on purpose?
Not in the symbol — only in what sits behind it. A dynamic code can be repointed at a page that says the offer has ended, and a gate can refuse past a date you set. A static code cannot be retired at all once it is printed, which is worth knowing before you use one for a limited campaign.
The code decodes fine but the page 404s. Is that expiry?
No, and the difference matters. A 404 is your own destination having moved, which you can fix at the destination or by repointing the code. An expiry page is the middle layer refusing, which you can only fix by regaining control of it.
Can I move my printed codes to you without reprinting?
Only if the codes point at a domain you control — then you repoint that domain and the printed objects are unaffected. If they carry another provider's short domain, nobody can move them; that dependency is the thing being sold.
How do I check a provider's continuity claim before printing?
Ask three specific questions: what happens to printed codes on cancellation, what happens past the scan cap, and what happens on account deletion. Vague answers to those three are the answer. Ours are on this page with a test file named beside them.