What is MPP, the Machine Payments Protocol?

MPP, the Machine Payments Protocol, is an open standard for machine-to-machine payments over HTTP 402: a server answers a request with a payment challenge, the client pays and repeats the request with a credential, and the server delivers.

Updated

The exchange

A client calls a service. If payment is required, the server replies with status 402 and a WWW-Authenticate: Payment header that states what it wants: the amount, the currency, the payment networks it accepts, and how to prove payment. The client obtains a credential from one of those networks and repeats the identical request with an Authorization: Payment header. The server verifies the credential, serves the request, and returns a receipt.

What it is for

Paying for API calls and services without an account or an API key: one-time charges, metered sessions, and recurring access, across several payment networks from one integration. The protocol’s site lists stablecoins on Tempo, Stripe cards, Lightning, Solana, the XRP Ledger, Stellar and EVM chains among the networks it supports.

Identity first, then payment

Some purchases need to know who the customer is before they can be paid for. OpenMerchant’s MPP services answer such a purchase with 401 and an identity challenge first, then with 402 once the customer is linked. The purchase body and its idempotency key stay identical across both retries, so the order keeps its state.

How OpenMerchant uses it

OpenMerchant registers its merchants’ services with MPP and publishes a manifest at /.well-known/mpp.json that names the service origin, the endpoint templates, and the payment methods it supports. The runtime 402 response is always the authority for a concrete request.

Sources

  1. Machine Payments Protocol
  2. MPP service registry
  3. OpenMerchant MPP service manifest