Agent Payments Atlas

Machine Payments Protocol: MPP Architecture and Integration

The Machine Payments Protocol, MPP, puts a payment exchange alongside a web-service request. A service issues a Challenge, a supported client answers with a Credential, and the service returns a Receipt for the payment outcome. Choose the method and billing intent from the actual service offer rather than assuming every MPP endpoint accepts the same route.

Define the service purchase and billing model

Suppose an analyst's agent uses a paid research API while preparing a supplier assessment. It can buy one fixed response, consume a metered stream or acquire access for a billing period. These are different financial commitments even if the same service offers them. The agent must understand which commitment the user permits.

MPP is presented as an extensible payment approach for web services. Its official examples describe the Challenge, Credential and Receipt exchange. The abstraction does not erase differences between the underlying payment methods, account requirements or settlement mechanics. [1] [2]

Start with one useful result: a completed supplier assessment response. Define the input and output, accepted payment method and maximum spending authority. If the service meters usage, also define when the client stops consumption. A request timeout is not a substitute for an explicit cost boundary.

This guide explains architecture and operating choices. It does not run a live purchase, publish a benchmark or promise that a particular account can use every documented method. Record the exact protocol and SDK revision for your implementation and follow the current reference for executable calls.

Trace Challenge, Credential and Receipt

The first resource request reaches the service without a completed payment exchange. A payment-required response describes the offered route. The client checks whether it has a supported method and permission to use it, then produces the required credential. The server evaluates the credential and returns the outcome with the resource response. [2]

For the research API, the agent should not treat receipt of a Challenge as an instruction to pay unconditionally. The buyer's policy still needs to check the seller, purpose and amount or maximum. The payment-aware client can automate the exchange, while the authorization boundary decides which exchanges may proceed.

The Receipt belongs in the purchase record. Connect it to the resource request and the result rather than saving it in an unrelated tool log. If an operator later asks why the supplier assessment cost money, the record should show the approved service and the outcome without reconstructing the agent's entire conversation.

A readable diagram should identify where the underlying method performs its financial work. Avoid writing settled when the evidence only shows that a credential was accepted or an intermediate receipt was returned. Use the selected method's current definitions for the states you expose.

An MPP service exchange

  1. Resource request

    The agent requests the supplier assessment.

  2. Challenge

    The service returns a supported payment offer.

  3. Buyer decision

    Policy checks method, intent, seller and permitted commitment.

  4. Credential

    The configured client produces and submits the required response.

  5. Receipt and resource

    The service returns payment evidence and the requested result.

  6. Validation

    The buyer checks the assessment and records the actual outcome.

Conceptual request flow. The method defines its actual financial processing and settlement behavior.

Select a method and intent together

A payment method and a billing intent answer different questions. The method determines the payment implementation. The intent determines the kind of commitment, such as a one-time charge or an accumulating session. The documented multi-offer discovery structure can describe more than one combination for a route. [3]

The official examples include Tempo and Stripe method paths. Treat those as separately configured routes, with their own prerequisites. A client supporting one method does not establish support for every offer returned by a service. Check the method, intent, currency and implementation together before selecting an option. [3]

For one supplier response, a fixed charge may keep the acceptance conditions straightforward. For a longer stream, a session can make the billing unit explicit. A subscription is a different recurring-access decision and should be presented to the user accordingly. The table below separates those patterns without assigning invented fee advantages.

If a directory advertises several offers, still inspect the current service requirements before purchase. Discovery metadata helps find a candidate route. Your payment policy should evaluate the actual offer and reject a combination the user did not permit.

The following discovery walkthrough is pinned to draft-payment-discovery-01, published 5 October 2026, and is a paper example rather than a live transaction. Read the operation’s x-payment-info.offers array; identify the method, intent, amount and currency for a permitted fixed charge. Then request the resource and compare the actual 402 Challenge with that offer. The draft makes the runtime Challenge authoritative, so changed terms require a fresh policy check. Only then create the selected method’s Credential, inspect the Receipt and validate the research response. This draft revision is work in progress and does not pin an SDK package version. [8]

Match billing intent to authority

Scroll the table to compare all columns.

Documented method / intentPurchase patternAuthority to defineImplementation check
Tempo / chargeOne-time responseSeller, purchase and allowed amountCurrent method configuration and runtime Challenge
Stripe / chargeOne-time responseSeller, purchase and allowed amountSeparate Stripe prerequisites and credential path
Tempo / sessionMetered streamUsage unit, maximum and top-up boundarySession reference, persisted state and final outcome
Tempo / subscriptionRecurring accessMerchant, billing period and renewal authoritySubscription announcement describes Tempo; verify current method reference
Documented official examples checked 8 October 2026. This is a selected-method map, not a complete method registry or a claim that all SDKs support every intent.

Understand metered sessions before authorizing them

The official session explanation describes authorizing spending and increasing the authorized amount as service usage accumulates. The client and server maintain a running authorization rather than treating every unit as an unrelated purchase. Method-specific mechanics still determine how funding and settlement work. [4]

For a streamed assessment, define the unit being billed, the maximum permitted commitment and the point at which the client stops requesting more work. A lower initial payment is not useful protection if an automatic top-up can continue beyond the user's intended total.

