At Didit, we have meticulously designed the identity verification flow to be as seamless and efficient as possible for the end-user. Our primary goal is to maximize the verification success rate while preventing fraud and ensuring a positive user experience.
This guide walks you through a typical verification flow involving ID Document Verification and a Liveness Test, highlighting the built-in optimizations like smart screen skipping and retry mechanisms that make our solution robust and user-friendly.
The Free KYC Flow: ID Verification + Liveness
The diagram below illustrates the user's path, including decision points and potential outcomes.

A detailed user flow for a verification session requiring an ID document and a liveness check
Step-by-Step Breakdown
Let's break down the key stages of the journey shown in the diagram.
1. Starting the Verification
The user begins on a clear landing screen that outlines the required steps (e.g., ID verification, Liveness test). This transparency helps manage user expectations from the start.
2. Smart Document Selection
By default, the user is asked to select their issuing country and document type (e.g., National ID, Passport).
However, the flow is designed to be efficient. If your integration is configured for a specific use case (e.g., only accepting Spanish National IDs), this selection screen is automatically skipped. The user is taken directly to the document capture step, removing friction and speeding up the process.
3. ID Document Capture & Intelligent Retries
The user is prompted to take a photo of their ID document. Our system provides on-screen guides to help them capture a high-quality image.
To maximize success and minimize user friction, our validation process is divided into two intelligent stages:
A. Instant Image Quality Review
Before the document is submitted for full validation, Didit performs an instant pre-check on the photo. If our system detects potential issues like significant glare, blur, or bad lighting, we don't fail the session. Instead, we prompt the user to review the photo they just took.
This critical step empowers the user to decide if the image is clear enough or if they should retake it immediately, preventing failed attempts due to simple image quality problems.
B. Full Document Validation & Smart Retries
Once a clear image is captured and confirmed, it is processed for validation. A verification can still fail at this stage for various data-related reasons. However, instead of a generic failure, we provide specific, actionable feedback to the user.
- If the document passes: The user moves on to the next step.
- If the document fails: The system displays a clear error message explaining the problem. For example:
- "Document is expired"
- "This document type is not supported"
- "Could not read the document's text" (MRZ validation failed)
This targeted feedback guides the user on exactly what to do next—whether it's finding a different document or simply trying again with better lighting. This retry loop, guided by clear instructions, significantly increases the success rate and prevents user frustration.
For a complete list of possible validation responses, see our ID Verification Warnings reference.
4. Liveness Test & Timeout Handling
After a successful document scan, the user proceeds to the liveness test. This step confirms that a real, live person is present by asking them to perform a simple action, like blinking or smiling.
We understand that a user might not be ready or could be distracted during the liveness prompt. If the user doesn't complete the required action within a specific time frame, the session doesn't automatically fail. Instead, we initiate a retry of the liveness check, giving them another opportunity to complete the step successfully.
5. Processing and Final Outcomes
Once all evidence is collected, our system analyzes the results. The user sees a "Checking your identity..." screen while this happens. The process concludes in one of three ways:
- Approved: The ideal outcome. The data from the ID and the liveness test match, and the verification is successful. The user is informed that they have been verified.
- Declined: The 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 Review: In 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.