Cancellation in same steps (or fewer) as enrollment
Why it matters
The FTC Click-to-Cancel Rule (effective 2025) mandates that cancellation be available in the same number of steps — or fewer — as enrollment. Requiring users to email support to cancel while allowing online self-service enrollment is an automatic regulatory violation regardless of how simple the enrollment was. California ARL imposes the same requirement. Cancellation friction is also the primary driver of 'friendly fraud' chargebacks: users who cannot cancel quickly dispute the charge with their bank instead, and Stripe's 0.75% dispute threshold has real consequences.
Severity rationale
Critical because requiring more steps to cancel than to enroll, or routing cancellation through support contact, is a per-subscriber regulatory violation under the FTC Click-to-Cancel Rule with civil penalties.
Remediation
Implement self-service cancellation reachable in two clicks from the authenticated dashboard. The Stripe Billing Portal handles step-count compliance automatically. In app/api/billing-portal/route.ts:
export async function POST(req: Request) {
const session = await getServerSession()
if (!session?.user?.id) return new Response('Unauthorized', { status: 401 })
const portalSession = await stripe.billingPortal.sessions.create({
customer: await getStripeCustomerId(session.user.id),
return_url: `${process.env.NEXT_PUBLIC_APP_URL}/settings/billing`,
})
return Response.redirect(portalSession.url)
}
Wire a 'Cancel subscription' button in app/settings/billing/page.tsx — not buried in an 'Advanced' section. Verify in Stripe Dashboard → Billing → Customer portal that 'Allow customers to cancel subscriptions' is enabled. Document the step count: enrollment steps vs. cancellation steps.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Subscription & Auto-Renewal Compliance Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- external · ftc-click-to-cancel-rule-2024 — FTC Click-to-Cancel Rule (2024) § 425.6 — cancellation must be as simple as enrollment
- external · california-arl — California Automatic Renewal Law (Bus. & Prof. Code §17602(d)) — simple cancellation mechanism
- external · eu-consumer-rights-directive-2011-83-eu — EU Consumer Rights Directive 2011/83/EU Art. 9 — right of withdrawal and easy cancellation
Taxons
History
- 2026-04-18·v1.0.0·Initial import from subscription-compliance·automated