All threads / Stripe subscription - set a minimum time before cancel and stop billing

Ask A Question

Notifications

You’re not receiving notifications from this thread.

Stripe subscription - set a minimum time before cancel and stop billing

Nathan Chalot asked in General

Hi,
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 :)
Thanks

Join the discussion

Want to stay up-to-date with Ruby on Rails?

Join 52,887+ developers who get early access to new tutorials, screencasts, articles, and more.

    We care about the protection of your data. Read our Privacy Policy.

    logo Created with Sketch.

    Ruby on Rails tutorials, guides, and screencasts for web developers learning Ruby, Rails, Javascript, Turbolinks, Stimulus.js, Vue.js, and more. Icons by Icons8

    © 2021 GoRails, LLC. All rights reserved.