Back to the RevenueCat homepage
RevenueCat SDKGoogle Play Billing

Chapter 14: Price Changes

Managing price changes from scratch means configuring price increases in the Play Console, understanding how new subscribers and legacy cohorts are affected differently, handling the SUBSCRIPTION_PRICE_CHANGE_UPDATED RTDN, managing consent for opt-in price changes, and tracking edge cases for subscribers on old price cohorts.

With RevenueCat, there is nothing to implement in your app or backend for most price change scenarios.

What RevenueCat Handles Automatically

RevenueCat processes SUBSCRIPTION_PRICE_CHANGE_UPDATED and related RTDNs on its backend. When a subscriber's price cohort changes, or when consent is resolved, RevenueCat updates the CustomerInfo accordingly. Your app reads customerInfo.entitlements["pro"]?.isActive and gets the correct result regardless of which price cohort the user is on.

For opt-in price increases (where Google requires the user to consent before the price change takes effect), Google sends the in-app consent dialog to the user through Google Play's own UI. You do not implement a consent flow in your app.

If the user consents: the subscription continues at the new price, the RTDN fires, RevenueCat records it.

If the user does not consent: the subscription cancels at the end of the current period, the SUBSCRIPTION_CANCELED RTDN fires, RevenueCat records it. Your webhook receives a CANCELLATION event.

Fetching Updated Prices

When you update product prices in the Play Console, the StoreProduct.price returned by awaitOfferings() or awaitGetProducts() reflects the current price for new subscribers. Existing subscribers on a legacy cohort continue to pay their old price, this is a Google Play concern, not something visible in the RevenueCat SDK.

What Requires Action

If you display the subscription price in your paywall, the price from pkg.product.price.formatted is always correct for new purchases. You do not need to handle legacy cohort pricing in your UI, that is between Google and the existing subscriber.

If you want to notify users of an upcoming price increase (for example, an in-app banner before the change takes effect), you can use a RevenueCat webhook event or a Targeting rule to show a specific Offering to affected users. This is an optional enhancement, not a requirement.

Prefer building from scratch?

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

Related chapters

  • Chapter 4: Subscriptions with RevenueCat

    Offerings → Packages → SubscriptionOptions. The complete product hierarchy, clearly simplified.

    Learn more
  • Chapter 13: Cancellations, Pauses, and Winback

    Read unsubscribeDetectedAt and expirationDate. That's your entire cancellation handler, done.

    Learn more
  • Chapter 10: Webhooks

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

    Learn more
Price Changes | RevenueCat