GET /v1/organizations/verification: read the current status.POST /v1/organizations/verification: start (or refresh) a verification session.POST /v1/organizations/verification/import: import an existing verification from a partner Sumsub tenant (Reusable KYC,INDIVIDUALorgs only).
Nxos-On-Behalf-Of header, so a broker can run verification on behalf of a customer org. The flow is identical whether you’re verifying your own org or a customer org. The only difference is which org id the request targets.
In broker flows, the customer’s Letter of Authorization is signed in the same session as their verification submission. The LOA becomes effective once both the signature is captured and the verification reaches APPROVED. See Cross-org access for what the LOA enables.
Prerequisites
- An API key for the organization you’re verifying, or a broker API key plus a
PENDINGLetter of Authorization (see Cross-org access). - For brokers, the customer org must already exist (created via
POST /v1/organizations).
Flow overview
- Call
POST /v1/organizations/verificationto start a session. The response carries aurl(Sumsub-hosted page) and anaccessToken(for the Sumsub WebSDK). - Hand off the customer to one of the two delivery options below.
- Poll
GET /v1/organizations/verificationuntilstatusisAPPROVED,REJECTED, orRESUBMISSION_REQUIRED.
externalUserId = organizationId. Calling POST multiple times returns a new short-lived token for the same applicant. It does not start over.
Step 1: Start a session
Step 2: Hand off to the customer
You have two delivery options. Pick one based on how much UI control you need.Option A: Hosted URL
Share theurl with the customer (email link, dashboard redirect, SMS, in-app prompt). The customer completes the entire flow on a Sumsub-hosted page. No SDK integration on your side.
This is the simplest path and works well for brokers who don’t want to host the verification UI.
GET /v1/organizations/verification to learn the outcome.
Option B: Embedded WebSDK
If you’d rather render the flow inside your own UI, pass theaccessToken to the Sumsub WebSDK. The token authorizes the SDK to communicate with Sumsub on the applicant’s behalf.
POST /v1/organizations/verification again for the same org and return the new accessToken. The SDK swaps it in without restarting the flow.
See Sumsub’s WebSDK docs for full integration details. The token format and refresh callback shape are theirs.
Step 3: Poll for the result
Importing from a partner tenant (advanced)
If you already verified a natural person on your own Sumsub tenant and would rather not send them through the flow again, you can import that existing verification directly withPOST /v1/organizations/verification/import. This is Sumsub’s Reusable KYC path: a share token generated on your tenant is exchanged for a linked applicant on ours.
This is limited to INDIVIDUAL orgs. Sumsub’s Reusable KYC product covers natural persons only; calling the import endpoint for a BUSINESS org returns 400 verification_import_unsupported. For BUSINESS, keep using the standard flow above.
Prerequisites
- Reusable KYC enabled on both Sumsub tenants — yours (donor) and ours (recipient).
- nxos added as a sharing partner in your Sumsub dashboard (Reusable Identity → Partners).
- The customer org already exists on nxos (
POST /v1/organizations). - An
ACTIVELOA on the customer org. See Cross-org access.
Flow
GET /v1/organizations/verification. Poll that endpoint for the transition to APPROVED — usually a few seconds later, once Sumsub fires applicantReviewed on our side.
What to know
- Single-use tokens. Sumsub invalidates the share token the moment we consume it. A retry returns
400 share_token_invalid. Generate a fresh token per call. - No synchronous
APPROVED. We returnPENDINGeven when the donor applicant was already green. The applicantReviewed webhook drives the final transition. This keeps a single code path for approvals and preserves traceability. - Idempotent in practice. If the customer’s verification is already
APPROVEDorON_HOLD, the import is a no-op for your record — the linked Sumsub applicant is still created on our side for audit, but no status change happens. - Org type is fixed at creation. The org’s
typeis set when you callPOST /v1/organizations; the import endpoint reads it back. There’s no way to import a KYC into aBUSINESSorg or vice versa.
Possible 4xx responses
Status lifecycle
What a broker can act on, and when
A Letter of Authorization can be signed at any time, including before the customer’s verification completes. But the LOA is only effective forNxos-On-Behalf-Of calls while the granter’s verification status is APPROVED. See Cross-org access for the full gating rule.
In practice this means brokers can run two flows in parallel:
- Send the customer an LOA to sign (dashboard / e-signing).
- Call
POST /v1/organizations/verificationto start their KYB.
Nxos-On-Behalf-Of begin working. If verification later lapses (e.g. expiresAt passes, or the customer needs to re-verify), the LOA is suspended automatically until the verification returns to APPROVED. No action on the LOA itself.
Summary
Related
- Authentication: API keys
- Cross-org access: how LOAs and KYB interact