MVP Development Logo
A working prototype for $350 in 7 days

Fixed price, source code yours

MVP Development · MVP development

Ship a funding-ready MVP in 7 days, for $350

Senior engineers, AI-accelerated, deployed and investor-ready, with no quality trade-off.

Back to Blog
Guides

The Stripe MVP: Seven Lines of Code and a Friend at a Gateway

What the Stripe MVP actually was: a seven-line API in front of a friend at a payment gateway setting up merchant accounts by hand, an 18-month private beta seeded through Y Combinator, and founders installing it on customers' laptops. Every date, and what a founder can copy.

The Stripe MVP: a code window with the seven lines of integration that the first version was sold on
Seif Sgayer
Founder & CEO, MVP Development
· 22 min read

TL;DR

The Stripe MVP was seven lines of code a developer pasted into a website to accept a card payment, and a person on the other end of it. In 2010, when a developer signed up for what was then called /dev/payments, there was no financial infrastructure behind the API. Patrick Collison called a friend at a payment gateway, gave him the details, and the friend set up a merchant account for that user by hand. The developer saw an API that worked in minutes. What made it work was a phone call.

It stayed in private beta for about eighteen months, seeded almost entirely through other Y Combinator startups, with the founders setting it up on customers’ laptops in person. When it launched publicly on 29 September 2011 it had around a hundred customers and ten employees. Today it processes close to two trillion dollars a year.

The rest of this post is the detail: what the seven lines actually were and were not, what happened behind them, why the beta was gated rather than open, what the Collison installation taught them, and what a founder building an API, a developer tool or any “integrate this and it works” product can copy from it.

What people mean when they say “the Stripe MVP”

The Stripe story is usually told as a product story: two brothers made payments easy for developers, developers loved it, the rest followed. That is true and it skips the MVP entirely.

“The Stripe MVP” is the period from roughly January 2010, when Patrick and John Collison started building /dev/payments, to 29 September 2011, when Stripe launched publicly. For most of those twenty months the thing developers integrated was real and the thing behind it was not. The API was Stripe’s; the merchant accounts, the processing, the banking relationships were borrowed, arranged by hand, one customer at a time, by a friend at a gateway company.

That makes it the clearest large-scale example of a Wizard of Oz MVP: the customer experiences an automated product, and a human is doing the work behind the curtain. DoorDash’s founders told customers they were delivering the food themselves. Stripe’s did not tell developers that the account behind their API key had been opened by phone, because the developer did not need to know and did not care. The promise was “paste this and take payments”. The promise was kept. How it was kept was the MVP’s business.

The problem, and who felt it

In 2010, accepting a card payment on a website meant applying for a merchant account with a bank, which took days or weeks and paperwork; picking a gateway such as Authorize.net to connect that account to your site; and integrating an API that assumed you were a business with a finance department, not a developer with an afternoon. PayPal existed and was the default, and developers disliked it for reasons that filled forums: a hosted checkout that took users off your site, an API that had accumulated a decade of layers, and an account-freezing habit that startups traded stories about.

The Collisons had felt this personally. Their first company, Auctomatic, went through Y Combinator in the winter of 2007 and sold in 2008; building it had meant fighting payment integration. By late 2009 they were students at MIT and Harvard, and the idea was small and specific: make accepting a payment as easy as calling a function.

The reader to notice here is not “businesses that need payments”. It is developers. The person who felt the pain was the one writing the integration, and that person was also, in 2010, increasingly the one who decided which tools a startup used. Stripe’s MVP was aimed at the developer, priced for the business, and sold to neither. It spread from developer to developer.

What the seven lines actually were

The famous claim, “seven lines of code”, needs to be stated precisely because the legend drifts.

The seven lines were the integration: the snippet a developer added to a page to tokenise a card and create a charge through the /dev/payments API. Behind those seven lines was a real, well-built API and dashboard, which the brothers wrote themselves over 2010. Stripe was not a landing page and it was not a mock. The software the developer touched was genuine.

