InterviewLegend

Stripe System Design Interview: What to Expect

Alex Chen10 min readUpdated 37 real interview reports
In this lesson
  • Understand why Stripe grades correctness before scale, where the FAANG loop grades scale first
  • Know that Stripe splits API design from system design, and who gets which
  • See why idempotency runs through every Stripe design question, and how it signals you think like their engineers
  • Learn the design shapes this section covers and what Stripe rewards in the room

A Stripe design round opens on correctness, not scale. It asks whether your system stays right when a request times out, when a retry arrives twice, when a network call half-succeeds. The rule that organizes everything is correctness before performance, and failure modes before happy paths. You still talk through throughput and storage. But the design starts from what happens when money moves and something goes wrong, not from an estimate of petabytes per day.

That reframing changes how you walk into the room. Picture a candidate who opens by sharding for throughput, before saying a word about what happens when the same payment is submitted twice. They are answering a question Stripe did not ask. This lesson covers what the round tests, who gets it, the design shapes that recur in candidate reports, and the one theme that ties them together.

Stripe grades correctness before scale. The grade rides on whether you reason about failure modes (the timed-out payment, the duplicate retry, the partial write) before you reason about throughput. Scale still matters. It is just the second question Stripe asks, after correctness. By reports, a clean answer to "what happens when this call is retried?" carries more weight than a clever sharding scheme.

Two different rounds: API design and system design

Most companies blur two things together. Stripe keeps them apart. API design is the shape of a developer-facing interface. It covers the endpoints a Stripe user would call, what they return, how errors come back, and how the surface stays small as features pile on. The other half, system design, is the distributed system behind that interface: the services, the datastore, the queues, and how money moves through them without being lost or double-counted. Two skills. The company grades them on different instincts, and knows exactly where one ends and the other begins.

API design

  • The shape of a developer-facing interface: endpoints, request and response bodies, error models
  • Rewards restraint and composability, five endpoints that compose, not thirty one-off routes
  • Actionable, machine-readable errors and clear naming over feature count
  • For platform and infrastructure roles, this can be its own round

System design

  • The distributed system behind the interface: services, storage, queues, money movement
  • Rewards correct behavior under retries, partial failures, and concurrent writes
  • Atomic state changes and explicit consistency choices over raw throughput
  • The form most candidates picture when they hear "system design round"
The Stripe angle
For platform and infrastructure roles, API design is often weighted as its own skill, and candidates who only drilled distributed-systems videos get caught off guard. Do one thing before the loop: read Stripe's own public API docs. That is the bar your interface gets measured against. The small composable surface, the idempotency keys, the actionable errors, all of it comes straight from how Stripe builds its real product. Hand them an interface that looks like Stripe's and you look like you belong. Bolt thirty endpoints together and you don't.

Who gets a design round, and how it runs

The design round is mostly for senior and platform roles. By reports, new-grad and intern loops often drop it entirely. A new-grad loop is closer to coding plus integration plus bug squash, and interns get two rounds with no design at all. So if you are interviewing junior, confirm your schedule with your recruiter rather than over-preparing for a round you may not see. The further up you interview, the more the design round carries.

  • 45-60 Minutes. One round, virtual.
  • Senior+ Who gets it. Mostly senior and platform roles.
  • Own tool Format. Your drawing tool and screen share, or Whimsical.
  • Often none New grad. Design frequently dropped at junior levels.

The round runs about 45 to 60 minutes, virtual. Other companies hand you a fixed whiteboard or a bare doc. Stripe lets you bring your own drawing tool and share your screen, or use a shared canvas like Whimsical. You drive the diagram, the interviewer probes. The delivery framework lesson in the System Design course drills the general cadence of scope, design, deep dive; here we stay on what Stripe specifically weights inside that cadence.

Idempotency is the unifying theme

One word runs through every Stripe design question: idempotency, the property that doing the same operation twice has the same effect as doing it once. A payment API has to guarantee that a retried "charge this card" does not charge twice. With webhooks, a duplicate delivery of the same event has to be safe. A ledger has to apply a money movement once even if the request that triggered it arrives again. Same question every time. And it is the one Stripe's real product was built to answer.

Bring up idempotency before the interviewer does. That one move tells them you have shipped money code. The mechanism Stripe runs in production: an idempotency key stored atomically with the response, so a replay returns the stored response without re-executing the work. Pair it with safe retries, exponential backoff plus jitter, and you have already answered the question this round loves before anyone asks it: "the payment request timed out, did it go through?"

The design shapes Stripe asks

The prompts cluster around a handful of domain shapes, all drawn from Stripe's real business: moving money, delivering events, metering an API. The chart below orders those shapes by how often candidates run into each one. Treat it as a rough sense of where to spend prep time, not a precise frequency table.

