{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-products/hosted-checkout/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Sumsub Integration","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":"sumsub-integration","__idx":0},"children":["Sumsub Integration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Banxa supports two approaches for sharing Sumsub KYC data. They differ in how much of the customer's verified profile Banxa can retrieve."]},{"$$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":""},"children":[]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Reusable KYC (default)"},"children":["Reusable KYC (default)"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Copy Applicant"},"children":["Copy Applicant"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Data Banxa retrieves"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Name, DOB, selfie, document"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Name, DOB, selfie, document, address, TIN"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Sumsub product"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Reusable KYC"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Copy Applicant (separate Sumsub product)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Setup"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Add Banxa as a recipient in Sumsub (Donors tab)"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Sign Copy Applicant agreement with Sumsub; contact Banxa to configure"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Configured by"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Partner"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Banxa (per partner account)"]}]}]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"reusable-kyc","__idx":1},"children":["Reusable KYC"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Banxa retrieves the customer's basic verification data from Sumsub using a share token. Any fields not retrieved can be collected separately — Banxa's checkout will prompt the customer for any outstanding information during the flow."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"setup","__idx":2},"children":["Setup"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Reusable KYC uses Sumsub's ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.sumsub.com/docs/reusable-kyc-via-api"},"children":["Reusable KYC via API"]}," feature. No additional Sumsub agreement is required."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Sumsub setup (done once per partner):"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["In your Sumsub dashboard, open the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Partners"]}," page and go to the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Donors"]}," tab."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Add Donor"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Copy your Partner Token and share it with Banxa."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Banxa will add you as a recipient. No further action is required on your side for registration."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"generating-a-share-token","__idx":3},"children":["Generating a share token"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When a customer passes KYC on your platform, generate a share token using Banxa's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["clientId"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"javascript","header":{"controls":{"copy":{}}},"source":"const response = await fetch('https://api.sumsub.com/resources/accessTokens/-/shareToken', {\n  method: 'POST',\n  headers: {\n    'X-App-Token': YOUR_SUMSUB_APP_TOKEN,\n    'Content-Type': 'application/json'\n  },\n  body: JSON.stringify({\n    userId: customerSumsubApplicantId,\n    clientId: 'banxa.com_5335'   // Must be Banxa's clientId\n  })\n});\n\nconst { token } = await response.json();\n","lang":"javascript"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["must"]}," use Banxa's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["clientId"]}," when generating the token. Using a different ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["clientId"]}," will block Banxa from accessing the token."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"banxa.com_5335\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["→ Refer to ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.sumsub.com"},"children":["Sumsub documentation"]}," for the authoritative share token API reference."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"sending-the-token-to-banxa","__idx":4},"children":["Sending the token to Banxa"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Pass the generated token to the Banxa identity endpoint. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/hosted-checkout/docs/identity-compliance/kyc-sharing"},"children":["KYC Sharing"]}," for the full endpoint reference and request body."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST \"https://api.banxa-sandbox.com/{partnerRef}/v2/identities/token/share\" \\\n  -H \"Authorization: Bearer API_KEY:SIGNATURE:NONCE\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"externalCustomerId\": \"user_12345\",\n    \"mobileNumber\": \"+61412345678\",\n    \"email\": \"customer@example.com\",\n    \"provider\": {\n      \"vendor\": \"sumsub\",\n      \"token\": \"_act-sbx-jwt-eyJhbGciOiJub25lIn0...\"\n    }\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Call this at KYC verification time — not at order creation. If called at order creation, the data may not be processed in time for the customer's checkout session."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"token-expiry","__idx":5},"children":["Token expiry"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Sumsub share token has an expiry. Generate a fresh token close to the time you send it to Banxa."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"copy-applicant","__idx":6},"children":["Copy Applicant"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Banxa copies the customer's applicant record directly from your Sumsub account. Copy Applicant is a separate Sumsub product — see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.sumsub.com/docs/copy-applicant"},"children":["Sumsub Copy Applicant"]}," for Sumsub's documentation."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"data-coverage","__idx":7},"children":["Data coverage"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Banxa currently retrieves: name, DOB, selfie, document, address, and TIN. Proof of address and other fields are not currently extracted — any outstanding requirements can be supplemented via the identity endpoint if needed."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["What Banxa can retrieve depends on what your KYC flow collected. Fields not present in your Sumsub applicant record will not be available regardless of which approach is used."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"setup-1","__idx":8},"children":["Setup"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Sign the Copy Applicant agreement with Sumsub"]}," — Copy Applicant is a separate Sumsub product. Contact your Sumsub account manager to enable it for your account."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Contact Banxa to configure Copy Applicant on your partner account"]}," — no code changes are required on your side once setup is complete."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Banxa retrieves the applicant data automatically when the customer enters checkout."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"ios-liveness-check","__idx":9},"children":["iOS liveness check"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["On iOS, KYC liveness checks require ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SFSafariViewController"]}," — they will not complete in a standard ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["WKWebView"]}," even if the customer's Sumsub data has been shared. This applies regardless of which sharing approach you use."]}]},"headings":[{"value":"Sumsub Integration","id":"sumsub-integration","depth":1},{"value":"Reusable KYC","id":"reusable-kyc","depth":2},{"value":"Setup","id":"setup","depth":3},{"value":"Generating a share token","id":"generating-a-share-token","depth":3},{"value":"Sending the token to Banxa","id":"sending-the-token-to-banxa","depth":3},{"value":"Token expiry","id":"token-expiry","depth":3},{"value":"Copy Applicant","id":"copy-applicant","depth":2},{"value":"Data coverage","id":"data-coverage","depth":3},{"value":"Setup","id":"setup-1","depth":3},{"value":"iOS liveness check","id":"ios-liveness-check","depth":2}],"frontmatter":{"title":"Sumsub Integration | Banxa Docs","description":"Two approaches for sharing Sumsub KYC data with Banxa: Reusable KYC (token sharing) and Copy Applicant. Understand the data coverage difference and setup for each.","seo":{"title":"Sumsub Integration"}},"lastModified":"2026-05-19T23:30:38.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/hosted-checkout/docs/identity-compliance/sumsub-integration","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}