# Customer Journey

This page describes the general flow that end-users experience when purchasing or selling cryptocurrency through Banxa. Understanding this journey helps you design the right integration touchpoints and set accurate customer expectations.

customer-journey.png
[View interactive prototype →](https://www.figma.com/proto/LuFNeO6PbtedrLicuhqFni/Quick-wins?node-id=32-227&viewport=304%2C296%2C0.19&t=pmSGYzOCqsAn0mJm-1&scaling=scale-down&content-scaling=fixed&starting-point-node-id=32%3A227&page-id=32%3A226)

## What Banxa handles for your customers

Banxa's checkout abstracts the complexity of crypto payments — liquidity management, regulatory compliance, and payment network integrations — so your customers interact with a streamlined, guided flow rather than raw blockchain infrastructure.

## On-ramp (buy) journey


```
1. Enter amount       → Customer selects crypto and fiat, views live quote
2. Identity check     → KYC verification (first-time or tiered)
3. Payment            → Customer pays via their chosen method
4. Processing         → Banxa confirms payment and purchases crypto
5. Delivery           → Crypto sent to customer's wallet address
6. Completion         → Customer redirected to your redirectUrl
```

**First-time customers** will be guided through document upload and identity verification before reaching the payment step. Returning customers who are already verified may proceed directly to payment.

## Off-ramp (sell) journey


```
1. Enter amount       → Customer selects crypto to sell, views live quote
2. Bank details       → Customer provides fiat payout account
3. Identity check     → KYC verification if required
4. Crypto transfer    → Customer (or your platform) sends crypto to Banxa
5. Processing         → Banxa confirms receipt and arranges fiat payout
6. Completion         → Fiat sent to customer's bank account
```

For the custodial flow, your platform executes the crypto transfer on the customer's behalf after receiving a webhook notification. → See [Custodial vs. Non-Custodial](/products/hosted-checkout/docs/on-ramp-off-ramp/custodial-vs-non-custodial).

## Key experience considerations

### Quote visibility

If you use the [API integration](/products/hosted-checkout/docs/api-integration/api-integration-overview), you can show the customer a live quote in your own UI before they enter the Banxa checkout. This sets expectations and reduces drop-off at the payment step.

### KYC friction

First-time users will spend the most time in the identity verification step. You can reduce this friction significantly by using [KYC sharing](/products/hosted-checkout/docs/identity-compliance/kyc-sharing) or [Sumsub integration](/products/hosted-checkout/docs/identity-compliance/sumsub-integration) if you already collect identity data.

### Returning customers

Banxa recognises returning customers and avoids re-collecting information already on file. Passing a consistent `externalCustomerId` in every order is essential for this to work. → See [Integration Best Practices](/products/hosted-checkout/docs/getting-started/integration-best-practices#externalcustomerid).

### Post-checkout return

When the transaction is complete (or cancelled), the customer is redirected to your `redirectUrl`. Use [webhooks](/products/hosted-checkout/docs/transaction-lifecycle/webhooks) to get the authoritative order status rather than relying on the redirect URL parameters alone.