One honest note on the numbers. The company doesn't publish how often each prompt comes up, and the loop is deliberately not a LeetCode grind, so nothing pins these shapes to a clean percentage. What you see below is how often candidates hit each one, ordered, not an exact frequency table. Use it to point your prep, and don't read more precision into it than that.
Idempotent payments APISafe retries, the timed-out payment~30%
Webhook deliveryAt-least-once, dedupe, signatures, replay~22%
Money-movement ledgerDouble-entry, atomic, no per-merchant hotspot~20%
API rate limiterBurst traffic, fairness across merchant tiers~13%
API-design promptsSubscriptions, Connect onboarding, disputes, refunds~15%
Recurring Stripe design shapes, clustered by domain and ordered by how often they come up (Stripe doesn't publish exact numbers). Stripe doesn't disclose how often each shape appears, so the ordering reflects how often candidates hit it rather than an exact count. The API-design prompts (subscriptions, connected-account onboarding, disputes, partial refunds) often run as their own round for platform roles.

The first four shapes are distributed-systems prompts, each with idempotency at its core. The fifth is the API-design family: model subscriptions, design the onboarding flow for a marketplace of connected sellers, expose a disputes or partial-refund API. This section works the core distributed-systems shapes end to end as full designs, and treats the API-design instinct as a skill that runs through all of them.

What Stripe rewards

The bar is specific and consistent across Stripe's designs. Money is represented as integer cents, never floats, because a floating-point rounding bug in money is exactly the correctness miss this round hunts for. Failure modes are named and handled, starting with the timed-out payment. Retries are made safe with idempotency keys. On the API side, a small composable surface beats a sprawling one, and errors are actionable rather than a bare 500. A buzzword you cannot unpack backfires here, because the interviewer often built the real thing.

What a Stripe engineer does

  • Represents money as integer cents, never floats
  • Names the failure modes first: the timed-out payment, the duplicate retry, the partial write
  • Reaches for idempotency keys to make retries safe, unprompted
  • Designs five endpoints that compose, with actionable error models
  • Justifies each consistency and atomicity choice in plain words

What lands off-target

  • Opens by sharding for throughput before handling correctness
  • Stores money as a float and hopes rounding works out
  • Treats a retried request as if it can only arrive once
  • Bolts on thirty single-purpose endpoints
  • Drops a tool name it cannot defend from first principles
The Stripe angle
One recurring ledger prompt makes the bar concrete: design a balance ledger that handles high throughput on individual merchants without a per-merchant hotspot. One row per merchant balance, updated under a lock, is correct and dies under load the moment a merchant gets hot. The Stripe-grade answer keeps the money math atomic with double-entry records and integer cents, then spreads the write so a single popular seller never bottlenecks. Correctness first, then scale you earned. That order is the test.

Where to build the fundamentals

This section is the Stripe layer on top of a system design course, not a replacement for one. It assumes you already have the mechanics and stays on what Stripe specifically tests. For the underlying skills, lean on the System Design course alongside it. The delivery framework lesson covers how to run the room. Async processing covers the queue-and-retry patterns that webhooks and money movement are built on. And the Postgres toolbox lesson covers the transactional store that sits under a ledger. The worked designs that follow assume you have those down.

What this section covers

Each lesson below works one Stripe design shape end to end, with idempotency and failure modes as the spine. They are ordered the way the round tends to escalate, from the canonical payments API outward to event delivery, money movement, and metering.

Idempotent Payments API

The canonical Stripe design. Idempotency keys stored atomically with the response, safe retries with backoff and jitter, and the timed-out-payment question answered properly.

Webhook Delivery

At-least-once delivery handled idempotently: dedupe on event ID, signature verification with replay protection, and a retry strategy that minimizes duplicate delivery.

Money-Movement Ledger

A double-entry ledger with atomic money movement and integer cents, designed to take high throughput on a single merchant without a per-merchant hotspot.

API Rate Limiter

A distributed rate limiter for the Stripe API: absorbing burst traffic while keeping fairness across merchant tiers, with the limits exposed cleanly to callers.

Key Takeaways

  • ✓Stripe grades correctness before scale. Reason about failure modes (the timed-out payment, the duplicate retry) before you reason about throughput.
  • ✓Stripe splits API design (the shape of a developer-facing interface) from system design (the distributed system). For platform roles, API design can be its own round.
  • ✓Idempotency runs through every Stripe design question. Bring it up before the interviewer does, and you sound like one of their engineers.
  • ✓Stripe rewards integer cents for money, explicit failure handling, idempotency keys, a small composable API, and actionable errors. Buzzwords you cannot unpack backfire.
Had your Stripe interview?Tell us what they asked. Reviewed before it goes in, never with your name.
Stripe interview guide

Know what Stripe asks before you walk in.

21 coding · 4 system design · 31 behavioral questions

Get Premium$49 a year · Cancel anytime
Or start freeNo card.

Get their questions first.

InterviewLegend is independent and not affiliated with or endorsed by any company it covers.