Didit Console

User Flow

At Didit, we’ve engineered the end-to-end identity verification journey to be fast, frictionless, and fraud-resistant — ensuring you onboard more good users while keeping bad actors out.

This guide explains what a typical end-user experiences when going through an ID Document Check + Liveness Test, and highlights optimization features like smart screen skipping, built-in retries, and actionable feedback, which together dramatically improve completion rates.

🔓 The Free KYC Flow (ID Verification + Liveness + Face Match)

Below is a high-level flow showing every stage, from landing to final outcome.

🔍 Step-by-Step Breakdown

1. Start Screen — Set Expectations

The user lands on a clean, branded screen telling them exactly what will happen next (e.g. “You’ll need your ID and your face”). This boosts confidence and reduces drop-off.


2. Smart Country & Document Selection (Friction Removed)

Normally, the user chooses their country and document type (Passport, ID Card, etc).

If your workflow is configured for a single document type, this screen is automatically skipped, taking the user straight to capture — making the journey faster.


3. ID Capture with Intelligent Retries

The user is asked to photograph the front of their document.

A. Instant Photo Quality Check (On-device)

Before we submit, Didit instantly checks for glare, blur, cutoff edges, etc.

  • ✅ Looks good → continue
  • ❌ Problem detected → user is asked if they want to retake, avoiding needless failures

B. Full Backend Validation + Guided Retry Loop

Once the image is submitted for validation:

  • If it passes → proceed to liveness

  • If it fails, instead of a generic error, we show explicit instructions:

    • “Document expired”
    • “Unsupported document type”
    • “MRZ unreadable – retake in stronger light”

This self-serve retry loop significantly increases pass-through rates.

See the full list of possible validation outcomes under ID Verification Warnings.


4. Liveness + Face Match Challenge (With Built-in Timeout Retries)

A selfie liveness check ensures a real user is present and prevents replay/deepfake attacks.

If the user doesn’t respond in time (e.g. doesn’t blink or look up), the process retries once automatically instead of hard-failing.


5. Final Outcome

After checks complete, the user is shown one of three screens:

ResultDescription
ApprovedThe ideal outcome. The data from the ID, the liveness and face match, and the verification is successful. The user is informed that they have been verified.
DeclinedThe system confidently determines that the verification cannot be approved (e.g., a fraudulent document is detected, the liveness test fails definitively, or there is a data mismatch). The user is shown a "Verification failed" screen.
In ReviewIn some cases, the automated checks may not be able to reach a conclusive decision. Instead of a rejection, the session is flagged for manual review. The user is informed that their submission is under review and they will be notified of the result. This fallback mechanism ensures that legitimate users who have trouble with the automated flow are not unfairly rejected.

Conclusion: by combining smart UX, progressive validation, actionable feedback, and graceful retries, the Didit verification journey keeps good users moving — and keeps bad actors out — without manual intervention.