Total cost including taxes/fees disclosed before payment
Why it matters
When checkout shows a base price and applies taxes silently on charge, the first time a user sees the true total is on their bank statement — a direct violation of FTC Negative Option Rule (2025) transparency requirements and EU Consumer Rights Directive 2011/83/EU Article 6 pre-contract information obligations. Jurisdictions with sales tax on SaaS (Texas, Ohio, Washington, and most EU member states) make this gap material and frequent. Silent tax additions are also the second most-cited cause of subscription chargebacks after unrecognized recurring charges.
Severity rationale
High because silently adding taxes between the displayed price and the actual charge constitutes a material misrepresentation under both FTC rules and EU consumer law, triggering chargeback liability and regulatory exposure.
Remediation
Show a tax-inclusive price summary before the payment submit button. For Stripe Checkout, enable automatic_tax and Stripe will display the breakdown:
const session = await stripe.checkout.sessions.create({
mode: 'subscription',
automatic_tax: { enabled: true },
})
For custom checkout forms, call a preview endpoint and render an order summary in app/(checkout)/checkout/page.tsx:
<div className="order-summary">
<div className="line-item"><span>Pro Plan (monthly)</span><span>$29.00</span></div>
<div className="line-item"><span>Tax</span><span>{tax > 0 ? formatCents(tax) : 'Calculated at checkout'}</span></div>
<div className="line-item total"><strong>Total due today</strong><strong>{formatCents(total)}</strong></div>
</div>
The total must appear before, not after, the submit button.
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) — total cost disclosure before charge
- external · eu-consumer-rights-directive-2011-83-eu — EU Consumer Rights Directive 2011/83/EU Art. 6(1)(e) — total price including taxes before contract
- external · california-arl — California Automatic Renewal Law (Bus. & Prof. Code §17601) — clear and conspicuous disclosure of charges
Taxons
History
- 2026-04-18·v1.0.0·Initial import from subscription-compliance·automated