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

# Verificació d'identitat: advertències i codis d'error

> Totes les advertències del mòdul de verificació d'identitat de Didit: activadors de rebuig automàtic, risc, manipulació, causa i solució.

## Visió general

Les advertències a l'informe de verificació d'identitat assenyalen cada condició que Didit ha observat en llegir i validar el document. Es recullen a la matriu `warnings[]` de cada element de `id_verifications[]` (consulta [Informe de verificació d'identitat](https://docs.didit.me/ca/core-technology/id-verification/report-id-verification.md)), amb l'estructura descrita a [Models de dades — Objecte d'advertència](https://docs.didit.me/ca/reference/data-models.md#objecte-d’advertència): `feature`, `risk`, `additional_data`, `log_type`, `short_description`, `long_description`, `node_id`.

Cada advertència té tres capes:

1. **El codi de `risk`** — un identificador estable que pots utilitzar per fer-hi comparacions al teu codi.
2. **El `log_type`** — derivat de l'acció que la teva configuració assigna al risc en el moment de l'avaluació: **Rebutjar → `error`**, **Revisió → `warning`**, qualsevol altra cosa → `information`.
3. **L'impacte en la decisió** — definit pels grups de risc configurables del flux de treball. El mateix codi de `risk` es pot derivar a **Aprovar**, **Revisar** o **Rebutjar** segons com estigui configurada la teva aplicació.

## Condicions de rebuig automàtic

Als fluxos de treball, els riscos següents sempre forcen l'informe de verificació d'identitat (i la sessió) a l'estat `Declined`. No es poden configurar:

| Risc | Activador |
| - | - |
| `DOCUMENT_NOT_SUPPORTED_FOR_APPLICATION` | El tipus de document enviat no figura a la llista de documents permesos de la teva aplicació. `additional_data` inclou `issuing_state`, `document_type`, `document_subtype`, `document_region` i `document_region_with_subtype` perquè puguis habilitar el document exacte al teu flux de treball. |
| `DOCUMENT_EXPIRED` | La data de caducitat del document ja ha passat en el moment de la captura. |
| `PORTRAIT_IMAGE_NOT_DETECTED` | No s'ha pogut localitzar cap imatge de retrat al document. |
| `ID_DOCUMENT_IN_BLOCKLIST` | El document coincideix amb una entrada de la llista de bloqueig de la teva aplicació. |
| `FRONT_CAMERA_FACE_IN_BLOCKLIST` | La selfie que la càmera frontal ha capturat durant la captura del document coincideix amb una cara de la teva llista de bloqueig de cares. |
| `AGE_BELOW_MINIMUM` | Només en fluxos de treball adaptatius de verificació d'edat: l'edat extreta està per sota del mínim. |
| `AGE_NOT_DETECTED` | Només en fluxos de treball adaptatius de verificació d'edat: no s'ha pogut extreure l'edat del document. |

Per a l'**API d'OCR independent**, el conjunt de rebuig incondicional és `DOCUMENT_EXPIRED`, `MINIMUM_AGE_NOT_MET`, `PORTRAIT_IMAGE_NOT_DETECTED`, `SCREEN_CAPTURE_DETECTED`, `PRINTED_COPY_DETECTED`, `PORTRAIT_MANIPULATION_DETECTED` i `PUBLIC_DOCUMENT_IMAGE_DETECTED`. Als fluxos de treball, l'edat mínima és configurable (per defecte Rebutjar) i els tres riscos de prova de vida del document es basen en llindars (consulta més avall).

Els riscos configurables d'aquesta API accepten `DECLINE` o `NO_ACTION` com a paràmetres de sol·licitud en comptes d'un veredicte de Revisió. L'únic resultat de Revisió que pot retornar no és configurable: quan una comprovació de prova de vida de document sol·licitada no produeix cap puntuació utilitzable, la resposta és `In Review` amb una advertència `DOCUMENT_LIVENESS_NOT_COMPUTED` (consulta [Prova de vida del document](#prova-de-vida-del-document-manipulació)).

| Paràmetre de sol·licitud | Riscos | Per defecte |
| - | - | - |
| `invalid_mrz_action` | `MRZ_VALIDATION_FAILED`, `MRZ_NOT_DETECTED` | `DECLINE` |
| `inconsistent_data_action` | `DATA_INCONSISTENT`, `MRZ_AND_DATA_EXTRACTED_FROM_OCR_NOT_SAME`, `DOCUMENT_NAME_DIFFERENT_FROM_OTHER_APPROVED_DOCUMENTS` | `DECLINE` |
| `expiration_date_not_detected_action` | `EXPIRATION_DATE_NOT_DETECTED` | `NO_ACTION` |
| `critical_field_occlusion_action` | `CRITICAL_FIELD_OCCLUSION_DETECTED` | `DECLINE` |
| `document_or_personal_number_format_mismatch_action` | `DOCUMENT_NUMBER_FORMAT_MISMATCH`, `PERSONAL_NUMBER_FORMAT_MISMATCH` | `NO_ACTION` |

## Configuració de verificació configurable

Al tauler de Didit, la resta de riscos d'identitat s'agrupen en configuracions que pots dirigir a **Aprovar**, **Revisió** o **Rebutjar** (per flux de treball, i per node en els fluxos de treball de graf):

| Grup | Riscos | Acció per defecte |
| - | - | - |
| **Edat mínima** | `MINIMUM_AGE_NOT_MET` | Rebutjar |
| **Edat màxima** | `MAXIMUM_AGE_EXCEEDED` | Rebutjar |
| **Usuari duplicat** | `POSSIBLE_DUPLICATED_USER` (s'omet quan el número de document és a la teva llista d'admesos de documents) | Aprovar (informació) |
| **Codi no vàlid** | `QR_NOT_DETECTED`, `BARCODE_NOT_DETECTED`, `QR_VALIDATION_FAILED`, `BARCODE_VALIDATION_FAILED` | Aprovar (informació) |
| **MRZ no vàlida** | `MRZ_VALIDATION_FAILED`, `MRZ_NOT_DETECTED` | Aprovar (informació) |
| **Incoherència de dades** | `DATA_INCONSISTENT`, `MRZ_AND_DATA_EXTRACTED_FROM_OCR_NOT_SAME`, `DOCUMENT_NAME_DIFFERENT_FROM_OTHER_APPROVED_DOCUMENTS`, `DOCUMENT_SIDES_MISMATCH`, `ID_VERIFICATION_DATA_MISMATCH_BETWEEN_DOCUMENTS` | Aprovar (informació) |
| **Validació no vàlida** | `INVALID_DATE`, `COULD_NOT_RECOGNIZE_DOCUMENT`, `DOCUMENT_NUMBER_NOT_DETECTED`, `COULD_NOT_DETECT_DOCUMENT_TYPE`, `NAME_NOT_DETECTED`, `DATE_OF_BIRTH_NOT_DETECTED` | Revisió |
| **Discrepància en les dades esperades** | `FULL_NAME_MISMATCH_WITH_PROVIDED`, `GENDER_MISMATCH_WITH_PROVIDED`, `DOB_MISMATCH_WITH_PROVIDED`, `COUNTRY_MISMATCH_WITH_PROVIDED`, `NATIONALITY_MISMATCH_WITH_PROVIDED`, `IDENTIFICATION_NUMBER_MISMATCH_WITH_PROVIDED` | Revisió |
| **Data de caducitat no detectada** | `EXPIRATION_DATE_NOT_DETECTED` | Aprovar (informació) |
| **Discrepància de format del número de document o del número personal** | `DOCUMENT_NUMBER_FORMAT_MISMATCH`, `PERSONAL_NUMBER_FORMAT_MISMATCH` (una acció compartida) | Revisió |
| **Camp crític cobert** | `CRITICAL_FIELD_OCCLUSION_DETECTED` | Revisió |
| **Adreça no analitzada** | `UNPARSED_ADDRESS` | Aprovar (informació) |
| **Qualitat de la imatge** | `IMAGE_TOO_BLURRY`, `IMAGE_TOO_DARK`, `IMAGE_TOO_BRIGHT` (una acció per risc) | Aprovar (informació) |
| **Document sense retrat** | `DOCUMENT_HAS_NO_PORTRAIT` | Revisió |
| **Rostre duplicat en la captura silenciosa** | `FRONT_CAMERA_DUPLICATED_FACE`, `POSSIBLE_FRONT_CAMERA_DUPLICATED_FACE` (una acció compartida) | Aprovar (informació) |
| **Rostre duplicat en la captura silenciosa amb un nom diferent** | `FRONT_CAMERA_DUPLICATED_FACE_NAME_MISMATCH` (només pot fer més estricte el resultat de rostre duplicat) | Revisió |
| **Rostre duplicat en la captura silenciosa amb una data de naixement diferent** | `FRONT_CAMERA_DUPLICATED_FACE_DOCUMENT_MISMATCH` (només pot fer més estricte el resultat de rostre duplicat) | Revisió |

Els riscos de duplicat i de llista de bloqueig de la captura silenciosa provenen de la [Cerca facial de la selfie presa durant la captura del document](https://docs.didit.me/ca/core-technology/face-search/overview.md#la-selfie-presa-durant-la-captura-del-document). La cerca s'executa mentre **Cerca facial amb captura silenciosa** (`document_selfie_face_search_enabled`) està activada, que és l'opció per defecte, i la Cerca facial no s'ha desactivat al pas de Prova de vida; en cas contrari, no es genera cap d'aquests sis riscos.

Dues famílies de riscos d'identitat es **basen en llindars** en lloc de selectors d'Aprovar/Revisió/Rebutjar:

* **Prova de vida del document** — `SCREEN_CAPTURE_DETECTED`, `PRINTED_COPY_DETECTED`, `PORTRAIT_MANIPULATION_DETECTED`. Cada tipus de frau té els seus propis llindars de rebuig i de revisió: puntuació per sota del llindar de rebuig → `error` + Rebutjada; per sota del llindar de revisió → `warning` + En revisió; en cas contrari, `information`.
* **Coincidència facial entre càmeres** — `LOW_FRONT_CAMERA_FACE_MATCH_SIMILARITY`, regulat per `document_selfie_portrait_match_decline_threshold` / `document_selfie_portrait_match_review_threshold`.

### Configuració dels llindars de prova de vida del document

A l'editor de fluxos de treball, aquests llindars es troben a la pestanya **Falsificació** del pas de Verificació d'identitat, amb una targeta per a cada tipus de frau: **Substitució del retrat**, **Còpia impresa** i **Captura de pantalla**.

Cada comprovació assigna al document una puntuació de `0` a `100` segons com d'autèntic sembla. **Una puntuació més alta significa que és més probable que el document sigui autèntic.** Els dos valors d'una targeta divideixen aquesta escala en tres franges:

| Puntuació | Resultat |
| - | - |
| Per sota del valor de **Rebutjar** | `error`, la sessió queda Rebutjada |
| Igual o per sobre del valor de **Rebutjar** i per sota del valor de **Revisió** | `warning`, la sessió passa a En revisió |
| Igual o per sobre del valor de **Revisió** | `information`, la comprovació es considera superada |

Pujar qualsevol dels dos valors fa que la comprovació sigui més estricta: més sessions cauen a la franja superior. Abaixar un valor permet que passin més sessions. A l'editor, el valor de Rebutjar no pot superar el valor de Revisió. Mitjançant l'API, un valor de Rebutjar per sobre del valor de Revisió elimina la franja d'En revisió.

Valors per defecte de la plataforma, utilitzats quan un flux de treball no defineix cap valor:

| Tipus de frau | Rebutjar per sota de | Revisió per sota de | Claus de configuració del flux de treball |
| - | - | - | - |
| Substitució del retrat | `35` | `70` | `document_liveness_portrait_replace_decline_threshold`, `document_liveness_portrait_replace_review_threshold` |
| Còpia impresa | `35` | `77` | `document_liveness_printed_copy_decline_threshold`, `document_liveness_printed_copy_review_threshold` |
| Captura de pantalla | `30` | `70` | `document_liveness_screen_replay_decline_threshold`, `document_liveness_screen_replay_review_threshold` |

Comença a partir dels valors per defecte i modifica un sol valor cada vegada. Cada targeta mostra el seu valor per defecte i un botó **Restableix el valor per defecte**, de manera que sempre pots tornar-hi. L'editor també t'avisa d'aquestes configuracions:

* **Revisió a `100`.** Només una puntuació perfecta supera la comprovació, de manera que gairebé totes les sessions passen a En revisió o es rebutgen.
* **Rebutjar a `100`.** Només una puntuació perfecta evita el rebuig, de manera que gairebé totes les sessions es rebutgen.
* **Tots dos valors a `0`.** Cap puntuació es marca mai, per la qual cosa la comprovació està pràcticament desactivada.

Establir tots dos valors al mateix número elimina la franja d'En revisió: la sessió es rebutja si la puntuació és inferior, i qualsevol altra puntuació supera la comprovació.

Quan tant **Còpia impresa** com **Captura de pantalla** marcarien el mateix document, només es notifica `SCREEN_CAPTURE_DETECTED`.

La coincidència facial entre càmeres utilitza la mateixa idea amb una diferència al límit: una puntuació igual al seu llindar de revisió continua passant a En revisió.

Quatre riscos d'identitat no són configurables ni es basen en llindars. `POSSIBLE_FRONT_CAMERA_FACE_IN_BLOCKLIST` sempre es deriva a **Revisió**: un selfie que s'assembla a una cara de la llista de bloqueig, sense ser una coincidència confirmada, l'ha de valorar una persona; mai no comporta un rebuig automàtic i mai no s'ignora. `BARCODE_SIGNATURE_INVALID` sempre es deriva a **Revisió**. Només s'activa quan un codi de barres conté una signatura de l'autoritat emissora que falla la verificació criptogràfica, de manera que no hi ha cap configuració en què s'ignori una falsificació demostrada. `DOCUMENT_BACK_SIDE_NOT_AVAILABLE` és sempre **informació** i no afecta mai la decisió: notifica una limitació del catàleg de documents de Didit, no una propietat del document presentat, de manera que no hi ha cap configuració en què pugui rebutjar o enviar a revisió un titular autèntic.
`FRONT_CAMERA_CAPTURED_DOCUMENT` sempre es deriva a **Revisió**.
Només s'activa quan el fotograma de la càmera frontal capturat mentre s'escaneja el document mostra un document d'identitat i cap persona, de manera que una captura que no aporta informació sobre qui sostenia el document sempre arriba a una persona per a la revisió.
Es comprova sempre que la coincidència entre el selfie i la captura del document (`is_document_selfie_portrait_match_enabled`) estigui activada.

## Advertències generades

Verificat amb `collect_ocr_logs`, el flux de captura de documents i `process_ocr_logs_and_get_status`. Les descripcions curtes que apareixen a continuació són exactament les cadenes `short_description` que retorna l'API.

### Reconeixement i qualitat del document

| Risc | Descripció curta | Causa | Gravetat |
| - | - | - | - |
| `COULD_NOT_RECOGNIZE_DOCUMENT` | Could not validate Document | El sistema no ha pogut confirmar l'autenticitat o la validesa del document enviat — sovint per mala qualitat de la imatge o per un tipus de document no admès. També s'utilitza com a alternativa per defecte per a fallades de processament no reconegudes. | Configurable — Invalid Validation, per defecte Review |
| `COULD_NOT_DETECT_DOCUMENT_TYPE` | Could not detect document type | L'anvers del document no coincideix amb un disseny de document oficial conegut amb un nivell alt de confiança, o el motor d'OCR no ha pogut classificar la família del document (passaport vs. document d'identitat vs. carnet de conduir). Un document que conté dades vàlides però el disseny del qual no coincideix amb cap disseny oficial (un document editat o generat per ordinador, o un disseny nou encara no admès) acaba aquí. Quan s'activa aquesta advertència, se suprimeix `DOCUMENT_NOT_SUPPORTED_FOR_APPLICATION` (el tipus és desconegut, per la qual cosa «no admès» seria contradictori). | Configurable — Invalid Validation, per defecte Review |
| `DOCUMENT_NOT_SUPPORTED_FOR_APPLICATION` | Document not supported for your application | El tipus de document reconegut no és a la llista permesa de l'aplicació. `additional_data` inclou el país, el tipus de document, el subtipus i el subtipus adaptat a la regió. | `error` — **rebuig automàtic** |
| `DOCUMENT_EXPIRED` | Document expired | En el moment de la captura: la data de caducitat del document ja ha passat (`error`, rebuig automàtic). Després de l'aprovació: el monitoratge continu de caducitat afegeix aquesta advertència amb `log_type: "warning"` quan passa la data d'un document aprovat, i l'estat de l'informe passa a ser `Expired`. | `error` en la captura; `warning` des del monitoratge |
| `DOCUMENT_SIDES_MISMATCH` | Document sides mismatch | Les imatges de l'anvers i del revers no pertanyen al mateix document. | Configurable — Data Inconsistency, per defecte information |
| `DOCUMENT_BACK_SIDE_NOT_AVAILABLE` | Back side not available for this document | El flux de treball ha sol·licitat ambdues cares, s'ha reconegut l'anvers i el catàleg de documents de Didit no registra cap revers per a aquest document concret, de manera que només s'ha pogut recollir l'anvers. L'evidència de l'informe és d'una sola cara. No hi ha cap problema amb el document presentat; mai es demana al titular que el torni a capturar i tornar-lo a escanejar no pot afegir cap revers. `additional_data` inclou el `front_document_name` reconegut. | `information` — mai afecta la decisió |
| `PORTRAIT_IMAGE_NOT_DETECTED` | Portrait image not detected | No s'ha pogut localitzar cap retrat en un document que n'hauria de tenir (es posposa quan l'usuari puja primer la cara que no té retrat). | `error` — **rebuig automàtic** |
| `DOCUMENT_HAS_NO_PORTRAIT` | Document has no portrait | La família de documents reconeguda mai porta cap foto de retrat en cap cara (alguns permisos de residència, targetes sanitàries, certificats de registre, targetes fiscals i un subconjunt de carnets de conduir/documents d'identitat). Aquest és un fet a nivell de catàleg sobre el tipus de document, no un problema de qualitat de la imatge; tornar a escanejar el document no pot canviar el resultat. | Configurable — Document Without Portrait, per defecte Review |
| `IMAGE_TOO_BLURRY` / `IMAGE_TOO_DARK` / `IMAGE_TOO_BRIGHT` | Document image is too blurry / too dark / too bright | El control de qualitat de la imatge ha rebutjat una càrrega (es demana a l'usuari que la torni a fer). `additional_data` inclou la cara (`side`) que ha fallat. Una recaptura satisfactòria esborra l'advertència obsoleta; el control s'omet en l'últim intent permès de l'usuari perquè mai quedi blocat del tot. | Configurable — acció d'Image Quality per risc, per defecte information |

> [!NOTE]
>
> El flux de captura també pot rebutjar una càrrega amb els codis de retroacció `IMAGE_RESOLUTION_TOO_LOW`, `DOCUMENT_NOT_FULLY_VISIBLE`, `IMAGE_QUALITY_TOO_LOW` i `DOCUMENT_OCCLUSION_DETECTED` (es considera que un dit o objecte cobreix físicament text imprès). Cadascun sol·licita una recaptura a l'SDK i es registra a l'informe com un risc propi, canalitzat per la configuració d'Image Quality; `DOCUMENT_OCCLUSION_DETECTED` i `IMAGE_QUALITY_TOO_LOW` comparteixen una mateixa acció. Descriuen la *captura*: una recaptura satisfactòria esborra l'advertència. La decisió de si un camp cobert ha d'afectar la decisió correspon al risc d'integritat independent `CRITICAL_FIELD_OCCLUSION_DETECTED` que es descriu més avall, el qual es genera en el moment de la decisió i té Review per defecte.

> [!TIP]
>
> Si el teu flux de treball ancora la identitat en la Coincidència facial en lloc del retrat del document, planteja't canalitzar **Document Without Portrait** cap a Decline; altrament, una família de documents sense retrat arribarà a la Coincidència facial sense res amb què comparar-se.

### Extracció de camps

| Risc | Descripció curta | Causa | Gravetat |
| - | - | - | - |
| `NAME_NOT_DETECTED` | First name and/or last name not detected | No s'han pogut extreure el nom i els cognoms. Se n'exclou el cas en què el titular té legítimament un sol nom (països on les persones tenen un sol nom, o la MRZ mateixa porta un sol nom) i s'ha extret almenys un valor corresponent al nom. | Configurable — Invalid Validation, per defecte Review |
| `DATE_OF_BIRTH_NOT_DETECTED` | Date of birth not detected | No s'ha pogut extreure la data de naixement d'un document que n'hauria de tenir. | Configurable — Invalid Validation, per defecte Review |
| `DOCUMENT_NUMBER_NOT_DETECTED` | Document number not detected | No s'ha pogut extreure ni el número de document ni un número personal. | Configurable — Invalid Validation, per defecte Review |
| `EXPIRATION_DATE_NOT_DETECTED` | Expiration date not detected | No s'ha pogut extreure la data de caducitat d'un document que n'hauria de tenir. | Configurable — Expiration Date Not Detected, per defecte information |
| `INVALID_DATE` | Invalid Date | Una data del document (data de naixement o de caducitat) no es pot interpretar com una data vàlida. En el flux de captura actual, això es mostra com una sol·licitud de recaptura durant la càrrega en lloc d'una advertència emmagatzemada; el codi roman en el grup d'encaminament d'Invalid Validation i pot aparèixer en sessions més antigues. | Configurable — Invalid Validation, per defecte Review |
| `DOCUMENT_NUMBER_FORMAT_MISMATCH` | El format del número de document no coincideix | El número de document no coincideix amb el format esperat configurat per a aquest tipus de document. `additional_data` inclou `expected_format` i `extracted_value`. | Configurable — Format no coincident, per defecte Revisió |
| `PERSONAL_NUMBER_FORMAT_MISMATCH` | El format del número personal no coincideix | El número personal no coincideix amb el format esperat configurat per a aquest tipus de document. | Configurable — Format no coincident, per defecte Revisió |
| `CRITICAL_FIELD_OCCLUSION_DETECTED` | Un camp crític del document està cobert | La comprovació d'oclusió ha informat que un camp imprès crític estava físicament cobert a la captura — un número d'identitat, un nom, la data de naixement o la data de caducitat. Aquest és un senyal d'integritat del document, no de qualitat de la captura: cobrir precisament els números amb què es concilia un informe és el que caracteritza un document manipulat o amb dades tapades. El valor llegit per a un camp cobert s'omet de l'extracció en lloc de retornar-se com a confirmat, de manera que el risc `*_NOT_DETECTED` corresponent sol acompanyar aquesta advertència. `additional_data` inclou els noms dels camps coberts a `covered_fields`, i `covered_identifiers` quan un d'ells alimenta `document_number` o `personal_number`. | Configurable — Camp crític cobert, per defecte Revisió |

### MRZ, QR, codi de barres

Tots tres riscos de MRZ s'ometen per als tipus de documents amb MRZ que se sap que no són fiables.

| Risc | Descripció breu | Causa | Gravetat |
| - | - | - | - |
| `MRZ_NOT_DETECTED` | MRZ no detectada | No s'ha pogut localitzar la MRZ en un document que n'hauria de tenir. | Configurable — MRZ no vàlida, per defecte informació |
| `MRZ_VALIDATION_FAILED` | La MRZ no és vàlida | La MRZ no ha superat la validació de suma de verificació / format. Sovint es deu a una captura de baixa qualitat; pot indicar manipulació. | Configurable — MRZ no vàlida, per defecte informació |
| `MRZ_AND_DATA_EXTRACTED_FROM_OCR_NOT_SAME` | La MRZ i les dades extretes per OCR presenten discrepàncies | El contingut de la MRZ no coincideix amb l'OCR de la VIZ (zona visible). Possible alteració. | Configurable — Incoherència de dades, per defecte informació |
| `QR_NOT_DETECTED` | QR no detectat | No s'ha pogut localitzar el codi QR en un document que n'hauria de tenir. | Configurable — Codi no vàlid, per defecte informació |
| `QR_VALIDATION_FAILED` | Ha fallat la validació del QR | No s'ha pogut validar el contingut del QR amb la resta del document. | Configurable — Codi no vàlid, per defecte informació |
| `BARCODE_NOT_DETECTED` | Codi de barres no detectat | No s'ha pogut localitzar el codi de barres en un document que n'hauria de tenir. | Configurable — Codi no vàlid, per defecte informació |
| `BARCODE_VALIDATION_FAILED` | Ha fallat la validació del codi de barres | No s'ha pogut validar el contingut del codi de barres amb la resta del document. | Configurable — Codi no vàlid, per defecte informació |
| `BARCODE_SIGNATURE_INVALID` | Signatura del codi de barres no vàlida | El codi de barres porta una signatura digital de l'autoritat emissora, i aquesta signatura no s'ha pogut verificar: les dades del codi de barres no són les que va signar l'autoritat, cosa que apunta a un document falsificat o alterat. Actualment es comprova per als codis de barres **2D-Doc (ANTS) francesos**, on una signatura verificada permet a Didit donar per bons els camps sense necessitat de corroboració per MRZ; les signatures AAMVA (permisos de conduir i documents d'identitat dels EUA i el Canadà) només es detecten i es registren, encara no s'apliquen de manera estricta. | Fix: revisió (grup d'acció propi `invalid_barcode_signature_action`; encara no configurable per consola/API) |
| `DATA_INCONSISTENT` | Les dades d'OCR del document no són coherents | Les dades extretes de diferents parts del document no coincideixen — normalment l'anvers i el revers del mateix document. | Configurable — Incoherència de dades, per defecte informació |

> [!NOTE]
>
> Actualment, la verificació de la signatura del codi de barres cobreix els documents nacionals d'identitat francesos, el codi de barres 2D-Doc ANTS dels quals està signat per l'autoritat emissora. `BARCODE_SIGNATURE_INVALID` només s'emet quan la mateixa comprovació de signatura rebutja el payload. Un codi de barres sense signatura, un de signat per una autoritat que encara no es troba al magatzem de confiança de Didit o un codi de barres la signatura del qual no es pot descodificar es tracta com a dades no autenticades i es valida amb la MRZ i el text imprès com abans, sense emetre aquest risc.
>
> Els codis de barres dels permisos de conduir dels EUA i el Canadà (AAMVA) no es verifiquen criptogràficament: la signatura digital és opcional i específica de cada jurisdicció, i cap jurisdicció no publica claus de verificació, de manera que Didit només detecta i registra si un payload porta una signatura; la signatura en si mai no es comprova. Les fallades de signatura AAMVA no són un senyal de risc avui dia. Un payload AAMVA manipulat només es manifesta com a `BARCODE_VALIDATION_FAILED`, i només si la manipulació també fa que el codi de barres no coincideixi amb la MRZ o les dades impreses/OCR; una signatura falsificada en un payload que altrament sigui coherent internament passa sense cap senyal.
>
> A l'usuari mai no se li demana que torni a fer la captura per `BARCODE_SIGNATURE_INVALID`: una signatura que no coincideix amb el payload no es pot solucionar fent una foto millor.

### Coincidència d'identitat

| Risc | Descripció breu | Causa | Gravetat |
| - | - | - | - |
| `ID_DOCUMENT_IN_BLOCKLIST` | Document d'identitat a la llista de bloqueig | El document coincideix amb un document a la llista de bloqueig (mateixa data de naixement, país emissor i número de document exacte) o amb un número de document afegit manualment a la llista de bloqueig. `additional_data` inclou la referència de la sessió bloquejada. | `error` — **rebuig automàtic** |
| `ID_DOCUMENT_IN_ALLOWLIST` | Document d'identitat a la llista de permisos | El número de document coincideix amb la teva llista de permisos de documents, de manera que s'ha omès l'acció d'usuari duplicat. `additional_data` inclou el `document_number`. | `information` |
| `POSSIBLE_DUPLICATED_USER` | Possible usuari duplicat d'una altra sessió | Un altre document de la teva aplicació té la mateixa data de naixement, el mateix país emissor i un nom complet molt similar — sota un usuari diferent (`vendor_data`), independentment de l'estat d'aquella sessió. `additional_data` inclou la referència de la sessió duplicada. | Configurable — Usuari duplicat, per defecte informació |
| `DOCUMENT_NAME_DIFFERENT_FROM_OTHER_APPROVED_DOCUMENTS` | El nom del document difereix d'altres documents aprovats | El nom d'aquest document difereix dels documents aprovats anteriorment per al mateix usuari. Només es genera per a comptes del protocol Didit (UserKYC), no per a sessions estàndard d'API. | Configurable — Incoherència de dades, per defecte informació |
| `ID_VERIFICATION_DATA_MISMATCH_BETWEEN_DOCUMENTS` | Discrepància de dades entre documents de verificació d'identitat | Dos documents d'identitat de la mateixa sessió no coincideixen en el nom / la data de naixement. | Configurable — Incoherència de dades, per defecte information |
| `LOW_FRONT_CAMERA_FACE_MATCH_SIMILARITY` | El selfie durant la captura del document no coincideix amb el retrat del document | El rostre capturat per la càmera frontal de l'usuari durant la captura del document no coincideix prou bé amb el retrat del document. | Basat en llindars: `error` per sota del llindar de rebuig, `warning` al llindar de revisió o per sota |
| `FRONT_CAMERA_FACE_IN_BLOCKLIST` | El selfie durant la captura del document coincideix amb un rostre de la llista de bloqueig | El rostre d'un selfie pres per la càmera frontal durant la captura del document coincideix amb un alt grau de confiança amb un rostre de la teva llista de bloqueig de rostres, tant si aquest rostre s'ha afegit des d'un control de prova de vida, des del selfie de captura de document d'una altra sessió o mitjançant una càrrega. `additional_data` conté la referència de la sessió inclosa a la llista de bloqueig (`blocklisted_session_id`, `blocklisted_session_number`) quan el rostre de la llista de bloqueig prové d'una sessió, i `face_image_source` (`front_image_camera_front` o `back_image_camera_front`) per al selfie que ha coincidit. | `error` — **rebuig automàtic** |
| `POSSIBLE_FRONT_CAMERA_FACE_IN_BLOCKLIST` | El selfie durant la captura del document podria coincidir amb un rostre de la llista de bloqueig | El rostre d'un selfie de captura de document és similar a un rostre de la teva llista de bloqueig de rostres, però no prou similar per ser una coincidència confirmada. El mateix `additional_data` que anteriorment. | `warning` — **sempre Revisió** |
| `FRONT_CAMERA_DUPLICATED_FACE` | El selfie durant la captura del document coincideix amb un usuari aprovat | El rostre del selfie pres per la càmera frontal durant la captura del document coincideix amb un alt grau de confiança amb el rostre d'un usuari ja aprovat a la teva aplicació, de manera que la mateixa persona podria estar verificant-se de nou amb un altre compte. `additional_data` conté la sessió coincident (`duplicated_session_id`, `duplicated_session_number`) i `face_image_source` per al selfie que ha coincidit. | Segons **Rostre duplicat en la captura silenciosa** (per defecte Aprovar, `information`) |
| `POSSIBLE_FRONT_CAMERA_DUPLICATED_FACE` | El selfie durant la captura del document podria coincidir amb un usuari aprovat | El rostre d'un selfie de captura de document és similar al rostre d'un usuari ja aprovat a la teva aplicació, de moral que no és prou similar per ser una coincidència confirmada. El mateix `additional_data` que anteriorment. | Segons **Rostre duplicat en la captura silenciosa** (per defecte Aprovar, `information`) |
| `FRONT_CAMERA_DUPLICATED_FACE_NAME_MISMATCH` | El selfie de captura de document coincideix amb un usuari amb un nom diferent | Es genera a més de `FRONT_CAMERA_DUPLICATED_FACE` quan l'usuari aprovat es va verificar amb un nom diferent. `additional_data` afegeix `name_match_score`; mai no inclou el nom de l'altre usuari. | Segons **Duplicat de Silent Capture amb un nom diferent** (per defecte Revisió, `warning`) |
| `FRONT_CAMERA_DUPLICATED_FACE_DOCUMENT_MISMATCH` | El selfie de captura de document coincideix amb un usuari amb una data de naixement diferent | Es genera a més de `FRONT_CAMERA_DUPLICATED_FACE` quan el document d'identitat de l'usuari aprovat mostra una data de naixement diferent. No s'assenyala un document diferent de la mateixa persona (per exemple, un passaport després d'un document d'identitat), un document renovat o el mateix número de document del mateix país. `additional_data` afegeix `mismatch_dimensions`, mai les dades del document de l'altre usuari. | Segons **Duplicat de Silent Capture amb una data de naixement diferent** (per defecte Revisió, `warning`) |
| `FRONT_CAMERA_CAPTURED_DOCUMENT` | La càmera frontal ha capturat un document d'identitat en lloc de l'usuari | El fotograma de la càmera frontal pres mentre s'escanejava el document mostra un document d'identitat (per exemple, una targeta col·locada davant la càmera) i cap persona. La coincidència del selfie de captura de document no es calcula per a aquest fotograma. | Sempre **Revisió** |

### Prova de vida del document (manipulació)

Basat en llindars per tipus de frau en els fluxos de treball. A l'API OCR autònoma, aquests tres riscos provoquen un rebuig incondicional, i un control sol·licitat que no produeix cap puntuació utilitzable retorna `In Review` en lloc d'aprovar.

Les puntuacions mateixes es troben a cada informe V3 com a [`document_liveness`](https://docs.didit.me/ca/core-technology/id-verification/report-id-verification#puntuacions-de-prova-de-vida-del-document), inclòs quan no s'ha activat cap advertència, de manera que un document aprovat encara es pot auditar.

| Risc | Descripció breu | Causa | Gravetat |
| - | - | - | - |
| `SCREEN_CAPTURE_DETECTED` | Captura de pantalla del document detectada | El document s'ha capturat des d'una pantalla en lloc d'un document físic. | `error` per sota del llindar de rebuig, `warning` per sota del llindar de revisió, altrament `information` |
| `PRINTED_COPY_DETECTED` | Còpia impresa del document detectada | El document sembla ser una còpia impresa en lloc de l'original. | Mateixos llindars de tres nivells |
| `PORTRAIT_MANIPULATION_DETECTED` | Manipulació del retrat detectada | La regió del retrat sembla haver estat substituïda o alterada. | Mateixos llindars de tres nivells |
| `DOCUMENT_LIVENESS_NOT_COMPUTED` | No s'ha pogut calcular el control de prova de vida del document | El control sol·licitat de prova de vida del document (falsificació) no ha retornat cap puntuació utilitzable —el proveïdor ha fallat, ha respost amb un codi diferent de 200 o ha respost HTTP 200 amb `status="ERR"`—, de manera que el document mai no es va analitzar per comprovar si hi havia una substitució del retrat, una còpia impresa o una reproducció en pantalla. La manca de puntuació no és una prova d'un document autèntic. Només per a l'API OCR autònoma. | `warning` + `In Review` (no configurable; mai no anul·la un `Declined`) |

### Integritat del canal de captura

| Risc | Descripció breu | Causa | Configurable mitjançant | Per defecte |
| - | - | - | - | - |
| `INJECTION_ATTACK_DETECTED` | Atac d'injecció detectat | La captura s'ha injectat en lloc de ser capturada per la càmera del propi dispositiu: una càmera virtual de programari que pot reproduir qualsevol vídeo, un flux de càmera generat per la pàgina o per automatització del navegador, una càmera intervinguda o una eina d'instrumentació connectada a l'aplicació ha proporcionat els fotogrames. `additional_data.reasons` enumera només els motius que ho demostren, i `source` és `capture_integrity`. S'aplica a la captura del document i al selfie pres per a una consulta d'identitat. | `id_verification_injection_attack_action` | **Rebutjar** |

El `log_type` reflecteix l'acció configurada: `error` per a Rebutjar, `warning` per a Revisar, `information` per a Cap acció.
Acció recomanada: tracta una sessió rebutjada com una captura injectada i demana a la persona que ho torni a intentar en un dispositiu físic amb la seva càmera integrada.
Els senyals que pot produir una persona real mai activen `INJECTION_ATTACK_DETECTED` i romanen informatius.
Les aplicacions que retransmeten una càmera real, com ara un telèfon utilitzat com a càmera web o una capa d'efectes sobre una càmera web real, no es reporten com a atacs d'injecció.
Això és la detecció d'atacs d'injecció, que és independent de la detecció d'atacs de presentació (un element fals presentat davant d'una càmera real).

### Imatges de documents públiques conegudes

| Risc | Descripció breu | Causa | Gravetat |
| - | - | - | - |
| `PUBLIC_DOCUMENT_IMAGE_DETECTED` | S'ha detectat una imatge de document pública coneguda d'internet | La imatge del document enviada coincideix amb una imatge coneguda disponible públicament a internet (per exemple, un espècimen, una foto de premsa o de banc d'imatges d'un document), de manera que no pot ser una foto del document físic propi de l'usuari. La concordança utilitza empremtes digitals exactes i perceptuals (pHash/dHash) contra el corpus d'imatges de documents públiques conegudes de Didit; `additional_data` inclou `match_type` (`exact` o `perceptual`), `source`, `source_url` i una `similarity_score` (0-100). | Fixa - Revisar en fluxos de treball; **rebuig automàtic** a l'API autònoma `/id-verification` |

### Discrepàncies amb les dades esperades

Quan passes `expected_details` a una sessió, Didit genera una advertència de discrepància per cada camp que no coincideixi. Un grup (`expected_details_mismatch_action`, amb Revisar per defecte) controla l'encaminament de totes aquestes:

| Risc | Descripció breu | Causa |
| - | - | - |
| `FULL_NAME_MISMATCH_WITH_PROVIDED` | Discrepància del nom complet amb la informació proporcionada | La puntuació del nom proporcionat se situa per sota del llindar de coincidència de noms respecte al document. |
| `DOB_MISMATCH_WITH_PROVIDED` | Discrepància de la data de naixement amb la informació proporcionada | La data de naixement proporcionada no coincideix. |
| `GENDER_MISMATCH_WITH_PROVIDED` | Discrepància de gènere amb la informació proporcionada | El gènere proporcionat no coincideix. |
| `COUNTRY_MISMATCH_WITH_PROVIDED` | Discrepància de país amb la informació proporcionada | El país proporcionat no coincideix amb `issuing_state`. |
| `NATIONALITY_MISMATCH_WITH_PROVIDED` | Discrepància de nacionalitat amb la informació proporcionada | La nacionalitat proporcionada no coincideix. |
| `IDENTIFICATION_NUMBER_MISMATCH_WITH_PROVIDED` | Discrepància del número d'identificació amb la informació proporcionada | El número d'identificació proporcionat no coincideix amb el número de document, el número personal o el número d'identificació fiscal. |

Cada advertència de discrepància inclou els valors esperats i els extrets a `additional_data`.

### Edat

| Risc | Descripció breu | Causa | Gravetat |
| - | - | - | - |
| `MINIMUM_AGE_NOT_MET` | Edat mínima no assolida | El titular està per sota de l'edat mínima configurada (global o per país/estat). `additional_data` inclou `min_age_allowed` i `user_age`. | Configurable — Edat mínima, per defecte Rebutjar (`error`); rebuig incondicional a l'API d'OCR autònoma |
| `MAXIMUM_AGE_EXCEEDED` | Edat màxima superada | El titular supera l'edat màxima configurada. `additional_data` inclou `max_age_allowed` i `user_age`. | Configurable — Edat màxima, per defecte Rebutjar (`error`) |
| `AGE_NOT_DETECTED` | Edat no detectada | Fluxos de treball adaptatius de verificació d'edat: no s'ha pogut extreure l'edat del document. | `error` — **rebuig automàtic** |
| `AGE_BELOW_MINIMUM` | Edat per sota del mínim | Fluxos de treball adaptatius de verificació d'edat: l'edat extreta està per sota del mínim. | `error` — **rebuig automàtic** |

### Adreça

| Risc | Descripció breu | Causa | Gravetat |
| - | - | - | - |
| `UNPARSED_ADDRESS` | No es pot determinar la ubicació de l'adreça | El document defineix un camp d'adreça, però l'adreça extreta no s'ha pogut processar o geolocalitzar. | Configurable — Adreça no processada, per defecte informació |

## Coincidències de documents entre sessions

A més de les advertències anteriors, l'informe de verificació d'identitat V3 inclou una matriu `matches[]` — fins a 5 altres documents a la teva aplicació amb la mateixa data de naixement, el mateix país emissor i un nom complet altament similar (els documents a la llista de bloqueig requereixen a més una coincidència exacta del número de document), excloent les sessions que pertanyen al mateix usuari. Els documents afegits a la teva llista de bloqueig apareixen amb `is_blocklisted: true`. Els documents de la teva llista d'autorització continuen apareixent a les coincidències, però s'omet l'acció corresponent per als usuaris duplicats.

Cada coincidència inclou `session_id`, `session_number`, `vendor_data`, `verification_date`, `user_details` (`name`, `document_type`, `document_number`), `status`, `is_blocklisted`, `api_service` i una `front_image_url` signada.

## Exemples

### Advertència configurable amb l'encaminament per defecte (informació)

```json theme={null}
"warnings": [
  {
    "feature": "ID_VERIFICATION",
    "risk": "QR_NOT_DETECTED",
    "additional_data": null,
    "log_type": "information",
    "short_description": "QR not detected",
    "long_description": "The system couldn't find or read the QR code on the document. This could be due to poor image quality or an unsupported document type.",
    "node_id": "id_primary"
  }
]
```

### Rebuig automàtic per document caducat

```json theme={null}
"warnings": [
  {
    "feature": "ID_VERIFICATION",
    "risk": "DOCUMENT_EXPIRED",
    "additional_data": null,
    "log_type": "error",
    "short_description": "Document expired",
    "long_description": "The document's expiration date has passed, rendering it no longer valid for use.",
    "node_id": "id_primary"
  }
]
```

### Discrepància amb les dades esperades amb payload

```json theme={null}
"warnings": [
  {
    "feature": "ID_VERIFICATION",
    "risk": "DOB_MISMATCH_WITH_PROVIDED",
    "additional_data": {
      "expected_dob": "1990-01-01",
      "extracted_dob": "1991-03-15"
    },
    "log_type": "warning",
    "short_description": "Date of birth mismatch with provided information",
    "long_description": "The provided date of birth in `expected_details` doesn't match the date extracted from the document.",
    "node_id": "id_primary"
  }
]
```

## Tipus d'advertència

A cada risc se li assigna una gravetat basada en la configuració de la teva aplicació. Les tres gravetats són:

## Relacionat

* [Informe de verificació d'identitat](https://docs.didit.me/ca/core-technology/id-verification/report-id-verification.md) — esquema complet de l'informe i estats.
* [Monitoratge de documents](https://docs.didit.me/ca/core-technology/id-verification/document-monitoring-id-verification.md) — com detecta Didit les manipulacions i els duplicats entre sessions.
* [Webhooks](https://docs.didit.me/ca/integration/webhooks.md) — `session.status.updated` transmet les advertències tan bon punt finalitza el pas d'identitat.
* [Models de dades — Verificació d'identitat](https://docs.didit.me/ca/reference/data-models.md#verificació-d’identitat) — esquema canònic camp per camp.
* [Models de dades — Objecte d'advertència](https://docs.didit.me/ca/reference/data-models.md#objecte-d’advertència) — estructura de cada entrada de `warnings[]`.


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