Specifications for the Machine Payments Protocol - powered by the "Payment" HTTP authentication scheme
mpp-specs is a growing Python project in the AI payments / x402 ecosystem, focused on http, machine-payments, mpp, payment-authentication. It currently has 85 GitHub stars and 54 forks, and sits alongside related tools like mppx, mpp-rs, pympp, inflow-node, Caypo, takjil-agents-mpp.
The open protocol for machine-to-machine payments.
The Machine Payments Protocol (MPP) is an open standard for machine-to-machine payments, co-authored by Tempo and Stripe. Paying for an internet resource, such as an API call, a dataset, or a unit of compute, still typically requires an account, API key, or billing relationship set up in advance. MPP lets any client pay as part of the HTTP exchange using the native 402 Payment Required status code.
Primary use cases include agentic payments, such as an AI agent paying per API call, machine-to-machine commerce, and usage-based billing without pre-provisioned accounts.
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
402 Payment Required and a WWW-Authenticate: Payment challenge describing what payment is neededAuthorization: Payment credential proving paymentMPP is designed to be simple, secure, and performant, holding the following design principles as guides:
See STYLE.md for the full design principles and RFC writing conventions.
The specification is modular, separating stable protocol mechanics from evolving payment ecosystems:
The MPP repository contains the mpp.dev documentation and service directory. SDKs are available for TypeScript, Python, Rust, Go, and Ruby.
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
TypeScript Interface for Machine Payments Protocol
Rust SDK for the Machine Payments Protocol
Python SDK for the Machine Payments Protocol
Official TypeScript/Node.js SDKs for the InFlow payments platform - x402 and MPP (Machine Payments Protocol) integration for sellers and buyers.
Agent finance on institutional rails — MPP payments, USDCx transfers, MCP server, CLI
Tempo Agent Chalengger
Alephant is an open-source AI Agent Gateway for routing, tracking, and controlling LLM usage across AI agents, members, and workflows, and for publishing agent capabilities as paid endpoints with x402 and MPP payment rails.
Website for the Machine Payments Protocol
Building blocks for Agentic payments (x402, MPP, AP2) for TypeScript, Rust, Go, Python, Ruby, PHP, Lua, Kotlin and Swift.
Building blocks for Agentic payments (x402, MPP, AP2) for TypeScript, Rust, Go, Python, Ruby, PHP, Lua, Kotlin and Swift.
A universal framework designed to allow agents and other utilities to transparently make machine payments using web infrastructure.
No description.