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


You’re not receiving notifications from this thread.

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

Nathan Chalot asked in General

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 :)

Join the discussion

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

Join 62,791+ 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.

    Screencast tutorials to help you learn Ruby on Rails, Javascript, Hotwire, Turbo, Stimulus.js, PostgreSQL, MySQL, Ubuntu, and more. Icons by Icons8

    © 2022 GoRails, LLC. All rights reserved.