Subscription price, duration, and auto-renewal terms visible before purchase
Why it matters
Apple guideline 3.1.2 and the FTC Negative Option Rule both require that subscription price, billing period, auto-renewal disclosure, and cancellation mechanism are clearly displayed before the user initiates a purchase. Apps that bury auto-renewal disclosures in Terms of Service links or show only a price without a billing period have been rejected under these requirements. Beyond policy, the FTC Negative Option Rule (updated 2023) applies to recurring charges to US consumers regardless of platform — companies that violate it face FTC enforcement actions. Google Play Subscription Policy carries equivalent disclosure requirements.
Severity rationale
High because missing auto-renewal disclosure is one of the most consistent subscription-app rejection reasons under Apple guideline 3.1.2, and also triggers FTC Negative Option Rule compliance exposure.
Remediation
Ensure all four required elements appear above the purchase button on the paywall, visible without any additional tap or scroll:
// PaywallScreen.tsx — all four elements above the CTA
<Text>{price}/month</Text>
<Text>Billed monthly. Automatically renews until cancelled.</Text>
<Text>Cancel anytime in device Settings → Apple ID → Subscriptions.</Text>
<SubscribeButton />
<PrivacyAndTermsLinks />
The price must come from the platform IAP SDK — never a hardcoded string. For annual plans, the billing period must be explicit ("billed annually" rather than showing only a per-month breakdown). For Apple, also include links to your Terms of Service and Privacy Policy on the paywall.
Detection
- ID:
subscription-terms - Severity:
high - What to look for: Count all relevant instances and enumerate each. Examine every paywall component identified in Stack Detection. Apple guideline 3.1.2 and Google Play Billing Policy require that the following information is clearly displayed BEFORE the user taps the purchase button: (1) the price (must be localized, from the platform SDK — see pricing-compliance checks); (2) the billing period (monthly, annually, weekly); (3) explicit disclosure that the subscription auto-renews ("automatically renews", "recurring charge", or equivalent); (4) cancellation mechanism (at minimum: "Cancel anytime" with a pointer to device settings). Look for these elements in the paywall component's render output. Failure patterns: price displayed but no mention of auto-renewal; "Cancel anytime" present but no price; price shown only after user taps a "See plan details" expansion — must be visible without interaction; auto-renewal disclosed only in a Terms of Service link that requires navigation away from the paywall.
- Pass criteria: All four elements (price, billing period, auto-renewal disclosure, cancellation mention) are present in the paywall UI without requiring any additional tap or scroll to reveal. At least 1 implementation must be verified.
- Fail criteria: Any of the four mandatory elements is absent from the paywall; any mandatory element is hidden behind a toggle, expansion, or secondary navigation.
- Skip (N/A) when: No subscription IAP in the app (consumables only or no IAP).
- Detail on fail:
"PaywallScreen.tsx shows price and billing period but contains no auto-renewal disclosure — Apple guideline 3.1.2 requires 'subscription automatically renews' language before purchase"or"Annual subscription paywall shows '$49.99' with no billing period label — duration not disclosed before purchase" - Remediation: Apple's review team checks this specifically. Missing auto-renewal disclosure is one of the most consistent rejection reasons for subscription apps.
- Ensure your paywall contains all four elements above the purchase button:
<Text>{price}/month</Text> <Text>Billed monthly. Automatically renews. Cancel anytime in device Settings.</Text> <SubscribeButton /> - The price must come from the platform SDK, not a hardcoded string (see pricing-compliance checks)
- For Apple: also include a link to your Terms of Service and Privacy Policy on the paywall
- Ensure your paywall contains all four elements above the purchase button:
External references
- external · apple-guideline-3.1.2 — Apple App Store Review Guidelines § 3.1.2 — Subscriptions (auto-renewal disclosure requirements)
- external · ftc-negative-option-rule — FTC Negative Option Rule — Pre-purchase disclosure of subscription terms (16 CFR Part 425)
- external · google-play-subscription-policy — Google Play Subscription Policy — Pre-purchase disclosure requirements
Taxons
History
- 2026-04-18·v1.0.0·Initial import from app-store-iap-subscriptions·automated