What was not genuine, in the sense of being Stripe’s own, was everything under the software. There were no bank partnerships, no processing agreements, no compliance apparatus. When a new developer signed up, the account that let their charges settle was set up manually by a contact at an existing payment gateway, on request, per customer. First 1000, which reconstructed the early years from founder interviews, puts it plainly: there was no financial infrastructure in any way for the first two years, and when someone signed up Patrick called his friend, gave him the details, and his friend set up a merchant account for that user.

So the MVP had two halves. A front half the customer saw, which was the product at nearly full quality for the narrow thing it did. And a back half the customer never saw, which was a person and a phone.

What the developer saw versus what happened behind the Stripe MVPTwo panels separated by a vertical dashed line labelled the curtain. The left panel, what the developer saw, shows a code block of seven lines that creates a charge through the API, a dashboard listing charges, and a note that it worked in minutes with no forms and no bank. The right panel, what actually happened, shows a phone call from Patrick Collison to a friend at a payment gateway company, a merchant account opened by hand for that one user, processing and banking borrowed from existing providers, and the note that Stripe owned none of the infrastructure for its first two years. A caption says the promise was real and the machinery was a person.The API was real. The infrastructure was a phone call.THE CURTAINWHAT THE DEVELOPER SAWStripe.setPublishableKey(pk)Stripe.createToken(card, function( status, response) { charge(response.id, amount);});// seven lines, ten minutes, doneA working API and a dashboardNo forms, no bank, no waitingBuilt by the founders, for realWHAT ACTUALLY HAPPENEDPatrick phones a friendat a payment gateway companyA merchant account is opened by handfor that one userProcessing and banking: borrowedNo financial infrastructure of its ownfor roughly the first two yearsOne customer at a timeThe promise was kept from day one. How it was kept was nobody’s business but the founders’.
The developer’s half was finished software. The infrastructure half was a person, and it stayed that way until the promise had been tested on a hundred companies.

The beta: gated, seeded, installed by hand

The second unusual thing about the Stripe MVP is that it did not launch. The brothers went through Y Combinator (the accelerator lists Stripe in its summer 2009 batch) and, against the usual advice to ship publicly, kept /dev/payments in a private beta for the whole of 2010 and most of 2011. Three mechanisms filled it.

The YC network as the first customer base

The first ten to thirty customers were other Y Combinator startups: companies the Collisons knew personally, run by developers, who needed payments and hated the alternatives. The first customer of all was Ross Boucher, a friend from their YC days who later joined the company. In June 2010 a YC partner posted on Hacker News and the YC blog that if you needed payments on the internet you should email these smart people, which produced somewhere between 300 and 550 waitlist sign-ups. That was the entire top of the funnel for a year.

This is what design partners look like for an infrastructure product: not three to five, because an API can serve more than that, but a bounded group of users who share the founders’ vocabulary, will tolerate the rough edges, and will tell them the truth.

The Collison installation

Paul Graham coined the phrase for what the brothers did whenever a founder agreed to try it: they said “right then, give me your laptop” and set it up on the spot. No sign-up flow, no onboarding email sequence, no waiting to see whether the developer got round to integrating. The integration happened while the founder watched, with Patrick or John typing.

It looks like a sales tactic. It was a research method. Every installation showed them exactly where a developer got stuck, which parts of the documentation were unclear, which defaults were wrong, and what the first question after “it works” was. The seven lines got to be seven lines partly because the brothers had watched dozens of people type them.

Word of mouth, and nothing else

Patrick has said that everything else was so bad and so painful to work with that people were selling Stripe to their friends. For the first year there was no paid acquisition at all. The first paid channel, Stack Overflow ads, did not start until April 2012, seven months after launch. Capture-the-flag security contests in 2012 drew ten to fourteen thousand developers. Before that it was developers writing blog posts about the API.

The beta ended on 29 September 2011. Stripe launched publicly with about a hundred customers and a team of ten, four months after a $2 million seed round in May 2011 from Peter Thiel, Elon Musk, Sequoia, Andreessen Horowitz and SV Angel. Pricing was 2.9 percent plus 30 cents per successful charge, which it still is.

