# Choose Your Integration Method

There are three ways to integrate Banxa Hosted Checkout. The right choice depends on your platform, backend capability, and which features you need.

## Referral

You construct a Banxa URL with query parameters and redirect the customer to it. No API calls required.

**Best for:**

- Teams that want to integrate quickly with minimal backend work.
- Use cases where you don't need real-time order status in your own system.
- Integrations where KYC sharing is not required.


**What you get:**

- A Banxa-hosted checkout pre-populated with your parameters (wallet address, crypto, fiat, amount, etc.).
- Co-branding and customisation via dashboard settings.


**Limitations:**

- No webhooks for order status notifications.
- No quote comparison within your own UI before checkout.
- No KYC sharing.


→ See [Referral Integration](/products/hosted-checkout/docs/referral-integration/overview).

## API

You make server-to-server calls to Banxa to fetch quotes, create orders, and receive webhook notifications. The checkout URL is returned in the order creation response, and you redirect or embed it.

**Best for:**

- Teams that need real-time order status updates via webhooks.
- Integrations that want to display a quote comparison within their own UI before checkout.
- Use cases where KYC sharing would improve conversion.
- Integrations needing programmatic control over payment methods, fiat/crypto options, and customer data.


**What you get:**

- Full access to all Banxa APIs: Quote, Order, Payment Methods, Countries, Currencies, and Identity.
- Webhooks for real-time order status updates.
- KYC sharing to reduce friction for returning customers.
- Ability to build a pre-checkout quote flow within your own UI.


**Considerations:**

- Your API key must be kept secret — avoid exposing it in client-side code or public repositories.
- More implementation effort than Referral.


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

## React Native SDK

The React Native SDK wraps Banxa Hosted Checkout in a TypeScript-first mobile package. Install a single package, configure it with your API key, and call typed methods to fetch quotes, create orders, and present the checkout in a WebView — no backend required for core flows.

**Best for:**

- React Native mobile apps.
- Teams that want faster integration than wiring up API calls manually.
- Apps where you want the SDK to handle WebView presentation, navigation events, and return URL detection.


**What you get:**

- Type-safe methods for order creation, quotes, payment methods, currencies, and countries.
- Built-in `CheckoutWebView` component with return URL detection.
- Same `x-api-key` auth as the API — no backend required.


**Limitations:**

- React Native only — not available for web.
- Does not support KYC sharing (requires HMAC auth, which the SDK does not expose).
- Order list is filtered by customer only — full order history across all customers requires the API directly.


→ See [SDK Integration](/products/hosted-checkout/docs/sdk-integration/overview).

## Comparison

|  | Referral | API | React Native SDK |
|  --- | --- | --- | --- |
| Implementation effort | Lowest | Highest | Low |
| Platform | Web | Any | React Native mobile |
| Backend required | No | No (only for KYC sharing) | No |
| Webhooks | No | Yes | Yes (configured separately) |
| Quote UI in your app | No | Yes | Yes |
| KYC sharing | No | Yes | No |
| Order lookup | No | Yes (all orders) | Yes (by ID or by customer) |
| Checkout presentation | Redirect or iFrame | You choose | In-app WebView |


## Decision guide

**Choose Referral** if you want the fastest possible integration and don't need webhooks or in-app quotes.

**Choose API** if you need webhooks, want to show customers a quote before checkout, or have an existing KYC process you want to share with Banxa.

**Choose React Native SDK** if you're building a React Native mobile app and want a typed SDK interface without wiring up API calls manually.

All three methods can be used with either Redirect or iFrame checkout visualisation, except the SDK — which handles WebView presentation itself.