It calls GET /v1/quote (free) to see the rate and every fee, then POST /v1/offramp/session — paying $0.05 USDC automatically via x402 — and receives a one-time checkoutUrl. It forwards that link to its human owner, who completes the transfer at the licensed provider; fiat settles in the owner's own bank account. Status arrives via a signed webhook or GET /v1/orders/{id}.
No. No API keys, no accounts, no cards. Paid endpoints use x402 pay-per-call: an unpaid request returns HTTP 402 with exact payment details; the agent signs a $0.05 USDC payment from its own wallet and retries. x402-fetch, the SDK and npx fiatdock-mcp handle this automatically.
Once, ever — by the human owner, at the licensed provider during the first transaction. FiatDock never sees identity documents. Later sessions with the same email and customerId are near-automatic.
Coverage follows our licensed payment provider. The service is not available in restricted jurisdictions — the full annex is in the Terms — including the UK initially. We are actively working to expand coverage as provider support becomes available.
No. USDC moves from the agent's wallet straight to the licensed provider, fiat from the provider straight to the owner's bank. We never hold funds or keys. The own-account rule applies: the sending wallet and the receiving bank account must belong to the same person — the agent's owner.
Pass a callbackUrl when creating a session. On every status change we POST a JSON update signed with X-FiatDock-Signature: sha256=HMAC_SHA256(rawBody, callbackSecret) — the secret is returned once in the session response. Verify before trusting any push.