#Jacob - SaaS Integration

1 messages · Page 1 of 1 (latest)

ancient canopy
#

Hello! What specific issues are you running into, and what are you trying to build?

#

Let's keep everything in this thread please! 🙂

#

These are some of the hard problems I've been dealing with:

  1. New subscription - An incomplete subscription can't be modified. So each user adjusts something before finalizing, a new subscription needs to be created. If this was a prior customer who was deactivated due to past due, then there was a balance owed, and it's difficult to make sure it gets transferred to each subsequent incomplete subscription, or re-applied to customer balance if expires.
#
  1. Stripe will only email a single customer email address, but my customers may have multiple email addresses to receive billing notifications, so now I have to implement all my own emails in webhooks.
buoyant folio
#

Ok sure thanks

ancient canopy
#

Not sure what you mean by an incomplete Subscription can't be modified, but it sounds like maybe you're creating the Subscriptions too early in the process? Or perhaps you should be creating a new Subscription for returning customers instead of using their existing one?

#

For #2, that's correct, yep.

buoyant folio
#
  1. Modify subscription - Pending update doesn't support deleting items. So it just needs to be straight up modified. I don't want to actually commit the change until I know the payment will go through. So I had to create a setup intent first and make sure that works. Then modify the subscription. It still could theoretically fail, but it's reduced risk.
#

I think I may be creating too early in the process. The reason I went down that path was because I was worried that if I calculate all the totals myself and make a calculation mistake and the user is charged a different price, it's not going to go well.

#

So I thought I'd let Stripe calculate everything.

ancient canopy
#

#3 I don't understand what you mean by "Pending update doesn't support deleting items". Can you provide more details there?

buoyant folio
#

That way if later I add different pricing and discounts, etc., Stripe can just handle it.

#

#3 Sure. If user switches from month subscription to annual, then the monthly subscription items needs to be deleted. Pending subscription update doesn't allow that.

#

I wish there was a higher level abstraction for integration. Sort of like a Stripe Checkout element built into my site, like the Stripe Payment Element. But for the entire subscription workflow. And then just have one simple webhook event that provides the basic info needed for my main site, e.g. customer subscription state, latest subscription items and quantities.

#

What do other SaaS integrations do with all this? How does it conceivably take just a few hours to pull all this off?

ancient canopy
#

Sorry, still not quite following. What is the "Pending subscription update" you're referring to?

buoyant folio
#

Just remembered, another reason I create a subscription early in the checkout workflow is that I'm trying to contain the entire checkout process on one simple form, i.e., subscription options and payment method element. Since the new payment element requires an invoice payment intent client secret even to create the form element, thus I create a subscription right away. But I just realized that an incomplete subscription can't be modified, and so now I'm not sure how to handle a payment intent changing while the user already entered the payment method.

#

It seems like I'm fighting the way Stripe wants to do it, but I'm not seeing how people do this so easily.

ancient canopy
#

Going back to your higher-level question, the quickest and easiest way to integrate Stripe Subscriptions is to use Stripe Checkout to start the Subscriptions and the Customer Portal to manage them. Have you looked into those to options?

buoyant folio
#

I considered it in the beginning, and decided I really wanted the experience built into my web site.

#

It makes the UI simpler.

ancient canopy
#

What you're experiencing are the trade offs of doing a custom integration. You have a lot more control, but you have to build a lot of it yourself, which is why it's taking you so long compared to others who use Checkout and the Portal.