Payment intents
You create a payment intent when a customer chooses to pay with USDC or EURC on a supported blockchain. The intent carries settlement currency, allowed chains, and the deposit address your customer uses.Continuous and transient modes
In practice, think of the two payment intent modes like this:- Continuous fits repeat deposits. The customer gets a long-lived deposit address they can use more than once (for example top-ups or billing that reuses one address). Each successful inbound transfer is recorded as its own payment.
- Transient fits a one-time checkout. You declare a fixed amount for one purchase or session (for example one cart or invoice). You still create a payment intent and show a deposit address, but this address cannot be reused for later top-ups or future orders.
amount at creation. Transient requires type: "transient" and an
amount. The following table compares what you send when you create an intent
and how you should use the deposit address in each mode.
| Continuous | Transient | |
|---|---|---|
| Amount at creation | Omitted. You set currency and settlement. | You set a fixed amount. |
| Deposit address | Same address can receive multiple transfers. | Suited to a single checkout or one-time payment. |
| How you select it | Omit type (default) or set type to continuous. | Set type to transient. |
Payin flow
To receive a stablecoin payin, the customer, your customer-facing UI, your server, and Circle follow the same steps whether the intent is continuous or transient. The customer-facing UI is the interface your customer uses to make a payment, such as your website or mobile app. Your server calls Circle Mint APIs and handles webhooks or polling.Create a payment intent
On checkout, the customer chooses to pay with stablecoins in your
customer-facing UI. Your server calls the Create a payment
intent endpoint
with the currency, blockchain, payment intent type, and (for transient only)
amount.
Get the deposit address
Your server receives the deposit address by using
webhooks or by polling
the Get a payment
intent endpoint
until
paymentMethods includes an address.Customer sends funds onchain
Your customer-facing UI shows the deposit address (and for transient only,
the amount). The customer sends USDC or EURC from their wallet to that
address on the correct blockchain.
Payout flow
To send a stablecoin payout, your server calls the Crypto Payouts API. The recipient receives USDC or EURC at the wallet address you register.Create an address book recipient
Your server creates a recipient by calling the Create address book
recipient
endpoint with the destination blockchain and address. The recipient status
must be
active before continuing.Create a payout
Your server calls the Create
payout endpoint with the
address book recipient ID,
sourceWalletId, and amounts. The payout starts
in pending.Circle delivers onchain
Circle debits your Mint balance and sends funds to the registered address on
the selected blockchain.
Receive confirmation
Treat the payout as finalized when the
status is complete. Use
webhooks for payout
events or poll the Get
payout endpoint.Payment intent expiration
A payment intent can expire. Expiration does not automatically return funds. The intent mainly tells the customer which deposit address to use. If funds still arrive at that address, Circle processes it as a payin on your Mint account.Refunds
Issue a full or partial refund through the refund APIs or by signing in to your Circle Mint account. What you should know about refunds:- Start a refund after at least one payment on the intent has completed and settled. You cannot start a refund while a payment is still pending.
- Submit refunds within 30 days of creating the payment intent. During that period you can send more than one partial refund, up to the limits of your Mint account.
- After you start a refund, the payment intent status moves to
refunded. The intent stops accepting new payins. Don’t reuse a refunded intent for new checkouts. Funds sent to that address might not match the intent and can require support. - If you use your Circle Mint account to refund, the refund cannot be canceled once submitted.