Authenticate: include API key as Authorization: Bearer YOUR_API_KEY header on all requests to https://api.circle.com
Retrieve your wire transfer instructions: GET https://api.circle.com/v1/businessAccount/banks/wires to get your unique beneficiary bank details including the wire reference code (idempotency key embedded in the reference is critical for Circle to link the wire to your account)
Initiate the USD wire from your bank using the exact reference code; Circle matches the incoming wire to your account via this reference — mismatched references cause manual reconciliation delays
Subscribe to Circle webhooks: POST https://api.circle.com/v1/notifications/subscriptions with {"endpoint": "<your_https_url>"} to receive mint_confirmed events
Upon receiving the wire_received and mint_confirmed webhook payloads, verify the amount in your Circle Mint balance: GET https://api.circle.com/v1/businessAccount/balances
Withdraw USDC on-chain: POST https://api.circle.com/v1/businessAccount/transfers with {"destination": {"type": "blockchain", "address": "<wallet_address>", "chain": "ETH"}, "amount": {"amount": "<amount>", "currency": "USD"}, "idempotencyKey": "<uuid>"}
Known gotchas
Circle Mint requires institutional KYB onboarding and a signed agreement; API access is not available until onboarding is complete — expect 2-4 weeks for enterprise approval
Wire transfers typically settle in 1-2 business days; the USDC balance is not credited until Circle's bank confirms receipt — do not build real-time mint logic that depends on same-day wire settlement
Webhook payloads must be signature-verified using the public key from GET /v1/notifications/publicKey/get; accepting unverified webhooks creates a spoofing vulnerability that could trigger premature USDC withdrawals
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp