Conceptual & Industry Pieces · 6 min read · Jul 3, 2026

A Short History of HTTP 402, From RFC to Real Payments

HTTP's status codes were mostly settled early: 200 for success, 404 for not found, 500 for server error, all familiar enough that most developers never think about where they came from. 402 Payment Required is the odd one out. It's been part of the HTTP specification since the 1990s, explicitly marked as reserved for future use, and for most of the web's history that's exactly what it stayed: a status code with a name and a number, and no agreed-upon way to actually act on it.

Reserved, not defined

The early HTTP specifications left 402's behavior deliberately unspecified — the expectation at the time was that digital payment schemes for the web were coming, and the status code was set aside for whichever one arrived. What actually arrived instead, for most of the next three decades, was a web monetized almost entirely through other mechanisms: subscriptions, ads, and later, API keys tied to billing accounts set up well before any individual request was made. None of those needed a payment-specific HTTP status code, because none of them settled a payment inside the request/response cycle itself — the payment relationship was established separately, in advance, and HTTP just carried already-authorized traffic. That's also why so many unrelated systems independently picked their own ad hoc conventions for paywalls and metered access over those same decades — without a working 402, anyone who wanted to charge per request had to invent something else instead, usually an API key tied to a prepaid balance checked before the request was even allowed to start.

Why it stayed unused for so long

The gap wasn't a lack of interest in web payments — plenty of attempts at micropayments and digital cash came and went over those decades. What was missing was a settlement layer cheap and fast enough to make a single HTTP request a reasonable unit of payment. Card networks have per-transaction costs that make a two-cent charge uneconomical. Earlier digital cash schemes required infrastructure or buy-in that never reached critical mass. Without a workable settlement layer underneath it, 402 had nothing to actually trigger — a status code with no standard way to resolve it is just a number.

What changed

Stablecoins settled on fast, cheap blockchain networks closed that gap: a payment worth a few cents can settle in roughly the time an HTTP request takes, at a cost that doesn't swamp the payment itself. USDC on Base is one instance of that combination, a dollar-pegged asset on a network built for exactly this kind of low-cost settlement. x402 is the protocol that connects that settlement layer back to the status code: a 402 response describes a price, the caller signs a payment under a defined scheme, and a retry with that signature attached completes the transaction, all within the same request/response pattern HTTP already uses for everything else.

From a reserved code to a working mechanism

What makes this moment different from earlier false starts isn't that 402 finally has official backing it didn't have before. It's that the surrounding pieces required to make it useful finally exist at the same time: a stable, cheap-to-move asset, a signature scheme (EIP-3009) that doesn't require the payer to hold a separate gas balance, and a network fast enough that settlement doesn't stall the request. The mechanics of an actual 402 exchange are almost anticlimactic once you see them: a header describing a price, a signature, a retry, precisely because the hard problems were solved elsewhere, in the settlement layer, not in the HTTP status code itself.

Verification needed a party too

A signed payment authorization is only useful if someone checks it and settles it quickly enough that the original request doesn't stall waiting. A facilitator plays that role in the current model, verifying a signature and settling the underlying transfer on the caller's behalf, which is the piece earlier reserved-but-undefined payment schemes for 402 never specified. "Who checks the payment" turns out to matter as much as "how is the payment represented," and it's the part most easily skipped over in a one-line summary of how x402 works.

None of this requires risking real money to try, either. A separate test network lets the entire 402-challenge-sign-retry cycle run against a worthless test asset before a single cent of real USDC is ever on the line — itself a departure from how most of the digital-cash proposals that preceded x402 were ever evaluated.

Three decades is a long time for a single number in a specification to sit reserved and unused. It's a useful reminder that a standard can be ready long before the infrastructure around it is, and that "defined in the spec" and "usable in practice" are very different milestones. It's also a useful reminder for anyone building on top of x402 today — adoption of the surrounding infrastructure, not the specification itself, is usually the long pole.

New to agent email? Start with Email for Agents: The Complete Guide to Giving AI Agents a Real Inbox for the full picture.