A detailed look at how Stripe's payments API evolved over its first decade, from the original seven-line card integration using Tokens and Charges, through the Sources API attempt at unification, to the PaymentIntents and PaymentMethods redesign. The piece covers the technical challenges of supporting diverse global payment methods (ACH, Bitcoin, iDEAL, OXXO), the design process behind PaymentIntents including the single predictable state machine, the two-year launch challenge of making the new API accessible without sacrificing simplicity, and key API design lessons: managing product debt, designing from first principles, and the true meaning of simplicity.
Table of contents
✂️ Cut your QA cycles down to minutes with QA Wolf (Sponsored)The Beginning: Supporting Card Payments in the US (2011-2015)The First Challenge: ACH and Bitcoin (2015)Seeking a Simpler Approach: The Sources API (2015-2017)The Solution: PaymentIntents and PaymentMethods (2017-2018)The Launch Challenge: Making It Accessible (2018-2020)Supporting InfrastructureConclusionSort: