Four steps, zero human touchpoints. Fast enough that agents don't need to batch.
Create order
POST /v1/orders with a USD amount. Backend returns a Soroban receiver-contract ID and a one-time order_id.
Sign one transaction
Agent invokes pay_usdc (or pay_xlm) on the receiver contract. USDC-first, with a DEX-routed path payment to settle the quote.
Watcher + fulfillment
The Soroban watcher picks up the payment event, validates the amount against the quote, and kicks fulfillment. Mismatches go to an unmatched-payments queue.
Real Visa card
Number / CVV / expiry stream back over the original HTTP connection. One SSE stream, no webhooks to host, no polling required.
Three lines of TypeScript.
The Cards402 SDK wraps the order → Soroban payment → card-ready cycle behind a single call. One SSE stream, no polling, no webhook endpoint to host, resume-safe if the agent crashes mid-flight.
See the full referenceBuilt like a payment rail. Read like an SDK.
One transaction in, one card out
Every purchase is a single `PathPaymentStrictReceive`. USDC or XLM. No redirect, no hosted checkout, no user session.
Agents pay the contract directly
Cards402 never holds customer funds. The agent signs with its own OWS wallet; the backend only observes on-chain events and brokers fulfillment.
One-shot claim codes, not shared keys
Operators mint a single-use claim instead of pasting raw API keys into agent context. Credentials never hit the conversation transcript.
MCP, HTTP, SSE — pick your integration
Drop the Cards402 MCP server into Claude Desktop, hit the REST API from any runtime, or subscribe to the SSE phase stream for live updates.