Blog
Stripe’s payments APIs: the first ten years
Michelle Bu on December 15, 2020 in Engineering
A few years ago, Bloomberg Businessweek published a feature story on Stripe. Four words spanned the center of the cover: “seven lines of code,” suggesting that’s all it took for a business to power payments on Stripe. The assertion was bold—and became a theme and meme for us.
To this day, it’s not entirely clear which seven lines the article referenced. The prevailing theory is that it’s the roughly seven lines of curl it took to create a Charge
. However, a search for the seven lines of code ultimately misses the point: the ability to open up a terminal, run this curl snippet, then immediately see a successful credit card payment felt like seven lines of code. It’s unlikely that a developer believed a production-ready payments integration involved literally only seven lines of code. But taking something as complex as credit card processing and reducing the integration to only a few lines of code that, when run, immediately returns a successful Charge
object is really quite magical.
Abstracting away the complexity of payments has driven the evolution of our APIs over the last decade. This post provides the context, inflection points, and conceptual frameworks behind our API design. It’s the extreme exception that our approach to APIs makes the cover of a business magazine. This post shares a bit more of how we’ve grown around and beyond those seven lines.
A condensed history of Stripe’s payments APIs
Successful products tend to organically expand over time, resulting in product debt. Similar to tech debt, product debt accumulates gradually, making the product harder to understand for users and change for product teams. For API products, it’s particularly tempting to accrue product debt because it’s hard to get your users to fundamentally restructure their integration; it’s much easier to get them to add a parameter or two to their existing API requests.
In retrospect, we see clearly how our APIs have evolved—and which decisions were pivotal in shaping them. Here are the milestones that defined our payments APIs and led to the PaymentIntents API.
More ways for Connect platforms to move money within Canada
Patrick Collison on December 9, 2020
More ways for Connect platforms to move money within Canada—You can now use separate charges and transfers and account debits with your Express and Custom connected accounts.
Introducing Stripe Treasury
Patrick Collison on December 3, 2020
Introducing Stripe Treasury—Banking-as-a-service for software platforms, built in partnership with the world’s leading banks. Embed interest-earning accounts, bill pay, ACH and wire transfers, and provide your customers faster access to revenue directly in your platform. Request an invite
Stripe Capital is now available for platforms
Patrick Collison on December 1, 2020
Stripe Capital is now available for platforms—Connect platforms with US-based customers can leverage our lending API to provide their customers with access to fast and flexible financing. Learn more
European payment methods available worldwide in minutes, not months
Sophie Sakellariadis on October 27, 2020
A great promise of the internet is to eliminate the impact of physical distance on our lives. But 35+ years after the internet’s founding, selling cross-border remains shockingly difficult. Why?
Online commerce is fragmented. The top 50 ecommerce markets have over 75 popular payment methods—including wallets, bank methods, and even cash at convenience stores. Accepting more payment methods is important: buyers often abandon checkout if they can’t use their preferred way to pay. But it can take months to add local payment options. Before engineering work can even begin, you need to register foreign corporate entities, open new bank accounts, pay local taxes, and fill out reams of compliance forms. It shouldn’t be this hard.
Introducing new tools for managing fraud workflows in Radar for Fraud Teams
Patrick Collison on October 15, 2020
Introducing new tools for managing fraud workflows in Radar for Fraud Teams
Radar for Fraud Teams helps you better manage fraud with tools to get more insight into fraud signals for each transaction, help predict disputes you’re likely to win, and assign review owners. Read the docs or get started now in the Dashboard.

