Why did paid x402 calls answer HTTP 400 in September 2026?

Machine Commerce Reality Index #002 · Published

The short answer

Mostly because the paid call carried no inputs and the route needed one. Most of the routes that answered a paid call with a bad-request error declare the missing input in their own payment challenge, as a required field in its schema or in its example call.

As published in the issue

The missing input was usually in the challenge. 132 routes answered a paid call with HTTP 400 (486 calls). 126 of them declare the missing input in their own payment challenge — 94 mark it required in the challenge's schema, 32 carry it in the example call.

The population this figure was counted over

(3) The PANEL population: the 400 x402 routes on the published paid panel drawn on 6 September, called once a week with one fixed request carrying no inputs; every paid figure describes those calls and the order in which each route handled and settled them, never a delivery rate.

Because the paid panel sent no inputs, it does not establish how these 132 routes would answer a request carrying every declared input.

The sentence above is quoted from a published issue and is not re-written here. Its date, its population and the record behind it are below.

Why it matters

A missing input the challenge declares is the buyer's omission, not the seller's failure to deliver. A failure rate that counts it against the seller is measuring the buyer's request.

What we measured

The published paid panel, called once a week through September with one fixed request carrying no inputs, with each bad-request answer set beside the payment challenge the same route publishes. The exact population rule is quoted beside the figure below, and the limits that bound it beneath.

What the evidence shows

Sealed days behind the archive figures
27
Observations in that window
315,315
Issue
Machine Commerce Reality Index: #002 — September 2026
Published

2026-09-04 · 2026-09-05 · 2026-09-06 · 2026-09-07 · 2026-09-08 · 2026-09-09 · 2026-09-10 · 2026-09-11 · 2026-09-12 · 2026-09-13 · 2026-09-14 · 2026-09-15 · 2026-09-16 · 2026-09-17 · 2026-09-18 · 2026-09-19 · 2026-09-20 · 2026-09-21 · 2026-09-22 · 2026-09-23 · 2026-09-24 · 2026-09-25 · 2026-09-26 · 2026-09-27 · 2026-09-28 · 2026-09-29 · 2026-09-30

27 of the 27 sealed days behind these figures are on the head table at /chain (9 re-derived from an off-vendor replica and 18 anchored from the archive as stored). Each day's manifest is served at /chain/<date>.

The published chain heads · Read the issue · Answers

What this does not say

Method and reproduction

The runs behind the figures, the record each one produced, and the terms this question uses.

What ran, when, and the record it produced.

What ranWhenRecord
The paid outcomes on the published panel: for every route called in September, what came back on each weekly call, whether and when a payment settled, whether the response named the transaction, and the terms quoted at call time against the terms drawn.1cb85af4060afcd3358d4dc024c7bc2dd58fed3c64d98b17140fc2de5f2698da
The request shape behind every paid-call error on the September panel: each attempt joined to its settlement receipt, to the chain reading of its payment, and to the input its own payment challenge declared, so an error can be classed as our incomplete request or as the seller's.efc91699a56c5eacc3b8efe3bf2a05247260ad6766adb28dd5ee775025354cff

The terms

The terms this question uses are defined in the glossary.

payment challenge · request example · settlement

Corrections and disputes

Corrections to this issue are on the corrections register, and this answer reads from the record rather than from a copy.

The corrections register