Skip to main content
Managed Payments stablecoin payins receive USDC from customers at a deposit address that Circle assigns, and payouts send USDC to recipients that you register first. Both flows are asynchronous, so your integration tracks each resource’s status with webhooks or polling. For how these flows map to fiat in your bank account, see Settlement flows.

Payins

A payin starts with a payment intent, your request to receive funds onchain. A continuous payment intent sets the settlement currency and blockchain but no amount, so an account gets a stable address that accepts any number of transfers. A transient payment intent sets a fixed amount and an expiry time, which suits a one-time checkout. The following diagram shows a continuous payin from checkout to confirmation: Each transfer to the deposit address creates a payment that starts as pending and moves to paid when the funds settle, or to failed if it can’t be processed. For all intent, payment, and refund states, see Stablecoin payin states. To build this flow, follow Quickstart: Receive stablecoin payins.

Payouts

Payouts only go to recipients in your address book. Circle screens each new recipient, and you can’t pay a recipient until its status is active. The following diagram shows the API calls and status changes in a payout: For how subaccounts and the main wallet fund payouts, see Subaccount architecture. To build this flow, follow Quickstart: Send stablecoin payouts.