FTC Act §5 treats unreasonably restrictive refund policies as unfair practices when they cause substantial consumer injury. An annual subscription with a '24-hour refund window' or a refund policy buried only in the Terms of Service deprives consumers of the recourse they would reasonably expect. For SaaS products, the industry-recognized minimum is 7 days for monthly plans and 30 days for annual plans. Inaccessible refund policies also surface in payment disputes: Stripe and other processors weigh policy accessibility when adjudicating chargebacks — a buried policy increases chargeback loss rates.
Info because refund policy deficiencies cause harm indirectly through consumer dispute escalation rather than at the moment of purchase, and enforcement typically follows a pattern of complaints rather than a single unreasonable policy.
Publish the refund policy at a dedicated URL and link it from the pricing page, checkout confirmation, and help center.
// Checkout footer — link refund policy near the payment button
function CheckoutFooter() {
return (
<p className="text-xs text-gray-500 mt-4">
Annual plans include a 30-day money-back guarantee.
See our{' '}
<a href="/refund-policy" className="underline">Refund Policy</a>.
</p>
)
}
# Refund Policy (publish at /refund-policy)
## Annual Plans — 30-Day Money-Back Guarantee
Contact support@example.com within 30 days for a full refund.
No documentation required.
## Monthly Plans
Non-refundable, but cancel anytime from account settings.
## How to Request
Email support@example.com — "Refund Request" in the subject.
Processed within 5 business days.
Minimum recommended windows: 7 days for monthly, 30 days for annual. Link the policy from at least three touchpoints: pricing page, checkout flow, and help center.
ID: ftc-consumer-protection.dark-patterns.accessible-refund-process
Severity: info
What to look for: Count all relevant instances and enumerate each. Find the refund policy. It should be accessible from: (1) the pricing page, (2) the checkout confirmation screen or email, and (3) account settings or a help page. Check the policy for: refund window (30 days is the common consumer expectation for SaaS), conditions for refund eligibility, process for requesting a refund (ideally self-service or email — not a complex multi-step form), and turnaround time. Look for unreasonably restrictive policies: "no refunds after 24 hours," "refunds only for technical reasons verified by our team," or policies that require extensive documentation. Check whether the refund policy is linked from the checkout page or is buried in the Terms of Service only.
Pass criteria: A refund policy is documented and accessible from the pricing page, checkout flow, and help center. The process for requesting a refund is clearly described. The refund window and conditions are reasonable (at minimum 7 days for SaaS products with annual subscriptions).
Fail criteria: No refund policy documented. Refund policy exists only buried within a long Terms of Service document with no direct link. Refund policy has unreasonably restrictive terms with no consumer protection exception. Refund request process requires excessive documentation or steps.
Skip (N/A) when: The application is entirely free with no paid tiers, subscriptions, or purchases.
Detail on fail: Example: "No refund policy found on pricing page or checkout. Only mention of refunds is a single sentence in the Terms of Service: 'All sales are final.'" or "Refund policy is linked from Terms of Service only — not from pricing page or checkout flow. Policy requires a support ticket with 'proof of technical issue' to qualify." or "Annual plan refund policy allows refunds only within 24 hours of purchase — this is unreasonably restrictive for an annual subscription."
Remediation: Document and surface the refund policy:
// Checkout page — link to refund policy near the payment button
function CheckoutFooter() {
return (
<p className="text-xs text-gray-500 mt-4">
By purchasing, you agree to our{' '}
<a href="/terms" className="underline">Terms of Service</a>.
Annual plans include a 30-day money-back guarantee.
See our <a href="/refund-policy" className="underline">Refund Policy</a>.
</p>
)
}
# Refund Policy (publish at /refund-policy)
## 30-Day Money-Back Guarantee (Annual Plans)
If you're not satisfied within the first 30 days, contact us at
support@example.com for a full refund. No questions asked.
## Monthly Plans
Monthly subscriptions are non-refundable, but you can cancel at any
time from your account settings to stop future charges.
## How to Request a Refund
Email support@example.com with subject "Refund Request" and your
account email. We process refunds within 5 business days.
## Exceptions
We cannot process refunds for accounts found to have violated our
Terms of Service.