Detector registry

Subscription auto-renewal disclosure: what to check before you sell

Scan your pricing page for auto-renewal and cancellation terms. See what subscription disclosure law commonly expects and how to spot missing signals.

Updated 2026-06-19subscription auto renewal disclosure lawSignals, not a verdict

If your app or store charges people on a recurring basis, the moment of sign-up is heavily regulated almost everywhere you operate. Buyers are supposed to understand — clearly, before they pay — that the charge repeats, how much it is, how often it recurs, and how to stop it. When that information is buried or missing, you invite chargebacks, app-store rejections, refund disputes, and regulator attention.

For an indie developer shipping fast, this is easy to get wrong by accident: you wire up a checkout, add a "Subscribe" button, and move on — without the plain-language renewal and cancellation copy that consumer law generally expects right next to it.

What LaunchTrust checks

The subscription_terms detector runs only on web surfaces and works in two passes against the HTML of the page you point it at. It reads the public page only — it does not log in or complete a checkout.

First, it checks whether the page actually sells a subscription. It scans for recurring-billing language: subscription, auto-renew / auto-renewal, recurring payment, recurring billing, billed monthly / billed annually, free trial, and price shorthand such as /mo, /month, /yr, or /year. If none appears, the check returns not detected (info) — there is no recurring offering for the disclosure rules to apply to, so this is informational, not a gap.

Second, if subscription language is present, it looks for cancellation wording on the same page: cancel anytime, cancel your subscription, manage subscription, how to cancel, cancellation, or unsubscribe. The outcomes are:

  • Detected: the page advertises a subscription and contains cancellation / auto-renewal wording — the positive signal you want, recurring billing paired with visible cancellation terms.
  • Not detected (low): subscription or free-trial wording is present, but no clear cancellation or terms wording is nearby. This is flagged at low severity on purpose, because words like "subscribe" or "free trial" also appear on newsletter sign-ups, so a missing-cancellation result may be a false hit — a prompt to verify, not a judgment that you broke the law.
  • Unable to determine: if the scanner cannot fetch or parse the page, it says so rather than guess.

This is a positive-polarity signal: clear renewal and cancellation terms are what you want present. "Detected" means the expected wording was found in the HTML — it does not confirm the wording is legally sufficient, correctly placed, or accurate.

Why it matters

Recurring-billing disclosure is governed in overlapping ways across the markets indies sell into:

  • United States — auto-renewal laws (ARLs): Many states regulate automatically renewing subscriptions, commonly requiring clear and conspicuous disclosure of the renewal terms before purchase, affirmative consent to the recurring charge, and a simple way to cancel. The FTC also pursues deceptive "negative option" practices federally.
  • EU and UK consumer law: Distance-selling and consumer-rights rules generally require clear pre-contract information about the price, the recurring nature and total cost of the commitment, and the buyer's cancellation/withdrawal rights before the order is placed.
  • App stores: Apple's guidelines and Google Play's policies both expect auto-renewable subscription terms — price, billing period, and how to manage or cancel — disclosed clearly at the point of sale, not just inside a remote document.

A detected signal does not satisfy any of these — it only indicates the wording exists on the page you scanned. Treat these requirements as commonly expected practice, and confirm specifics with qualified advice for your markets.

A concrete example

A minimal pattern the detector reads as the positive signal — a recurring price paired with cancellation wording next to the call to action:

Pro — $9.99/month, billed monthly. Renews automatically until cancelled.
Cancel anytime in Settings → Subscription. No refunds for partial periods.

By contrast, a page that shows only $9.99/mo and a "Subscribe" button, with cancellation terms buried two clicks away in a separate document, returns not detected (low) — subscription wording present, no nearby cancellation wording.

How to address it

  1. State the recurring nature in plain words where the price appears — "billed monthly," "renews automatically," "recurring charge until cancelled." Don't rely on "subscribe" alone to carry that meaning.
  2. Show the full price and cadence before checkout: the amount, the billing interval, and — where a trial or intro price applies — what the price becomes after it ends and when.
  3. Put cancellation instructions next to the offer ("Cancel anytime in Settings") rather than only linking out to a long terms page, and make cancelling at least as easy as signing up.
  4. Get affirmative consent to the recurring charge at the point of purchase, separate from general terms acceptance, so the agreement to be billed again is unambiguous.
  5. Mirror the same terms in your Terms of Service and refund policy so the page copy and your legal documents agree.

Check this in 30 seconds

Run your live pricing or checkout URL through the free LaunchTrust scanner. It reads the public page and reports whether subscription wording is present and whether clear cancellation / renewal terms were detected alongside it — so you can catch a missing disclosure before a buyer, an app reviewer, or a regulator does. You get the specific signal and the matched wording, not a score.

FAQ

Does a "detected" result mean my app meets the law? No. LaunchTrust reports signals, not legal conclusions. "Detected" means the expected renewal and cancellation wording was found on the page you scanned — it does not confirm that wording is sufficient, correctly placed, or valid for your markets. This is a compliance aid, not legal advice or certification.

Why did my newsletter or marketing page get flagged? The first pass keys on words like "subscribe" and "free trial," which also appear on non-commerce pages. That is why a missing-cancellation result is reported at low severity — a prompt to verify whether the page really sells a recurring subscription, not an assertion that something is wrong.

The cancellation terms live in my Terms of Service, not the pricing page. Is that enough? The detector only inspects the page you give it, so terms on a separate URL read as "not detected" there. Auto-renewal rules and app-store policies generally expect renewal and cancellation terms to be clear and conspicuous at the point of sale — close to the offer — not only in a remote document, so consider repeating the key terms on the pricing page itself.

Compliance aid, not legal advice. LaunchTrust reports signals, not a verdict or certification.