checkout402_
Get started

Introduction#

checkout402 turns anything your API sells into a URL that both humans and AI agents can pay — without an account, a subscription, or an API key on the buyer's side.

One object, one URL, two faces:

  • A browser gets a pay page.
  • An agent gets an HTTP 402 describing exactly what's for sale and what it costs, then pays it and receives the goods in the same round trip.

Same checkout. Same price. No separate "agent product".

Base URL#

https://api.checkout402.com

The marketing site lives at checkout402.com; everything programmable is on api.checkout402.com.

Authentication#

Sellers authenticate with a bearer token. Buyers never authenticate — the payment is the login.

curl https://api.checkout402.com/v1/checkouts \
  -H "Authorization: Bearer c402_live_your_key_here"

Keys carry a mode and a scope:

Prefix What it can do
c402_test_… Everything, but its checkouts are born unarmed — they rehearse (simulated settlement, no funds) until you go live. No real money can move.
c402_live_… Real settlement on mainnet. Its checkouts are born armed.

Every checkout, whichever key made it, keeps a rehearsal face at /c/{id}/test that settles without real money and can never be armed.

New keys are test keys

POST /v1/keys defaults to mode: test. A key minted by a one-liner should not be able to spend, so you opt in to live deliberately.

Get your first key one of two ways:

# No email, no browser — sign a challenge, get a key.
c402 login --wallet $AGENT_PRIVATE_KEY
# Sign in at https://checkout402.com/login, then:
c402 keys create --name laptop --mode live

An invalid or missing key returns 401. A key without the right scope returns 403.

What it costs#

0.5% of the price, plus a fixed $0.01. Nothing else — no monthly fee, no per-seat cost, no minimum volume.

Both parts are charged on top of the seller's price, so the seller receives the number they set. The fixed part is what one on-chain settlement costs to land, and it costs the same whether the sale is $0.01 or $1,000 — so it is added to every payment rather than absorbed into the percentage.

The fee is visible in every 402 before anyone pays, split out from the seller's amount:

{
  "maxAmountRequired": "110500",
  "extra": { "providerAmount": "100000", "feeAmount": "10500" }
}

That example is a $0.10 sale: $0.0005 percentage plus $0.01 fixed = $0.0105 fee, $0.1105 total.

Non-custodial, always#

Money settles on-chain directly to a wallet you control. checkout402 never holds seller funds, has no withdrawal flow, and cannot freeze a balance — because there is no balance. The fee is split out in the same on-chain transaction that pays you.

Where to go next#

If you want to… Read
Get a paid checkout working in five minutes Quickstart
Understand the object model Concepts
Put your existing API behind a paywall Sell an API
Charge readers, and AI crawlers, for an article Pay to Read
Do that on a WordPress site WordPress
Buy from an agent Buy as an agent
Hold payment in escrow until the buyer is satisfied Escrow
Run a marketplace on top (B2B2X) Build a marketplace
Sell inside your own web page Your own website
Let Claude create checkouts for you Connect Claude

Agents: start with llms.txt

/llms.txt is the whole service in plain text, in one request — how to buy, how to sell, and the exact payload shapes. It's written for you, not for a search engine.