Paywalls, Free Trials and Intro Offers That Pass Review
Design subscription paywalls, free trials and intro offers that pass App Store and Google Play review, convert well and don't feel like a trick.
Full-Stack, Mobile & AI Engineer
A paywall is the most reviewed screen in a subscription app. Apple and Google check that users understand exactly what they'll pay and when, and users decide in seconds whether the offer feels fair or slippery. The same design choices that get paywalls rejected (a buried renewal price, a hidden close button, "free" in huge letters and the real cost in tiny grey text) also erode trust and increase refunds.
This guide covers how to design subscription paywalls, free trials and introductory offers that pass review on both stores and still convert well, with the rules quoted where they matter.
Key takeaways
- Apple requires subscriptions to provide ongoing value and last at least seven days (guideline 3.1.2(a)).
- Before asking someone to subscribe, describe clearly what they get for the price (3.1.2(c)), plus the price, billing period and auto-renewal terms.
- Make the amount that will actually be charged the most prominent price, especially when you also show per-week or per-month equivalents.
- Include restore purchases, and links to your terms and privacy policy, on or near the paywall.
- Configure trials and intro prices in the stores (introductory offers on iOS, offers on Google Play base plans), not with your own timers.
The rules that shape every paywall
Ongoing value and minimum length. Guideline 3.1.2(a): "If you offer an auto-renewable subscription, you must provide ongoing value to the customer, and the subscription period must last at least seven days and be available across all of the user's devices."
Clear description before purchase. Guideline 3.1.2(c): "Before asking a customer to subscribe, you should clearly describe what the user will get for the price." Apple's examples include "How many issues per month? How much cloud storage? What kind of access to your service?"
Required details. Show the subscription name, length, price (and price per unit where it helps), and that it renews automatically until cancelled. Link to your terms of use and privacy policy in the app and in your store metadata.
Don't force unrelated permissions. Apple forbids requiring things like notifications or tracking to access features (5.1.2(i)), so a paywall can't be the price of saying no to permissions.
What reviewers commonly reject
| Paywall pattern | Why it's a problem | Fix |
|---|---|---|
| "Free" headline, renewal price in small grey text | Users can't tell what they'll be charged | Show the billed price clearly near the button |
| Weekly price emphasised for an annual plan | The actual charge is hidden behind an equivalent | Make the annual charge the main price; equivalents secondary |
| No visible way to close | Feels coercive; reviewers object | A clear close or "not now" control |
| Missing restore purchases | Returning subscribers can't get access | A "Restore purchases" button |
| No terms or privacy links | Required information missing | Links on the paywall and in metadata |
| Features promised that aren't in the app | Misleading | List only what subscribers actually get |
Trials and introductory offers, done right
Use the stores' own mechanisms so billing, eligibility and receipts are handled correctly:
- App Store introductory offers: a free trial, pay as you go (a discounted price for several periods) or pay up front (a discounted price for a fixed period). Users are eligible for one introductory offer per subscription group.
- App Store promotional offers and offer codes: discounts for existing or lapsed subscribers, and codes for campaigns.
- Google Play offers: free trials and introductory prices attached to a subscription's base plan, with eligibility rules you configure.
On the paywall, say exactly what happens: "7 days free, then $59.99 per year. Cancel anytime in Settings." That one sentence covers most of what reviewers look for.
Designing a paywall that converts
- Lead with the outcome, not features: "Train with a plan that adapts to you", followed by three short, concrete benefits.
- Show two or three plans at most, with one highlighted (often annual, with honest savings).
- Use social proof you can stand behind: real ratings, real numbers.
- Place the paywall at a moment of intent, such as after onboarding or when someone taps a premium feature, not on first launch before any value.
- Test one thing at a time (headline, plan order, trial length) with remote paywalls and experiments.
From the field: I've shipped subscription billing with RevenueCat, in-app purchases and Stripe across 12+ apps, including MOVE, a subscription fitness platform with 100K+ active users. Paywalls that are honest about price and renewal tend to be the ones that get through review without back-and-forth, which is reason enough to design them that way.
A pre-submission paywall checklist
- Subscription name, length, price and auto-renewal stated near the purchase button.
- Billed amount is the most prominent price; any per-week or per-month equivalent is secondary.
- Trial terms written as "X days free, then [price] per [period]".
- Restore purchases visible.
- Terms of use and privacy policy links on the paywall and in store metadata.
- A clear way to close the paywall.
- Every promised feature exists in the submitted build.
- Products are approved for review and attached to the app version.
When subscriptions don't show up in the app
If your paywall loads with no products, check the store setup before the code. On iOS: the Paid Applications agreement, tax and banking are complete, the subscription has all required metadata, and a brand-new subscription is submitted for review together with an app version. On Android: the app is on at least one testing track and the subscription is active. Test with sandbox accounts on iOS and license testers on Android, and remember that new products can take a while to appear.
FAQ
Do subscription apps need a free trial?
No. Trials are optional, but they often improve conversion for products whose value takes a few days to feel. If you offer one, configure it as an introductory offer (iOS) or an offer on a base plan (Google Play), and state clearly what happens when it ends.
Why was my paywall rejected by Apple?
Usually because users couldn't clearly see what they'd be charged and when, the renewal terms were hidden, restore or terms links were missing, or the paywall promised features the app doesn't have. Make the billed price and renewal terms prominent and the rest easy to find.
Can I show a weekly price for an annual subscription?
You can show an equivalent, such as "$1.15 per week", but the amount actually billed, for example "$59.99 per year", should be the clearest price on the screen. Emphasising the small equivalent while hiding the real charge is a common reason for rejection.
What's the minimum subscription length on the App Store?
Auto-renewable subscriptions must last at least seven days, according to Apple's guideline 3.1.2(a), and must provide ongoing value. Shorter, one-off access is better sold as a non-renewing purchase or a consumable where appropriate.
Next steps
If you're designing a paywall or a trial strategy, I can build it with RevenueCat or your own billing, set up experiments, and check it against the store rules before you submit. Get in touch, or see how I work as a React Native developer.
Sources
- App Review Guidelines (3.1.2, 5.1.2), Apple
- Auto-renewable subscriptions, Apple
- Offer free trials and introductory pricing, App Store Connect Help
- Understanding subscriptions on Google Play, Google Play Console Help
- Paywalls, RevenueCat
Related
In-App Purchases in React Native: RevenueCat vs Going Direct
React Native in-app purchases in 2026: RevenueCat vs expo-iap and react-native-iap, server validation, Android acknowledgement and when each choice wins.
When Apple Requires In-App Purchase, and When You Can Use Stripe
Apple's in-app purchase rules in plain English: what must use IAP, the exceptions (physical goods, services, reader apps, US links) and what Apple charges.
RevenueCat with Expo: Paywalls, Entitlements and Webhooks
A practical RevenueCat guide for Expo apps: setup, offerings, purchases, entitlements, paywalls, restores, backend webhooks, and RevenueCat vs Stripe.
