LocateKit

Validity

Do QR codes expire?

Short answer: a static code never expires. Longer answer: the world around it changes, so plan replacements deliberately.

Open the QR code generator

Static codes from this generator carry no expiry, no scan limit, and no service behind them.

Open the generator

What can still break

The pattern is permanent, the payload is not. A code that opens a page dies with the page move. A Wi-Fi code dies with the password rotation. A vCard code dies with the job change. None of this is expiry in the subscription sense. It is ordinary change, and the fix is always the same: generate a new code with the current detail and replace the old print.

Dynamic codes are the exception that confuses everyone. They point at a provider redirect, so they die when the subscription lapses. If someone tells you QR codes expire, they are describing a dynamic service, not the pattern. Static codes from this generator have no such service behind them.

Make codes that last

  • Encode stable details. Your own domain outlives any shortener. A role address outlives a personal one.
  • Keep an inventory. Note where each printed code lives: menus, cards, signs. Replacements take minutes when the list exists.
  • Date the print file, not the code. A filename with a year tells future you which cards predate the password rotation.

Keep reading

Related QR guides

Questions and answers

Expiry questions

Do static QR codes expire?
No. The payload lives inside the pattern, so there is no service behind it that could lapse and no scan counter that could run out.
Why did my QR code stop working?
The code still decodes, but the encoded detail changed: the page moved, the password rotated, the number was reassigned. Print a new code with the current detail.
Do dynamic QR codes expire?
They can. A dynamic code points at the provider redirect, so it dies when the subscription lapses or the provider shuts down. That is the core tradeoff of editable codes.
How do I make a code last?
Encode details that rarely change, prefer your own domain over shorteners, and keep a list of where each printed code lives so you can replace them deliberately.