The open protocol for machine-to-machine payments.
- IETF Draft — the core specification submitted to the IETF
- Full Rendered Spec — all specs including methods and extensions
- Learn more
MPP lets businesses offer services to agents, apps, and humans via a standard HTTP control flow. The protocol defines a payment-method agnostic core alongside extensions for specific payment method flows, discovery, and identity.
sequenceDiagram participant Client participant Server Client->>Server: GET /resource Server-->>Client: 402 Payment Required<br/>WWW-Authenticate: Payment ... Note over Client: Client fulfills payment challenge Client->>Server: GET /resource<br/>Authorization: Payment credential Server-->>Client: 200 OK - Client requests a protected resource
- Server responds with
402 Payment Requiredand aWWW-Authenticate: Paymentchallenge describing what payment is needed - Client fulfills the payment (off-band, via the specified payment method)
- Client retries the request with an
Authorization: Paymentcredential proving payment - Server validates the credential and grants access
MPP is designed to be simple, secure, and performant, holding the following design principles as guides:
- Extensible core: Minimal protocol designed for safe extension.
- Network agnostic and multi-rail: Designed to support a number of payment networks and settlement layers, including bank rails, credit cards, and stablecoins.
- Currency agnostic: No implicit advantages for any currency or asset.
- Durable by design: All designs follow web standards and are designed for security and replay protection as first class concerns.
See STYLE.md for the full design principles and RFC writing conventions.
The specification is modular, separating stable protocol mechanics from evolving payment ecosystems:
- Core: HTTP 402 semantics, headers, IANA registries.
- Intents: Abstract payment patterns—charge, authorize, subscription. Define what kind of payment without specifying how.
- Methods: Concrete implementations for specific networks (Tempo, Stripe, ACH).
- Extensions: Optional protocol additions, such as discovery and identity.
The Machine Payments Protocol specification is currently maintained by the following organizations:
We welcome contributions from a wide variety of individuals and organizations.
See CONTRIBUTING.md for building instructions and contribution guidelines.
Specifications: CC0 1.0 Universal (Public Domain)
Tooling: Apache 2.0 or MIT, at your option