Overview
Crypto payments accept USDC through hosted checkout. After creating a payment via API, redirect the customer topayment_url. The checkout page shows a unique deposit address (with a QR code); the customer sends USDC to it, and the payment completes automatically once the deposit is confirmed on-chain.
Each payment gets its own single-use deposit address. Amounts are priced in the settlement currency (e.g. USD) and paid by the customer in the equivalent amount of USDC.
Payment Flow
1
Create Payment
Call
POST /v1/payments to create a payment and obtain payment_url2
Redirect Customer
Redirect customer to
payment_url3
Customer Sends USDC
The customer sends USDC to the deposit address shown on the checkout page
4
On-chain Confirmation
The deposit is detected and confirmed on-chain (usually within a minute)
5
Completion
The payment status becomes
succeeded and a webhook is deliveredImplementation Example
Routing to the crypto flow
Crypto is served through a payment flow assigned to your account. If crypto is your default flow, no extra parameter is needed. If you accept multiple payment methods, passflow_id for your crypto flow to route the payment to crypto:
Webhook Integration
Because the customer pays on-chain, the payment completes asynchronously. Use webhooks to confirm the result reliably:If a customer sends less than the requested amount, the payment is not completed as
succeeded. Handling of underpayments follows your account settings — contact support if you need to reconcile a partial deposit.For complete API parameters and response details, see the Create Payment API reference.