# botx402 > Pay-per-use catalog of single-purpose B2B bots that produce one-shot PDF deliverables for a flat fee. Humans pay by card (Stripe Checkout) on a bot's page; autonomous agents pay USDC over HTTP via the x402 protocol. No accounts, no subscriptions, no demo calls. ## Live products None right now. To ask for one, see https://botx402.io/request-a-bot. ## Brand pages - [Pricing](https://botx402.io/pricing): one-off flat fees per run; volume quotes on request. No subscriptions. - [About](https://botx402.io/about): the anti-SaaS positioning — we ship bots, not a platform. - [Status](https://botx402.io/status): per-bot uptime + recent incidents. - [Request a bot](https://botx402.io/request-a-bot): submit a job we haven't built yet and get a quote for a custom build (free to request, pay only if you accept). - [For agents (x402)](https://botx402.io/agents): how the agent rail works, code samples, discovery endpoints. ## How human buying works 1. When a bot is live, open its page (see /agents for the list). None are live right now. 2. Paste or upload the bot's JSON inputs and your email. Inputs are validated before you are charged. 3. Pay by card on Stripe's page. 4. The report opens at a results URL (/results?id=&t=). A failed run is refunded automatically. ## For AI agents (x402, live) Every live bot is an HTTP-callable endpoint that quotes its price in USDC and accepts payment via the [x402 protocol](https://www.x402.org), version 2 (v2 only; v1 `X-PAYMENT` is not accepted). Settlement is on Base mainnet, `eip155:8453` (prd) / Base Sepolia, `eip155:84532` (dev) through Coinbase's hosted facilitator. No API key. No account. Receipt is the on-chain transaction hash. ### Discovery - `GET https://api.botx402.io/.well-known/x402` — full catalog manifest with every live bot's slug, run URL, and x402 v2 PaymentRequired: `resource`, `accepts` (scheme, CAIP-2 network, USDC `amount`, `payTo`, EIP-712 domain) and the Bazaar discovery extension. - `GET https://api.botx402.io/api/v1/agent/bots` — slim catalog with each bot's input JSON Schema. Useful for agent UIs. ### Flow 1. `POST https://api.botx402.io/api/v1/agent//run` with no `PAYMENT-SIGNATURE` header → 402 with a `PAYMENT-REQUIRED` header: base64 JSON of the PaymentRequired (also repeated as the body). 2. Sign an EIP-3009 `transferWithAuthorization` for `accepts[0]`. Build a v2 PaymentPayload (`x402Version: 2`, `accepted`, `payload: {signature, authorization}`, and echo `resource` and `extensions`), base64-encode it and send it as `PAYMENT-SIGNATURE` on a retry of step 1. 3. Server verifies via the facilitator, dispatches the work, returns 200 with `receipt_id` and `status_url`. 4. Poll `GET https://api.botx402.io/api/v1/agent/runs/` until `status: "completed"` — response includes presigned PDF URL and `settlement_tx_hash`. ### Reference client - [backend/x402-test-client](https://github.com/ScoGib/botx402/tree/main/backend/x402-test-client): Rust + alloy 0.8. Walks the full handshake including EIP-3009 signing. Self-contained binary, ~400 lines. ### Refunds Failed runs auto-refund: settlement only happens after the Lambda hits Delivered, so a failure means the agent's signed authorization simply expires unused — USDC never leaves the wallet. Disputed runs that did settle: email refunds@botx402.io with the receipt_id and payer wallet; we send USDC back from the recipient multisig manually. Customer-initiated automated refunds are not exposed to prevent replay abuse. ## Per-bot machine data Each `/bots/` page emits Schema.org `Product` JSON-LD that includes a `potentialAction: BuyAction` block pointing at the agent endpoint with the USDC price. Useful if you'd rather crawl HTML than fetch the well-known endpoint.