Skip to content

Concepts

A few ideas make everything else obvious.

Keep these separate — they vary independently.

Layer Question it answers Examples
Protocol How does the agent ask to pay? ACP, x402, A2A, UCP, AP2, Visa TAP, Skyfire, MPP
Rail How does the money move? Card · stablecoin (USDC on Base/Solana, RLUSD on XRPL, pathUSD on Tempo) · account transfer
Account Where does it land? Your Curless account

A single currency can settle over more than one protocol, and one protocol can carry more than one rail — so the protocol you accept is decoupled from how the money actually moves. You accept all protocols; AgentBank picks the rail from the currency.

AgentBank does not hold your catalog. In the production model, your backend prices each checkout with your own API key and opens it against the gateway (merchant-quoted); the agent then completes it. Anti-fraud still holds — the price comes from your authenticated request, never from the buyer.

YOUR backend ──(your API key, "this is €1,920")──▶ AgentBank opens a checkout
buyer agent ──(completes the checkout)───────────▶ pays with its own funds
money settles to YOUR account

There’s also a catalog-driven path for small static-catalog merchants (the gateway prices from a catalog you register), but most integrations are merchant-quoted — you keep pricing where it belongs.

Every amount is an integer in the currency’s minor units — never a float.

  • Fiat (USD/EUR): 2 decimals. 192000 = €1,920.00.
  • Stablecoins (USDC/USDT/EURC/RLUSD/pathUSD): 6 decimals. 50000 = 0.05 USDC.

The same integer means different money in different currencies, so always read a currency’s scale before comparing amounts.

Every checkout becomes a durable order whose status is derived from the payment:

Order status Meaning
pending_payment Opened, awaiting the agent’s payment.
paid Captured / settled — the money moved.
refunded Fully or partially refunded via Curless.
disputed Under dispute.
canceled The charge failed, or an unpaid checkout timed out.

Unpaid checkouts (ACP/UCP/x402) auto-cancel after a window (default 30 minutes) so they don’t sit pending forever. Verify/record protocols (Skyfire, MPP) are never auto-canceled — their payment intent is created at the moment of payment, not as a “pay later” session.

  • Base URL: https://mcp.curless.ai.
  • Merchant auth: your Curless API key as Authorization: Bearer …. One credential does everything — open checkouts, read orders, read balance.
  • Test vs live: your Curless wallet issues a test key (test mode — no real money, for end-to-end testing) and a live key (production). They’re scoped separately, so test and live data never mix.
  • Agent auth / the remote connector: OAuth 2.0. See the merchant MCP connector.