POST
/api/v2/users/{userId}/sumsub/kyc-urlGenerate SumSub KYC verification URL for user
Authentication
Send your API key in the x-api-key header on every request.
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| userId (path) | unknown | Yes | User ID to generate KYC URL for |
Request body
application/json
| Field | Type | Required | Description |
|---|---|---|---|
| Occupation | string | Yes | |
| AnnualSalary | 0-10000 | 10001-30000 | 30001-50000 | 50001-75000 | 75001-100000 | 100001-150000 | … | Yes | Possible values: 0-10000, 10001-30000, 30001-50000, 50001-75000, 75001-100000, 100001-150000, 150001-250000, 250001+. |
| AccountPurpose | string | Yes | |
| ExpectedMonthlyVolume | 0-1000 | 1001-5000 | 5001-15000 | 15001-50000 | 50001-100000 | 100001+ | Yes | Possible values: 0-1000, 1001-5000, 5001-15000, 15001-50000, 50001-100000, 100001+. |
| DocumentIssueDate | string | Yes | Format: YYYY-MM-DD. |
| Nationality | string | No | ISO 3166-1 alpha-3 country code. When USA, Ssn is required. |
| Ssn | string | No | Required for US nationals. Exactly 9 digits, without separators. |
| IpAddress | string | No |
Responses
200 — Returns the SumSub access token
| Field | Type | Required | Description |
|---|---|---|---|
| Success | boolean | No | |
| ErrorCode | string | No | |
| ErrorMessage | string | No | |
| AccessToken | string | No | |
| ApplicantId | string | No | |
| ExternalUserId | string | No | |
| KycSubmissionId | unknown | No | |
| Status | string | No | |
| ExistingStatus | string | No | |
| ExpiresAt | string (date-time) | No | |
| CreatedAt | string (date-time) | No | |
| CompletedAt | string (date-time) | No | |
| IsNewApplicant | boolean | No | |
| Message | string | No | |
| Configuration | object | No |
400 — Invalid request or KYC already completed
| Field | Type | Required | Description |
|---|---|---|---|
| Message | string | No | |
| Code | string | No | |
| Status | unknown | No | |
| ValidationErrors | object | No | |
| Details | string | No |
401 — User not authenticated
| Field | Type | Required | Description |
|---|---|---|---|
| Message | string | No | |
| Code | string | No | |
| Status | unknown | No | |
| ValidationErrors | object | No | |
| Details | string | No |
403 — User does not belong to the company
| Field | Type | Required | Description |
|---|---|---|---|
| Message | string | No | |
| Code | string | No | |
| Status | unknown | No | |
| ValidationErrors | object | No | |
| Details | string | No |
404 — User not found
| Field | Type | Required | Description |
|---|---|---|---|
| Message | string | No | |
| Code | string | No | |
| Status | unknown | No | |
| ValidationErrors | object | No | |
| Details | string | No |
500 — Internal server error
| Field | Type | Required | Description |
|---|---|---|---|
| Message | string | No | |
| Code | string | No | |
| Status | unknown | No | |
| ValidationErrors | object | No | |
| Details | string | No |
Example request
curl -X POST "https://{base_url}/api/v2/users/{userId}/sumsub/kyc-url" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"Occupation":"…","AnnualSalary":"…","AccountPurpose":"…","ExpectedMonthlyVolume":"…"}'This page is generated from the live OpenAPI specification and always matches the current API.