Stripe subscription and unsubscription

I checked the forum for this but could not find anything regarding my question.

What I am doing is building an app with the stripe plugin from Bubble, and letting users subscribe to a monthly plan.

The way I have set it up is:

If users subscription plan is empty (not subscribes to a plan) - show “subscribe to button” which creates the payment workflow and subscribes the users to a plan. I have tried both the “update subscription” and without it.

If users subscription plan is “active” - then show the cancel subscription and do cancel subscription workflow.

However in my stripe dash test data I see that everytime a user resubscribes he/she pays in full the subscription plan fee, even if the subscription had 29-30 days left already paid for in the first place.
see image:

How do I let the users manage their subscription on and off without charging them for a full month every time they turn their sub on/off?

You may find this part of Stripe’s API documentation helpful. It offers a few suggestions which you could implement in your application.

Pausing a subscription

Stripe does not natively support pausing a subscription. You can, however, cancel the current subscription and recreate it later when it is time to start billing the customer again. There are also several alternative approaches that you can consider:

  • To keep the subscription effectively active but no longer billing the customer, you can apply a 100% off coupon that lasts forever. Later remove the coupon when it’s time to begin billing again.
  • You can move the customer to a free plan and then resubscribe them to the paid plan later.
  • You can use a trial period to change the billing cycle.

Thanks! But how exactly do I know «when it’s time» to make the start the subscription again?

When the user unsubscribes, you could save a value in the database that captures the days remaining of the subscription at the time that it is canceled (ie. current date and time - renewal date). (Stripe may have a useful field for this purpose, not sure off hand).

Then, when the user goes to “re-activate” their subscription, you set the renewal date as current date and time + days remaining.

Thanks again @dan1, I’ll try this :slight_smile:

Of course, happy to help. Report back with what you’re able to put in place. I’m sure others would be interested in seeing your solution.

Will do, thanks.

This topic was automatically closed after 70 days. New replies are no longer allowed.