> ## 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.

# Informe de Document AI: camps extrets

> Referència de Document AI de Didit: endpoint de càrrega, JSON de camps extrets per document, estats i l'entrada de decisió a features[].

## Visió general

Document AI admet fins a 3 documents per pas (PDF o imatge — PDF, JPG, JPEG, PNG, TIFF, WebP). Cada document es classifica segons la seva `document_key` configurada, el llegeix un model de llenguatge i visió mitjançant un esquema creat a partir de les teves definicions de camps, i se sotmet a una anàlisi forense de PDF/EXIF. Per a cada document, emmagatzema:

* Els **camps extrets**: un mapa indexat per la teva `key` de camp configurada, amb valors tipats tal com els has declarat (`text` → string, `number` → number, `date` → `YYYY-MM-DD`). Els camps que no s'han pogut llegir són `null`.
* **Codis QR i codis de barres detectats**: payloads descodificats i coordenades en píxels per a cada pàgina renderitzada. Un codi QR que es pot localitzar però no descodificar es retorna igualment amb `parsed_payload: null`.
* L'**estat del document**: `Approved`, `In Review`, `Declined` o `Not Finished`.
* **Metadades del document**: anàlisi forense de fitxers, inclosa qualsevol evidència de superposició o manipulació.
* **Resultats de comprovació creuada**: el resultat de la coincidència del nom amb la identitat verificada i de qualsevol referència creuada de camps personalitzats.

## Pujar documents

Els documents es pugen d'un en un a l'endpoint de Document AI. En una sessió allotjada o en un flux d'SDK, això es gestiona automàticament; el contracte és:

```text theme={null}
POST https://verification.didit.me/v3/document-ai/documents/
multipart/form-data — Session-Token: <session token>
```

| Camp | Obligatori | Descripció |
| - | - | - |
| `document_key` | sí | El document configurat que aquest fitxer compleix |
| `document` | sí | El fitxer que es puja |
| `locale` | no | Configuració regional utilitzada per resoldre el títol/descripció en pantalla |

La resposta fa avançar el flux:

```json theme={null}
{
  "valid": true,
  "next_step": "DOCUMENT_AI",
  "document_ai_status": "In Progress",
  "uploaded_document_keys": ["proof_of_funds"],
  "required_document_keys": ["proof_of_funds", "payslip"]
}
```

El pas es completa (`next_step` passa més enllà de `DOCUMENT_AI`) una vegada que cada entrada de `required_document_keys` apareix a `uploaded_document_keys` i no queda cap document sense finalitzar.

## On apareix a les respostes de l'API

`GET /v3/session/{sessionId}/decision/` mostra Document AI en dos llocs, tant per a sessions de Verificació d'usuaris (KYC) com de Verificació d'empreses (KYB) — l'array `document_ai_documents[]` i l'informe PDF són idèntics independentment de `session_kind`:

* **`features[]`**: una entrada de resum per node de Document AI, utilitzada per enumerar quines funcionalitats s'han executat:

  ```json theme={null}
  { "features": [ { "feature": "DOCUMENT_AI", "node_id": "feature_document_ai_1" } ] }
  ```

* **`document_ai_documents[]`**: el resultat complet, un grup per node de Document AI. Cada grup inclou l'`status` combinat del node, la llista d'`items` pujats i qualsevol `warnings`. Cada document pujat és un element amb els camps que has configurat (a `extracted_data`), els codis detectats (a `detected_codes`), el seu propi `status`, les definicions de camps, les dades forenses de `document_metadata` i el `cross_check_result`.

Els estats de cada document d'un node es combinen en l'estat del node utilitzant la precedència **Declined > In Review > Approved**.

## Exemple de decisió

Per a un document de **Comprovant de fons** configurat amb `account_holder` (text), `balance` (número), `currency` (text) i `statement_date` (data):

```json theme={null}
{
  "document_ai_documents": [
    {
      "node_id": "feature_document_ai_1",
      "status": "Approved",
      "items": [
        {
          "uuid": "5c1f0a2e-9b3d-4c7a-8f21-0a4e8e7d6c12",
          "document_key": "proof_of_funds",
          "status": "Approved",
          "original_filename": "statement.pdf",
          "extracted_data": {
            "account_holder": "Sophia Martinez",
            "balance": 18450.75,
            "currency": "EUR",
            "statement_date": "2026-05-31"
          },
          "detected_codes": [
            {
              "type": "QR_CODE",
              "page_number": 2,
              "position": [[124, 86], [306, 86], [306, 268], [124, 268]],
              "x": 124,
              "y": 86,
              "width": 182,
              "height": 182,
              "page_width": 1190,
              "page_height": 1684,
              "raw_payload": "SU5WLTIwMjYtMDA0Mg==",
              "parsed_payload": "INV-2026-0042"
            }
          ],
          "fields": [
            { "key": "account_holder", "name": "Account holder", "type": "text", "required": true },
            { "key": "balance", "name": "Balance", "type": "number", "required": false },
            { "key": "currency", "name": "Currency", "type": "text", "required": false },
            { "key": "statement_date", "name": "Statement date", "type": "date", "required": false }
          ],
          "document_metadata": { "is_tampered": false },
          "cross_check_result": null,
          "created_at": "2026-05-31T10:12:00Z"
        }
      ],
      "warnings": []
    }
  ]
}
```

`page_number` comença a 1. `position` conté el polígon detectat, mentre que `x`, `y`, `width` i `height` proporcionen el seu requadre delimitador. Totes les coordenades utilitzen l'espai de píxels de la pàgina renderitzada, les dimensions de la qual són `page_width` i `page_height`. `detected_codes` és un array buit quan no es troba cap codi compatible. Tracta un element amb `parsed_payload: null` només com a presència i ubicació, no com un valor descodificat.

Com que tots els camps es poden adreçar com a `document_ai.<field_key>`, pots controlar la ramificació i les [regles d'estat personalitzades](https://docs.didit.me/ca/core-technology/document-ai/warnings-document-ai.md) directament a partir dels valors de `extracted_data`, incloses les referències creuades amb altres passos com ara `kyc.full_name` o les respostes de qüestionaris.


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