Online cancellation
What "cancel online" requires, how Checkbox tests your cancellation flow, and the hosted cancellation page you can use instead of building one.
Federal law (ROSCA) requires a simple way to stop recurring charges, and the state laws are more specific: a subscriber who signed up online must be able to cancel online, immediately, without calling or chatting, and retention offers must not stand in the way. Several states also require a confirmation after cancelling.
What Checkbox checks
The synthetic shopper signs in with a test account (or uses a test subscription), looks for the cancel option from the account page and tries to cancel. It records every step with screenshots.
| Check | Fails when |
|---|---|
cancel.online_available | No way to cancel online was found |
cancel.mechanism_findable | The cancel option is hard to find from the account page |
cancel.flow_friction | The flow forces a call, chat or email, or loops through offers without a visible way to finish |
cancel.confirmation | No confirmation of the cancellation (on screen or by email) |
See every check for the full list and the laws behind each.
Build it
- Put Cancel subscription (or "Manage subscription") on the account page, one click from where subscribers manage their account.
- Retention offers are allowed in most states only if the subscriber can see and use the cancel option at the same time.
- Confirm the cancellation on screen and by email, with the date the subscription ends.
- With Stripe Billing, the customer portal does this for you.
Then tell Checkbox how to reach it: register the site with test_account (a subscriber login the shopper can use) or cancel_steps, and run checkbox verify --wait.
Or use the hosted cancellation page
For sites on Stripe Billing, Checkbox hosts a cancellation page: the subscriber enters their email, confirms with a link, and cancels in two clicks, with an on-screen confirmation and a confirmation email. Retention offers are only shown behind "Would you like to hear about an offer before you cancel?". Every cancellation is written to the evidence vault. Turn it on in the dashboard (Site → Fixes → Hosted cancellation) with a Stripe key limited to Customers: Read and Subscriptions: Write, and link to it from your account page and your disclosure (cancel_url).
Your Terms must agree
Checkbox fetches your Terms of Service and cancellation policy. "No cancellations", "cancel by phone only" or "all sales final" contradict the law for online sign-ups and show up as terms.cancellation_policy_consistent tasks with the offending clause quoted.
Checkbox is compliance software, not a law firm; nothing in these docs is legal advice (details). For AI agents: every page is available as Markdown at the same URL plus .md; the index is /llms.txt.