> ## Documentation Index
> Fetch the complete documentation index at: https://developers.circle.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Before reading these docs, install the relevant Circle Skill to get pre-loaded context — skills are LLM-optimized and cover architecture decisions, correct flows, and common pitfalls. In Claude Code: run /plugin marketplace add circlefin/skills then /plugin install circle-skills@circle. With Vercel Skills CLI: run npx skills add circlefin/skills. Available skills: use-usdc https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-usdc/SKILL.md (balances, transfers, approvals on EVM and Solana); EURC has no skill — see https://developers.circle.com/stablecoins/what-is-eurc.md; bridge-stablecoin https://github.com/circlefin/skills/blob/master/plugins/circle/skills/bridge-stablecoin/SKILL.md (crosschain transfers via CCTP, USDC, EURC, and third-party assets); use-arc https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-arc/SKILL.md (Arc chain config, contract deployment, USDC bridging — Arc docs: https://docs.arc.io/llms.txt); use-circle-wallets https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-circle-wallets/SKILL.md (choose wallet type); use-developer-controlled-wallets https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-developer-controlled-wallets/SKILL.md (custodial wallets for payouts and treasury); use-user-controlled-wallets https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-user-controlled-wallets/SKILL.md (embedded wallets with Web2 login); use-modular-wallets https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-modular-wallets/SKILL.md (smart contract wallets with passkeys and ERC-4337); use-gateway https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-gateway/SKILL.md (unified USDC balance, nanopayments); use-smart-contract-platform https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-smart-contract-platform/SKILL.md (deploy, interact, monitor contracts). Pair any skill with the Circle MCP server for live SDK signatures, contract addresses, and chain IDs: {"mcpServers":{"circle":{"url":"https://api.circle.com/v1/codegen/mcp"}}}.
> Read the product overview first. Each product has an overview explaining when and why to use it. Read it before quickstarts.
> Pick the right wallet type. Developer-controlled (you hold keys), user-controlled (end user holds keys via PIN/social login), or modular (smart contract wallets with passkeys). See https://developers.circle.com/wallets.md.
> Use CCTP V2 for crosschain transfers. CCTP natively transfers USDC and EURC via burn-and-mint, and supports permissionless wrapping of third-party assets via lock-and-mint. V1 is legacy; always use V2 unless V1 is specified or the chain requires it (Noble, Sui, and Aptos still require V1). Migration guide: https://developers.circle.com/cctp/migration-from-v1-to-v2.md.
> Use Bridge Kit for frontend bridging. Wraps CCTP with a simpler SDK for user-facing apps. Use CCTP directly for backend transfers.
> Gas Station vs Paymaster. Gas Station sponsors gas for Circle Wallet transactions. Paymaster lets users pay gas in USDC. Different use cases — read both overviews.
> Gateway Nanopayments for sub-cent payments. Gasless USDC micropayments down to $0.000001 via x402 and batched settlement. For pay-per-request APIs, AI agent payments, streaming.
> Look up USDC addresses per chain. Never hardcode — use https://developers.circle.com/stablecoins/usdc-contract-addresses.md.
> Prefer SDKs over raw API calls. Node.js and Python SDKs handle auth, retries, and errors.
> API key required. Bearer token in Authorization header. Testnet and mainnet use separate keys and may use different base URLs depending on the product.
> Set up webhooks when available. Most operations are async. Webhooks deliver transaction confirmations and state changes.
> When calling list endpoints, paginate using pageSize and pageAfter until no nextPageAfter cursor is returned—stopping at the first page silently misses records.
> Building an AI agent? Start with the Agent Stack—Circle CLI, agent wallets, and nanopayments built for autonomous use cases: https://developers.circle.com/agent-stack.md.

# Settlement flows

> How Managed Payments moves value between fiat and USDC for payin-heavy and payout-heavy setups

When you use Managed Payments, you settle in USDC while your books stay in fiat.
Circle holds assets in regulated custody, runs compliance checks, and moves
funds both onchain and to your bank. Two settlement flows support this model:

