{"templateId":"markdown","versions":[{"version":"v0-beta","label":"Beta (v0)","link":"/products/native-api","default":true,"active":true,"folderId":"e4cb5a06"}],"sharedDataIds":{"sidebar":"sidebar-products/native-api/@v0-beta/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["cards","card","admonition","code-group"]},"type":"markdown"},"seo":{"title":"Banxa Native API","description":"Official Banxa API documentation – on-ramp and off-ramp transfers with identity verification and compliance.","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"banxa-native-api","__idx":0},"children":["Banxa Native API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Fully headless ramp infrastructure for platforms that verify their own users and want full control over the transaction experience. No Banxa screens, no redirects — your platform owns the UX end to end. Banxa provides the regulated payment rails, compliance, and settlement."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Best for:"]}," Exchanges, custodial wallets, and fintech apps with user accounts, KYC infrastructure, and a backend."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"why-native","__idx":1},"children":["Why Native?"]},{"$$mdtype":"Tag","name":"Cards","attributes":{"columns":2,"cardMinWidth":280},"children":[{"$$mdtype":"Tag","name":"Card","attributes":{"title":"Full UX ownership","icon":"solid sliders","imagePosition":"start","iconPosition":"auto","layout":"horizontal","align":"start","variant":"ghost"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["No Banxa-branded screens anywhere in the flow. Your users never leave your product — pricing, KYC, and payment all happen natively."]}]},{"$$mdtype":"Tag","name":"Card","attributes":{"title":"Incremental KYC","icon":"solid id-card","imagePosition":"start","iconPosition":"auto","layout":"horizontal","align":"start","variant":"ghost"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Users start transacting with minimal verification. Additional checks are requested only when the transaction context requires it, reducing upfront friction."]}]},{"$$mdtype":"Tag","name":"Card","attributes":{"title":"Bank transfers are fully API-driven","icon":"solid building-columns","imagePosition":"start","iconPosition":"auto","layout":"horizontal","align":"start","variant":"ghost"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Bank payment rails run entirely through the Native API. No SDK or webview required for bank transfer flows."]}]},{"$$mdtype":"Tag","name":"Card","attributes":{"title":"PCI handled by Banxa","icon":"solid shield-halved","imagePosition":"start","iconPosition":"auto","layout":"horizontal","align":"start","variant":"ghost"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Card, Apple Pay, and Google Pay are captured via the React Native SDK using Primer. Your platform does not need PCI compliance certification."]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"core-capabilities","__idx":2},"children":["Core capabilities"]},{"$$mdtype":"Tag","name":"Cards","attributes":{"columns":2,"cardMinWidth":300},"children":[{"$$mdtype":"Tag","name":"Card","attributes":{"title":"Identities","icon":"solid user","imagePosition":"start","iconPosition":"auto","layout":"vertical","align":"start","variant":"elevated","to":"/products/native-api/docs/how-it-works/identity-kyc"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Establish and manage customer identity. Set up via KYC token sharing (Sumsub), identity reliance, or document verification. Must be established before eligibility or payment can proceed."]}]},{"$$mdtype":"Tag","name":"Card","attributes":{"title":"Eligibility","icon":"solid circle-check","imagePosition":"start","iconPosition":"auto","layout":"vertical","align":"start","variant":"elevated","to":"/products/native-api/docs/how-it-works/interpreting-eligibility"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Evaluate whether a transaction can proceed for a given identity, payment method, and fiat/crypto pair. Returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["paymentReady: true/false"]}," plus any outstanding requirements."]}]},{"$$mdtype":"Tag","name":"Card","attributes":{"title":"Quotes & Pricing","icon":"solid receipt","imagePosition":"start","iconPosition":"auto","layout":"vertical","align":"start","variant":"elevated","to":"/products/native-api/docs/how-it-works/quotes-and-pricing"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Retrieve real-time pricing and fee breakdowns before creating a transaction. Used for displaying quotes and confirming transaction parameters."]}]},{"$$mdtype":"Tag","name":"Card","attributes":{"title":"Limits","icon":"solid gauge","imagePosition":"start","iconPosition":"auto","layout":"vertical","align":"start","variant":"elevated","to":"/products/native-api/openapi"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Retrieve applicable transaction limits for a given identity and context. Reflects provider constraints, customer tier, and time-based windows."]}]},{"$$mdtype":"Tag","name":"Card","attributes":{"title":"Ramps","icon":"solid arrows-left-right","imagePosition":"start","iconPosition":"auto","layout":"vertical","align":"start","variant":"elevated","to":"/products/native-api/docs/guides/foundations"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Create and manage on-ramp and off-ramp transactions. Bank transfers run fully through the API; card and wallet payments use the React Native SDK."]}]},{"$$mdtype":"Tag","name":"Card","attributes":{"title":"Webhooks","icon":"solid bell","imagePosition":"start","iconPosition":"auto","layout":"vertical","align":"start","variant":"elevated","to":"/products/native-api/docs/transaction-lifecycle/webhooks"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Real-time notifications for ramp lifecycle events and KYC status changes. Banxa retries delivery on non-2xx responses."]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"before-you-start","__idx":3},"children":["Before you start"]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"What you need"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["HMAC API credentials from Banxa (API key + secret), a backend capable of server-to-server calls, a persistent unique identifier per user (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["identityReference"]},"), and a KYC provider or reliance arrangement. The React Native SDK is required for card, Apple Pay, and Google Pay — not needed for bank transfer-only integrations."]}]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Environment"},"children":["Environment"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Base URL"},"children":["Base URL"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Sandbox"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://api.banxa-sandbox.com"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Production"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://api.banxa.com"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Not sure if Native is the right fit? The ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/native-api/docs/how-it-works/integration-overview"},"children":["Integration Overview"]}," covers requirements and where Native is and isn't the right choice. Ready to build? Go straight to the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/native-api/docs/guides/foundations"},"children":["Integration Guide"]},"."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"quick-start","__idx":4},"children":["Quick start"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["All Native API requests use HMAC-SHA256 authentication. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/native-api/docs/getting-started/authentication"},"children":["Authentication"]}," for how to generate the signature."]},{"$$mdtype":"Tag","name":"CodeGroup","attributes":{"mode":"tabs"},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","data-title":"Get a price quote","header":{"title":"Get a price quote","controls":{"copy":{}}},"source":"GET https://api.banxa.com/eapi/v0/price \\\n  ?identityReference=user-abc123 \\\n  &fiat=USD \\\n  &crypto=ETH \\\n  &blockchain=ETHEREUM \\\n  &method=credit-debit-card \\\n  &transactionType=ONRAMP \\\n  &fiatAmount=100\nAuthorization: {apiKey}:{nonce}:{hmacSignature}\n","lang":"bash"},"children":[]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"identityReference\": \"user-abc123\",\n  \"source\": {\n    \"fiat\": { \"id\": \"USD\", \"method\": \"credit-debit-card\" },\n    \"amount\": \"100.00\"\n  },\n  \"target\": {\n    \"crypto\": { \"id\": \"ETH\", \"blockchain\": \"ETHEREUM\" },\n    \"amount\": \"0.03421\"\n  },\n  \"processingFee\": \"3.99\",\n  \"networkFee\": \"0.50\",\n  \"marketRate\": {\n    \"crypto\": { \"USD\": \"2922.50\" },\n    \"forex\": { \"reference\": \"USD\" }\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["identityReference"]}," is your stable per-user identifier — the same value is used across identity, eligibility, and ramp creation. → ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/native-api/docs/guides/foundations"},"children":["Full Integration Guide"]}]}]},"headings":[{"value":"Banxa Native API","id":"banxa-native-api","depth":1},{"value":"Why Native?","id":"why-native","depth":2},{"value":"Core capabilities","id":"core-capabilities","depth":2},{"value":"Before you start","id":"before-you-start","depth":2},{"value":"Quick start","id":"quick-start","depth":2}],"frontmatter":{"title":"Banxa Native API","description":"Headless ramp infrastructure for partners who want full UX control over fiat ↔ crypto.","seo":{"title":"Banxa Native API"}},"lastModified":"2026-06-01T06:52:05.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/native-api","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}