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.
Price Increase Consent
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.