Skip to main content
Guide September 19, 2026

How to Create a QR Code That Doesn't Expire

The short answer, up front: a QR code you create here doesn't expire unless you specifically tell it to. Expiry is an optional setting, not something that happens to a code on its own. The rest of this guide is about making sure that's actually true for the one you're creating.

Why this is worth asking in the first place

Some QR code services genuinely do gate scans behind a free-plan limit or a trial period without making that obvious upfront, which is a reasonable thing to be cautious about before you print something and hand it out or post it publicly. Here, that's not how it works: the only thing that makes a dynamic code stop working is an expiry setting you turned on yourself, on that specific code.

The three-step check before you print

  1. Leave the expiration date field empty. If you didn't set a date, there isn't one — the code has no built-in end point.
  2. Leave the scan-limit field empty too. The other way a code can stop working is hitting a maximum scan count. No number set, no limit.
  3. Double-check on the edit screen, not just at creation. Both settings can be added to an existing code later, so if you're reusing or editing an older link, take a second to confirm neither one has been turned on. Full detail on both settings, including how to use them on purpose when you do want an expiring code, is on the expiring & password-protected codes page.

Static is the other genuinely permanent option

If you want something that doesn't just avoid expiry settings but has zero dependency on any server staying online at all, a static code is the more absolute answer — the data is encoded directly in the pattern, so there's nothing to expire, track, or serve. The trade-off is you lose the ability to edit the destination or see scan counts. See the full static vs. dynamic decision guide if you're weighing that trade-off.

Frequently asked questions

Does a free-plan QR code expire after a trial period?

See the pricing page for exactly what's included at each tier — but expiry itself is a per-code setting you control, not something tied to your plan's billing cycle.

I already set an expiration date by mistake. Can I remove it?

Yes — expiry settings live on the dynamic link itself, so you can clear the date or scan limit at any time without reprinting anything.

Can a dynamic code stop working for any other reason?

A dynamic link depends on this platform staying online to perform the redirect — that's the one structural dependency it has, unlike a static code. Barring that, expiry date and scan limit are the only two settings that intentionally stop a code from working.