How to set an expiration date on a QR code
Updated 2026-10-05
To make a QR code stop working on a certain date, create it as an editable (dynamic) QR code and set an expiry in the service that runs it. A regular (static) QR code can't be given an expiration date.
This is for time-limited campaigns, coupons and event sign-ups that should stop working once they end. Here is how it works and how to do it.
Why a static QR code can't expire
A static QR code is just the destination URL drawn as a pattern. The pattern never changes, and it keeps opening as long as the page exists. The code itself has no way to say "stop on this date". (For the reasons a code can stop working by itself, see Do QR codes expire?)
How an expiry works
A dynamic QR code holds a short redirect link. Each time it is scanned, the redirect checks whether the expiry date has passed. If it has, the visitor sees a notice page instead of your destination. The printed code stays the same, and you can move or remove the date later.
How to set an expiry in QRMaple
Every QRMaple link can have an expiry date and time. After that moment, a scan no longer redirects. The visitor sees a "This link isn't available" page, and the dashboard list marks the code as "Expired".
Currently there is no date field in the dashboard. You set the date through the API, which is included in the Pro and Premium plans (API docs). Set it when you create the link, or update it later:
curl -X PATCH https://qrmaple.com/api/v1/links/<link-id> \
-H "Authorization: Bearer <your-api-key>" \
-H "Content-Type: application/json" \
-d '{"expires_at":"2026-12-31T23:59:59Z"}'
- The date is an ISO 8601 date-time. The trailing Z means UTC, so convert from your own time zone.
- Send
"expires_at": nullto remove the expiry. - If you later set a new future date, the same printed code opens again.
QRMaple can't redirect to an "offer ended" page after the expiry. The visitor sees the notice page above.
Stopping a code on a date without the API
On every paid plan, including Basic, "Edit & stats" in the dashboard lets you do two things by hand when the campaign ends. This is manual, not an automatic date.
- Turn the code off. A scan then shows the notice page. Turn it back on and it opens again.
- Change the destination to an "offer ended" page. Visitors learn clearly that it's over.
Other services
Some paid dynamic QR services offer a dashboard setting for an expiry date (and sometimes a scan limit). Whether it's available depends on the service and plan, so check their current pages.
Before you rely on it
- Print the end date next to the code ("valid until Dec 31") so people who scan late aren't confused.
- Test it first with a throwaway code whose expiry is a few minutes away, so you see what visitors see.
- Don't put an expiry on long-lived print such as menus or packaging. It stops for good at that date.
FAQ
- Can I set an expiration date on a QR code?
- On a dynamic (editable) QR code, yes, in the service that runs it. A regular static QR code can’t be given an expiry.
- How do I set an expiry in QRMaple?
- Through the API (expires_at), which is included in the Pro and Premium plans. There is currently no date field in the dashboard. You can switch a code off by hand from “Edit & stats”.
- What do people see after the expiry?
- In QRMaple, a “This link isn’t available” page. Redirecting to another page after expiry isn’t supported.