An identity is a persistent record of a verified person. When a session
completes with an external_ref, Verifa creates or updates an identity that
aggregates all verification sessions for that person.
Environment isolation: Verifa keys are environment-scoped. A live key
(vk_live_*) cannot fetch sandbox identities (or sessions/workflows) and
vice versa — mismatched requests return 404. Use the matching key for the
environment you want to query.
Sessions are ephemeral — they represent a single verification attempt. Identities are persistent — they represent a person across all their interactions with your organization:
Status reflects the most recent completed session’s outcome, so it can
downgrade — e.g. verified → rejected on a failed re-verification.
Manual flagging is orthogonal to status — an identity can be verified
and is_flagged=true at the same time. See flag_reason, flagged_at,
flagged_by on the response.
Identities are upserted — if a session completes with an external_ref that
already exists, the identity is updated with the latest verification data rather
than creating a duplicate.
Identities are created automatically when a session completes with an
external_ref. You can also create stub identities via the API:
The identity list supports both offset-based and cursor-based pagination. Use cursor-based for large datasets:
Fetch by ID or external reference:
Returns decrypted PII, verification history, screening status, and tags:
List all verification sessions for an identity:
Soft-archive an identity (excludes from list queries but preserves data):
Restore an archived identity:
Permanently delete all PII for an identity (right to erasure, Article 17):
This:
redactedidentity.updated webhookEach identity tracks its aggregate screening status:
When monitoring_enabled is true, Verifa automatically re-screens the
identity on a regular schedule and when watchlists are updated. See
Screening & Reports for details.