Stripe subscription - Balloon in year 1 and reduced in year 2+?

Good day Bubblers!

This is something I’ve explored previously without much success natively in Stripe.

I would like to charge a larger amount for a subscription in year 1 and then when the auto-renew period comes for year 2, have it be a lesser amount.

For example, you are packaging a physical good with a digital service, the balloon payment upfront is to cover that physical good and then in year 2, they are just paying for the digital service.

Has anyone had much success with this? Stripes cross-sell isn’t helpful, as the physical good is mandatory vs an optional addon at the end.

Thanks in advance for any input!

I’d charge the user for 1st year through normal charge flow and subscribe user to the price which user pays from the 2nd year and set Billing cycle anchor to current date+1 year

If you ever plan on funding or selling the company having your stripe dash with a correct MRR/ARR/Churn etc is very important.

I’d personally recommend not using self managed charge flow as mentioned above. As bubble isn’t reliable enough in my opinion to have self managed subscriptions. They release far too many random surprise updates that break parts of the system for me to be comfortable relying on bubble managed charge flows.

Rather, I’d recommend having 2 subscriptions in stripe.

First year
Second+ year

On initial subscription have it subscribe to “first year” then schedule an API workflow for current date +1 year that updates the users subscription plan to “second+ year”

This will allow you to also track how many users are on each plan to adequately show growth to investors or buyers.

In the case bubble breaks scheduled flows or something with their random updates rather than your whole payment system failing and you having to fix it and miss payments then hopefully collect from users. This route will ensure payment collection regardless and worst case if something breaks you are still collecting payments & users may just be on the wrong plan.

With payments I always use safety net checks so I’d have a daily/weekly/monthly check that changes a DB subscription field “flag” from no to yes if the subscription is over 1 yr and the user plan is “first year”. Then display a list of subscriptions with “flag” = yes in your admin dashboard.

1 Like

Thank you both for the thoughtful replies!

@chris.williamson1996 thanks for this level of detail here, I’ll give it a go and try to figure out a similar flow. Put simply, there should be a way I can find to update an existing subscription after the fact, from Bubble to Stripe.

Would this mess up refunds, if one should unfortunately happen? I’m guessing not, if its just the charge.

You do not want to update the Subscription in Stripe. You want to do as @chris.williamson1996 outlined

I do something like this currently in a client app, but in opposite way. First payment of subscription is lower due to an enticing offer to get the user to signup, then after the offer period is over the scheduled backend workflow will run to change the users subscription to the normal/higher cost plan.

Not so long as you remember to cancel the scheduled workflow to update the subscription to the higher plan in the event a user does unsubscribe and/or request a refund.


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