Skip to main content

Sphinx (v2)

Preview

SPHINX:v2 is in preview. The implementation of the Verification datablock is not yet finalized and may change. Use SPHINX:v1 for all production flows.

Agent-assisted or automated document-based identity verification via IDnow's Sphinx service

Verifies the end user's identity by routing the session to IDnow's Sphinx service, which performs document analysis through either a live video session with an agent (VideoIdent) or a fully automated process (AutoIdent). The service examines document security features, performs face matching and liveness detection, and optionally cross-checks identity data supplied by an upstream step. Results are returned as a unified Verification datablock describing the checks applied and the assurance level achieved.


Key features

  • Agent-assisted verification (VideoIdent) — A trained IDnow agent guides the user through document capture and checks security features, face match, and liveness in a live session.
  • Automated verification (AutoIdent) — Fully AI-driven analysis of document authenticity, security features, face matching, and liveness without human involvement.
  • Pre-fill from upstream steps — Optional inputSources bindings allow identity data collected earlier in the flow to be forwarded to Sphinx for cross-checking.
  • Unified Verification datablock — Produces a structured record describing the checks performed, the provider, and whether the session completed, was canceled, or ended due to fraud.

Configuration

ParameterTypeRequiredDescription
config.live.shortnamestringYesSphinx shortname for the live environment. Provided by IDnow during onboarding.
config.staging.shortnamestringYesSphinx shortname for the staging environment. Provided by IDnow during onboarding.
inputSources.basicIdentitystringNoID of an upstream step whose BasicIdentity output should be forwarded to Sphinx for identity data cross-checking.
inputSources.extendedIdentitystringNoID of an upstream step whose ExtendedIdentity output should be forwarded to Sphinx for identity data cross-checking.

Example

{
"config": {
"live": {
"shortname": "acme-live"
},
"staging": {
"shortname": "acme-staging"
}
},
"inputSources": {
"basicIdentity": "COLLECT_DATA"
}
}

Input datablocks

Data blockRequiredDescription
BasicIdentityNoIdentity data forwarded to Sphinx when inputSources.basicIdentity is configured. Used for cross-checking against document data.
ExtendedIdentityNoExtended identity data forwarded to Sphinx when inputSources.extendedIdentity is configured. Used for cross-checking against document data.

Verdicts

VerdictDescription
verifiedThe document was successfully processed and identity data was extracted. The Sphinx service accepted the result — either the automated or agent-assisted analysis passed.
fraud_detectedThe document was identified as fraudulent. Identity data may have been extracted and is available for manual review.

Output datablocks

VerdictData blocks produced
verifiedBasicIdentity, ExtendedIdentity, DocumentData, DocumentImages, Verification
fraud_detectedBasicIdentity, ExtendedIdentity, DocumentData, DocumentImages, Verification

Verification datablock

The Verification datablock produced by SPHINX:v2 contains the outcome and the checks applied during the Sphinx process.

FieldTypeDescription
statusstringVerification status. One of: verified, rejected, fraudDetected, canceled, aborted, error.
providerstringAlways "IDnow DocIDV".
trustFrameworkstring | nullAlways null for Sphinx processes.
assuranceLevelstring | nullAlways null for Sphinx processes.
verifiedAtstringISO 8601 timestamp at which the Sphinx process completed.
verificationProcessIdstring | nullSphinx session or transaction reference.
terminationReasonobject | nullPresent when the process ended before completion. Contains code (string) and message (string | null).
methodsarrayVerification methods applied. Contains a single documentCheck method object describing the checks performed.

methods[].documentCheck

Sphinx always produces exactly one method entry of type documentCheck.

FieldTypeDescription
typestringAlways "documentCheck".
checksarrayTechniques that failed during the process. Empty on verified outcomes. See below.
evidencearrayReferences to evidence artifacts (e.g. session recordings, analysis reports) stored in the Vault.

Checks

Checks are only present on non-verified outcomes. When Sphinx returns a reason code that maps to a specific technique, a single check entry is produced with outcome: failed. Sessions that complete successfully produce no check entries.

TechniqueReason codes (examples)Description
securityFeaturesID_SECURITY_FEATURE, WARNING_DIGITAL_DOCUMENT, WARNING_FAKED_MANIPULATED_ID, …Physical or visual document security element failed.
documentValidityID_BROKEN, ID_DAMAGED, ID_EXPIRED, ID_NOT_SUPPORTED, WARNING_FAKED_SPECIMEN, …Document format, integrity, or validity check failed.
dataCrosscheckID_BLURRY, ID_DATA, ID_WRONG_SIDE, WARNING_MANIPULATED_DATA, …MRZ/OCR/VIZ reading or data consistency check failed.
faceMatchSELFIE_BLURRY, USER_OBSCURED, WARNING_SELFIE_DISGUISED, …Portrait-to-live-capture comparison failed.
livenessWARNING_SELFIE_NO_REAL_PERSON, WARNING_SELFIE_REAL_PERSONLive person detection failed.
agentReviewWARNING_IDENTITY_THEFT, WARNING_FRAUD_OTHER, WARNING_MONEY_MULEGeneric fraud or compliance conclusion raised during agent review.

Reason codes that describe process interruptions (USER_CANCELLATION_*, APP_CANCELLATION_*, TSP_*, PAY_*, IDENT_*) do not produce a check — they populate terminationReason only.


Testing

Before going live, it is important to verify that your integration handles the full range of identification outcomes correctly — from successful verifications to fraud detections, aborts, and review delays.

IDnow provides a Test-Robot service on the TEST environment that simulates the agent side of an identification automatically. This lets you trigger and observe different end-to-end scenarios — such as a happy path, a fraud case, or a canceled ident — and confirm that your application correctly receives and processes the results (e.g. via webhook or API response). Test-Robot is not a replacement for QA engineers, but a tool to validate your integration during development.

Two identification types are supported: