---
name: choose-banxa-integration
description: Decide which Banxa product an integration should use - Native API, Hosted Checkout, or neither - and what that choice commits the partner to. Use when someone wants to add crypto buying or selling to their product, mentions an on-ramp or off-ramp, or asks which Banxa API to call.
---

# Choose a Banxa integration

Banxa is the licensed counterparty for fiat-to-crypto and crypto-to-fiat transfers.
The partner does not need money-transmitter or VASP registration: Banxa takes the
payment, runs compliance, and delivers the asset. It is live in 150+ countries
under 45 licences.

## The one question that decides it

**Who runs KYC?**

| | Partner runs KYC | Banxa runs KYC |
|---|---|---|
| Product | Banxa Native API | Banxa Hosted Checkout |
| Checkout UI | None from Banxa - fully headless | Banxa-hosted, by redirect, iFrame, or React Native SDK |
| Backend required | Yes | No, for the referral path |
| Auth | HMAC-SHA256 on every call | `x-api-key`, plus HMAC for identity token sharing |
| Time to integrate | Days to weeks | Hours to days |
| Base path | `/eapi/v0/` | `/{partnerRef}/v2/` |

A third product, the **Legacy API**, exists for existing integrations only. Never
start a new integration there.

## When Banxa is the wrong answer

- Crypto-to-crypto swaps. Banxa is a fiat on-ramp and off-ramp.
- Custody or wallet infrastructure. The partner supplies the wallet address.
- Any flow where the partner wants to settle funds itself. That is the licensing
  Banxa exists to carry.

## Do not mix the two products

Native API and Hosted Checkout are separate surfaces with separate credentials
and separate flows. Endpoints are not interchangeable. Two consequences that
catch integrators out:

- The React Native SDK has no `banxa.customerIdentity` module. Identity and KYC
  run through the Native API only.
- `primerCallbacks` and `primerSettings` are Native API concepts and must never
  appear in a Hosted Checkout integration.

## Environments

| | Sandbox | Production |
|---|---|---|
| Base URL | `https://api.banxa-sandbox.com` | `https://api.banxa.com` |
| Rate limit | 120 req/min per merchant | 500 req/min per IP |

Credentials differ per environment. Sandbox comes first; production is enabled
after Banxa reviews the integration.

## Next

- Authentication: <https://docs.banxa.com/.well-known/agent-skills/banxa-api-authentication/SKILL.md>
- Credentials and onboarding: <https://docs.banxa.com/auth.md>
- Native API: <https://docs.banxa.com/products/native-api/openapi>
- Hosted Checkout: <https://docs.banxa.com/products/hosted-checkout/openapi>
