5 ms·
Nooooooooo. I dislike Stripe's API. There are parts of it that just make no sense. Say, you want to set a billing date for that fancy subscription. Yeah, just
by madelinecameron 10y ago
Nooooooooo.
I dislike Stripe's API. There are parts of it that just make no sense.
Say, you want to set a billing date for that fancy subscription. Yeah, just set a trial date until the billing date you want. Oh, and don't forget to charge a prorated difference (by hand, with charges)!
Want to upgrade that subscription? Yeah, cancel that subscription and start a new one. Oh, and don't forget to set that trial again!
Want to cancel that subscription but not until their next billing date? Hahaha, yeah no. You need to cancel now through Stripe and set up a process to cancel on your side. (Not the biggest complaint, but really. If I am having Stripe manage my subscriptions, they should do it all)
And I am sure there are many other details which would also drive me mad.
With all of that said, I think Stripe's API is definitely one of the better ones since my complaints are more functionality / feature requests than complaints about how it is set up.
- leesalminen 10y agoI agree. Their subscription functionality is half-baked. We're 2 years into using Stripe for subscription management and it's such a hassle to move anywhere else that we keep hobbling along with it. My advice when starting a SaaS company: think through your subscription software early on, before it's a headache to even think about migrating away.
- encoderer 10y agoSo you want to set a billing date and then charge a pro-rated amount that first month? And what do you mean "upgrade"? You can move from one plan to the next and charges are pro-rated automatically for you. I, too, loath the amount of time we've spent on subscription/billing but I'm just surprised that none of the issues you've listed are really causing any pain for us.
- guayosr 10y ago(I work at Stripe.) Although it’s kind of proving your point that the API could be easier to use/better documented, here are some simpler ways to do what you’re looking for: * Upgrading a plan (no cancellation needed): https://stripe.com/docs/api#update_subscription-plan https://stripe.com/docs/api#update_subscription-plan > `curl https://api.stripe.com/v1/subscriptions/sub_foo -u sk_test_bar: -d plan={new_plan}` * Canceling a subscription at the end of the billing cycle (no need to handle on your end): https://stripe.com/docs/api#update_subscription-at_period_end https://stripe.com/docs/api#update_subscription-at_period_en... > `curl https://api.stripe.com/v1/subscriptions/sub_foo -u sk_test_bar: -X DELETE -d at_period_end=true` * Anchoring subscription to a date (sorry! :( , this is undocumented but should be out soon): https://stripe.com/docs/api#create_subscription https://stripe.com/docs/api#create_subscription > `curl https://api.stripe.com/v1/subscriptions/sub_foo -u sk_test_bar: -d billing_cycle_anchor={timestamp}` That said, agreed overall that our subscriptions support needs some love. We're starting to spend more time on exactly this, so would love any feedback you (or anyone else reading) are willing to share. I'm eduardo@stripe.com.
- hoodoof 10y agoIs this in an obvious place in the docs or in an FAQ?
- guayosr 10y ago- https://stripe.com/docs/api#subscriptions https://stripe.com/docs/api#subscriptions - https://stripe.com/docs/subscriptions/guide https://stripe.com/docs/subscriptions/guide
- leesalminen 10y agoThanks Eduardo. I've interacted with you (I think) a couple times and really appreciate the effort you all put into customer outreach. It is appreciated. I will have my team jot down thoughts on subscription functionality and send it over.
- madelinecameron 10y agoNo way! Thank you so much for the response! Complaining on the internet finally worked! :) I definitely hold nothing against Stripe, I still love you guys.
- Lordarminius 10y agoStripe is quite good
- elwell 10y agoI opted to just roll my own subscription system and use normal charges periodically as needed.
- mooreds 10y agoI did that too, mostly because I am splitting transactions to connected accounts and subscriptions don't play nicely with that functionality, according to the docs.
- marcusbrown 10y agoI recently used Laravel Spark [ https://spark.laravel.com/ https://spark.laravel.com/ ] to manage all the subscriptions and I really love it! Before I had to do it all by myself and it was a nightmare and so much time taken away to develop the real app. I highly recomment it for any SaaS product. It gives you a huge jumpstart and you can concentrate on developing just your app. Btw, it supports both Stripe and Braintree.
- Nullabillity 10y agoAlso, the provided Java client is garbage (you need to put all the arguments into an untyped hashmap that corresponds to the JSON, WTF?). And why are there separate clients for Java and Android, which both use the same namespace differently? And why do I need to set the API key as a global for the general Java client, while the Android client (sensibly) lets me give it as a constructor argument?