Timeline of the Stripe MVP from /dev/payments to the public launchA horizontal timeline with six points. Late 2009 to January 2010: the Collison brothers start building /dev/payments while at MIT and Harvard. 2010: Y Combinator, private beta, first ten to thirty customers from other YC startups, first customer Ross Boucher, the Collison installation. June 2010: a YC partner’s Hacker News post brings 300 to 550 waitlist sign-ups. May 2011: two million dollar seed from Thiel, Musk, Sequoia, Andreessen Horowitz and SV Angel. 29 September 2011: public launch as Stripe with about one hundred customers and ten employees. 2012: first paid channel, Stack Overflow ads, and capture-the-flag contests with ten to fourteen thousand entrants. A bracket under the first four points is labelled the MVP, roughly twenty months in private beta with borrowed infrastructure. A caption says the launch came after the promise had been kept a hundred times by hand.Twenty months in private beta before anyone outside the network could sign upJAN 2010/dev/paymentstwo students, one idea2010Private beta via YC10 to 30 customers“give me your laptop”JUN 2010One HN post300 to 550 on the waitlistMAY 2011$2M seedThiel, Musk, Sequoia, a16z29 SEP 2011Public launch~100 customers, 10 people2012First paid channelStack Overflow ads, CTFsTHE MVP: private beta on borrowed infrastructureThe launch came after the promise had been kept a hundred times by hand.
Everything inside the bracket ran on a friend’s merchant accounts. The seed round funded the infrastructure to replace him.

What the Stripe MVP validated, in order

Like every MVP that worked, it answered the cheap questions first.

1. That developers wanted this badly enough to switch

From the first YC customers and the waitlist. Developers with working PayPal integrations ripped them out for a beta product with no bank behind it, because the integration was that much better. Cost: a year of two people building the API.

2. That the abstraction held

From the Collison installations. Could a developer who had never seen it get to a successful charge in minutes, without the founders explaining it? Watching dozens of installs answered that and shaped the documentation. Cost: laptops and afternoons.

3. That the economics could work at Stripe’s price

From the beta’s real charges. 2.9 percent plus 30 cents, minus what the gateway and the networks took, on real volume from a hundred companies. Cost: the friend’s patience.

4. That it would spread without a sales team

From the twelve months of no marketing. If developers were not writing about it and recommending it, the launch would have needed a sales motion Stripe never built. Cost: nothing, which was the point.

Only after all four did the seed round fund the real financial infrastructure. And notice what was not validated by the MVP: whether large businesses would trust a startup with their payment flow, whether the model survived regulatory attention, whether the abstraction held for subscriptions, marketplaces and international payments. Those came later, expensively, over a decade. The MVP earned the right to ask them; it did not answer them. That is what MVP validation is for: knowing which question you have actually settled.

Why it worked, and where the legend gets it wrong

It worked because the thing behind the curtain could be borrowed

Stripe could run a Wizard of Oz MVP because merchant accounts, processing and banking already existed as services someone else provided. The founders did not have to fake the infrastructure; they had to arrange it, one customer at a time, through someone who could. A founder whose product depends on something that cannot be borrowed or arranged has a different MVP problem.

It worked because the front half was finished

This is the part that distinguishes Stripe from most Wizard of Oz stories. The API and dashboard were not a prototype. They were the product, built to the standard the founders wanted to ship, for one narrow use: take a card, create a charge. Developers were evaluating the interface, and the interface was real. If the seven lines had been a mock-up, nobody would have switched.

It worked because the user was chosen, not the buyer

Stripe sold to nobody. It let developers, who felt the pain and who were increasingly choosing their startups’ tools, find it, install it, and tell each other. The single-feature MVP logic applies here too: one thing, done for one kind of person, better than anyone else had done it.

It worked because the beta was gated

An open launch in 2010 would have produced a queue of merchant accounts one friend could not open, and a support load two founders could not carry. Gating the beta to people they could install by hand kept the manual half of the MVP inside the capacity of the people doing it. That is the discipline every concierge and Wizard of Oz MVP needs and most founders skip: the manual process has a ceiling, and the funnel has to respect it.

