Skip to content

Sumsub Node SDK

Modern TypeScript/JavaScript SDK for the Sumsub KYC/AML platform. Provides full coverage of the Sumsub REST API with typed requests, responses, and standalone webhook validation.

Installation

bash
yarn add sumsub-node-sdk
bash
npm install sumsub-node-sdk

Quick Start

ts
import { createClient } from "sumsub-node-sdk";

const sumsub = createClient({
  baseURL: "https://api.sumsub.com",
  secretKey: process.env.SUMSUB_SECRET_KEY,
  appToken: process.env.SUMSUB_APP_TOKEN
});

// Create an applicant
const { data: applicant } = await sumsub.createApplicant("user-123", "basic-kyc-level");

// Generate a Web SDK access token
const { data: token } = await sumsub.generateAccessToken("user-123", "basic-kyc-level");

Default Export

A pre-configured client is also available, reading from environment variables:

ts
import { sdk } from "sumsub-node-sdk";

// Uses SUMSUB_BASE_URL, SUMSUB_SECRET_KEY, SUMSUB_APP_TOKEN
const { data } = await sdk.getApplicant("applicant-id");

Configuration

ts
interface SumsubConfig {
  /** Sumsub API base URL (e.g. "https://api.sumsub.com") */
  baseURL: string;
  /** Secret key for HMAC request signing */
  secretKey: string;
  /** App token for authentication */
  appToken: string;
  /** Optional custom Axios instance */
  axiosInstance?: AxiosInstance;
}

All requests are automatically signed with HMAC authentication via an Axios interceptor.

Dual API Pattern

The SDK exposes every method in two ways:

Flat API (backward compatible)

Methods are available directly on the client object:

ts
const sumsub = createClient(config);
await sumsub.createApplicant("user-123", "basic-kyc-level");
await sumsub.submitTransaction("applicant-id", txnBody);
await sumsub.validateWebhook(webhookOptions);

Methods are grouped by service module for better discoverability:

ts
const sumsub = createClient(config);
await sumsub.applicants.createApplicant("user-123", "basic-kyc-level");
await sumsub.transactions.submitTransaction("applicant-id", txnBody);
await sumsub.webhooks.validateWebhook(webhookOptions);

Both patterns call the same underlying implementation. Use namespaced for new code.

Service Modules

ModuleNamespaceDescription
ApplicantsapplicantsCreate, retrieve, update, and manage applicant lifecycle
DocumentsdocumentsUpload identity documents and retrieve document images
TransactionstransactionsSubmit and monitor KYT transactions
Web SDKwebsdkGenerate Web SDK integration links
WebhookswebhooksValidate incoming webhook signatures
Crypto-Cryptocurrency-specific operations
Questionnaire-Questionnaire management
Travel RuletravelRuleTravel rule compliance

Module Compatibility

The SDK ships as dual CJS/ESM:

FormatEntry Point
CommonJSdist/index.cjs
ES Modulesdist/index.mjs
TypeScriptdist/index.d.ts
ts
// ESM
import { createClient } from "sumsub-node-sdk";

// CJS
const { createClient } = require("sumsub-node-sdk");

Requirements

  • Node.js >= 18.0.0
  • TypeScript >= 4.7 (for type imports)

Additional Resources

Sumsub Node SDK has loaded