Cross-border payouts are now available in beta
Patrick Collison on October 14, 2020
Cross-border payouts are now available in beta—US Connect platforms can send payouts to recipients in their local currencies in 33 countries (with more coming this year). Learn how to get started
New Dashboard features to save you time
Sashko on October 8, 2020
The Stripe Dashboard is the hub for millions of businesses to take action—whether that’s a founder at a small startup that interacts directly with customers or support teams at larger organizations working to address thousands of customer inquiries each week.
We built Checkout so you don’t have to
Sam Gerstenzang on September 10, 2020
When Stripe first launched, we made it easier for businesses to design their own payment forms while minimizing the PCI burden. In the past 10 years, however, online commerce has become more complicated.
Businesses are now expected to offer any number of mobile wallets, like Apple Pay, Google Pay, and Alipay. New regulations (like PSD2 in Europe) have led to broader 3D Secure adoption, which has made payment flows more complicated. And that’s when cards are used at all: eighty percent of new internet users are based in regions where local, non-card payment methods with custom payment flows are the norm. When you consider having to adapt to changing browser standards, making payment forms responsive to mobile devices, and translating them into local languages, the cost of maintaining a high-conversion, compliant payment form quickly becomes significant and growing.
In short: Stripe made it easy to build a basic credit card form. But it’s getting increasingly hard to build a first-class checkout page.
When we first launched Stripe Checkout, our prebuilt, hosted payment page, we imagined that it would be useful for people who didn’t want to write any frontend code. While Checkout is indeed very easy to use, we’ve since realized that Checkout’s real value is in making checkout pages more powerful. Unless you intend to support all of the edge-cases yourself (address-autocomplete that works with native autofill, 3D Secure on mobile, Alipay on Desktop…), you’ll likely increase your revenue and save many engineering hours by using Checkout.
“Stripe Checkout is one of my single favourite products ever made and it has allowed us to do so much with Ghost that we would not have been able to accomplish otherwise.”
— John O’Nolan, Founder and CEO at Ghost
“Using Stripe Checkout just made it a lot simpler to think about payments—it’s like an entire component that we can mentally hand off to Stripe.”
— Victoria Kirst, VP of engineering at Glitch
“Throughout my 20 years in e-commerce, checkouts were the last thing you wanted to touch and the first to go down. With Stripe Checkout we don’t maintain this ourselves anymore. It’s the future savings—I can’t emphasize enough how big that is.”
— Bryan Mahoney, Co-founder & CTO at arfa, Inc
Increasing your sales with a better checkout flow
What does that mean in practice? Well, teams of Stripe engineers and designers obsess over every aspect of the checkout page, from reducing load time to streamlining how customers fill in their address. We sweat the details to an extent that would be irrational for nearly any company building their own checkout.
Stripe Checkout adapts to each customer down to their location, device, browser, and individual user settings. For example, Checkout automatically surfaces the right payment methods based on your customer’s location—you don’t have to run A/B tests to identify the highest converting payment methods in Belgium. We just handle it for you. If a customer in Japan accidently has their keyboard set to full-width characters, we’ve done the work to ensure they can seamlessly complete their purchase without needing to build CJK numeral support. (If you don’t quite know what that means, that’s the point! We’ve handled the edge case.)

Always improving
Today, we’re adding support for coupons, tax rates, and two new payment methods. These mark the latest in a series of over 20 major releases in the last year. Checkout now offers a seamless purchase experience with out-of-the-box support for mobile wallets and address auto-complete, helps scale your business globally with over 25 languages and 10 international payment methods, and lets you customize payments for your business with support for tax rates, promo codes, brand configuration tools, and more.
You get the benefit of all this and everything that’s to come: even faster load times, additional payment methods we add, compliance with future payments regulations, and every optimization we make to maximize conversion—all without major code changes on your end. This helps you increase sales with less work, benefiting from our investment in making the world’s safest, best converting checkout experience.
Explore Checkout or let us know how we can make Checkout work better for you.
To design and develop an interactive globe
Nick Jones on September 1, 2020 in Engineering
As humans, we’re driven to build models of our world.
A traditional globemaker molds a sphere, mounts it on an axle, balances it with hidden weights, and precisely applies gores—triangular strips of printed earth—to avoid overlap and align latitudes. Cartographers face unenviable trade-offs when making maps. They can either retain the shape of countries, but warp their size—or maintain the size of countries, but contort their shape. In preserving one aspect of our world, they distort another.