Stripe Subscriptions | Invoice/Receipt Links?

Hey Bubblers,

I’ve been using Stripe on my app since the beginning, but believe it or not, I’ve NEVER used subscriptions before :joy:

I know only very little about it, but I’ve been exploring it for the pay hour or so on a test app and was wondering if the Bubble Stripe plugin has the ability to grab an invoice and/or receipt link.

You should give a try to the Stripe Billing Portal plugin. That’s what I use, it’s very efficient and avoid risky implementation & reduce maintenance efforts. The good point is that all billing tasks and functions are managed at Stripe side so you’re pretty sure to benefits of the last evolutions without any change on your side.

So let your users subscribe, and get them access the Stripe Billing portal. They’ll be able to manage their subscriptions (if you want and along with your Stripe settings and rules), and they will have access to all their invoices and receipts. They’ll also be able to manage their payment info by themselves.

Stripe billing portal + webhooks = :heart:

:sweat_smile:

2 Likes

Hey @Christophe_HK,

Thanks for the insight, I might check that out. I still would love the idea of having the ability to display a list of invoices within a repeating group, but I’d I think maybe just having a “Billing” button redirect over to Stripe would also do the trick!

Since it seems like you’ve used the billing portal, I hope you wouldn’t mind me asking a few questions:

  1. How do you handle those people whose card declines or who don’t pay, etc?

  2. How do you handle those people who cancel their plan?

  3. How do you handle free trials if you do them? Is that something that can be done through Stripe or on Bubble?

I’m assuming it’s going to be an API thing, but would love to hear more about the security of that and if possible and if you’re willing to share a demo of how you might have this all figured out :blush:

Thanks!

Hey @johnny,

My answers below :

few questions:

  1. How do you handle those people whose card declines or who don’t pay, etc?

Using Stripe billing portal, you define in the Stripe dashboard the rules that will apply. In case of payment failure, you define the number of retries, than the moment when the subscription will be definitively aborted/canceled. You can also shutdown the subscription as soon as a payment fails, if I’m correct.

Stripe webhooks will send you all this information, also available in the Stripe dashboard. So you can either manage the problem within your app, or from the Stripe dashboard.

In case of payment card expiration, the subscriber will be notified by Stripe, so that he can update his payment info.

  1. How do you handle those people who cancel their plan?

When subscribers cancel they plan, you have 2 options : unsubscribe the subscriber asap and refund (it’s automatic if I’m correct), or unsubscribe the subscribe (ie stop the subscribed service) at the end of the billing cycle. I’ve chosen the second option, so I don’t manage refund for the unsubscribed period of the billing cycle. When the subscriber cancel, I receive a first webhook event, and at the end of the billing cycle I receive another webhook event (and in my bubble app, I remove this subscriber of the active subscribers).

  1. How do you handle free trials if you do them? Is that something that can be done through Stripe or on Bubble?

In the first version of my app, I manage the trial period in the Stripe dashboard. For each plan, you can define a trial period after which the subscriber pay if he didn’t canceled.
But now, I’m managing the trial period in the Bubble app : I let the new subscriber access the app services for 1 month (I set a field in the User datatype for the trial period and end of trial period). If the customer subscribe during the trial period, I clean the “trial” field in my DB and the subscription, subscription updates billing cycle are then managed by Stripe (+webhooks to keep my app notified). If the customer doesn’t subscribe, a Workflow clean in the DB the “trial” fields for this customer at the end of the trial period, and the user has then no more access to the paid services.

Using the Stripe billing portal make the subscriptions and billing things very easy to manage. You can count on Stripe to do the job, instead of trying to implement the logic by yourself in your app.

In your app, the important part of the Stripe webhooks implementation, to track all important events you need. For subscriptions and billing, you provide 2 buttons with easy workflows, one for subscriptions (one button for each of your plans), and one button to redirect the customer to the Stripe billing portal.

I also use Stripe Connect for checkout. And same thing, Stripe manage payment infos and so on, so that I don’t have to manage and keep financial / critical data in my DB. No worry be happy and make money, Stripe manage what you need and don’t want to implement on your own :sweat_smile:

3 Likes

Thanks, @Christophe_HK! Going to give this all a shot!

1 Like

@Christophe_HK

I cannot find the Stripe Billing Portal plugin you were talking about :roll_eyes:

@dodo,

1 Like

@johnny

Thanks! :pray: