Create User
Pre-create a user by vendor_data without a verification session. vendor_data must be unique among non-deleted users for the application (exact match; conflicts return 400). Not idempotent.
Overview
Explicitly creates a User entity before any session is run. The returned entity lands inACTIVE status unless you specify otherwise.
When to use it
- Pre-seed metadata (tier, signup source, internal tags) before the customer verifies.
- Migrate from another vendor — recreate your existing user roster in Didit so history and analytics start from a known baseline.
- Import trusted profile faces — create the User first, then call Upload User Face with the returned
didit_internal_id. - Transaction-only use cases — register a User with
vendor_dataso you can submit transactions without ever running a User Verification (KYC) session.
Notes
vendor_datais required and must be unique per application. Attempting to create a duplicate returns a conflict error — usePATCH /v3/users/{vendor_data}/to update an existing user.- Fields that are normally derived from verified sessions (
full_name,date_of_birth) can be seeded here but may be overwritten by the first approved User Verification (KYC) session. - Face images are not accepted by this endpoint. To attach a trusted imported face, use
POST /v3/organization/{organization_id}/application/{application_id}/vendor-users/by-id/{didit_internal_id}/faces/upload/after this endpoint returnsdidit_internal_id. - Creating a user emits a
user.data.updatedwebhook.
Permissions
Role must grantcreate:users.
Related
Authorizations
Body
Your unique identifier for this user (free-form string, NOT a UUID). Must be unique among non-deleted users for the application; matched exactly as sent.
Full legal name of the user.
512Friendly display name shown in the console (takes precedence over full_name for UI display).
255Date of birth in YYYY-MM-DD format.
Initial lifecycle status. Defaults to ACTIVE.
ACTIVE, FLAGGED, BLOCKED Arbitrary JSON object you attach to the user. Defaults to {}.
Pre-trusted email addresses for this user, e.g. ["john@example.com"].
Pre-trusted phone numbers for this user, e.g. ["+14155551234"].
Pre-recorded issuing countries (ISO 3166-1 alpha-3), e.g. ["USA"].
Response
User created. Full user record returned (same shape as Get User).
Full user detail. Extends UserListItem with metadata, comments, and updated_at.
Didit's stable internal UUID for this user.
Your unique identifier for this user (passed when creating sessions). This can be null when no vendor identifier was supplied.
Custom display name set by you
Full name extracted from verified documents
Best available name: display_name if set, otherwise full_name
Lifecycle status of the user record (NOT a session status). ACTIVE is the default, FLAGGED marks the user for manual attention, BLOCKED prevents new sessions for this vendor_data.
ACTIVE, FLAGGED, BLOCKED Presigned URL of the user's portrait photo (expires after a few hours)
Total number of verification sessions for this user
Number of approved sessions
Number of declined sessions
Number of sessions in review
ISO 3166-1 alpha-3 codes of issuing countries seen on this user's approved ID documents, e.g. ["USA", "ESP"]. Empty array when none.
Verified email addresses collected from this user's approved sessions, e.g. ["john@example.com"].
Verified phone numbers collected from this user's approved sessions, e.g. ["+14155551234"].
Aggregated per-feature status across all of this user's sessions. Possible keys: ID_VERIFICATION, NFC, LIVENESS, FACE_MATCH, POA, QUESTIONNAIRE, EMAIL_VERIFICATION, PHONE, AML, IP_ANALYSIS, AGE_ESTIMATION, DATABASE_VALIDATION. Possible values: Approved, Declined, In Review, Not Finished, Resub Requested.
Same data as features, as an ordered array of {feature, status} objects.
Timestamp of the most recent session
Timestamp of the first session
Timestamp of the most recent activity on this user (session, transaction, status change, data edit, etc.).
Tag assignments. NOTE: on detail responses each entry is a tag link object ({uuid, tag: {...}, added_by_email, added_by_name, created_at}), unlike the flat {uuid, name, color} shape used on list responses.
Custom metadata JSON you attached to this user. Defaults to {}.
Activity log and comments for this user (status changes, profile edits, manual notes).