Skip to content

tempoxyz/mpp-specs

Machine Payments Protocol (MPP)

The open protocol for machine-to-machine payments.

Overview

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
Loading
  1. Client requests a protected resource
  2. Server responds with 402 Payment Required and a WWW-Authenticate: Payment challenge describing what payment is needed
  3. Client fulfills the payment (off-band, via the specified payment method)
  4. Client retries the request with an Authorization: Payment credential proving payment
  5. Server validates the credential and grants access

Design Principles

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.

Architecture

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.

Contributing

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.

License

Specifications: CC0 1.0 Universal (Public Domain)

Tooling: Apache 2.0 or MIT, at your option

About

Specifications for the Machine Payments Protocol - powered by the "Payment" HTTP authentication scheme

Resources

License

Unknown and 2 other licenses found

Licenses found

Unknown
LICENSE.md
Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Contributing

Security policy

Stars

Watchers

Forks

Contributors