The Redirect Promise
This page quotes the signed-off spec. We may extend it, but we will never weaken it for codes that already exist. If anything here conflicts with our Terms, this document wins.
On this page
1. The promise
Every dynamic QR code made on Qrzo keeps redirecting to its last saved destination for as long as Qrzo operates: while you pay, after a trial ends, after you cancel, if a payment fails, and on the Free plan. Scanners never see an interstitial or an ad, and there are no commercial or account-level scan caps.
When you stop paying, you lose editing, analytics, and new codes, and nothing else. The redirect path never reads billing or account state, so it cannot punish a lapsed account.
If Qrzo ever shuts down, qrzo.app stays registered (prepaid 10 years ahead) and redirects keep running for as long as the shutdown reserve and successor plan (section 4) allow.
Guaranteed
- Billing and plan state never change what a scanner gets.
- Plan limits never delete, re-slug, or cap codes.
qrzo.appstays registered at least 9 years ahead.- Paid and lapsed accounts can export any time.
Not guaranteed
- Redirects beyond what the shutdown reserve or a successor can fund.
- A redirect in the exception cases below.
- Speed and freshness numbers: they are measured targets, not promises.
2. Behavior by account state
The Redirect column is identical in every row by design.
| Account state | Redirect | Edit | Analytics | Create codes | Exit kit |
|---|---|---|---|---|---|
| Active (Keep / Pro) | 302 | Yes | Yes | Up to plan limit | Full |
| Payment failed, first 3 days | 302 | Yes | Yes | Yes | Full |
| Payment failed, after 3 days | 302 | No | Counted, hidden | No | Full |
| Trial ended, not converted | 302 | No | Counted, hidden | No | Full |
| Cancelled | 302 | No | Counted, hidden | No | Full |
| Free | 302 | No, locked at creation | No | Up to 3 total | Plain export |
- A lapsed code keeps its destination at that moment. Re-subscribing restores editing, analytics (including scans counted while lapsed), and creation.
- Plan limits never delete or disable codes: a cancelled Keep account with 25 codes keeps 25 redirecting codes.
- A custom hostname stays attached after a cancel, its Cloudflare for SaaS fee paid by Qrzo, until the client asks for removal.
3. Exceptions (complete list)
These are the only ways a scan may not get a 302. Any other non-302 is a bug. Billing and plan state trigger none of them.
- 403
Unsafe destination
Our link-safety check flags malware or phishing. Scanners see a
403page with no click-through. The owner gets an email with the reason and how to appeal. - 451
Legal takedown
A valid order or notice we must act on. Scanners see a
451page naming the request type. The owner gets the notice unless the law forbids it. - 410
Deletion by the owner
The owner deletes the code or their account. Scanners see a
410; the short link is never reused. - 404
Unknown link
A short link that was never issued, or an extra path after it. Scanners see a
404page, never a redirect to marketing. - 429
Attack rate limiting
One source IP sending attack traffic gets a
429. Limits are never keyed on code, account, plan, or hostname. - —
Provider enforcement
Cloudflare acts on abuse or against Qrzo's account or a hostname. We triage abuse reports within 1 business day and email affected owners.
- —
Your custom domain lapses
It expires, stops pointing to Qrzo, or fails certificate renewal. We check daily and email the owner.
4. If Qrzo shuts down
- At least 12 months' notice; exit kits emailed to every account; redirects unchanged.
- Custom-domain clients re-point DNS with the exit kit.
qrzo.appcodes are served by a frozen Worker, paid from the shutdown reserve while it lasts.- Or
qrzo.appand the data go to a successor that agrees to this promise in writing, and no one else. - Otherwise redirects stop when the reserve runs out.
qrzo.appstays registered for the prepaid term, so nobody can hijack old codes.
The exit kit cannot move qrzo.app/<slug> codes, because Qrzo owns that domain. Codes on your own custom hostname can move.
5. How this document changes
It may be extended but never weakened for codes that already exist. The full engineering spec is docs/redirect-promise.md. See also the Terms and the plans.
Changelog
- v2
- 2026-11-05
- Signed off by Alan.
- v2
- 2026-11-06
- Plans set to Free, Keep and Pro; the Print shop plan is dropped. No promise changed.