Stripe MPP vs Instant Checkout: How Agents Pay for a Fax
Compare Stripe MPP agent payments with hosted checkout. See how SingleFax handles HTTP 402 challenges, payment credentials and fax submission.

Stripe Link CLI is the main card path that can pay MPP-enabled services with Stripe today. Tempo Wallet, Privy, AgentCash, and Kite Passport pay the Tempo / USDC.e challenge on the same URL.
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 the 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 or pay Tempo USDC.
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 or pay Tempo USDC | HTTP 402 → 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 card rail. The same 402 also offers Tempo / USDC.e. Tempo Wallet, Privy, AgentCash, and Kite Passport pay that challenge. Stripe offramps into the merchant’s normal Stripe balance.
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": "<document>", "request_id": "<idempotency key>" }. Use a real destination (not +1555…) and the original file (Word, Excel, PDF, image, or text, do not convert to PDF first). 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-document-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. |
| Tempo Wallet / Privy / AgentCash / Kite Passport | Tempo tempo/charge | Pay the Tempo challenge on the same machine URL. USDC.e on Tempo mainnet. |
| mppx CLI | Yes | Dev / debug client; Stripe charge and Tempo. |
| Claude Code | Yes, via Link CLI MCP + Stripe plugin | Official card integration path. Tempo CLI also works. |
| Cursor / Codex | Yes, via Stripe plugin + Link CLI | Same pattern: agent drives Link, human approves. Cursor cannot mint an SPT alone. Tempo wallets still pay the Tempo challenge. |
| 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. |
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 | Link app for SPT; wallet signature for Tempo | 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 the original document (Word, Excel, PDF, or an image, do not convert to PDF first) 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 a Tempo wallet and you want pay-per-fax without creating a SingleFax API key. Typical: Claude Code or Cursor with a terminal and a US Link account, or a Tempo Wallet / Privy / AgentCash / Kite Passport client.
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 document” 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 or a Tempo USDC 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.