# Let AI agents pay you per call: x402 and MPP

At 26 of the 40 products where our agent reached paying, a card form was as far as it could go. Add x402 or MPP to a paid endpoint and check it with curl.

Source: https://agentdrives.com/fixes/let-agents-pay-per-call · Updated 2026-10-12 · Wall: Card-only checkout

A card checkout needs a person with a card. Answer a paid API call with a 402 and a price, and an agent pays in the same request, with nobody on your side.

## The numbers

From the drives of 140 products, 1–16 Oct 2026 (https://agentdrives.com/data/facts?via=md):

- Products where our agent reached the card form and stopped there, of those where it got as far as paying: 26 of 40
- Products where only a person can buy, of those where our agent got as far as paying: 3 of 40
- Products that answer a paid call with a 402 on their own domain: 10 of 140
- Products where our agent paid on its own and we checked the payment: 5 of 140

## What agents hit

Our agent got as far as paying at 40 of 140 products. At 26 of them it reached the card form and stopped there, and at 3 only a person can buy.

A card checkout wants a card and someone to type it in. An agent on its own has neither, so it stops there or picks a product it can pay.

x402 and MPP take that step out. Your API answers an unpaid call with HTTP 402 and a price. The agent pays, sends the call again and gets its answer. There is no checkout page, card form or sign-up. [1]

## Who already does it

10 products we drove answer a paid call with a 402 on their own domain:

- [AgentMail](https://agentdrives.com/tools/agentmail?via=md): x402.
- [Apify](https://agentdrives.com/tools/apify?via=md): x402. Our agent paid it on 16 October 2026.
- [Brave Search API](https://agentdrives.com/tools/brave?via=md): x402.
- [Browserbase](https://agentdrives.com/tools/browserbase?via=md): x402. Our agent paid it on 13 October 2026.
- [Exa](https://agentdrives.com/tools/exa?via=md): x402 and MPP. Our agent paid it on 15 October 2026.
- [Parallel](https://agentdrives.com/tools/parallel?via=md): x402 and MPP. Our agent paid it on 15 October 2026.
- [Pinata](https://agentdrives.com/tools/pinata?via=md): MPP.
- [Steel](https://agentdrives.com/tools/steel?via=md): x402. Our agent paid it on 12 October 2026.
- [Stripe](https://agentdrives.com/tools/stripe?via=md): x402 and MPP.
- [Tavily](https://agentdrives.com/tools/tavily?via=md): x402.

## The fix, step by step

1. **Pick the calls to charge for.** Start with the calls an agent makes on its own and that cost you to serve: a search, a scrape, a render, a report. Give each one a price.

2. **Answer an unpaid call with a 402 and the price.** With x402 the price goes in a `PAYMENT-REQUIRED` header, as base64 JSON. [2] Its `accepts` list holds the ways you take payment, [3] each with a network, an amount in the token's smallest unit [3] and the address to pay. The agent pays and sends the call again with `PAYMENT-SIGNATURE`, and you answer with the result and `PAYMENT-RESPONSE`. [2]

   ```
   HTTP/1.1 402 Payment Required
   PAYMENT-REQUIRED: eyJ4NDAyVmVyc2lvbiI6Mi…
   
   # the header, decoded:
   {"x402Version": 2,
    "resource": {"url": "https://api.example.com/v1/search"},
    "accepts": [{"scheme": "exact", "network": "eip155:8453", "amount": "10000",
                 "asset": "<USDC on Base>", "payTo": "<your address>", "maxTimeoutSeconds": 60}]}
   ```

3. **Take MPP too, and cards with it.** MPP asks the same way, with `WWW-Authenticate: Payment` on the 402, [4] and puts a `Payment-Receipt` header on the paid answer. [4] On Stripe, MPP takes cards and stablecoins, and x402 takes stablecoins. [5] A card payment over MPP is at least 0.50 USD [5]. Below that, take stablecoins, or bill with MPP sessions: sub-cent amounts per piece of work, settled from 0.01 USDC [5].

4. **Let Stripe or Coinbase settle it.** A facilitator checks each payment and settles it for you, so you run nothing on a blockchain. [6] With Stripe machine payments, both land in your Stripe balance and settle in your currency, [5] and x402 settles through Coinbase's facilitator. [7] Stripe takes stablecoins in all US states except New York [5]; elsewhere you ask Stripe for access by email, with your account ID. [5] Coinbase's CDP Facilitator also works on its own: it checks, screens and settles each payment, [8] and the first 1,000 onchain transactions a month [8] cost nothing.

5. **Put your prices where agents read them.** Serve your OpenAPI at `/openapi.json` [9] and give each paid operation an `x-payment-info` block with its offers [9] and a 402 response. [10] An agent then knows what a call costs before it makes it. [10] Link your llms.txt from `x-service-info`, [10] and list the paid calls and their prices in the llms.txt too. Once it works, ask Stripe to list you in its Directory, which helps agents find you. [5]

   ```
   "/v1/search": {
     "post": {
       "x-payment-info": {"offers": [
         {"amount": "10000", "currency": "<USDC token address>", "intent": "charge",
          "method": "tempo", "description": "One search"}]},
       "responses": {"200": {"description": "Results"}, "402": {"description": "Payment Required"}}
     }
   }
   ```

6. **Let agents buy plans and credits by API or MCP.** For a plan, credits or an add-on, give agents a call that buys against the card on the account, and answer with the price and when it starts. Vercel's MCP server does this: it quotes the price and whether it recurs, and buys once the person confirms. [11]

7. **List your plans on Stripe Projects.** Coding agents add services through Stripe Projects, whose protocol covers plan choice and upgrades. [12] A paid plan reaches you as a payment token Stripe grants for that upgrade. [12] Providers join on request. [12]

## Check it yourself

1. **Call a paid endpoint without paying.** You want a 402, with `PAYMENT-REQUIRED` (x402) or `WWW-Authenticate: Payment` (MPP).

   ```
   curl -si -X POST https://api.example.com/v1/search \
     | grep -iE "^HTTP|^payment-required|^www-authenticate"
   ```

2. **Read the price the way an agent does.** Decode the x402 header. You want your network, the amount and your address.

   ```
   curl -si -X POST https://api.example.com/v1/search \
     | grep -i "^payment-required:" | cut -d" " -f2 | tr -d "\r" \
     | base64 -d | jq ".accepts[] | {scheme, network, amount, payTo}"
   ```

3. **Find your prices in your OpenAPI.** Each paid operation should show its offers.

   ```
   curl -s https://api.example.com/openapi.json \
     | jq '[.paths[][] | objects | select(has("x-payment-info")) | .["x-payment-info"]]'
   ```

4. **Pay one call on a test network.** Use the public x402.org facilitator, which is for test networks only, [6] and a test wallet. You want the answer and a `PAYMENT-RESPONSE` header.

## After the fix

Fixed something? Order a Drive ($49) any time, or the Monthly drive ($29/month).

## Questions

**Does a card checkout count toward L5?**

No. L5 needs everything in L4 and a payment our agent made over x402 or MPP, which we checked. A card checkout never counts, even one an agent could finish. A product with nothing to pay can reach L5 too.

**Do agents need crypto to pay us?**

Not with MPP on Stripe: it takes cards as well as stablecoins. x402 takes stablecoins. Either way, Stripe pays it into your balance in your currency.

**Do we drop our plans?**

No. Per-call payment adds a way in for an agent with no account and no card. People keep buying plans the way they do now.

## Sources

1. [x402 on Coinbase Developer Platform](https://docs.cdp.coinbase.com/x402/welcome)
2. [x402 over HTTP](https://raw.githubusercontent.com/x402-foundation/x402/main/specs/transports-v2/http.md)
3. [x402 specification, version 2](https://raw.githubusercontent.com/x402-foundation/x402/main/specs/x402-specification-v2.md)
4. [The Payment HTTP authentication scheme (MPP)](https://www.ietf.org/archive/id/draft-httpauth-payment-01.txt)
5. [Machine payments](https://docs.stripe.com/payments/machine)
6. [x402: the facilitator](https://docs.x402.org/core-concepts/facilitator)
7. [x402 on Stripe](https://docs.stripe.com/payments/machine/x402)
8. [CDP Facilitator](https://docs.cdp.coinbase.com/x402/seller/facilitator)
9. [MPP payment discovery](https://paymentauth.org/draft-payment-discovery-01)
10. [MPP: discovery](https://mpp.dev/advanced/discovery)
11. [Vercel MCP now supports purchases](https://vercel.com/changelog/vercel-mcp-now-supports-purchases)
12. [Stripe Projects](https://docs.stripe.com/projects)

## More fixes

- [Let signed AI agents past your bot check](https://agentdrives.com/fixes/let-signed-agents-past-your-bot-check.md): The setting for Cloudflare, Vercel, Akamai, DataDome and HUMAN, and what to do about a check on the form.
- [Let AI agents sign up and get an API key](https://agentdrives.com/fixes/let-agents-sign-up-and-get-a-key.md): An API call that signs up and returns a limited key, and a claim step for the person.
- [MCP sign-in an AI agent can finish: OAuth and CIMD](https://agentdrives.com/fixes/mcp-sign-in-agents-can-finish.md): OAuth metadata, CIMD or DCR, and a way to approve without a browser on the agent's side.
- [Let AI agents start without a credit card](https://agentdrives.com/fixes/card-free-starts.md): A free plan or a trial without a card, an API key that works on it, and limits instead of a card.
- [Docs AI agents can read: llms.txt, Markdown, OpenAPI](https://agentdrives.com/fixes/docs-agents-can-read.md): An llms.txt, Markdown twins of your pages, an OpenAPI spec and an MCP server card.
