MPP (Machine Payment Protocol) Payments
Conto supports the Machine Payment Protocol (MPP) for session-based micropayments on the Tempo blockchain. MPP enables agents to open payment sessions, make incremental charges, and settle when done.MPP endpoints enforce explicit API-key scopes. Pre-authorization requires
payments:request,
recording settlement requires payments:execute, and budget or service analytics require
analytics:read.How It Works
- Agent calls an MPP-enabled service and receives a 402 challenge
- Agent pre-authorizes the session deposit through Conto policies
- Agent opens an MPP session with a deposit budget
- Agent makes requests, each consuming part of the deposit
- Session closes and unused deposit is returned
Pre-Authorization
Before opening an MPP session, validate against policies and budget limits:serviceDomain from resourceUrl, so you do not need to send it separately. Send
the scheme, credential, challenge, payment method, and stable session ID when available so MPP
service, method, and session-lifecycle controls have the context they require. sessionId is
required when intent is session.
Response (Approved):
Recording Transactions
After MPP charges are settled, record them in Conto:paymentReceipt is supplied, Conto rejects unsuccessful or challenge-mismatched receipts
with 400 and amount mismatches with 409. Because the receipt is caller supplied, passing its
structural and consistency checks does not confirm settlement. Receipt-only records remain
PENDING. When txHash is supplied, Conto confirms the record only after the on-chain transfer
matches the wallet sender, recipient, amount, and currency; pending transfers return 409, and
mismatches return 422. Reuse the same credentialId and sessionId on retries; a session ID
cannot be reused by another agent.
Use optional context.department and context.project values during pre-authorization and
recording to apply scoped budgets. Conto persists the same dimensions on the aggregate settlement
transaction.
Use the flat top-level settlement fields for the aggregate payment. For multiple per-call charges,
send those details in batchItems; the record endpoint does not accept a top-level payments
array.
If you settle multiple calls together, keep the top-level fields for the aggregate settlement and
send per-call detail records in batchItems:
Querying Services
View MPP services your agent has used:Budget Tracking
Check remaining MPP budget:sessionId is supplied,
spend.session also reports the call count and amount recorded with that customer-defined ID.
Unified Machine Spend View
If this agent also uses x402 or multiple paid services, use the shared machine-spend endpoints for a combined view:MPP Policy Rules
Configure MPP-specific policies to control session-based payments. The complete list of MPP rule types, value formats, and operators lives in Advanced Policies > MPP Protocol Rules.Supported Chain
MPP payments are supported on the Tempo blockchain, on both testnet and mainnet. The examples in this guide use Tempo Testnet.Next Steps
x402 Payments
HTTP 402 micropayments for APIs
Machine Spend
View unified x402 and MPP service spend
Advanced Policies
Configure MPP-specific policy rules