Stripe subscription - set a minimum time before cancel and stop billing
I'm asked to make Stripe plans where the user can chose between three plans where pricing depends of the duration:
- per month (15$/mo)
- per trimester (12$/mo)
- per year (10$/mo)
For all this plans the user should be charged each month with the corresponding price.
I cannot charge for the whole period so I'm currently wondering how to do that in a clean way.
What would be a good approach to this problem ?
I was thinking about setting 3 monthly plans and allow user to cancel at anytime but:
- setting the subscription end_date to today's date + the cycle's remaining period but I think it's going to be quiet complicated to keep track of the current cyle
- another option coming to my mind is storing the subscrition creation date and minimum allowed cancelation date to then
- set the subscription end_at to the minimum allowed one if the customer want to unsubscribe before it
- cancel the subscription at the end of the month if the subscriber want to cancel after the minimum allowed one.
The second option seems simpler to me but does not allow to enforce renewal of minimum cycle (I personnally think it's a good thing).
There is probably a much simpler way but I'm a bit stuck with that.
I think it is (or I am) over complicating things, but as it's a requierement and I must (at least try) to find a solution.
Any advice on this issue would be of great help :)