Skip to main content
This page documents every field on a User entity. Fields fall into five groups: identity, status, session aggregates, activity timestamps, and metadata.

Identity fields

FieldTypeDescription
uuidUUIDDidit-assigned primary key. Stable and unique.
didit_internal_idstringHuman-readable internal identifier (surfaced in API responses).
vendor_datastringYour identifier for the user. Unique per application. Read more.
display_namestringOverride name shown in the console. Defaults to full_name or vendor_data when unset.
full_namestringFull legal name propagated from the latest approved User Verification (KYC) session’s ID document.
date_of_birthdate (ISO 8601)Propagated from the latest approved User Verification (KYC) session.
portrait_imageURLSigned S3 URL for the selfie from the latest approved liveness check.
full_name, date_of_birth, and portrait_image are read-only when derived from a verified session. You can override them via the console or via PATCH /v3/users/{vendor_data}/, but manual overrides are flagged in the audit log.

Status

FieldTypeValuesDescription
statusenumACTIVE, FLAGGED, BLOCKEDControls enforcement for future sessions and transactions. See lifecycle.

Session aggregate fields

These fields are computed by Didit and update in real time as sessions complete.
FieldTypeDescription
session_countintTotal sessions ever created for this user
approved_countintSessions that finished with APPROVED
declined_countintSessions that finished with DECLINED
in_review_countintSessions currently IN_REVIEW
issuing_states[]array of ISO country codesCountries of all ID documents verified across sessions
approved_emails[]array of stringsEmails verified via Email Verification
approved_phones[]array of stringsPhones verified via Phone Verification
featuresobjectLatest status of each feature across all sessions

The features map

Every session runs one or more features (ID verification, liveness, face match, AML, POA, NFC, etc.). The features map holds the latest status of each feature for this user:
{
  "id_verification": "APPROVED",
  "liveness": "APPROVED",
  "face_match": "APPROVED",
  "aml": "IN_REVIEW",
  "proof_of_address": "APPROVED",
  "nfc_verification": "NOT_FINISHED"
}
Feature statuses: NOT_FINISHED, APPROVED, DECLINED, IN_REVIEW, EXPIRED, ABANDONED, RESUB_REQUESTED. Use the features map as the fast path to answer “is this user fully verified right now?” without iterating all sessions.

Activity timestamps

FieldTypeUpdated when
first_session_atISO timestampFirst session was created
last_session_atISO timestampMost recent session was created or updated
last_activity_atISO timestampAny change — session, transaction, status, profile, notes, tags
created_atISO timestampEntity row was created
updated_atISO timestampEntity row was last updated

Metadata

FieldTypeDescription
metadataobject (JSON)Free-form JSON you control. Use for internal tags, tier, signup source, etc.
tags[]arrayConsole/API-managed tags for filtering and grouping
Metadata has no schema — Didit persists whatever you write.

Relations (not stored on the user row)

RelationHow to access
SessionsGET /v3/sessions?vendor_data=<value>
Transactions (as applicant)GET /v3/transactions/?vendor_data=<value>
Transactions (as counterparty)Filter transaction list by counterparty vendor_data in console
Linked businesses (director / UBO)Surfaced on the user detail page in the console
Face biometricsConsole + Lists API
Blocklist entriesLists API — filter entries by the user’s identifiers

Example response

{
  "uuid": "9c7d2a30-2f98-4d4f-9d2d-1a7c4b1e5b6a",
  "didit_internal_id": "U-2026-00042",
  "vendor_data": "user-42",
  "display_name": "Jane Doe",
  "full_name": "Jane Margaret Doe",
  "date_of_birth": "1990-01-15",
  "portrait_image": "https://didit-storage.s3.amazonaws.com/...",
  "status": "ACTIVE",
  "session_count": 3,
  "approved_count": 2,
  "declined_count": 0,
  "in_review_count": 1,
  "issuing_states": ["US", "ES"],
  "approved_emails": ["jane@example.com"],
  "approved_phones": ["+14155550123"],
  "features": {
    "id_verification": "APPROVED",
    "liveness": "APPROVED",
    "face_match": "APPROVED",
    "aml": "IN_REVIEW"
  },
  "first_session_at": "2025-03-01T12:00:00Z",
  "last_session_at": "2026-04-10T09:00:00Z",
  "last_activity_at": "2026-04-16T10:00:00Z",
  "metadata": { "tier": "premium" }
}

Next steps

Operations

Create, update, change status, delete.

KYC history

Retrieve every session tied to the user.

API reference

GET /v3/users// schema.