Face pre-analysis
Access prerequisites
- Permission (module):
viewKycQueue(view the result) andreviewKyc(decide) - Route: inside the detail (
/kyc-queue/:userId) - License/Feature: face pre-analysis enabled for the tenant (
faceMatch.enabled)
What it is / when to use
The face pre-analysis automatically compares the face printed on the identity document with the face on the selfie submitted by the investor, and shows the result in the queue detail. It lets the Compliance Officer reach the screen already knowing where to look: obvious cases stay obvious, and doubtful ones are flagged.
The comparison runs inside the platform itself, with no external service call and no cost per analysis. No image leaves the environment.
The verdict is decision support, not the decision
The pre-analysis never rejects anyone on its own. A "Mismatch" result flags the case for review — the Compliance Officer remains the one who decides, with step-up, as in every other queue decision.
Where it appears
In the investor detail, in its own card right above User documents — deliberately: you read the verdict and then immediately have both images side by side to check with your own eyes.
How to read the result
The card shows a verdict (color-coded) and the distance behind it.
| Verdict | Color | Meaning | What to do |
|---|---|---|---|
| Match | Green | The selfie clearly matches the face on the document. | Easy case. Proceed with the decision as usual. |
| Review | Yellow | Similarity falls in the middle band. | Compare the images before deciding. |
| Mismatch | Red | The images do not look like the same person. | Mandatory review. Consider requesting resubmission. |
| Inconclusive | Grey | Could not be measured (no face detected, unsupported format…). | Analyze manually, as if the pre-analysis did not exist. |
| Technical failure | Grey | The comparison engine failed. | Same. It does not invalidate the registration. |
The distance
The distance is how much the two faces differ: the smaller, the more alike. Zero means identical images.
The card also shows the measurement thresholds — the values that separated "match" from "mismatch" at that moment. They are stored alongside the result because they are what gives the number meaning: if the tenant configuration changes later, the old measurement remains explainable.
As an order-of-magnitude reference:
| Situation | Typical distance |
|---|---|
| Same person, good photo | close to 0 |
| Same person, old or poorly scanned document | may rise considerably |
| Different people | well above the mismatch threshold |
A poor document raises the distance with no fraud involved
An old, laminated, scanned or low-resolution document photo pushes the measurements apart — and it does not happen equally for everyone. That is precisely why "Mismatch" calls for review instead of rejecting. Treat the result as an invitation to look, never as proof.
Other fields on the card
- Document used — which artifact served as the reference (identity document, banking document…).
- Faces detected — how many faces appeared in each image. Passports and driver's licenses usually have two (the portrait and the ghost image), which is normal. More than one face on the selfie, on the other hand, is a signal in itself — it may be someone holding another person's photo.
- Measured at and Engine — when the measurement was taken and with which model version, for auditing.
Automatic approval
When the tenant enables automatic approval (faceMatch.autoApprove), a Match verdict promotes the account on its own, without waiting for the Compliance Officer to open the screen. In that case:
- the account goes to
APPROVEDand the investor is released immediately; - the decision is recorded with reviewed by
SYSTEM_FACE_MATCH; - the card displays "This measurement approved the account automatically";
- the review notes keep the distance, the threshold and the engine used.
What automatic approval never does
- It does not reject. No verdict rejects an account on its own.
- It does not revive a rejected account. It only acts on accounts whose overall status is
Pending. - It does not override a human decision. If a Compliance Officer has already recorded any decision for that investor, the automation stands down.
Auto-approval is independent from the tenant mode
autoApprove does not honor the AUTO × MANUAL mode: they are separate switches. Enabled on a MANUAL tenant, it approves accounts without going through the Compliance Officer. If the tenant policy requires a human decision in every case, keep auto-approval off and use the pre-analysis for triage only.
When the analysis runs
- On document submission — as soon as the investor completes the pair (document + selfie), the analysis runs in the background. This is where automatic approval happens without depending on anyone opening the queue.
- On opening the detail — if there is no result yet, the measurement is taken on the spot, in a few seconds.
The result is reused: while the image pair stays the same, the verdict is not recalculated. If the investor resubmits the document or the selfie, the analysis runs again automatically.
When it comes back inconclusive
| Reason shown | Meaning |
|---|---|
| There is no photo ID document | The reference artifact is missing. |
| No selfie has been submitted | The proof of life is missing. |
| No face detected on the document / on the selfie | The detector found no face in the image. |
| Unsupported file format | The pre-analysis accepts JPEG and PNG. PDF is not supported. |
| The files could not be read | Failure fetching the images from storage. |
| Timed out / engine unavailable | Technical failure, automatically reprocessed. |
Document sent as PDF
If the investor submitted the ID as a PDF, the pre-analysis cannot read it and the card stays "Inconclusive". This is not a sign of a problem with the registration — it is a limitation of the analysis. Compare the images manually in the User documents section.
Privacy
The platform stores only the verdict, the distance and the measurement context (which document was used, how many faces, which thresholds). The biometric signature computed for the comparison is discarded and never stored.
Business rules / cautions
Attention
- "Mismatch" is not a rejection. Rejecting the account still requires a reason and step-up.
- "Match" does not replace reading the document. A compatible face does not validate name, number, expiry or the authenticity of the artifact.
- Compare the images whenever the verdict is "Review" — that band exists for exactly that.
- Inconclusive is not suspicion. It is absence of information: decide using the other panels.