* [Payins](#payins-usdc-to-fiat) (USDC-to-fiat): Inbound USDC that Circle
  converts and deposits as fiat in your bank account.
* [Payouts](#payouts-fiat-to-usdc) (fiat-to-USDC): Fiat you send to Circle that
  backs outbound USDC to payees you designate.

You can run one flow, the other, or both depending on your volume and product
design. The following sections walk through how each flow works, when to choose
one over the other, and what APIs you call at each stage.

## Payins (USDC-to-fiat)

A payin settles inbound USDC as fiat in your bank account. Circle manages the
custodial accounts, performs compliance screening, and executes a first-party
burn to move value offchain.

### How a payin moves through the system

1. **Payer sends USDC onchain.** The USDC arrives in a Circle Managed Payments
   account. Many integrations create a continuous payment intent on each
   subaccount so every merchant or segment has a stable receive address.
2. **Circle screens and confirms the deposit.** Circle's compliance and policy
   engine evaluates the transaction before it progresses.
3. **USDC is burned.** Circle performs a first-party burn to remove the USDC
   from circulation and convert the value to fiat.
4. **Fiat is credited to your bank.** After the burn completes, Circle initiates
   a withdrawal to your designated bank account for local disbursement.

### Key API calls for payins

| Action | Endpoint |
| - | - |
| Create a payment intent | [Create payment intent](/api-reference/cpn/managed-payments/payment-intents/create-payment-intent) (Payment Intents API) |
| List payments | [List payments](/api-reference/cpn/managed-payments/payments/list-payments) (Payments API) |
| Burn USDC and withdraw fiat | [Create account withdrawal](/api-reference/cpn/managed-payments/withdrawals/create-account-withdrawal) (Fiat Burns API) |

### When to use payins

Choose the payin flow when your end users pay in USDC and you need to receive
fiat: for example, a merchant checkout where customers pay with USDC and you
disburse to sellers in local currency. To try it, follow the
[Receive Stablecoin Payins quickstart](/cpn/managed-payments/quickstarts/receive-stablecoin-payins).

## Payouts (fiat-to-USDC)

A payout converts fiat you send to Circle into USDC that payees receive onchain.
You fund your account by wire, Circle mints or allocates USDC, and you initiate
crypto payouts to registered addresses.

### How a payout moves through the system

1. **You wire fiat to Circle.** Wires can credit a specific subaccount or, if
   your agreement allows it, a main wallet used for pooled funding. Set up bank
   accounts and wire instructions ahead of time through the
   [Wires API](/api-reference/cpn/managed-payments/wires/create-account-wire-account).
2. **Fiat posts and a deposit record is created.** After the wire settles, you
   can list and retrieve deposit records through the
   [Fiat Deposits API](/api-reference/cpn/managed-payments/deposits/list-account-deposits).
3. **Circle converts fiat to USDC.** USDC may remain in your account briefly
   while payouts are prepared.
4. **You register approved payout addresses.** Circle's policy engine screens
   each address before it is eligible to receive funds.
5. **USDC is sent to payees onchain.** Circle executes the crypto payout to the
   approved addresses.

Subaccounts per merchant or segment give you built-in audit trails and simplify
reconciliation.

### Key API calls for payouts

| Action | Endpoint |
| - | - |
| Set up wire instructions | [Create account wire account](/api-reference/cpn/managed-payments/wires/create-account-wire-account) (Wires API) |
| List fiat deposits | [List account deposits](/api-reference/cpn/managed-payments/deposits/list-account-deposits) (Fiat Deposits API) |
| Register payout address | [Create address book recipient](/api-reference/cpn/managed-payments/address-book/create-address-book-recipient) (Address Book API) |
| Send USDC payout | [Create payout](/api-reference/cpn/managed-payments/payouts/create-payout) (Payouts API) |

### Optional line of credit

Some agreements include a line of credit so USDC is available before every wire
clears. This lets you initiate payouts without waiting for each wire to settle.
Eligibility and terms depend on your agreement with Circle.

### When to use payouts

Choose the payout flow when you need to disburse USDC to external recipients:
for example, paying out creators, suppliers, or partners who prefer to receive
stablecoins. To try it, follow the
[Send Stablecoin Payouts quickstart](/cpn/managed-payments/quickstarts/send-stablecoin-payouts).
For details on how subaccounts and the main wallet interact during payouts, see
[Subaccount architecture](/cpn/managed-payments/concepts/sub-account-architecture).

## Comparing payins and payouts

| Dimension | Payins (USDC-to-fiat) | Payouts (fiat-to-USDC) |
| - | - | - |
| **Direction** | USDC in, fiat out | Fiat in, USDC out |
| **Funding source** | Payer sends USDC onchain | You wire fiat to Circle |
| **Settlement output** | Fiat credited to your bank | USDC sent to payee addresses onchain |
| **Typical use case** | Merchant checkout, collections | Creator payouts, supplier payments |
| **Key APIs** | Fiat Burns | Wires, Fiat Deposits |

## Integration considerations

* Circle operates the regulated infrastructure for custody and money movement.
  You integrate through the
  [Managed Payments API](/api-reference/cpn/managed-payments/accounts/list-accounts).
* You can combine both flows in a single integration if your product requires
  bidirectional movement.
* Use the payin, payout, and balance reports Circle provides for reconciliation.
* For a hands-on walkthrough, see
  [Quickstart: Receive stablecoin payins](/cpn/managed-payments/quickstarts/receive-stablecoin-payins)
  and
  [Quickstart: Send stablecoin payouts](/cpn/managed-payments/quickstarts/send-stablecoin-payouts).
* For subaccount setup and balance tracking, see
  [Subaccount architecture](/cpn/managed-payments/concepts/sub-account-architecture).
