My colleague @hazelcough was in charge of some pretty major changes to the Stripe Payments API. I really, really love the writeup; it touches on how we matured in our understanding of this problem domain over 10 years. https://twitter.com/stripe/status/1338900602345070593
People have a very positive impression of our level of discernment, but we certainly don't have all the answers and didn't when we started.

There is no single resource explaining the complexity of moving money around; we uncovered it through work over years.
And while Stripe is a company with very global ambitions, our internal understanding of the payments space was very, very influenced by being built primarily in the U.S., where cards are ubiquitous and the primary payments rail startups care about.

It turns out cards are weird!
(It is a fun historical accident that e-commerce hit U.S. first and that credit cards, due to historical accident, have payment capture and settlement semantics which happily align with what a web developer could actually reasonably implement in 1996! Almost nothing else does!)
So as we've expanded from cards to other payment methods, and as cards have gotten more complicated in some parts of the globe (e.g. 3-D Secure & other semi-synchronous bank authentication schemes which can't happen in a single HTTP request/response cycle), our API had to change.
This additional complexity accreted like a barnacle on the API for several years, and we needed substantial redesigns (and then a massive migration effort which required customer work) to get closer to the original ergonomics of the developer experience.
I'd feel remiss if I didn't make one point explicit: while every project at Stripe is the work of many people, this particular one would not have been possible without Michelle's work. She breathed this problem, for years, and is a model for extremely effective senior engineers.
Speaking of things that you might not have expected would take us 10 years:

This blog post is the first one which was not handwritten in ERB. We now have a CMS.

"What you can't really expect me to believe that."

Oh no, trust me, I am being extremely literal.
You can follow @patio11.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled:

By continuing to use the site, you are consenting to the use of cookies as explained in our Cookie Policy to improve your experience.