Skip to main contentWhat is HTTP 402?
HTTP 402 is a standard, but rarely used, HTTP response status code indicating that payment is required to access a resource.
In x402, this status code is activated to:
- Inform clients (buyers or agents) that payment is required.
- Communicate the details of the payment, such as amount, currency, and destination address.
- Provide the information necessary to complete the payment programmatically.
Why x402 Uses HTTP 402
The primary purpose of HTTP 402 is to enable frictionless, API-native payments for accessing web resources, especially for:
- Machine-to-machine (M2M) payments (e.g., AI agents).
- Pay-per-use models such as API calls or paywalled content.
- Micropayments without account creation or traditional payment rails.
Using the 402 status code keeps x402 protocol natively web-compatible and easy to integrate into any HTTP-based service.
x402 V2 uses two standardized headers for payment communication:
PAYMENT-SIGNATURE: Contains the Base64-encoded payment payload from the client. This header is sent by the client when retrying a request after receiving a 402 response, proving they have authorized payment.
PAYMENT-RESPONSE: Contains the Base64-encoded settlement response from the server. This header is returned by the server in the successful response, confirming the payment was verified and settled.
Both headers must contain valid Base64-encoded JSON strings. This encoding ensures compatibility across different HTTP implementations and prevents issues with special characters in JSON payloads.
Summary
HTTP 402 is the foundation of the x402 protocol, enabling services to declare payment requirements directly within HTTP responses. It:
- Signals payment is required
- Communicates necessary payment details
- Integrates seamlessly with standard HTTP workflows