Pro-rated refund policy disclosed; refund for unused portion
Why it matters
When a consumer cancels an annual subscription mid-year and receives no information about whether a prorated refund is owed, the business is exposed under EU Consumer Rights Directive 2011/83/EU Article 14 (right of withdrawal) and FTC Negative Option Rule (2025) requirements that material terms include refund rights. A 'no refund' policy is legally permissible in most jurisdictions, but only if clearly disclosed before purchase — not just in the Terms of Service. Annual subscriptions that silently absorb unused months generate disproportionate chargebacks because consumers assert their right to a refund through their bank when the product refuses.
Severity rationale
Medium because an undisclosed or absent refund policy for annual subscriptions creates chargeback liability and EU withdrawal-right violations, but does not itself constitute the unauthorized-charge pattern triggering highest-severity FTC enforcement.
Remediation
Document the refund policy on the pricing page (not only in the Terms of Service) and implement a mechanism to process prorated refunds if the policy offers them. In app/api/subscription/cancel/route.ts:
if (requestRefund) {
const totalDays = subscription.current_period_end - subscription.current_period_start
const unusedDays = subscription.current_period_end - Math.floor(Date.now() / 1000)
const refundRatio = unusedDays / totalDays
const invoice = await stripe.invoices.retrieve(subscription.latest_invoice as string)
const refundAmount = Math.round((invoice.amount_paid ?? 0) * refundRatio)
await stripe.refunds.create({
payment_intent: invoice.payment_intent as string,
amount: refundAmount,
})
}
Add a one-line disclosure to the pricing page beneath the annual plan: '30-day money-back guarantee' or 'No refunds — cancel to stop future charges.' The specific policy is less important than its presence before purchase.
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) — refund policy disclosure for subscription cancellations
- external · eu-consumer-rights-directive-2011-83-eu — EU Consumer Rights Directive 2011/83/EU Art. 13 — reimbursement obligation upon withdrawal
Taxons
History
- 2026-04-18·v1.0.0·Initial import from subscription-compliance·automated