Refund policy or link to store refund process accessible
Why it matters
Apple and Google both process refunds for IAP purchases at their discretion — the developer cannot override platform refund policy. Terms of Service language stating "all sales are final" or "no refunds" contradicts the platform's actual refund policy and misleads users who are legally entitled to request a platform refund. This misrepresentation is actionable under consumer protection law in most jurisdictions. Beyond legal risk, users who encounter "no refunds" language and cannot find a refund path file chargebacks directly with their bank, which costs the developer $15–$25 per dispute and, at high rates, risks merchant account suspension.
Severity rationale
Low because the defect is informational and does not cause immediate rejection, but it creates consumer protection legal exposure and directly drives chargeback rates.
Remediation
Remove "no refunds" or "all sales are final" language from your Terms of Service and replace it with accurate language directing users to the platform refund process.
In src/app/(legal)/terms.tsx or your equivalent legal page, replace prohibitive refund language with:
Purchases are processed by Apple App Store or Google Play.
For refund requests, visit reportaproblem.apple.com (iOS) or
your Google Play purchase history (Android). We do not process
refunds directly — all refund decisions are made by the platform.
Also add a "Refunds" or "Billing Support" entry to your in-app settings or FAQ screen pointing users to the correct platform refund URL.
Detection
- ID:
refund-policy - Severity:
low - What to look for: Count all relevant instances and enumerate each. Check if the app communicates refund information to users. For iOS, Apple handles all refunds — users request them at reportaproblem.apple.com. For Android, Google handles refunds through Google Play. The app does not need to implement its own refund process, but it should inform users of how to request refunds. Look for: (1) A link or reference to the platform's refund process on the paywall, in Terms of Service, or in a settings/support screen. (2) Text like "For refunds, visit reportaproblem.apple.com" or "Manage billing and refunds in Google Play". (3) A support screen or FAQ that addresses refund requests. Absence of this is not a store rejection trigger, but it is a customer support and policy best practice. Also check: if the app's own Terms of Service claim "no refunds" — this contradicts Apple's and Google's policies (both platforms offer refunds at their discretion) and could confuse or mislead users.
- Pass criteria: App mentions refund process in a support, FAQ, or legal screen — or at minimum does not falsely claim a "no refund" policy. At least 1 implementation must be verified.
- Fail criteria: App's own Terms of Service states "no refunds" or "all sales final" — this contradicts platform policies and may mislead users who are entitled to request platform refunds.
- Skip (N/A) when: No IAP in the app; or cannot determine from the codebase.
- Detail on fail:
"src/app/(legal)/terms.tsx states 'All purchases are final and non-refundable' — this contradicts Apple's and Google's refund policies and may mislead users" - Remediation: Replace any "no refunds" language in your Terms of Service with accurate language:
"Purchases are processed by Apple / Google. For refund requests, visit reportaproblem.apple.com (iOS) or your Google Play purchase history (Android)."
External references
- external · apple-refund-policy — Apple Media Services — Terms and Conditions (refund process via reportaproblem.apple.com)
- external · google-play-refund-policy — Google Play — Refund Policy for Apps and In-App Purchases
Taxons
History
- 2026-04-18·v1.0.0·Initial import from app-store-iap-subscriptions·automated