It worked because they charged from the first transaction

2.9 percent plus 30 cents from the first beta charge, which is the price today. Every question after the first customer was about scale, not about whether anyone would pay.

Where the legend gets it wrong

The legend says Stripe was “seven lines of code”. Seven lines was the integration; the product was a year of engineering in front of a manual back office. The legend says developers “just loved it”; they loved it because two founders sat next to dozens of them and fixed what they got stuck on. And the legend almost never mentions that the company had no financial infrastructure of its own for its first two years, which is the single most useful fact in the story for a founder deciding how much to build before finding out. The question of whether you need a product to raise is handled in do you need an MVP to raise funding; Stripe raised its seed on a hundred beta customers and a borrowed back end.

Stripe next to Dropbox, DoorDash and Groupon

Four famous MVPs, four types, and in each case the type was chosen by what part of the value could not be delivered without building it.

Dropbox DoorDash Groupon Stripe
MVP type Explainer video Concierge Piecemeal Wizard of Oz
What the customer saw A video of a product that did not work yet A landing page, PDF menus, a phone number A rebranded blog with a daily deal A finished API that worked in minutes
What was behind it Nothing yet Founders driving, openly Founders emailing PDFs, openly A friend opening merchant accounts, invisibly
Money on day one No, a waitlist Yes, $6 a delivery Yes, twenty pizza vouchers Yes, 2.9% + 30c per charge
Beta gating Open waitlist Open, one town Open, one city Closed, YC network, installed by hand
Time before own infrastructure Months About six months About seven months About two years

Dropbox could not borrow or fake its value, so it filmed it. DoorDash’s value was food arriving, which people can deliver. Groupon’s was a transaction with a mechanic that tools plus one widget could run. Stripe’s value was an abstraction over infrastructure that already existed elsewhere, so the abstraction was built for real and the infrastructure was borrowed. The rule: build the part of the value that is yours; borrow, fake or do by hand the part that is not, for as long as the customer cannot tell the difference and the founders can carry the load. The wider set of cases is in MVP examples.

How to copy the Stripe MVP in 2026

This playbook is for founders building an API, a developer tool, an integration, a data product, or anything else whose pitch is “connect this and it works”. It does not translate to consumer apps or marketplaces; those have their own posts above.

Step 1: find the person who feels the pain, not the person who signs the cheque

Stripe’s user was the developer; the buyer was the business. Identify who actually suffers the integration, the workflow, the report, and build for them. The buyer will follow, or the user will become the buyer. The B2B SaaS version of this is the champion inside the customer’s company.

Step 2: make the front half real and the narrowest possible

One operation, done properly: the equivalent of “take a card, create a charge”. Not a platform. Build the interface your user touches to the quality you intend to ship, because they are evaluating that interface and nothing else. Everything the interface depends on is a candidate for the curtain.

Step 3: put a person behind the curtain

Whatever the interface promises that you have not built yet, arrange by hand. Provisioning, data loading, the “integration” with a third party, the report that “generates automatically”: if a person can do it within the response time the user expects, a person should do it until the demand is proven. Keep a log of what the person does; that log is the specification for the software that replaces them.

Step 4: gate the beta to what the person can carry

Do not launch. Seed the beta from a network you already have (an accelerator cohort, a community, a mailing list of the kind of user from step 1) and cap it at the number of accounts your manual back office can serve. A waitlist is not a vanity metric here; it is the valve on the curtain.

Step 5: install it yourself and watch

Do the Collison installation. Sit next to the first fifty users while they integrate, or share a screen, and do not help until they get stuck. Every place they stop is a documentation fix, a default to change, or a feature you thought was obvious and was not. This is the cheapest user research you will ever run, and the only kind that tells you what a stranger does with your product rather than what they say about it.

Step 6: charge from the first transaction, at the real price

Set the price you intend to charge at scale and charge it to beta user one. A free beta of an infrastructure product tells you developers like free things. Stripe’s price has not changed in fifteen years.

