Back to the RevenueCat homepage
RevenueCat SDK

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

Prefer building from scratch?

The Google Play Billing Handbook covers the same topics with raw BillingClient, Developer API, and RTDNs.

Related chapters

  • Chapter 1: Understanding RevenueCat

    One SDK replaces three separate systems: BillingClient, Google Play Developer API, and RTDNs.

    Learn more
  • Chapter 9: Backend Architecture

    You don't need to build a verification server. RevenueCat already is your verification server.

    Learn more
  • Chapter 10: Webhooks

    One endpoint with normalized JSON events. No Cloud Pub/Sub configuration, no base64 decoding.

    Learn more
What RevenueCat Replaces | RevenueCat