Appendix B: What RevenueCat Replaces
A quick reference comparing which billing concerns RevenueCat handles and which still require your code or infrastructure.
Client-Side
Concern | Raw PBL | RevenueCat |
|---|---|---|
BillingClient setup and configuration | You write | Handled internally |
Connection lifecycle and reconnection | You write | Handled internally |
PurchasesUpdatedListener | You write | Replaced by purchase callbacks |
queryProductDetailsAsync() | You write | Replaced by awaitOfferings() / awaitGetProducts() |
launchBillingFlow() | You write | Called internally by awaitPurchase() |
Acknowledgement after purchase | You write | Handled automatically |
Consumption of consumables | You write | Handled automatically (mark product as consumable in dashboard) |
queryPurchasesAsync() on launch | You write | Handled internally on connection |
Retry logic for transient errors | You write | Handled internally by SDK |
BillingResponseCode handling | You write | Abstracted to PurchasesErrorCode |
In-app payment recovery messages | You write | Automatic (showInAppMessagesAutomatically = true) |
Subscription option selection for offers | You write | defaultOption selected automatically |
Server-Side
Concern | Raw PBL | RevenueCat |
|---|---|---|
Google Play Developer API integration | You build | RevenueCat backend |
Service account credential management | You manage | Configured once in RC dashboard |
Receipt verification on every purchase | You build | Automatic |
Purchase token validation and deduplication | You build | RevenueCat backend |
linkedPurchaseToken chain traversal | You build | RevenueCat backend |
RTDN processing and dispatch | You build | RevenueCat processes, sends webhooks |
Cloud Pub/Sub setup | You set up | Not needed |
Subscription state machine on backend | You build | CustomerInfo computed by RC |
Entitlement computation across 7 states | You build | isActive computed by RC |
Grace period / account hold tracking | You build | billingIssueDetectedAt |
Cancellation with access-until-expiry logic | You build | isActive + unsubscribeDetectedAt |
Price cohort tracking | You build | RC backend handles |
Product-to-entitlement mapping | You build | Configured in RC dashboard |
What Remains Your Responsibility
Concern | Notes |
|---|---|
User authentication system | You bring your own; pass user ID to RC |
Your own database of users | RC is not your primary user database |
Premium content server-side | Verify via RC REST API or webhooks |
Webhook receiver endpoint | You build; RC sends, you receive |
Play Console product creation | Still done in Play Console |
Subscription deferral | Direct Google Play API call |
Subscription revocation | Direct Google Play API call |
Alternative billing programs | Limited RC support; may need raw PBL |
App UI (paywalls, onboarding) | You build (RC Paywalls UI optional) |
Push notifications for payment issues | You build on top of webhook events |