Step 7: build the back half when the person is the bottleneck

When the friend cannot open accounts fast enough, when the waitlist is growing faster than the manual process, when the seed round lands, replace the curtain with systems, scoped from the log you kept in step 3. That is the point at which a rapid MVP build makes sense: the first real version of the machinery, specified by twenty months of evidence about what it has to do.

The Stripe playbook for an API or developer tool in 2026Three columns. The first, the front half, says build it for real and narrow: one operation, the interface the user touches at ship quality, because they are evaluating that and nothing else. The second, highlighted, the curtain, says put a person behind everything the interface promises but you have not built: provisioning, integrations, generated reports, done by hand within the response time the user expects, with a log that becomes the spec. The third, the valve, says gate the beta to what the person can carry, seed it from a network you already have, install it yourself and watch, and charge the real price from the first transaction. An arrow beneath says build the back half when the person is the bottleneck. The caption says Stripe ran this for twenty months.Build the front, borrow the back, gate the middleTHE FRONT HALFBuild it for real, narrowOne operationShip-quality interfaceThey evaluate this andnothing elseStripe: the seven lines + dashboardTHE CURTAINA person behind every promiseProvisioning, integrations,“automatic” reports: by handWithin the response timethe user expects. Keep a log.Stripe: a friend at a gatewayTHE VALVEGate, seed, install, chargeCap the beta at what theperson can carryInstall it yourself, watchReal price from charge oneStripe: YC network, laptops, 2.9%Build the back half when the person is the bottleneck. Stripe ran this for twenty months.
Three decisions, in that order. The curtain is the one founders skip, and it is the one that saved Stripe two years of infrastructure before it knew what to build.

When the Stripe approach does not apply

When the back half cannot be borrowed or done by hand. If your value is the infrastructure itself and nobody else’s can stand in for it, there is no curtain to hide behind. Build a narrow real version instead.

When the user must know. Stripe’s developers did not need to know how the merchant account was opened. If your users would make different decisions knowing a person was behind the product (anything involving their money at risk, their data, their compliance), tell them, which turns the Wizard of Oz into a concierge MVP, or do not do it.

When the manual step cannot meet the promised response time. A payment API that settled “within a few days” was fine in 2010. A product that promises real-time results cannot be run by a person on a phone, and a beta that reveals the gap teaches your first users to distrust you.

When you cannot gate. A consumer product that has to be open to work (a marketplace needing liquidity, a social product needing density) cannot cap its beta at the size of a manual back office. That is why DoorDash and Groupon did it openly, in one town, rather than behind a curtain.

What happened after, and what it does not teach

After the launch Stripe spent the next decade building the infrastructure that the friend at the gateway had stood in for: its own processing, banking relationships, compliance, and then a stack of products on top. It raised at a $95 billion valuation in 2021, took a $50 billion down round in 2023, and was valued at $159 billion in a February 2026 tender offer. In 2025 it processed about $1.9 trillion. None of that is the MVP.

Two things carry over. First, an MVP that proves developers will switch has not proved that enterprises will trust you, that regulators will leave you alone, or that the abstraction survives every payment type; Stripe earned the right to those questions and then spent years and billions answering them. Second, the front half of the MVP, the seven lines, is still the product’s promise fifteen years later, which is unusual. Most MVPs are replaced. Stripe’s interface was kept and the curtain behind it was replaced with the real thing. That is what happens when the front half is built properly in the first place, and it is the argument for not treating “MVP” as a licence to ship a bad interface. Production-ready MVP makes the same case from the other side.

Conclusion

The Stripe MVP was a finished seven-line integration in front of a friend at a payment gateway opening merchant accounts by hand, gated to a private beta of Y Combinator companies, installed on customers’ laptops by the founders, priced from the first charge, and run that way for about twenty months. It validated that developers would switch, that the abstraction held, that the economics closed and that it would spread on its own, before a dollar was spent on financial infrastructure.

The transferable lesson is not “seven lines”. It is the split: build the part of the value that is yours to the standard you mean to ship, borrow or hand-run everything behind it for as long as the customer cannot tell and you can carry the load, gate the beta to that load, and replace the person with systems only when the person is the bottleneck.

