Renewal reminder sent before charge with time to cancel
Why it matters
Renewal charges that arrive with no advance warning are the leading cause of subscription-related chargebacks and the behavioral trigger the FTC Negative Option Rule (2025) and California ARL target in their 'save offer' and notice requirements. A user who has forgotten they subscribed months ago and sees an unexpected $29 charge will dispute it with their bank rather than cancel — and Stripe's 0.75% dispute threshold affects payment processing eligibility. California ARL requires advance notice for annual charges; for monthly charges, renewal reminders are a strong chargeback-prevention measure even where not strictly mandated.
Severity rationale
Low because monthly renewal reminders are a chargeback-prevention best practice and FTC good-faith signal rather than a per-violation enforcement target, but the absence of annual reminders specifically triggers California ARL exposure.
Remediation
Handle Stripe's invoice.upcoming event and send a renewal reminder email. In Stripe Dashboard, set 'Days before upcoming invoice email' to 7 for monthly plans. In app/api/webhooks/stripe/route.ts:
if (event.type === 'invoice.upcoming') {
const invoice = event.data.object
const customer = await stripe.customers.retrieve(invoice.customer as string)
const email = 'email' in customer ? customer.email : null
if (email && invoice.amount_due > 0) {
await sendEmail({
to: email,
subject: `Heads up: Your subscription renews ${formatDate(invoice.period_end)}`,
template: 'renewal-reminder',
data: {
amount: (invoice.amount_due / 100).toFixed(2),
renewalDate: formatDate(invoice.period_end),
cancelUrl: `${process.env.NEXT_PUBLIC_APP_URL}/settings/billing`,
},
})
}
}
Email must include renewal amount, date, and a direct cancel link. The annual-renewal-reminder check covers the ≥30-day advance notice required for annual subscriptions under California ARL.
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-negative-option-rule-2025 — FTC Negative Option Marketing Rule (2025) — advance renewal notification with cancellation mechanism
- external · california-arl — California Automatic Renewal Law (Bus. & Prof. Code §17602) — renewal reminder before charge
Taxons
History
- 2026-04-18·v1.0.0·Initial import from subscription-compliance·automated