Frequently asked questions

How does an AI agent convert USDC to a bank account?

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}.

Does the agent need a card or an account?

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.

Is KYC required?

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.

Which countries are supported?

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.

Is FiatDock custodial?

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.

How do webhooks work?

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.