Identities
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.
Why identities matter
Sessions are ephemeral — they represent a single verification attempt. Identities are persistent — they represent a person across all their interactions with your organization:
- Reverification — See a person’s full verification history without re-running checks.
- Duplicate detection — Detect when the same person verifies under different references.
- Continuous monitoring — AML screening is tied to identities, not sessions, enabling ongoing watchlist monitoring.
- GDPR deletion — Delete all data for a person in one API call.
Identity lifecycle
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.
Creating identities
Identities are created automatically when a session completes with an
external_ref. You can also create stub identities via the API:
Listing identities
Filters
The identity list supports both offset-based and cursor-based pagination. Use cursor-based for large datasets:
Retrieving an identity
Fetch by ID or external reference:
Returns decrypted PII, verification history, screening status, and tags:
Identity sessions
List all verification sessions for an identity:
Updating an identity
Archiving and restoring
Soft-archive an identity (excludes from list queries but preserves data):
Restore an archived identity:
GDPR redaction
Permanently delete all PII for an identity (right to erasure, Article 17):
This:
- Nulls all encrypted PII fields and search hashes
- Sets the identity status to
redacted - Fires an
identity.updatedwebhook - The identity record itself is preserved for audit purposes (ID, status, timestamps)
Screening status
Each 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.
Webhooks
Related
- Sessions — How sessions create and update identities
- Screening & Reports — Continuous monitoring for identities
- Data Retention — Automatic data lifecycle management