Google Play Billing provides various Proration Modes via the BillingFlowParams.ProrationMode API to help developers implement an upgrade and downgrade experience.
One of the most frustrating Proration Modes to work with is DEFERRED. Here’s how Google defines this mode:
Replacement takes effect when the old plan expires, and the new price will be charged at the same time.
Typically, app developers use DEFERRED for the downgrade use case.
Practically speaking, this mode will wait before making the product the user is downgrading take effect until after the current (the future old plan) plan expires.
For example, if your current plan has a monthly bill term, the new plan will take effect when the current plan is set to renew within the next up to 31 days.
Similarly, if the current plan is an annual bill term, it may be quite a while until the DEFERRED plan takes effect. If the user downgrades, the same day they bought an annual plan, the new plan won’t take effect for 365 days!
Testing the DEFERRED Proration Mode can be a bit tricky. Let’s dig into this a bit further.
Here’s what you need to know to successful test and have confidence in your DEFERRED implementation:
Development builds will trigger the downgrade flow, and you will get the confirmation email from Google.
However, the deferred product will not replace the current plan at the end of the current plan’s bill term. In fact, it will be “stuck” in limbo where the current plan will be active, despite not renewing and an expiration time in the past, and the new plan will not be active.
You can get out of this state by cancelling the current plan manually via Play Store > Payment & subscriptions > Subscriptions. Doing so will throw an error in the Play Store app, but the cancel will expire the current plan and the deferral.
Fortunately, a signed build distributed via a Test Track, including Internal, will allow you to conduct end-to-end testing of DEFERRED plan changes.
If you have any problems testing this scenario via a Test Track build, be sure you are setup for successful IAP & subscription testing:
Testing the DEFERRED Proration Mode is tricky and so can be providing customer support to users who have triggered this duration mode (likely via a downgrade).
Here are some real world considerations you need to know about Google Play DEFERRED plan changes:
Make your life easier by simplifying your Play Billing implementation with Nami.
Here’s what we have to offer:
Now you can focus on building a great app experience, not hassling with Play Billing infrastructure. Get started for free here.
Here's how to solve one of the most common errors implementing Google Play Billing: BillingResponseCode.ITEM_UNAVAILABLE (code 4).
Google Play Billing Library v5, subscription offers, LiveOps events, prepaid subscriptions & everything you need to know about IAPs and from Google I/O.