Verification Methods
The full menu of verification methods a workflow can offer — from government digital credentials to age estimation — and how strong each one is.
A method is a single way a user can prove their age or identity. You don't choose methods per request — you curate them on a workflow, and Stile compiles the session's method list from that selection, filtered by the user's jurisdiction. This page is the reference for every method available, grouped by how it works.
Methods are filtered by jurisdiction
A workflow can list a method that isn't valid everywhere. At session time, Stile removes methods that aren't recognized in the user's detected jurisdiction — for example, mDL is dropped in markets that don't accept digital driver's licenses.
Government digital credentials
Wallet-held, government-issued credentials — the highest-assurance methods, presented directly from the user's phone.
| Method | Value | What it is |
|---|---|---|
| Mobile Driver's License | mdl | An ISO 18013-5 mDL presented from the phone's wallet via OID4VP. |
| Mobile Identity | mid | A government-issued mobile identity credential. |
| EUDI PID | eudi_pid | A European Digital Identity (Person Identification Data) credential. |
Document and chip
Verify a physical identity document — by photo or by reading its secure chip.
| Method | Value | What it is |
|---|---|---|
| Document Capture | document_capture | Photograph a physical ID; Stile extracts and validates the data (OCR + barcode cross-reference) and matches a selfie to the document portrait. |
| NFC Passport | nfc_passport | Read the passport's NFC chip (ICAO 9303) for a cryptographically signed identity. Requires an NFC-capable device. |
A workflow can restrict which document types document_capture accepts:
| Document type | Value |
|---|---|
| ID card | ID_CARD |
| Passport | PASSPORT |
| Driver's license | DRIVERS_LICENSE |
| Residence permit | RESIDENCE_PERMIT |
| Health card | HEALTH_CARD |
Biometric
Use the camera to estimate age or confirm a live, matching person.
| Method | Value | What it is |
|---|---|---|
| Facial Age | facial_age | AI age estimation from a selfie — no document required. Ideal for pure age gates. |
| Selfie Liveness | selfie_liveness | Confirms a real, physically-present person to defeat photo and replay attacks. |
| Selfie Match | selfie_match | Matches a live selfie against the portrait on a verified document. |
Liveness can run with one of three strategies, set as a workflow preference: 3d_action (the user performs a movement such as a head turn), flashing (screen-light reflection), or passive (no user action).
Signal-based
Derive an age or identity signal from an account the user already holds.
| Method | Value | What it is |
|---|---|---|
| Carrier Lookup | carrier_lookup | Uses mobile carrier records as an age and identity signal. |
| Open Banking | open_banking | Uses bank account data as an identity signal. |
Declaration and consent
Lower-assurance methods for contexts where a regulation permits them, or where a guardian is involved.
| Method | Value | What it is |
|---|---|---|
| Self Attestation | self_attestation | The user declares their age or identity. Lowest assurance. |
| Parental Consent | parental_consent | Collects consent from a parent or guardian. |
| Student | student | Verifies academic enrollment. |
Device requirements
Some methods need specific hardware. When a user is on a device that can't run a method — say document capture on a desktop with no camera — the widget offers a desktop → mobile handoff automatically.
| Method | Needs |
|---|---|
mdl, eudi_pid | A digital wallet app on the user's phone (presented via OID4VP). |
mid | A government mobile-identity app. |
nfc_passport | An NFC-capable phone. |
document_capture | A camera. |
facial_age, selfie_liveness, selfie_match | A camera. |
carrier_lookup | The user's mobile number / network. |
open_banking | The user's online banking login. |
self_attestation, parental_consent, student | No special hardware. |
Choosing methods
You curate methods on a workflow; these tradeoffs help you pick:
- Assurance vs. friction. Government digital credentials (mDL, mID, EUDI PID) and chip-read passports are the highest assurance but require the user to have the credential or app. Document capture is broadly available but asks for a camera and a few taps. Facial age estimation is the lowest-friction age gate when identity isn't needed.
- Offer alternatives. With any-of composition, list several methods so users can pick the one they can complete — e.g. mDL for those who have it, document capture for everyone else.
- Let jurisdiction filtering work. Methods not recognized in the user's market are removed automatically, so you can list a superset and trust the compiled list to be valid where each user is.
- Stack for high assurance. With all-of, combine independent checks (e.g. document capture plus a liveness selfie) when the use case warrants it.
Strength ranking
When you reuse a prior verification for a returning user, methods are ranked by strength. A credential at a given rank satisfies any requirement at that rank or below.
| Rank | Strength | Method |
|---|---|---|
| 1 | self_attestation | User declaration |
| 2 | facial_age | AI age estimation |
| 3 | carrier_lookup | Mobile carrier verification |
| 4 | open_banking | Bank account verification |
| 5 | document_capture | Physical ID scan + selfie |
| 6 | mdl | Mobile Driver's License |
| 7 | mid | Mobile ID |
| 8 | eudi_pid | EU Digital Identity |
Selfie liveness and selfie match are counted at document-capture strength; student and parental consent at self-attestation strength.