Guide
Dynamic QR codes: when the free code needs a subscription
A QR code that stops working after the trial period is not a technical fault but a business model. It is built into so-called dynamic codes. Here is how they work, how to recognise them and what you can do if they are already in print.
Last updated:
Static and dynamic: the difference
With a static QR code, the content sits in the pattern itself. Scan the code for
https://example.com/menu and you land straight there. No third party is involved, and the
code works for as long as the page it points to exists.
A dynamic code contains only a short address belonging to the provider, such as
https://qr.provider.example/x7Kp2. When it is scanned, the phone first asks the provider’s
server, which then forwards it to the actual destination. So the pattern on your menu doesn’t point to your
site, but to theirs.
What dynamic codes can do
The redirect has real advantages. The destination can be changed after printing, and the provider can count how often, when and on which devices the code was scanned. For an advertising campaign with a hundred thousand flyers, that can make sense.
The price is a dependency you can’t see on the printed code: from now on, whether it works is up to whoever runs the server. If they shut down the service, change their prices or your contract runs out, the code leads nowhere. And every scan goes through their server. They see when, how often and from where your customers scan.
How “free” turns into a subscription
With some providers, it follows a similar pattern:
- You can create the code for free, but you need an account to download it.
- A dynamic code is the default. That there is another option is mentioned nowhere, or only in small print.
- The code goes to print: on menus, flyers, signs, the lettering on the company van.
- After a trial period of a few days or weeks, the request to pay arrives. If you don’t pay, your code now leads to an error or notice page run by the provider.
By this point the code is printed, and in places where you can’t just swap it out. That is exactly what the model relies on: cancelling would put your own notices out of action.
How to recognise a dynamic code
- Scan it and read the address. iPhone and Android show where the code leads before opening it. If you see someone else’s domain there instead of your own, it is a dynamic code.
- Features that only exist with a redirect. “Count scans”, “change destination later”, “statistics”: all of these need a server in between. A static code can’t do any of that.
- An account before the download. Nobody needs your email address for a static code. If it is required, check the pricing page and the terms before anything goes to print.
On qrmacher.de, every preview has the encoded content underneath it, which is exactly what the pattern holds. It shows your address and nothing in between.
Already printed: what now?
- Don’t cancel first. Create a static replacement and swap the printed material first, then end the subscription. Do it the other way round and all your notices stop working overnight.
- Sort by effort. Flyers run out on their own. Signs, stickers on machines, vehicle lettering and engraved plaques need lead time, so start with those.
- Note the deadline. When does the trial end, when does the subscription renew? That date belongs in your calendar, not in the hope that nothing will happen.
If you feel pushed into a subscription as a consumer, your local consumer advice centre (Verbraucherzentrale) can advise you. For the self-employed and businesses, these protections usually don’t apply; what counts there is what the contract says. All the more reason to check before printing.
The alternative: changeable, but in your hands
Wanting to change the destination later is perfectly reasonable. You can do it without anyone else’s server, using a short address on your own domain:
- On your website, you set up a redirect, for example from
example.com/menuto the current menu. Most hosting packages and content management systems have a section of their own for this. - Only
example.com/menugoes into the QR code, as a static code. - When the menu changes, you change where the redirect points. The printed code stays valid.
This has two welcome side effects. The address is short, so the code is coarse and can be read from further away (see How big does a QR code need to be?). And people who scan it see your domain in the preview, not someone else’s short address. That is exactly the detail that gives away a fake code.
Statistics work without a provider, too. Your own web analytics sees the visits to
/menu. If you need campaign parameters, add them to the redirect’s destination, not to the
address in the code. That keeps the code short.
No domain of your own yet? Many hosts sell one for a few euros a year, and it is yours for as long as you renew it. No QR code provider can switch it off.
Why qrmacher.de only creates static codes
Dynamic codes would be the more lucrative business for us. We decided against them all the same: a code that runs through our server dies with our server. Codes from qrmacher.de keep working even if this site should one day cease to exist. The site is paid for by advertising, not by codes you have to pay to release. There is more on this on the About qrmacher.de page.