Q:

Stripe: Is it possible to bill the user immediately and change the billing cycle at the same time?

I've been trying to solve this problem for quite some time now.
For example, the user has subscribed to a monthly plan starting May 1, 2020 which will end on June 1, 2020. The user cancelled the subscription with remaining 5 unused days and switched over to another monthly plan.
I want to be able to carry over the unused day to the new subscription and add to the new billing cycle.
So the user should be charged immediately when user switched over to another monthly plan and the next billing date should be Date when the user has switched over to another plan + the 5 unused days.
I'm using node js for this one.
Thank you 

A:

Stripe doesn't bill the customer for the new period until that period actually starts. Thus there isn't a concept of paying now and actually starting the subscription five days from now.
What you can do is bill for the first period up front and then set the second period to begin on the later date (essentially extending the end of the first period, rather than delaying the start of it). The new plan's first period starts on May 26 and ends on July 1.

Update the Subscription to change the plan (whether or not you use proration is up to you). In your example, you would make this call on May 26, 2020.
Make sure the customer is charged for the new plan/period.
After payment, update the subscription to give it a trial period until the end of the "period + 5 days". In your example, you'd update the subscription with a trial period ending on July 1, 2020.

