We’re introducing annual billing in the GraphQL Billing API to support more billing models on the app store. Merchants can approve yearly app subscriptions, and Partners are able to track annual revenue in the Partner Dashboard.
We’ve also made it simple for merchants to upgrade an existing app subscription from a monthly to a yearly plan by prorating price differences when they change plan intervals.
If you haven't migrated any parts of your app to using GraphQL yet, this may be a good chance to get your feet wet. It's a fairly narrowly scoped domain, and likely won't have much of an effect on the rest of your app.
Is there a way to address the following scenario if we're using the annual billing in the GraphQL Billing API?
Merchant on annual plan A wants to upgrade to annual plan B
Merchant on annual plan A wants to upgrade to monthly plan B
Assume for the case that plan A < plan B in terms of pricing and features.
In this case, we want to upgrade the merchant's plan without waiting for the current annual plan to end because plan A does not have the features that plan B offers. But according to the limitations in the annual billing offered by the GraphQL Billing API, it's not possible to cancel the current annual subscription and create a new subscription with the new plan. (and settle any refunds through app credits)
How would you recommend to handle this scenario? Thanks in advance.