16 ms·
Stripe is by far the best developer experience I’ve had in my career working with third party APIs/services. The attention to detail is just second to none, and
by knubie 7y ago
Stripe is by far the best developer experience I’ve had in my career working with third party APIs/services. The attention to detail is just second to none, and documentation is a big part of this.
- pc 7y agoThanks! We still have a lot of work to do. (Making our integration experience simpler -- now that Stripe's functionality has grown so much -- is an area of current focus. If any HN readers happen to have specific suggestions on this front, feel free to email sebas@stripe.com.)
- davedx 7y agoOne thing I loved recently was finding a small error in your nodejs docs. I tweeted you and had a response within an hour or two that it would be fixed. Please keep listening like this, it’s greatly appreciated!
- eganist 7y agoHey, from a security angle, can I express my appreciation for how much your team has worked to make security best practices and shared responsibility extremely clear? https://stripe.com/docs/security https://stripe.com/docs/security Apologies for the hijack, just wanted to say thanks.
- simlevesque 7y agoThe best part is that you guys keep the logs for the last events and webhooks you sent with the request and response... this is such a time saver that I can't figure out why you are the only big players doing it.
- jchw 7y agoHonestly, the only problem I ran into with Stripe ever was administrating subscriptions. IIRC even via the API there were a lot of limitations with what state you could put a subscription in, limiting our ability to seamlessly transition from Recurly to Stripe; we ended up duplicating a lot of the subscription logic in the end. I know subscriptions have been significantly rehauled since then, but this was my only gripe. Stripe was absolutely excellent back when I used it.
- kwindla 7y agoI think subscriptions are complicated because the surface area of the problem is so large. The Stripe Billing APIs (the recurring revenue/subscriptions part of Stripe) have gotten very good. But the challenges involved in the average subscription implementation are a lot bigger than the challenges involved in implementing simple checkout workflows for non-recurring charges. We wrote a blog post detailing our Stripe Billing implementation: https://www.daily.co/blog/implementing-api-billing-with-stripe https://www.daily.co/blog/implementing-api-billing-with-stri...
- markdown 7y agoFYI while you're here: Your search is broken: https://support.stripe.com/search?q=Countries https://support.stripe.com/search?q=Countries
- dylanvee 7y agoThanks for flagging! We've got a massive search overhaul in the works that will start rolling out in the next week or so. Feel free to get in touch at dylan@stripe.com if you'd like to give it an early spin when it's ready. (Our new search presents this as a result for your query, in case it's what you were looking for: https://support.stripe.com/questions/stripe-feature-availability-by-country https://support.stripe.com/questions/stripe-feature-availabi...)
- ElCapitanMarkla 7y agoHey in terms of search, one issue I've had a few times now is the inability to find things in certain sections of the docs because of the way everything is presented on a single page. e.g. just now I'm implementing webhook handling for subscriptions. So I drill down to the section that lists all the events - https://stripe.com/docs/api/events/types https://stripe.com/docs/api/events/types this is massive and I don't want to read everything, so I cmd+f to find "subscription"... oh stripes taken over my default search but no worries I can hit cmd+f again and use the browsers search... I type "sub"... now the page has jumped way up to https://stripe.com/docs/api/expanding_objects.. https://stripe.com/docs/api/expanding_objects... ffuuuuu...
- Androider 7y agoI love the backwards compatibility that Stripe provides. Thank you so much! We launched a SaaS product on the 2016-03 API version. Since then[1] the API has basically changed completely around subscriptions (even the top-level objects aren't called the same anymore), to the point it would probably be easiest to just start a rewrite from scratch (which probably would take a week or two). But the fact that the old API continues to work to this day and that we have been able to rely on it and focus on other things has been amazing. New customers get to enjoy the new API while our business continues to chug along with zero modifications to the payment parts. That is impressive from both a technical and from a business point of view, and ensures we will keep using Stripe forever. [1] Stripe provides a very detailed and customized API upgrade guide based on your current API usage https://stripe.com/docs/upgrades?since=2016-03-07#how-can-i-upgrade-my-api https://stripe.com/docs/upgrades?since=2016-03-07#how-can-i-...
- malingo 7y agoThey had a great blog post on how they manage API versioning a couple years ago: https://stripe.com/blog/api-versioning https://stripe.com/blog/api-versioning
- twakefield 7y agoI'm surprised Quickbooks Online is not listed here [0]. I'm guessing they are the blocker here? I have fallen back on using Zapier but the sync often breaks. Native integration would be preferred. [0] https://stripe.com/partners/apps-and-extensions/accounting https://stripe.com/partners/apps-and-extensions/accounting
- wkoszek 7y agoIf you guys could make your docs available for offline/downloadable reading in apps like Dash, it'd be amazing. There's a fundraiser to do it: https://github.com/Kapeli/Dash-User-Contributions/issues/2014 https://github.com/Kapeli/Dash-User-Contributions/issues/201... but this project would be much easier to do by someone inside of Stripe.
- moonbas3 7y agoI agree, it's awesome. Their customer support is also good.
- pc 7y agoThanks! This is also an area we're working hard to improve. The scale is pretty substantial (we recently handled our millionth support case of 2019), but there are plenty of ways in which we want to improve, and we have a lot of in-flight work to make it better.
- Reedx 7y ago100%. They're an excellent example of how impactful attention to detail and simplicity can be. Thinking back to implementing Stripe for the first time, I remember being surprised by how painless it was. Prior to that integrating payments was something that filled me with the same kind of dread I get from dealing with legal paperwork. I love that they've been so successful.
- UnityRanson 7y agoInterestingly, I randomly stumbled upon https://github.com/stripe/react-stripe-elements/issues/451 https://github.com/stripe/react-stripe-elements/issues/451, which is the opposite of what you describe. I'm not intentionally cherry-picking and I have limited experience working with Stripe, but there seem to be struggles on their part in some areas too. I suppose it's only natural to have some less shiny areas at any company.
- m12k 7y agoI felt that way until I needed to prepare for the new EU credit card regulation that came into effect a few months back and implement Stripe's update for it. There's a bunch of gotchas in the transition - e.g. you can't apply coupons when creating subscriptions with the new checkout flow (needed to handle 2FA), "sources" and "payment methods" show up in the same list in Stripe's UI, but are not fetched by the same API call. I hope they eventually manage to deprecate and migrate to a single way of doing things because right now it feels messy.
- ffritz 7y agoI can confirm this experience. Integrating all this new stuff meant keeping open multiple pages from the docs in parallel, each of which had a warning at the top that certain aspects are different and sends you yet to another page, depending on the integration, it felt like a giant spaghetti mess. I also found some bugs, for example, it was not possible to input sub-cent amounts on their dashboard for tiered plans. On the other hand, a couple mails and a quick chat on their IRC resolved most of it. But I really wish there would be a clear map/diagram of what route to take depending on what you want to achieve.
- oauea 7y agoAs someone who just started using Stripe with no prior experience with their api, the current state is very confusing.
- ElCapitanMarkla 7y agoUntil you get your head around their way of doing things with Payment Intents etc it can be a bit confusing. But its not too bad, ask questions in their IRC or online help, the team they have on those are fantastic.
- CaptainMarvel 7y agoI heard developers saying this in real-life as well about SCA (Strong Customer Authentication).
- hag 7y ago
- IGotThroughIt 7y agoTop APIs I've enjoyed working with: 1. Stripe (Best) 2. Twilio 3. Twitter (Does what it needs to do quickly) 4. Puppeteer (Amazing. Was super helpful.) 5. Google (mostly ok but could be better) APIs I've hated working with: 1. Paypal (the worst - docs are horrible and UI is not consistent with most of the help material out there because it changes all the time. Have you tried their support? That's a beauty) 2. Facebook (same story but manageable compared to paypal)
- dotancohen 7y agoAdd Mailchimp to that first list. When I do APIs I set Mailchimp quality as my documentation goal.
- smoussa 7y agoAdd eBay to the second list. We are still uploading XML documents.
- hobofan 7y agoAnd Amazon sellers API (Amazon MWS). Rarely seen such an inconsistent mess of often poorly documented SOAP-ish calls, that so many external partners base their livelyhood on.
- etaioinshrdlu 7y agoSome APIs you can choose to use. Other APIs you have to use. The ones you have to use tend to not care much about the developer experience... Because why should they? No one's going to avoid Amazon because their API was annoying. People need to make money. This actually explains a lot of other things. Like the DMV.
- Mikhail_Edoshin 7y agoThe API is not not SOAPish, it just uses XML. They probably choose it so that they can use XML Schema to check incoming data (which is exactly the right decision here).
- 7y ago
- ElCapitanMarkla 7y agoIt's fantastic. Over the last couple of years I think I've integrated our system with at least 10 different payment providers and Stripe's just works. The most useful thing for us though is that their test system works flawlessly. The amount of payment providers I've integrated with now where the test system is totally different / unusable compared to their production system... ugh.
- gtirloni 7y agoAside from documentation, how do you judge if an API is good?
- mcqueenjordan 7y ago= Design characteristics = 1. Simple, distinct concepts with unambiguous names. 2. Semantics are clear, following conventions as appropriate. 3. Minimize surface area without reducing functionality. 4. Clarity and specificity of ErrorCodes and messages. = Operational characteristics = 1. Extremely low level of 500s. 2. Low call latencies. 3. The API does what it says it does. 4. Consistency is (nearly) always within its documented SLA. 5. Do not make backwards incompatible changes. = Social characteristics = 1. Docs are correct, up-to-date, complete, specific, and unambiguous. 2. Clearly communicate service outages and resolution timelines. 3. Seek feedback on evolving the APIs.
- femto113 7y agoFor me it’s about consistency, in order of importance: 1. self-consistency: Every entity and operation has exactly one name, a given verb always implies the same operation, paths are always constructed the same manner 2. consistency with industry norms (eg REST)
- mmgutz 7y agoIt's the main reason why Stripe has taken a chunk of PayPal's business. We still have to use PayPal's API since most people, especially overseas are aware of PayPal. We had dedicated PayPal liaisons and they recommended we use a product API that wasn't fit for our task. Just goes to show even their employees can't make sense of their products and documentation.