Track three separate quantities in your application where relevant: the amount made available, the amount authorized for accepted usage and the amount finally charged or returned. These are conceptual accounting distinctions, not invented universal MPP field names. Use the selected implementation's authoritative values for each.

A restart also needs a defined behavior. Determine whether the client resumes an existing session, opens a new one or requests review. Opening another funded session after losing local state could create a different commitment. Keep the relevant session reference and recovery instructions outside a model's disposable conversation context.

Keep recurring access separate from one purchase

MPP's subscription announcement describes recurring access tied to a merchant, terms and billing period. That is a different user decision from paying for one response. A client should not convert a one-time task into recurring authority merely because a subscription is an available offer. [5]

For the supplier assessment, ask whether a periodic plan is needed at all. If it is, define who owns the subscription, what renews, how access is checked and how the organization stops future renewals. Those operational decisions belong in the integration record before the agent accepts recurring terms.

Do not copy an announcement's future method plans into a claim of current support. Verify the actual subscription method and reference for the selected implementation. An MPP feature existing in one path does not prove identical support in all SDKs or payment methods.

Instrument the financial lifecycle

MPP's official payment-hook documentation describes events around challenges, successful payments and failed credentials. Such hooks help connect a user request to the payment exchange. They are useful observability points, not a replacement for the authoritative state of the payment method. [6]

For the research API, record the purchase reference, selected offer, permitted maximum, relevant Challenge identifier and Receipt reference where supplied. Avoid logging private signing material or raw credentials simply because a debug callback makes them available. The record should explain the purchase without enabling someone else to repeat its financial authority.

Give errors specific categories. An unsupported method, denied policy, invalid credential and lost response need different recovery. A generic payment failed message forces the agent or operator to guess whether to change configuration, request approval or inspect an existing attempt.

Also connect resource errors to the same purchase record. The service can accept payment while returning data unsuitable for the supplier assessment. Keep that as a delivery or content-validation problem, rather than rewriting the payment outcome to match the overall task result.

Name the operator who can stop new financial actions when the agent behaves unexpectedly. Stopping the research task, revoking a client session and resolving an already submitted payment are separate operations. An emergency stop should prevent new commitments while preserving enough evidence to finish reconciliation of existing ones. Document which component owns each action and verify that the agent cannot reenable its own permission through another tool.

Handle uncertain retries and lifecycle changes

If the request times out after the credential is submitted, investigate the existing attempt. The absence of a local response does not prove that the server did nothing. Creating another paid request can duplicate a commitment or start a separate session.

Write a retry policy for each supported intent. A one-time charge, running session and recurring subscription need different recovery questions. Explain which identifiers are reused, which states are inspected and what constitutes a new financial action. The model should not choose a new intent merely because the first request was inconvenient.

When a service changes its offered terms, evaluate the new method and amount or maximum against authority. Preserve the original offer in the record so a reviewer can understand the difference. A directory label saying the same service name does not establish that the financial commitment remained the same.

Follow the current SDK reference when implementing these actions. The fresh TypeScript reference marks verifyCredential as a legacy alias and points new integrations to broadcastCredential. That is a reason to pin the reference and review migrations, not to paste an old method name into every new example. [7]

Verify a bounded integration

Build one permitted fixed purchase before adding metering or recurring access. Confirm the expected response, denied authority, unsupported method and unresolved-response behavior. Record the environment and observed result; this article's scenario is synthetic and supplies no live reliability statistics.

If sessions are required, add a test where consumption reaches the authorized boundary. Check that the integration stops or obtains appropriate further permission. If subscriptions are required, inspect the actual recurring terms and cancellation or renewal control path. Each added intent should have a reason connected to the user's task.

The mppx SDK documents x402 exact support through its payment-method interface. That does not make every MPP offer an x402 offer. X402 Hub provides affiliated x402 paid-resource discovery and payment integration; it is relevant where the chosen resource uses that supported route. Check the actual payment terms before selecting it. [9] [10]

Finish with a record another engineer can maintain: service offer, method, intent, currency, authority, relevant implementation versions, lifecycle records and delivery validation. The analyst should receive a useful supplier assessment and a clear account of the financial commitment made to obtain it.

Products for this workflow

X402 Hub

Discover x402 paid resources and connect the supported payment route; affiliated with this publisher.

Explore X402 Hub ↗

Editorial disclosure: the publisher is connected to the products in this section. Their inclusion is based on the task described here.

Sources and evidence

  1. Machine Payments Protocol ↗

    Official homepage describes methods as extensible.

  2. MPP Go and Ruby SDK exchange ↗

    Challenge, Credential and Receipt flow.

  3. MPP multiple payment offers ↗

    Method and intent combinations in discovery.

  4. MPP sessions ↗

    Running authorization and session lifecycle.

  5. MPP subscriptions ↗

    Recurring access and method-specific support.

  6. MPP payment hooks ↗

    Lifecycle observability.

  7. Current verifyCredential reference ↗

    Legacy alias and current API recommendation.

  8. Payment discovery draft-01 ↗

    October 5 work-in-progress revision: offers, method/intent/amount/currency and authoritative runtime 402.

  9. mppx EVM and x402 support ↗

    Official June 8 announcement documents x402 exact through the payment-method interface.

  10. X402 Hub ↗

    X402 Hub provides x402 paid-resource discovery and payment integration.