--- name: "paywall-compliance-play" description: "Ensure paywall complies with Google Play's subscription policy: clear terms, restore, cancel, no dark patterns. Use when the user says 'paywall compliance play', 'play subscription policy'." --- # Paywall Compliance (Play) Play subscription policy checklist. ## Required disclosures (on paywall) - [ ] Price + currency clearly visible - [ ] Billing period (weekly/monthly/yearly) - [ ] Free trial length AND that it converts to paid - [ ] When billing starts ("Day 7: charged $X") - [ ] Cancel instructions (in Play Store → Subscriptions) - [ ] Restore Purchases button visible (not hidden in menu) - [ ] Privacy Policy link - [ ] Terms of Service link ## Required UX - Free trial timeline shown visually - Cancellation accessible via Play (not just in-app) - Restore Purchases works for users on new device - No fake urgency (countdown timers that don't actually expire) - No "FREE" labels if paywall converts to paid ## Prohibited - Pre-checked auto-renew without consent - Hidden cancel link (>2 scrolls) - Auto-conversion without notice - External payment links (unless EEA/UK/US + enrolled) - Misleading pricing (decoy + bait) - "Limited offer" always present ## Restore Purchases Must work without login if user has Google account with active subscription: ```tsx import Purchases from 'react-native-purchases'; const restore = async () => { const { customerInfo } = await Purchases.restorePurchases(); if (customerInfo.entitlements.active.pro) { // grant access } }; // Button: Restore Purchases ``` ## Cancel link ```tsx import { Linking } from 'react-native'; Linking.openURL('https://play.google.com/store/account/subscriptions')}> Manage subscription ``` Opens Play Store subscription management directly. ## Refund policy You can't issue refunds — Google does. Direct users to: play.google.com/store/account/orderhistory ## External Payments (EEA/UK/US only) If you offer alternative billing: 1. Enroll in Play Console 2. Display "Use other payment method" link 3. Pay 11% commission (vs 15-30%) when used 4. Still must accept Play Billing as default option ## Pair with - `design-paywall-android` for UI - `restore-purchases-android` for restore UX - `subscription-server-validation-play` for backend