The whole difference in one sentence
A static QR code contains your data. A dynamic QR code contains someone else’s short link, which points at a server that redirects to your data. Everything else — the pricing pages, the trials, the codes that suddenly stop working — follows from that one difference.
Why a static code cannot expire
A QR code is not a picture that refers to information stored somewhere. It is the information, written in a two-dimensional alphabet of black and white squares. When a phone reads https://your-restaurant.example/menu from a code, it is not looking anything up: it decoded that text directly out of the pattern, the way you decode letters out of ink.
This is why a printed static code has no more of an expiry date than a printed phone number. Nobody can reach into a laminated card on a table and change what it says. There is no account behind it, no server keeping it alive, no company whose business decisions can reach it. The code will read the same in ten years as it does today, as long as the ink survives and the destination still exists.
It also means the tool that made it is irrelevant afterwards. Generating a code is a one-time computation, not a subscription to a service. Once the file is on your disk, we are out of the picture entirely.
What a dynamic code really is
A dynamic code contains something like https://qr-vendor.example/a7Xk2. Scanning it sends the phone to the vendor, who looks up a7Xk2 in a database, finds your destination, and forwards the visitor. Two things become possible: you can change the destination after printing, and the vendor can count every scan on the way through.
Both features come from the same fact — that every single scan has to pass through a server the vendor owns. You are not buying a code. You are renting a redirect, and the code on your poster is worth exactly as much as that rental agreement.
How that actually fails
The common one is the free trial. Many generators do not say the word "trial" anywhere near the download button; you find out when the code starts showing an upgrade page, usually after the flyers are printed. Then there is the plan you did cancel, deliberately, having forgotten that a code on your packaging depended on it.
Slower failures are worse because you cannot see them coming: the vendor is acquired and sunsets the old short domain, or shuts down, or lets the domain lapse, or moves the code behind a scan cap. In every case the failure lands on printed material you already paid for, and there is nothing you can do to the ink to fix it.
When dynamic is genuinely the right call
It is a real product, not a scam, and sometimes it is the only option. If you must be able to change a destination after printing and you do not control a domain, or you need per-scan analytics that page analytics cannot give you, a dynamic code does something a static one cannot. Just go in knowing you are buying an ongoing dependency, budget for it permanently, and pick a vendor you would trust with a five-year commitment — because that is what a printed code is.
How to change the destination without renting anything
Point a static code at a URL you already control, then change what lives at that URL. A code carrying https://your-site.example/menu is permanent, but the page at /menu is yours to edit, redirect or replace whenever you like. You get the flexibility of a dynamic code, the redirect is one you own, and the only thing you depend on is your own domain — which you were paying for anyway.
For scan counts, put ordinary web analytics on that destination page. You will see visits, times and rough locations without a middleman, and the code keeps working even if you later remove the analytics entirely.
How to tell which kind you already have
Scan the code with any phone and look at the address before you open it. If you see your own destination, it is static and it is safe. If you see a short link on a domain you do not recognise — usually the generator’s brand, or an unfamiliar three-letter domain — it is dynamic, and it will keep working exactly as long as that company decides it should.