Skip to content
Back to skills

Paywall Compliance Play

ASecurity

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'.

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 4, 2026
developmentgoreactbackend

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 4, 2026

npx -y skills add khadinakbarlabs/expo-mobile-app-builder --skill paywall-compliance-play --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Paywall Compliance Play?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Paywall Compliance Play
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/khadinakbarlabs-paywall-compliance-play/badge)](https://www.skillsdirectory.com/skills/khadinakbarlabs-paywall-compliance-play)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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:
<Pressable onPress={restore}><Text>Restore Purchases</Text></Pressable>
```

## Cancel link

```tsx
import { Linking } from 'react-native';

<Pressable onPress={() => Linking.openURL('https://play.google.com/store/account/subscriptions')}>
  <Text>Manage subscription</Text>
</Pressable>
```

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

Files in this skill

  • SKILL.md2.4 KB
  • agents/openai.yaml200 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…