Expiry Settings in QRKIT

Set a dynamic QR code to stop working after a number of unique scans or at a chosen date and time — and control exactly what scanners see when it does.

5 min read

What are Expiry Settings?

Expiry Settings let you decide when a QR code should stop working. You reach them from the Expiration button on a code, which opens the Expiry Settingsdialog. Once a code has expired, scanning it no longer opens its destination — the visitor sees an expiration message instead.

Expiry only applies to dynamicQR codes. A dynamic code points to a short link that you control, so QRKIT can stop the redirect the moment the code expires. Static codes encode their data directly into the pattern, so there is nothing to switch off remotely — they can't be expired.

There are two independent triggers, each its own checkbox in the dialog:

  • Enable Scan Limits— expire the code after a set number of unique scans.
  • Enable Time Limits— expire the code at a specific date and time.

You can turn on either one on its own, or both together. When both are on, whichever condition is met first expires the code. Expiry is a paid feature, available on Plus and above.

Expire after a number of scans

Tick Enable Scan Limits and enter a Unique Scan Limit— the maximum number of unique scans the code will accept before it expires. This must be a positive number; anything else is rejected with a "Must be a positive number" warning.

The limit counts unique scans, which makes it a good fit for things like event passes, limited redemption codes, or a promo capped at a fixed number of claims.

You can also set an optional Scan Limit Error Message— the custom text shown once the limit is reached. Leave it blank and QRKIT shows a default message instead.

Expire on a date and time

Tick Enable Time Limits and choose an Expiry Date & Timefrom the picker. The code keeps working right up to that moment, then expires automatically — ideal for time-sensitive campaigns, a flash sale, or signage that should go dark after an event ends.

A timezone selector sits below the date, defaulting to your own timezone, so the expiry fires at the local time you intend rather than a server time elsewhere. If you pick a date and time that's already in the past, the dialog warns you that the code will be immediately expired.

As with scan limits, there's an optional Time Limit Error Message for the text visitors see after expiry. Leave it blank to use the default message.

What happens when a code expires

Once either trigger is met, scanning the code no longer opens its destination. Instead, the visitor lands on an expiration page showing your message — the custom one you wrote, or QRKIT's default if you left the field blank. Each trigger has its own message, so a code that hit its scan limit can read differently from one that ran out of time.

The printed QR image itself never changes. The same pattern that was on your poster, packaging, or pass still scans — it simply resolves to the expiration message now instead of the destination. You don't need to reprint anything.

Nothing is deleted when a code expires. The QR code, its settings, and its scan history all stay in your dashboard. If you want it live again, reopen Expiry Settings and adjust or remove the limits.

Which plans include expiry

Expiry is a Plusfeature — it's available on Plus and every plan above it. On the Free and Starter plans, clicking Expiration opens an upgrade prompt instead of the dialog. Expiry applies to dynamicQR codes only, since static codes encode their content directly and can't be switched off after they're printed.

How to set an expiry

Each dynamic QR code has an Expirationcontrol in the dashboard — a button on the code, and an Expirationitem in the code's actions dropdown. Either one opens the Expiry Settings dialog.

  • Click Expiration to open the Expiry Settings dialog.
  • Tick Enable Scan Limits to cap the code by usage. Set a Unique Scan Limit— the maximum number of unique scans before the code expires — useful for limited-time promotions or a fixed run of event-access passes.
  • Tick Enable Time Limits to cap the code by date. Pick an Expiry Date & Timeand the timezone it should be interpreted in — handy for seasonal campaigns or signage that should go dark after a launch window.
  • Optionally fill in a custom error message for each limit, shown to anyone who scans after the code has expired. Leave it blank to use the default message.
  • Click Update. A success toast confirms the save. You can enable both limits at once — whichever is reached first expires the code.

Editing or removing an expiry

To change an expiry, re-open the Expiry Settings dialog — it loads with your current values filled in. Adjust the scan limit, date, timezone, or messages and click Update to save.

To remove a limit, un-tick Enable Scan Limits or Enable Time Limits and click Update. That limit is cleared. Note that removing a scan limit and later re-adding one does not reset the count — the code continues from the number of unique scans it has already recorded.

The scan limit must be a positive number. If you enter zero or a negative value, the dialog shows Must be a positive numberand won't save until you fix it.

Combine with password protection

Expiry and password protection are independent settings, both available on Plus and above, and you can apply both to the same code. Set an expiry from the Expiration control and a password from the code's password control — neither overrides the other.

This pairing is useful for a time-limited, password-gated access link — for example, an event-access code that only works during the event window and only for people who know the password, or a limited-time promotion you want to keep behind a shared code. Once either the scan or time limit is reached, the code expires regardless of the password.

Frequently asked questions

Can a static QR code expire?

No. Expiry only applies to dynamicQR codes, because expiring works by stopping the redirect at scan time. A static code encodes its destination directly into the pattern, so there's nothing on our side to switch off — once it's printed, it points where it points. If you need a code that can expire, create it as a dynamic code.

What do scanners see after a code expires?

Instead of being sent to the destination, they see an expiration message. You can write your own message for each trigger — one for the scan limit, one for the time limit — and if you leave it blank, a default message is shown. There is no fallback redirect: an expired code shows the message, it does not forward anywhere.

Does setting an expiry delete my code or its data?

No. Expiry only stops the redirect — the QR code, its settings, and all of its scan analytics stay intact. Re-opening the dialog and removing the limit brings the code straight back to life.

Can I undo or extend an expiry?

Yes, at any time. Open the Expiration dialog again and either un-tick a limit and click Updateto lift it entirely, or change the date or scan number to extend it. There's no auto-renewal or scheduled reactivation — you manage it manually whenever you want.

If I change the scan limit, does the count reset?

No. If you raise the limit — or remove it and add it back later — the code carries on from the count it already had rather than starting over from zero.

Which plans include Expiry Settings?

Expiry is available on Plus and above. On Free and Starter the Expiration button opens an upgrade prompt instead. It can also be combined with password protection, which is likewise a Plus-and-above feature.

Will I be warned before a code expires?

No. There are no email reminders, notifications, or grace period before a code expires — once the scan limit is hit or the expiry date and time pass, the code shows its expiration message immediately. If you want to keep it live, re-open the dialog and adjust the limit before it is reached.

Ready to set an expiry?

Open a dynamic QR code, set a scan limit or expiry date, and decide what scanners see when it's done — ideal for event passes and limited-time promos.