Written cancellation confirmation sent immediately
Why it matters
FTC Click-to-Cancel Rule (2024) requires that a cancellation confirmation be provided to the consumer immediately after cancellation — not only as a UI toast that disappears, but as a durable written record. California ARL and EU Consumer Rights Directive 2011/83/EU Article 12 both require confirmation of contract termination including the date through which access continues. Stripe's Billing Portal handles the portal UI but sends no custom cancellation email by default; the application must handle customer.subscription.updated (cancel_at_period_end) and customer.subscription.deleted webhooks to satisfy this requirement.
Severity rationale
High because absent written cancellation confirmation violates durable-medium requirements under the FTC Click-to-Cancel Rule and EU Consumer Rights Directive, leaving the business unable to demonstrate consumer received confirmation.
Remediation
Handle the customer.subscription.updated webhook to detect cancel_at_period_end: true and send a confirmation email immediately. In app/api/webhooks/stripe/route.ts:
if (event.type === 'customer.subscription.updated') {
const subscription = event.data.object
if (subscription.cancel_at_period_end) {
const customer = await stripe.customers.retrieve(subscription.customer as string)
const email = 'email' in customer ? customer.email : null
if (email) {
await sendEmail({
to: email,
subject: 'Your subscription has been cancelled',
template: 'cancellation-confirmation',
data: {
accessUntil: formatDate(subscription.current_period_end),
cancelUrl: `${process.env.NEXT_PUBLIC_APP_URL}/settings/billing`,
},
})
}
}
}
Email text must include: 'Your subscription has been cancelled. You will retain access until [date]. No further charges will be made.'
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(c) — written cancellation confirmation requirement
- external · california-arl — California Automatic Renewal Law (Bus. & Prof. Code §17602) — cancellation confirmation with access end date
- external · eu-consumer-rights-directive-2011-83-eu — EU Consumer Rights Directive 2011/83/EU Art. 12 — confirmation of right of withdrawal on durable medium
Taxons
History
- 2026-04-18·v1.0.0·Initial import from subscription-compliance·automated