Solidus Verify

API Reference

POST/v2/sessions

Create Verification Session

Creates a new KYC verification session. Returns a session ID and a URL to redirect the user to complete their verification.

Request Parameters

ParameterTypeRequiredDescription
didstringRequiredThe subject's DID. W3C DID format (did:solidus:, did:ethr:, did:key:)
levelintegerRequiredVerification level: 1 (basic), 2 (passport + liveness), 3 (enhanced)
redirect_urlstringRequiredURL to redirect user after verification completes
metadataobjectOptionalArbitrary key-value pairs attached to the session
webhook_urlstringOptionalOverride endpoint for this session's webhooks
expires_inintegerOptionalSession TTL in seconds (default: 3600)

Responses

{
  "id": "vsn_9f8e7d6c5b4a3291",
  "did": "did:solidus:mainnet:7a3b8c9d2e1f4a6b",
  "level": 2,
  "status": "pending",
  "url": "https://verify.solidus.network/s/vsn_9f8e7d6c",
  "expires_at": 1773666000,
  "created_at": 1773662400,
  "webhook_url": null,
  "metadata": { "userId": "usr_7a3b8c9d" }
}
Request
import { Solidus } from '@solidus/verify';

const solidus = new Solidus('sk_live_••••••••••••••••••••34ab');

const session = await solidus.sessions.create({
did: 'did:solidus:mainnet:7a3b8c9d2e1f4a6b',
level: 2,
redirectUrl: 'https://app.acmecorp.com/verify/done',
metadata: {
userId: 'usr_7a3b8c9d'
}
});
Response
{
  "id": "vsn_9f8e7d6c5b4a3291",
  "did": "did:solidus:mainnet:7a3b8c9d2e1f4a6b",
  "level": 2,
  "status": "pending",
  "url": "https://verify.solidus.network/s/vsn_9f8e7d6c",
  "expires_at": 1773666000,
  "created_at": 1773662400,
  "webhook_url": null,
  "metadata": { "userId": "usr_7a3b8c9d" }
}