Skip to main content

Overview

Crypto payments accept USDC through hosted checkout. After creating a payment via API, redirect the customer to payment_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_url
2

Redirect Customer

Redirect customer to payment_url
3

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 delivered

Implementation 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, pass flow_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.