I am struggling to figure out how to manage subscription upgrades and downgrades on the user interface side so that they start at the end of the current billing cycle.
The only Stripe-hosted page for handling subscription changes is the customer billing portal. However, it appears that there is no option in the billing portal to schedule subscription upgrades to occur at the end of the current billing cycle.
While the subscription scheduling API seems like a logical solution, I would prefer to utilize the customer portal interface and incorporate the functionality of subscription scheduling. One approach that I have considered, although it doesn't seem ideal, is as follows:
- Allow users to use the billing portal to modify their subscriptions.
- Stripe immediately updates the subscription on their end.
- When the webhook reaches my server, I instruct Stripe to undo the changes made and schedule the subscription for the next month.
Is this method the only way or the correct way to address this particular scenario?