checkout402_
Guides

Connect Claude#

checkout402 speaks MCP, so Claude can create and manage your checkouts directly — and because Claude already has your repository in context, it knows your routes, your schemas and your docs. You don't.

This is the fastest way to go from "we have an API" to "agents can buy from our API".

Connect#

Claude Code#

One command, in any repository:

claude mcp add --transport http checkout402 https://api.checkout402.com/mcp

--transport http matters. Without it the CLI assumes stdio and tries to run the URL as a local program.

The first tool call that needs your account opens a browser to approve. Claude Code listens on a loopback port for the callback, which we accept in production precisely so this works.

For a headless agent — CI, a container, anything with no browser — skip OAuth and pass a key instead:

claude mcp add --transport http checkout402 https://api.checkout402.com/mcp \
  --header "Authorization: Bearer c402_test_…"

A c402_test_ key drives every tool without moving real money.

Claude apps#

Settings → Connectors → Add custom connector, then paste:

https://api.checkout402.com/mcp

Either way there is nothing to pre-register and no client secret to paste: checkout402 supports dynamic client registration and PKCE, and Claude discovers the endpoints itself:

Discovery What Claude reads
/.well-known/oauth-protected-resource Which authorization server guards /mcp
/.well-known/oauth-authorization-server Where to register, authorize, and get a token

You'll be sent to a consent screen, you sign in (magic link or wallet), you approve, and Claude gets a scoped token.

tools/list needs no auth

Claude can see what the server offers before you connect. Only calls that touch your account require a token.

What Claude can then do#

Eleven tools. Nine seller-side, two buyer-side:

Tool Does
whoami Which account you're connected as, and whether it's test or live
create_checkout Creates a checkout, returns the URL
list_checkouts Your checkouts
get_checkout One checkout in full
list_receipts / get_receipt Payments received
get_analytics Revenue, fees and conversion over a window
get_payout_history Every change to your payout wallets, and who made it
create_webhook Register an endpoint for checkout.paid
quote_checkout Read any checkout's price without paying
pay_test_checkout Pay a test-mode checkout, to prove the loop

Ask before you assume

whoami is worth calling first in any session. An OAuth connection carries no test/live mode, so checkouts it creates are live by default — a key beginning c402_test_ is the only thing that guarantees otherwise.

Bulk creation, without a bulk endpoint#

This is the part worth the setup. Say you have seventy endpoints:

Look through our public API and identify the endpoints a customer would reasonably buy individually. Ignore auth, admin and internal routes. Use our existing documentation to describe what each one returns. Ask me for pricing before creating anything.

Claude proposes a table, you set prices, it calls create_checkout seventy times. No importer, no CSV, no bulk API.

Integration in the same breath#

Because Claude is already in your codebase:

Add a $0.10 checkout402 checkout to this endpoint, then add the integration to the code and update the README.

Claude reads the endpoint, creates the checkout, gets the URL back, wires it up, and documents it. Endpoint to agent-purchasable without you opening the dashboard.

Keep the commercial decisions yours#

Claude does the work. You own the offer.

Instruction What Claude should do
"Create these five at these prices" Publish them
"Find products we could sell" Propose, and wait

Never let an agent invent trust claims

freshness, coverage, source, licensing and accuracy are commercial assertions buyers rely on. An agent inferring "updated daily" from a variable name and publishing it is how you end up making a promise you didn't know you'd made. Ask it to propose those fields for your approval.

No Claude? Same API#

Every MCP tool is a thin wrapper over the REST API. The CLI and plain curl reach exactly the same endpoints — see the API reference.