Store and billing operations checklist

RevenueCat & App Store Configuration Plan

Goal

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

App Store Connect checklist

Offer eligibility

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

Exit-offer configuration

  1. Present the standard RevenueCat paywall using a supported presenter API, not an embedded paywall view.
  2. Configure rescue_50 as its single exit offering in RevenueCat Paywall Builder.
  3. When the user closes the 50% exit wall, close the paywall stack and persist offer stage rescue50.
  4. At a later high-intent event after server cooldown, present rescue_50 as the primary paywall.
  5. Configure rescue_65 as that paywall's single exit offering.
  6. After 65% closes, dismiss completely and persist the final stage/cooldown. Never show a fourth wall.
Do not fake discounts

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

  1. App Store Connect → app → Subscriptions → subscription group → Plus product.
  2. Subscription Prices → add Introductory Offer → select countries, start date, no end date unless campaign-limited.
  3. Select Free and duration 3 days; save and allow propagation.
  4. In RevenueCat, sync/import the product and confirm introductory offer metadata appears.
  5. Paywall shows “3 days free, then [localized price]/[period]” only when intro eligibility is eligible.
  6. Purchase normally; Apple automatically applies the trial. RevenueCat webhook arrives with period_type=TRIAL.
  7. Backend returns trial phase and restricted trial limits. On renewal, webhook period becomes normal and full Plus limits apply.

Subscription-change configuration

Webhook contract checklist

Store test matrix

Official references