Mobile Starter Kit

RevenueCat payments

Activate live subscriptions, entitlements, restore, management, and webhooks.

The demo includes three paywall presentations and mock monthly/annual plans. The production adapter uses RevenueCat and reads real products, localized prices, trials, and entitlement state from the stores.

Prompt

Read agent-skills/wire-payments.md and PRODUCTION-SETUP.md. Connect my App Store
and Google Play subscriptions to RevenueCat using the included adapter. Configure
the entitlement and monthly/annual packages, live prices, trial, purchase,
restore, management URL, webhook, and account identity. Keep secrets server-side
and test both store sandboxes before switching the adapter.

Setup shape

  1. Create matching subscriptions in App Store Connect and Play Console.
  2. Attach them to the configured RevenueCat entitlement and current offering.
  3. Add only the platform public SDK keys to the app environment.
  4. Keep RevenueCat secret and webhook auth/signing values in Supabase secrets.
  5. Deploy the included idempotent webhook and entitlement mirror.
  6. Run pnpm verify:revenuecat, switch the adapter, rebuild, and test sandbox purchases.

The promotional offer sheet needs a real second RevenueCat offering. Production hides that sheet when no promotional offering ID is configured.

Product rules

  • Never unlock premium because a button callback said “success”.
  • The current RevenueCat CustomerInfo entitlement is client truth.
  • A cancellation normally means “will not renew”, not “expired now”.
  • Display the live localized store price and real trial eligibility.
  • Restore and manage-subscription paths must remain available.
  • Deleting an app account is separate from canceling a store subscription.

Test purchase cancel/failure/success, restore, renewal, grace period, billing issue, expiration, account switch, listener updates, and out-of-order/replayed webhooks before calling payments complete.

On this page