> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chmodlab.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Verification types

> The three transaction types, what each one proves, and which to use when.

Every transaction has a type. It decides what the user is asked to do, which checks run, and — crucially — what the result actually proves.

<CardGroup cols={3}>
  <Card title="Document and biometric" icon="id-card-clip">
    Document capture and a liveness check. Proves the person is real, the document is
    genuine, and they match.
  </Card>

  <Card title="Document only" icon="id-card">
    Document capture, no selfie. Proves the document is genuine and readable.
  </Card>

  <Card title="Biometric only" icon="face-viewfinder">
    Liveness check, no document. Proves a real person is present — and, if enrolled, that
    it is the same person as before.
  </Card>
</CardGroup>

## What runs for each type

| Check | Document and biometric | Document only | Biometric only |
| - | :-: | :-: | :-: |
| Device integrity | Yes | Yes | Yes |
| Customer status | Yes | Yes | Yes |
| Document extraction, legibility, authenticity | Yes | Yes | — |
| Document eligibility and expiry | Yes | Yes | — |
| Data matching | Yes | Yes | — |
| Consistency with document history | Yes | Yes | — |
| Liveness score and facial attributes | Yes | — | Yes |
| Document face vs. liveness face | Yes | — | — |
| Liveness face vs. enrolled face | Yes <sup>1</sup> | — | Yes <sup>1</sup> |
| Document face vs. enrolled face | Yes <sup>1</sup> | Yes <sup>1</sup> | — |

<sup>1</sup> Only when the customer already has an enrolled face.

And which parts of the configuration apply:

| Rules | Document and biometric | Document only | Biometric only |
| - | :-: | :-: | :-: |
| Device integrity | Apply | Apply | Apply |
| Documents | Apply | Apply | Ignored |
| Biometrics | Apply | Ignored | Apply |
| Blocklists | Apply | Apply | Apply |

## Which type should I use?

<Steps>
  <Step title="Onboarding a new user">
    **Document and biometric.** This is the only type that ties a real, present person to a genuine document in one transaction, and it is what enrols the reference face that every later check depends on. Start every customer here.
  </Step>

  <Step title="Re-verifying a known user before something sensitive">
    **Biometric only**, for a customer who has already completed a document-and-biometric verification. A selfie is a few seconds; the comparison against the enrolled face proves it is the same person who onboarded. Good for high-value transfers, password resets, device changes.
  </Step>

  <Step title="Refreshing an expired or expiring document">
    **Document only.** The person is already enrolled; you need a new document on file. The document face is still compared against the enrolled face, so it cannot be someone else's document.
  </Step>
</Steps>

## When there is no enrolled face

<Warning>
  On a customer with **no enrolled face**, a biometric-only verification proves only that a live human was in front of the camera. It does not prove *who*. The liveness check runs, the comparison is skipped with an informational finding, and the transaction can come back approved.

  If your product treats biometric-only as an identity check, make sure the customer has completed a document-and-biometric verification first. Your backend can enforce this by refusing to open a biometric-only transaction for a customer with no approved onboarding on record.
</Warning>

## Time to complete

Match the time limit to how the flow is delivered. A step-up the user starts immediately from a button needs minutes, not hours; a document refresh you send by email is the case that justifies a long window. The exact setting is in the [transaction configuration](/configuration/overview).

## What the user experiences

| Type | Screens the SDK shows |
| - | - |
| Document and biometric | Welcome → document → selfie with liveness → result |
| Document only | Welcome → document → result |
| Biometric only | Welcome → selfie with liveness → result |

The welcome and result screens can be turned off in the
[SDK configuration](/sdk/configuration/overview).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.