INTEGRATION · REVENUECAT · SUBSCRIPTIONS · ENTITLEMENTS
AVAILABLE FOR WORKFreelance · Contract · Full-time

RevenueCat integration for Flutter apps.

RevenueCat sits between your app, the App Store and Google Play so subscription state is consistent across platforms. The SDK is straightforward; the hard part is modelling products, entitlements and access rules so paying users never lose access by accident.

StoreKit · Google Play Billing · Entitlements · Paywalls · Webhooks

01 · WHY

What RevenueCat actually replaces

Apple and Google still process the payment. RevenueCat handles the parts developers usually rebuild badly: receipt validation, subscription status, renewals, billing retries, refunds and a customer view that spans both stores.

It is not a payment gateway and it does not remove store fees. It removes the entitlement logic that otherwise ends up duplicated in the app and the backend.

02 · SETUP

Products, offerings and entitlements

Products are created in App Store Connect and the Play Console first. RevenueCat then groups them into offerings and maps them to entitlements such as 'pro' or 'premium'. The Flutter app reads the current offering and renders the paywall from it.

Identity matters: anonymous ids need to be merged into the signed-in user id so a purchase made before login is not lost.

03 · ACCESS

Checking entitlements in the right places

The app can show or hide UI from the SDK, but protected API calls must check the entitlement on your backend. Webhooks keep that backend in sync for renewals, cancellations, billing retries and refunds.

Handle grace periods and on-hold states deliberately: cutting access at the first failed renewal creates support tickets from customers who are still being retried.

04 · MIGRATE

Moving from custom billing

If you already have subscribers, migration is the risky part. Existing receipts need to be validated and mapped to entitlements, and the old system has to stay readable until every active customer is accounted for.

I test sandbox purchases, restores, upgrades, downgrades and webhook replays before switching live traffic. No one should be charged twice during the move.

WHAT'S INCLUDED

A subscription setup that survives renewals

  • ✓
    Store products
    App Store and Play Console products, pricing and availability.
  • ✓
    Offerings
    Paywall configuration without shipping an app update.
  • ✓
    Entitlements
    One access model across Android, iOS and the backend.
  • ✓
    Validation
    Store receipts and transactions validated server-side.
  • ✓
    Webhooks
    Renewals, cancellations, billing retries and refunds synced.
  • ✓
    Restore
    Restore purchases and anonymous-to-account merging.
  • ✓
    Migration
    Existing subscribers mapped without double billing.
  • ✓
    Analytics
    Revenue, churn and trial conversion kept observable.
SELECTED EXPERIENCE

Real products, practical engineering.

Explore examples of mobile, Smart TV and integrated product work.

Browse all projects ↗
COMMON QUESTIONS

Working together

Do I still need App Store and Play Store products?

Yes. RevenueCat orchestrates the store purchases; it does not sell products on their behalf. Products, pricing and tax settings are configured in App Store Connect and the Play Console.

Can I migrate subscribers from my custom billing?

Usually, with care. Existing receipts are validated, existing entitlement periods are imported or mapped, and the old billing system stays available until the migration is verified. Mandates and store subscriptions have different constraints, so the plan depends on how the customers originally paid.

Does RevenueCat replace my backend?

No. It replaces subscription state management. Your backend still owns accounts, content, usage limits and business rules, and should receive RevenueCat webhooks so it can enforce access.

How long does RevenueCat integration take?

The SDK plus a sandbox paywall is quick. A production setup with backend webhooks, entitlement enforcement, restore flows and migration testing is a larger piece of work, usually measured in weeks rather than days.

LET’S TALK

Need this kind of help on your product?

Share the product, current stage and the support you need. I will review the context and suggest a practical next step.