What is a dynamic QR code

In short: a code that does not contain the final destination, but an intermediate address that redirects to it. That sounds mundane, yet it changes one essential thing — you can move the destination after the code has already been printed. Below: how it works, when it is worth it, and the trap almost every platform uses.

The static code: the information is in the drawing

When you generate an ordinary QR code — including with our free generator — the link, the text or the Wi-Fi password are encoded directly into the black and white modules. There is no server between the code and the destination.

The consequences are the good and the bad side of the same coin: the code never expires, it works even if our site disappeared tomorrow, it costs nothing forever — but it can never be changed. What you printed, you printed.

The dynamic code: an intermediate address in the drawing

In a dynamic code, the modules hold a short address such as your-company.exyqr.ro/menu. Whoever scans lands there, and the server sends them onward, in a fraction of a second, to the real destination. You get a panel from which you change that destination at any time.

What you gain, concretely:

  • Change the target without reprinting. The seasonal menu, the monthly offer, a page that has moved.
  • See how many scans you get. Useful for learning which poster, which table or which city works.
  • Fix mistakes. A wrong link printed ten thousand times is no longer a disaster.
  • A simpler code. The intermediate address is short, so the code has fewer modules and scans more easily.

The trap: lock-in, stated plainly

Here is the part platforms do not put on their front page. If you have printed five thousand menus with codes routed through a provider's domain, you have become dependent on them. The day they multiply the price tenfold, cap your scans or simply shut down, your only option is to reprint everything.

That model is precisely what many services intend: the first codes are free, the plan gets more expensive after you have printed, and the “export” is, at best, a list of links with no way of making them work again.

There are exactly two real defences:

  • The redirect should go through your domain. If the address in the code is your-company.com/menu, you can move the redirect elsewhere at any time — the printed codes notice nothing, because the domain stays yours.
  • An export that actually works. Not a list, but ready-made configuration files with which you can reproduce the redirects on another server in minutes.

How we built this part

Our dynamic codes are free and offer both defences above. You can use a subdomain on our side (your-company.exyqr.ro, ready instantly) or, better, your own domain, connected via a CNAME, with a certificate issued automatically.

At any moment you can download a portability kit: an archive with your redirects in JSON, plus ready-to-use configuration files for Vercel, Netlify and Apache, and an archive of the QR codes. With it you move everything elsewhere without reprinting anything.

Statistics stay aggregated — day, country, device type, source. No IP addresses, no raw user agents, no individual identifiers. And destinations are checked automatically by a security scanner, so the system does not become a phishing tool.

Dynamic QR codes — free, without lock-in

  • Change the destination at any time, without reprinting
  • An instant subdomain on our side, or your own domain via CNAME
  • Aggregated statistics, no tracking of individuals
  • Portability kit: leave whenever you want, with your redirects
Create a dynamic code →

The dynamic-code app is currently in Romanian only. The static generator stays free and account-free in both languages.

Frequently asked questions

What is the difference between a static and a dynamic QR code?
In a static code the information is written into the drawing itself: the link, the text or the Wi-Fi password are right there, in the modules. It never expires and depends on nobody, but it cannot be changed after printing. In a dynamic code the drawing holds an intermediate address; whoever scans lands there and is redirected to the real destination, which you can change at any time.
Do dynamic QR codes expire?
The code itself, as a drawing, never expires. What can expire is the service holding the redirect: if the provider shuts down, raises the price or suspends your account, the printed code leads nowhere. That is the real risk of dynamic codes, and the reason it matters who holds the redirect and whether you can take it with you.
When do I need a dynamic code and when is a static one enough?
Static: a Wi-Fi password, a business card, a link that will not change, anything you print once and never touch again. Dynamic: a menu that changes with the season, the offer of the month, a campaign where you want to see how many scans each poster got, or any large print run where reprinting would cost more than the service.
What does lock-in mean with dynamic QR codes?
It means that once you have printed thousands of codes routed through a provider's domain, you cannot leave without reprinting everything. Many platforms build their business model on exactly that: the first codes are free, then the price rises and you have nowhere to go. You avoid it in two ways: by using your own domain for the redirect, and by having a real export of the redirects.
Can I use my own domain for dynamic codes?
With us, yes: you can connect your domain through a CNAME, and the codes go through your address, not ours. It is the best insurance against lock-in — if you want to leave, you move the redirects to another provider or to your own server, and the printed codes keep working, because the domain stays yours.
Do dynamic codes track the people who scan them?
It depends on the provider. With us the statistics are strictly aggregated: day, country, device type, source. We do not store IP addresses, we do not keep raw user agents and we do not build individual identifiers — so it is not possible to reconstruct who scanned. Many commercial platforms go much further; it is worth reading their policy.
Is a dynamic code harder to scan than a static one?
Usually it is easier. The intermediate address is normally shorter than the real destination, and a shorter link means a code with fewer modules, so it tolerates small sizes and poor light better.