# Banxa Hosted Checkout

Banxa handles KYC, payment processing, and regulatory compliance — your platform redirects users to the Banxa checkout or embeds it. Three integration paths, from a simple URL redirect to a full React Native SDK.

**Best for:** Wallets, dApps, gaming platforms, and any team where time-to-market is the priority.

## Integration paths

Three ways to integrate. Choose based on your platform and how much backend work you want to do.

Referral
Construct a Banxa URL with your parameters and redirect the customer — or embed as an iFrame. No backend required. Pre-fills crypto, fiat, amount, and wallet address.

Best for simple integrations, browser extensions, or any scenario without a backend.

API
Create orders server-side. Fetch live quotes in your own UI, create buy or sell orders, and redirect the customer to the returned `checkoutUrl`. Receive order updates via webhooks.

Best for integrations that need quote visibility, webhook-driven tracking, or KYC sharing.

React Native SDK
A React Native wrapper around the Checkout API. Handles WebView configuration, return URL detection, and error handling. No backend required for core flows.

Best for mobile apps that want Banxa checkout embedded in-app.

## What Banxa handles

KYC & Identity
Document verification, liveness checks, and returning customer recognition — handled inside the Banxa checkout flow.

Payments
Card, bank transfer, Apple Pay, Google Pay, and local payment methods across global markets.

Compliance & AML
Sanctions screening, transaction monitoring, and ongoing compliance — Banxa's obligation, not yours.

Settlement
Fiat purchase and crypto delivery managed by Banxa. Your platform receives the confirmed transaction result.

## Before you start

What you need from Banxa
A partner ID (`partnerRef`) used in all API endpoint paths, an API key for `x-api-key` authentication, and a separate set of sandbox credentials. → [Access & Setup](/products/hosted-checkout/docs/getting-started/access-and-setup)

| Environment | Base URL |
|  --- | --- |
| Sandbox | `https://api.banxa-sandbox.com/{partnerRef}/v2/` |
| Production | `https://api.banxa.com/{partnerRef}/v2/` |


Always build and test against sandbox before going live. → [Authentication & Environments](/products/hosted-checkout/docs/getting-started/authentication-and-environments)

## Reference

API Reference
Full endpoint reference — request schemas, response shapes, error codes.

Supported Payment Methods
All supported payment methods by country and transaction type.

Supported Crypto & Blockchains
All supported cryptocurrencies and blockchain networks.

Integration Best Practices
Error handling, idempotency, webhook validation, and production checklist.

## Quick start

Create a buy order and redirect the customer to the returned `checkoutUrl`. Include `externalCustomerId` to enable returning customer recognition.


```bash Create a buy order
curl -X POST "https://api.banxa.com/{partnerRef}/v2/buy" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "crypto": "ETH",
    "fiat": "USD",
    "fiatAmount": "100",
    "walletAddress": "0xe3BDEFdAeFF070925eB7FfC49F9B30c647Cb751e",
    "redirectUrl": "https://yourapp.com/success",
    "externalCustomerId": "user-abc123"
  }'
```

Redirect the customer to the `checkoutUrl` in the response:


```json
{
  "id": "3b7f1c9d2b4a8e6f5d0c7a2b3f9e1d4c",
  "checkoutUrl": "https://pay.banxa.com/checkout/3b7f1c9d...",
  "externalCustomerId": "user-abc123",
  "fiat": "USD",
  "fiatAmount": "100.00",
  "crypto": "ETH",
  "blockchain": "ETHEREUM"
}
```

→ [Full API Integration guide](/products/hosted-checkout/docs/api-integration/api-integration-overview)