If you are building an API, a developer tool or any product whose pitch is “connect this and it works”, and you are deciding how much of the machinery has to exist before you can find out, that is a conversation we have regularly as an MVP development company: usually the answer is a smaller front half than you think and a bigger curtain. Start it here.

Frequently Asked Questions

What was the Stripe MVP?

A seven-line integration and a real API and dashboard, called /dev/payments in 2010, in front of borrowed infrastructure. When a developer signed up, Patrick Collison phoned a friend at a payment gateway who set up a merchant account for that user by hand. Stripe had no financial infrastructure of its own for roughly its first two years; the developer saw an API that worked in minutes and never needed to know.

Was Stripe really built with seven lines of code?

No. Seven lines was what a developer pasted into their site to accept a payment. Behind those lines was a full API and dashboard the Collisons built over 2010, and behind that a manual back office. The seven lines were the interface, not the company.

What is the Collison installation?

Paul Graham’s name for how the Stripe founders onboarded early users: when a founder agreed to try it, they said “right then, give me your laptop” and set it up on the spot. It removed the gap between agreeing and integrating, and it let the founders watch exactly where developers got stuck, which shaped the documentation and defaults.

How long was Stripe in private beta?

About twenty months, from early 2010 to the public launch on 29 September 2011. The beta was seeded through Y Combinator startups, a single Hacker News post in June 2010 that produced 300 to 550 waitlist sign-ups, and word of mouth. At launch Stripe had about a hundred customers and ten employees.

Was the Stripe MVP a Wizard of Oz MVP?

Yes. In a Wizard of Oz MVP the customer experiences an automated product while a person does the work behind it. Stripe’s developers experienced an automated payments API; the merchant accounts behind it were opened manually by a contact at a gateway company. Unlike a concierge MVP, the users were not told, because it made no difference to what they received.

How did Stripe get its first customers?

Through the Y Combinator network: the first ten to thirty customers were other YC startups, the first of all a friend named Ross Boucher. A YC partner’s post on Hacker News in June 2010 added a few hundred to the waitlist. There was no paid marketing until Stack Overflow ads in April 2012, seven months after launch.

What did Stripe charge during its MVP?

2.9 percent plus 30 cents per successful card charge, from the first beta transactions. The price has not changed since, which meant the MVP tested willingness to pay at the real price rather than interest in a free tool.

What did the Stripe MVP validate?

Four things in order: that developers would rip out working integrations to switch; that the abstraction held for a stranger integrating without help; that the economics closed at 2.9 percent plus 30 cents on real volume; and that it would spread by word of mouth without a sales team. It did not validate enterprise trust, regulatory durability or the abstraction across every payment type; those came later.

When did Stripe build its own payment infrastructure?

After the $2 million seed round in May 2011 and the September 2011 launch, and then progressively over the following years: its own processing, banking relationships and compliance replaced the borrowed back end that had served the beta. The interface stayed; the curtain was replaced with the real thing.

Can a founder copy the Stripe MVP today?

For an API, developer tool, integration or data product, yes: build the one operation the user touches to ship quality, put a person behind everything else the interface promises, gate the beta to what that person can carry, seed it from a network you already have, install it yourself and watch, charge the real price from the first transaction, and build the back half when the person becomes the bottleneck. It does not apply where the infrastructure cannot be borrowed, where users must know a person is involved, or where the product only works at open scale.

Seif Sgayer
Written by
Founder & CEO, MVP Development

Seif Sgayer is the Founder & CEO of MVP Development, a software studio he started in 2020. He works hands-on with startup founders to scope and ship investor-ready MVPs, and leads the senior engineering team that builds them.

Connect on LinkedIn
Keep reading

Similar Articles

More insights from the MVP Development team on building, launching, and scaling investor-ready MVPs.

Ready when you are

Ready to build your MVP?

A working AI prototype of your idea, live on a real URL, for $350 in 7 days. Full code ownership, and a senior team that ships.