Every code redirects forever — even on Free

Start freeSign in

Version 2 · signed off 2026-11-05 · spec commit 4256799 (QR-02)

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.app stays 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 stateRedirectEditAnalyticsCreate codesExit kit
Active (Keep / Pro)302YesYesUp to plan limitFull
Payment failed, first 3 days302YesYesYesFull
Payment failed, after 3 days302NoCounted, hiddenNoFull
Trial ended, not converted302NoCounted, hiddenNoFull
Cancelled302NoCounted, hiddenNoFull
Free302No, locked at creationNoUp to 3 totalPlain 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.

  1. 403

    Unsafe destination

    Our link-safety check flags malware or phishing. Scanners see a 403 page with no click-through. The owner gets an email with the reason and how to appeal.

  2. 451

    Legal takedown

    A valid order or notice we must act on. Scanners see a 451 page naming the request type. The owner gets the notice unless the law forbids it.

  3. 410

    Deletion by the owner

    The owner deletes the code or their account. Scanners see a 410; the short link is never reused.

  4. 404

    Unknown link

    A short link that was never issued, or an extra path after it. Scanners see a 404 page, never a redirect to marketing.

  5. 429

    Attack rate limiting

    One source IP sending attack traffic gets a 429. Limits are never keyed on code, account, plan, or hostname.

  6. —

    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.

  7. —

    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

  1. At least 12 months' notice; exit kits emailed to every account; redirects unchanged.
  2. Custom-domain clients re-point DNS with the exit kit.
  3. qrzo.app codes are served by a frozen Worker, paid from the shutdown reserve while it lasts.
  4. Or qrzo.app and the data go to a successor that agrees to this promise in writing, and no one else.
  5. Otherwise redirects stop when the reserve runs out. qrzo.app stays 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.