
Stripe MPP vs Instant Checkout: How Agents Pay for a Fax
Stripe Machine Payments Protocol (MPP) is HTTP 402 plus a Shared Payment Token from Link. Instant Checkout is ACP shopping. Here is when to use each, and how SingleFax fits.
Stripe Link CLI is the main end-user tool that can pay MPP-enabled services with Stripe today.
MPP (Machine Payments Protocol) is the HTTP 402 flow Stripe co-authored with Tempo. The Stripe rail uses Shared Payment Tokens (SPTs) — scoped card credentials from a Link wallet — not a normal checkout page.
ChatGPT Instant Checkout is a different Stripe product (ACP). It is shopping in a chat UI, not the 402 API protocol.
SingleFax supports all three human-facing patterns that matter here: MCP + Checkout for chat apps, API keys + credits for backends, and MPP on POST /api/v1/machine/faxes for agents that can mint an SPT.
Do not send PHI on MCP, MPP, or the public API. Covered Entities use HIPAA Secure Mode on the website with an electronic BAA.
Three ways to pay at SingleFax
| You are… | Pay with | Entry |
|---|---|---|
| In Cursor, Claude, Codex, ChatGPT, or VS Code | Hosted Checkout, or leftover subscription pages | MCP at /mcp — install |
| Writing a script or backend | Prepaid credits | API key — developers |
| An agent that can mint a Stripe SPT | HTTP 402 → SPT retry | POST /api/v1/machine/faxes — mpp.md |
MPP does not replace MCP. Chat MCP tools return JSON. Link CLI needs a URL that returns HTTP 402 and WWW-Authenticate. Point mpp pay at the machine fax route, never at /mcp.
What MPP is
An agent requests a paid resource with no credential. The server answers 402 Payment Required with the amount, currency, and Stripe network / profile. The agent (usually Link CLI) mints an SPT from the user’s Link wallet. A human approves that spend in the Link app. The client retries with Authorization: Payment …. The merchant creates a Stripe PaymentIntent. Funds land in the merchant’s normal Stripe balance.
That is the Stripe rail. Other MPP clients (Tempo Wallet, Privy, AgentCash, Kite Passport) pay on Tempo / stablecoin rails, not Stripe cards. SingleFax’s live machine path is fiat SPT via Link.
Official references: Stripe MPP, Link CLI machine payments, Shared Payment Tokens, mpp.dev.
How the Stripe path works
- Service returns HTTP 402 with a Stripe challenge (amount, currency, network / profile ID).
- Link CLI (or an agent wrapping it) creates an SPT from the user’s Link wallet.
- User approves in the Link app.
- Client retries with the credential. The merchant creates a PaymentIntent. The fax is queued.
At SingleFax the URL is:
POST https://singlefax.com/api/v1/machine/faxes
Body is JSON { "to": "<E.164>", "base64": "<PDF>", "request_id": "<idempotency key>" }. Use a real destination (not +1555…) and real PDF bytes. Reusing a request_id with a different body returns 409. Stripe SPT has a $0.50 minimum; SingleFax’s retail floor is $0.99.
Install and pay:
npx skills add stripe/link-cli
# or: npx @stripe/link-cli --mcp
npx @stripe/link-cli auth login
npx @stripe/link-cli mpp pay https://singlefax.com/api/v1/machine/faxes \
-X POST \
-d '{"to":"+14155552671","base64":"<real-pdf-base64>","request_id":"mpp-1"}' \
--context "Send a fax via SingleFax after the user asked this agent to pay for the send."
US Link account required. Commands and challenge shapes: agents § MPP and mpp.md.
What actually supports Stripe MPP
| Tool | Stripe MPP | Notes |
|---|---|---|
Link CLI (link-cli mpp pay) | Yes — native stripe.charge / SPT | Parses the 402, creates an SPT, retries. User approves each spend in the Link app. Can run as an MCP server. US Link accounts. |
| mppx CLI | Yes | Dev / debug client; Stripe charge and Tempo. Not the end-user path. |
| Claude Code | Yes, via Link CLI MCP + Stripe plugin | Official integration path. |
| Cursor / Codex | Yes, via Stripe plugin + Link CLI | Same pattern: agent drives Link, human approves. Cursor cannot mint an SPT alone. |
| ChatGPT custom MCP | No (use Checkout) | Developer-mode connectors call SingleFax MCP. Payment is a Checkout URL, not Instant Checkout and not MPP. |
| Grok Bot / shopping Link | Link for purchases | Uses Link for single-use cards / tokens with human approval. Shopping-oriented; MPP SPT is the same Link stack, not ChatGPT Instant Checkout. |
Tempo-rail MPP wallets are real MPP clients. They are not how you pay SingleFax with a card.
MPP vs ACP (Instant Checkout)
| MPP | ACP / Instant Checkout | |
|---|---|---|
| What it is | HTTP 402 on an API | Stripe Agentic Commerce Protocol for in-chat shopping |
| Where it runs | Any client that can retry a 402 | ChatGPT Instant Checkout and similar shop UIs |
| Credential | Shared Payment Token from Link (or Tempo on other rails) | Also uses SPTs, for a checkout session — not a 402 API |
| Human in the loop | Approves each spend in the Link app | Confirms in the chat checkout UI |
| SingleFax | Live on POST /api/v1/machine/faxes | Not used. ChatGPT MCP still returns a SingleFax Checkout URL |
If someone says “the agent paid with Stripe in ChatGPT,” they usually mean Instant Checkout or a hosted Checkout link — not MPP.
When to use which
Use MCP when a person is in Cursor, Claude, Codex, ChatGPT, or VS Code and you want the assistant to upload a PDF and either open Checkout or spend leftover subscription pages. That is the default. Install MCP.
Use MPP when the agent can run Link CLI (or wrap it) and you want pay-per-fax without creating a SingleFax API key. Typical: Claude Code or Cursor with a terminal, a US Link account, and a human who will tap approve.
Use the REST API + CLI when the sender is your service: workers, cron, an internal tool. Create a key, prepay credits, no 402. Developer docs.
Do not use MPP for PHI, for ChatGPT Instant Checkout, or by pointing Link CLI at /mcp.
Use cases with SingleFax
1. “Fax this PDF” in Claude Code or Cursor
Add SingleFax MCP for quote + draft. If you want the agent to pay instead of opening Checkout, add Link CLI and mpp pay the machine URL. You still approve in Link. Same $0.99 retail floor as the website.
2. A backend that should not hold a card
Prefer API keys and credits. MPP is for agents with a Link wallet, not for storing customer cards on your server.
3. A one-off government or court fax from an agent
IRS and many courts still take fax. The agent can assemble the PDF and pay per send. Confirm the destination on the agency site. This path is not HIPAA; do not put medical records on MPP.
4. ChatGPT Developer Mode
Custom MCP works for tools. Payment is Checkout. Instant Checkout is a merchant shopping integration SingleFax does not use.
Related
- Install MCP (Cursor, Claude, Codex, ChatGPT, VS Code)
- MPP command reference (mpp.md)
- REST API, CLI, and language examples
- Send a fax with AI agents and MCP
- Pay-per-fax vs subscription
FAQs
Can an AI agent pay SingleFax with Stripe MPP today?
Yes. Use Stripe Link CLI against POST /api/v1/machine/faxes. Approve the spend in the Link app. Chat apps should use MCP plus Checkout. Do not send PHI on MPP.
Is Stripe MPP the same as ChatGPT Instant Checkout?
No. Instant Checkout is ACP shopping. MPP is HTTP 402 on an API. SingleFax machine faxes use MPP.
Can Cursor pay MPP by itself?
No. Install Link CLI, pay the REST machine URL, approve in the Link app. US Link accounts.
When should I use MCP instead of MPP?
Chat apps: MCP. Backends: API key + credits. MPP: only if the client can mint a Shared Payment Token.