RevenueCat & App Store Configuration Plan
Prepared 18 July 2026 · product requirements normalized from the placement artifact, current implementation status, and founder requirements
Configure products and offers so every price shown by iOS is purchasable, entitlement changes reach the backend, trial/discount eligibility is truthful, and paywalls can change remotely without an app release.
Decisions required before configuration
- Approve standard Plus and Pro prices for weekly, monthly, and yearly products.
- Approve whether the 50% and 65% discounts apply to the first billing period only (recommended) or multiple periods.
- Approve which cadence is shown in rescue offers; monthly-only is recommended for clarity.
- Confirm the 3-day trial is available on Plus monthly/yearly and not Pro.
- Confirm storefront availability and localized pricing strategy.
- Confirm whether RevenueCat Targeting/Experiments plan level is available.
App Store Connect checklist
- Accept Paid Applications Agreement and complete tax/banking requirements.
- Use one approved subscription group for Lissin Plus/Pro so Apple manages upgrades, downgrades, and crossgrades.
- Keep tier ordering explicit: Pro at higher service level than Plus.
- Verify existing standard products:
app.lissin.audio.{plus,pro}.{weekly,monthly,yearly}. - Set localized display names, descriptions, standard prices, and review screenshots.
- Add a 3-day Free introductory offer to approved Plus products. Apple applies it automatically when eligible.
- Create the real products/offer mechanism used by the 50% rescue and attach discounted introductory pricing for the agreed duration.
- Create the real products/offer mechanism used by the 65% rescue and attach discounted introductory pricing for the agreed duration.
- Ensure rescue products renew to the standard Plus price after the offer period and disclose that price.
- Create promotional offers for current/previous subscribers if retention use cases require them; generate a subscription key.
- Create win-back offers for eligible lapsed subscribers after the base products are approved.
- Upload Privacy Policy and Terms links required on subscription surfaces.
Apple allows one introductory offer per subscription group. Promotional offers require the customer to have or previously have had an active subscription. Offer codes can reach new/existing users. Win-back offers are for lapsed users. The app must ask RevenueCat/StoreKit for eligibility before showing trial or discounted terms.
RevenueCat project checklist
- Verify App Store app, bundle ID, public SDK key, App Store Connect API key, and In-App Purchase key.
- Import every standard and rescue product from App Store Connect.
- Create entitlements named exactly
plusandpro; attach all matching standard/rescue products. - Decide whether Pro also grants Plus entitlement. Recommended: backend tier rank remains authoritative; either attach both or ensure app always checks Pro before Plus.
- Create offerings:
default_standard,rescue_50,rescue_65, and lapsed/win-back offerings as applicable. - Attach a RevenueCat paywall to each offering, with renewal terms and eligibility-aware trial copy.
- Create RevenueCat Placements matching the iOS placement registry: onboarding, locked episode, generation allowance, cadence, document, remix, second show, Pro sources, plan billing, transcript, speed, soundscape, Explore limit.
- Configure targeting by placement/customer attributes if available; otherwise let backend/iOS choose an explicit offering ID.
- Enable Paywall UI webhook events for impressions, closes, cancellations, exit offers, and component interactions.
- Configure production and dev webhooks separately with exact Authorization secrets.
- Keep sandbox events separate in dashboards and verify environment is projected by backend.
- Choose the Settings/Profile management surface: Apple native management sheet for the baseline, or RevenueCat Customer Center if the project plan supports it.
- If Customer Center is used, configure Change Plans, Cancel, Missing Purchase/Restore, Refund Request, support links, and the allowed product-change set.
Exit-offer configuration
- Present the standard RevenueCat paywall using a supported presenter API, not an embedded paywall view.
- Configure
rescue_50as its single exit offering in RevenueCat Paywall Builder. - When the user closes the 50% exit wall, close the paywall stack and persist offer stage
rescue50. - At a later high-intent event after server cooldown, present
rescue_50as the primary paywall. - Configure
rescue_65as that paywall's single exit offering. - After 65% closes, dismiss completely and persist the final stage/cooldown. Never show a fourth wall.
RevenueCat offerings choose store products; they do not independently change an App Store price. “50%” and “65%” copy must be computed from localized StoreKit price data and match the product/offer actually presented. Exit offers require purchases-ios 5.52.0+ and presenter-based RevenueCat paywalls.
Exact 3-day trial setup
- App Store Connect → app → Subscriptions → subscription group → Plus product.
- Subscription Prices → add Introductory Offer → select countries, start date, no end date unless campaign-limited.
- Select Free and duration 3 days; save and allow propagation.
- In RevenueCat, sync/import the product and confirm introductory offer metadata appears.
- Paywall shows “3 days free, then [localized price]/[period]” only when intro eligibility is eligible.
- Purchase normally; Apple automatically applies the trial. RevenueCat webhook arrives with
period_type=TRIAL. - Backend returns trial phase and restricted trial limits. On renewal, webhook period becomes normal and full Plus limits apply.
Subscription-change configuration
- Keep every interchangeable Plus/Pro weekly, monthly, and yearly product in the same App Store subscription group.
- Rank Pro above Plus; place equal-service billing cadences at the same service level where appropriate.
- Use Apple’s native manage-subscriptions sheet for the minimum-dependency implementation. It lets the customer view, upgrade, downgrade, crossgrade, or cancel.
- Alternatively use RevenueCat Customer Center for a branded self-service flow; confirm the RevenueCat plan and iOS SDK version support Change Plans customization.
- Never change a subscription on behalf of the user. The customer confirms every change through StoreKit/App Store UI.
- Do not treat a RevenueCat
PRODUCT_CHANGEwebhook as effective access by itself; wait for the active transaction/renewal projection. - Test the special introductory-period case because an upgrade during a trial may temporarily leave both products active.
Webhook contract checklist
- RevenueCat App User ID equals authenticated Lissin user UUID before any purchase.
- Handle INITIAL_PURCHASE, RENEWAL, CANCELLATION, UNCANCELLATION, EXPIRATION, PRODUCT_CHANGE, BILLING_ISSUE, TRANSFER, PROMOTIONAL, and relevant paywall UI events.
- Persist
product_id,period_type, offering, offer code/discount identifier, purchase/expiry timestamps, environment, transaction IDs, and entitlement IDs. - Deduplicate provider event IDs and reject stale entitlement projections.
- Alert on webhook 4xx/5xx, unmatched users, entitlement-name mismatch, and activation latency beyond SLA.
Store test matrix
- New eligible user starts 3-day Plus trial.
- Ineligible user sees standard terms, not trial copy.
- Standard paywall closes into 50% once.
- Later 50% paywall closes into 65% once.
- Localized prices and savings are correct in every supported storefront.
- Trial converts, cancels before renewal, expires, and encounters billing issue.
- Plus upgrades to Pro; Pro downgrades to Plus at correct effective time.
- Restore on same and different device; transfer behavior; refund and revoked entitlement.
- Promotional and win-back eligibility returns only valid offers.
- Dev/TestFlight purchases never project into production access.
Official references
- RevenueCat products, entitlements, offerings
- RevenueCat paywalls and exit offers
- RevenueCat iOS offers
- RevenueCat webhook fields
- Apple introductory offers
- Apple promotional offers
- Apple in-app manage-subscriptions sheet
- Apple upgrade, downgrade, and crossgrade behavior
- RevenueCat Customer Center
- RevenueCat Customer Center Change Plans for iOS