The error envelope
Errors do not reuse the success envelope. They carry an extrastatus field and nest
the message one level deeper:
data.message. Read the status from the HTTP status line — the
statusCode field mirrors it and is there for clients that lose the status line through a
proxy.
HTTP status usage
Codes you will hit
These are stable, machine-readable strings. Match on the code, never on the message text.Checkout and PSP readiness
Returned byGET /checkout/:shopUrl/payment-intent-resolver, inside
data.meta.breakerSkipped[], to explain why a payment method the shop nominally has is not
being offered:
A live response for a shop in that state:
x402 settlement
Agent surfaces
Throttling
What to do with an unknown code
Codes are added as subsystems learn to explain themselves. Treat an unrecognisedreason/code as a hard failure for that path — do not fall through to a different
payment method on your side. If a code you are seeing is not listed here, tell us: an
uncatalogued code is a documentation bug.