RevenueCat Billing Integration

RevenueCat subscription architecture for entitlements, paywalls and cross-store billing workflows.

We use RevenueCat where mobile subscription products need coordinated entitlement state across Apple and Google stores while backend access control, store policy and customer-support responsibilities remain explicit.

Unified CoreStoreKit 2 & Play Billing
UI DynamicCloud-Managed Paywalls
Access EngineEntitlements Cache
Sync ProtocolSigned Server Webhooks
Subscription Engine

RevenueCat Billing & Entitlement Console

Unified In-App Purchase Flow

StoreKit 2 & Play Billing

Abstracts Apple StoreKit 2 and Google Play Billing 6+ into a single typed async function call on the client, eliminating platform-specific edge cases.

Single Purchases.purchase() Call
Automatic Transaction Verification
Handles Family Sharing & Grace Periods
Zero Local Receipt Validation Jitter
Mobile ClientPurchases SDKInstant Cache Access
RevenueCat CloudEntitlements EngineStore Validation
Backend DBPostgreSQL / APISigned Webhooks
Signature Technical Lab

Subscription Entitlements & Webhook Workbench

Inspect how RevenueCat orchestrates in-app purchases across iOS StoreKit 2 and Google Play Billing, manages dynamic cloud paywalls, and coordinates backend entitlement webhooks.

Active Architecture Spec

Cross-Platform Pro Subscription

Single purchase flow allowing users to subscribe via Apple App Store or Google Play while accessing features seamlessly on both mobile platforms.

01. Mobile Client SDKPurchases Client
Client Framework

react-native-purchases / purchases_flutter / PurchasesFramework

Queries active offerings and initiates store transaction sheets with a single unified method.

Device Entitlement State
App User ID: usr_882941
Entitlement: 'pro_features'
Status: ACTIVE
Store: Apple App Store
Sub-Millisecond Offline Entitlement Cache
02. Cloud Entitlement EngineReceipt Validator
Cloud Service Role

RevenueCat Cloud Entitlement Manager

Direct server-to-server receipt validation with Apple StoreKit 2 and Google Play Billing

Entitlement Identifier
Entitlement: 'pro_features' (Identifier: pro_monthly_29)
StoreKit 2 & Play Billing Receipt Verification
03. Backend SyncSigned Webhook
Webhook Trigger Event

INITIAL_PURCHASE

Server ActionReceives signed webhook, verifies authorization header, and sets is_pro = true
Database TargetPostgreSQL accounts & subscription_periods table
Idempotent Webhook Signature Verification
Purchases Client Call & Server-to-Server Webhook JSON ContractRevenueCat Protocol
Purchases Client Methodconst { customerInfo } = await Purchases.purchasePackage(packageToBuy); if (customerInfo.entitlements.active['pro_features']) { unlockUi(); }
Server Webhook JSON Payload{ 'event': { 'type': 'INITIAL_PURCHASE', 'app_user_id': 'usr_882941', 'entitlement_ids': ['pro_features'], 'period_type': 'NORMAL' } }
System Architecture

RevenueCat Subscription Multi-Tier Topology

A structured breakdown of how mobile client apps, Apple StoreKit 2, Google Play Billing, the RevenueCat entitlement engine, and backend webhooks coordinate reliably.

01
Cross-Platform Client

Mobile Client Purchases SDK Layer

Unified client SDK wrapping StoreKit and Google Play APIs, managing offline entitlement caching and rendering dynamic paywalls.

react-native-purchasespurchases_flutterPurchases.frameworkRevenueCatUI
02
Apple & Google Runtimes

Platform Native StoreKit & Billing APIs

Underlying operating system payment sheets executing credit card processing, biometric confirmation, and digital transaction receipts.

Apple StoreKit 2Google Play Billing 6+App Store ReceiptsTransaction JWS
03
Centralized Billing SaaS

RevenueCat Cloud Entitlement Engine

Cloud-hosted receipt validation cluster mapping StoreKit/Play transactions to user accounts, active offerings, and entitlement tiers.

Receipt ValidationEntitlement MappingOffering A/B TestingSubscriber Analytics
04
Event Streaming

Signed Server Webhook Dispatcher

At-least-once HTTP POST webhook dispatcher notifying backend services on subscription renewals, transfers, and churn events.

HMAC SHA256 SignaturesExponential BackoffIdempotency KeysEvent Payloads
05
Database Permissions

Enterprise Core Database & Access Controls

Your primary relational database storing account entitlements, gating server-side API capabilities, and running customer success workflows.

PostgreSQL / MySQLSubscription State TableAPI Role GatesCRM Webhooks
Architectural Fit

When RevenueCat is the Right Choice

  • Your mobile application offers digital subscriptions or in-app purchases on both Apple App Store and Google Play.
  • Marketing and monetization teams want to modify paywall layouts, pricing tiers, and copy without code deployments.
  • The engineering team wants to avoid maintaining complex native receipt validation servers and StoreKit 2 edge cases.
  • Unified subscriber analytics (MRR, churn rate, trial conversion, LTV) are required across iOS and Android.
Boundary Analysis

When to Choose Direct StoreKit or Web-Only Billing

  • Purchases are strictly physical goods or web-based services invoiced solely through Stripe or PayPal.
  • The application is strictly single-platform (iOS only) with simple non-renewing consumables and existing StoreKit code.
  • Custom enterprise contract billing rules require custom offline negotiation outside standard mobile app store rails.
Production Operations

In-App Purchase & Webhook Release Pipeline

01. PHASE

Store Console Credentials Setup

Configuring App Store Connect in-app purchase keys and Google Play Service Account JSON credentials.

02. PHASE

Sandbox Test User Verification

Simulating purchase flows, family sharing, grace periods, and trial conversions using StoreKit test accounts.

03. PHASE

Webhook Signature Verification

Implementing HMAC SHA256 header validation on custom backend receivers to prevent forged event injections.

04. PHASE

Paywall Offering Deployment

Publishing dynamic offerings and localized currency maps to production apps with instant cloud propagation.

Next Architecture Step

Discuss Your Mobile Subscription Architecture

Evaluate how unified in-app purchases, dynamic cloud paywalls, and cross-store entitlement webhooks can accelerate your mobile monetization roadmap.

Subscription Portfolio

Related Technical Proof & Service Capabilities

Services & solutions

mobile-app-development
Technical FAQs

Frequently Asked Questions About Mobile In-App Subscriptions

What problem does RevenueCat solve?

RevenueCat wraps complex iOS StoreKit and Google Play Billing APIs behind a unified SDK, managing entitlement states and webhooks.

Does RevenueCat replace Apple and Google billing systems?

No. All credit card operations and payouts remain managed by Apple and Google. RevenueCat acts as an orchestration and check layer.

What is an entitlement?

An entitlement represents access to a specific feature or tier (like 'premium_access') granted to a user when a purchase check is active.

How are application access and backend access coordinated?

The device SDK updates layout flags immediately. Simultaneously, server-to-server webhooks notify your database to update user permissions.

How do restore-purchase workflows work conceptually?

When a user clicks restore, the SDK queries the device store for active transactions and links them to the active user profile.

How are subscription workflows tested?

We test transactions in StoreKit and Google Play sandbox environments, verifying that entitlement states change correctly.

What backend responsibilities remain?

Your database must listen to webhooks, update backend access permissions, and manage user profile tables.

When should a team use direct store billing instead?

When you only target a single operating system (e.g. iOS-only) and do not need cross-platform entitlement sharing.