Skip to content
Last updated

SDK Integration Overview

For the complete documentation index, see llms.txt. Append .md to any page URL for its markdown version.

Five SDKs wrap Banxa Hosted Checkout. Each is configured with your API key, calls the same v2 endpoints under x-api-key authentication, and presents the checkout on its platform. No backend is required for core flows.

This is the fastest way to integrate Banxa Hosted Checkout into an app whose front end you already own. If you need capabilities the SDKs do not cover, use the API integration path alongside them or instead of them.


Choose your SDK

SDKPlatformLanguageDistribution
React NativeReact Native mobile appsTypeScriptnpm, @banxa-official/react-native-sdk
iOSNative iOS appsSwiftSwift Package Manager
AndroidNative Android appsKotlinAAR
FlutterFlutter apps on iOS and AndroidDartpub.dev, banxa_payments_flutter
JS Native PaymentsWebTypeScriptnpm, @banxa-official/javascript-native-payments-sdk

The JS Native Payments SDK is a different package from the referral JavaScript SDK, which only builds referral URLs.


How checkout is presented

The SDKs differ in how much of the presentation you control.

SDKPresentation
React NativeYou render the CheckoutWebView component. The SDK generates its props and detects your return URLs.
iOSHeadless. You pass a host view controller to startPayment and receive the outcome on a delegate.
AndroidHeadless. You render the StartPayment composable and receive the outcome on callback lambdas.
FlutterHybrid. startPayment presents the native sheet when it can, or returns a BanxaHostedCheckoutView widget for you to render. Outcomes arrive on one stream.
JS Native PaymentsYou mount the <banxa-hosted-checkout> web component, which embeds the checkout in an iframe.

On iOS and Android, order creation and checkout presentation happen in the same call. That keeps the order inside the one-minute window in which the checkout URL must be loaded, and it means there is no supported pattern for creating an order early and presenting it later.


When to use an SDK

Choose an SDK if:

  • You are building a mobile app or a web front end and want checkout presentation handled for you.
  • You want faster time to integration than wiring up API calls manually.
  • You want a typed interface with typed request and response models.

For some capabilities you will need the API integration path directly, either alongside the SDK or as your primary path:

CapabilityPath
Sell orders (off-ramp)API integration. Only the Flutter SDK exposes sell order creation, through OrderType.sell; the other four cover buy orders only
KYC data sharing (Sumsub token share)API integration. Uses HMAC auth, which the SDKs do not use
Full order list across all customersGET /{partnerRef}/v2/orders via API integration
Order lookup on iOS, Android, and FlutterOrder Lookup via the API, or Webhooks

How they compare

Referral (JS SDK)APIReact NativeiOSAndroidFlutterJS Native Payments
Integration effortLowestHighestLowLowLowLowLow
PlatformWebAnyReact NativeNative iOSNative AndroidFlutter (iOS, Android)Web
Backend requiredNoNo (only for KYC sharing)NoNoNoNoYes, for order creation
WebhooksNoYesYesYesYesYesYes
Order lookup in the SDKNoYes (all orders)By id or customerNoNoNoBy id
KYC sharingNoYesNoNoNoNoNo
Sell ordersYesYesNoNoNoOrder creation onlyNo
Quote UI in your appNoYesYesYesYesYesYes
Checkout presentationRedirect or iFrameYou chooseIn-app WebViewIn-app, headlessIn-app, headlessIn-app, native sheet or WebView widgetIn-page iframe

Webhooks are configured in the merchant dashboard, not in the SDK, and are the authoritative source of order state on every path.


Next steps