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

# Esquema de resposta KYB: ref. del payload de decisió

> Payload de decisió KYB de Didit: registre, persones clau, titulars reals, documents, cribratge AML i camps comuns. Des de $2.00 per comprovació.

Aquesta pàgina documenta el payload complet que retorna [`GET /v3/session/{id}/decision/`](https://docs.didit.me/ca/sessions-api/retrieve-session) per a una sessió de Verificació d'empreses (KYB). L'endpoint és unificat: quan passes un `session_id` d'empresa, la resposta conté `session_kind: "business"` i les matrius de funcionalitats específiques d'empresa que es descriuen a continuació.

## Estructura de primer nivell

```json theme={null}
{
  "session_id": "bs_01H...",
  "session_kind": "business",
  "session_number": 89,
  "session_url": "https://verify.didit.me/...",
  "status": "Approved",
  "status_override": null,
  "workflow_id": "wf_kyb_standard",
  "features": ["KYB_REGISTRY", "AML", "KYB_DOCUMENTS", "KYB_KEY_PEOPLE"],
  "vendor_data": "biz-acme-001",
  "metadata": { },
  "callback": null,

  "registry_checks": [ ... ],
  "aml_screenings": [ ... ],
  "document_verifications": [ ... ],
  "key_people_checks": [ ... ],

  "phone_verifications": null,
  "email_verifications": null,
  "questionnaire_responses": null,
  "ip_analyses": null,

  "reviews": [ ],
  "decision_trace": { ... },
  "linked_records": null,
  "contact_details": { ... },
  "expected_details": null,
  "created_at": "...",
  "expires_at": "..."
}
```

Totes les matrius de funcionalitats admeten diverses instàncies: cada element representa un node d'un flux de treball en graf. Null vol dir que la funcionalitat no estava present en el flux de treball d'aquesta sessió.

## Camps compartits de primer nivell

| Camp | Tipus | Descripció |
| - | - | - |
| `session_id` | UUID | Identificador únic de la sessió |
| `session_kind` | enum | Sempre `"business"` per a sessions KYB |
| `session_number` | int | Número seqüencial dins de l'aplicació |
| `session_url` | URL | Enllaç de verificació allotjat |
| `status` | enum | Estat general de la sessió (vegeu [estats](https://docs.didit.me/ca/business-verification/statuses.md)) |
| `status_override` | objecte o null | `{ overridden_at, automatic_status }` quan un revisor ha establert `status` manualment, en contra del que la plataforma hauria establert (per exemple, aprovar una empresa mentre una verificació de persones clau enllaçada està rebutjada). `null` quan l'estat és l'automàtic. Serveix per distingir una aprovació manual d'una d'automàtica |
| `decision_trace` | objecte | Com s'ha arribat a la decisió: `status`, `decided_by` (`manual`, `automatic` o `investigator`), `decided_at`, `automatic_status`, `terminal_node_id`, `actor`, `warning_counts` i `status_warnings` (les advertències que han establert l'estat) |
| `linked_records` | objecte o null | Un resum d'altres registres enllaçats amb la sessió. `null` quan no hi ha res per mostrar |
| `workflow_id` | UUID | Flux de treball que va dirigir aquesta sessió |
| `features` | array de cadenes | Identificadors de funcionalitat que va executar el flux de treball (p. ex. `KYB_REGISTRY`, `AML`, `KYB_DOCUMENTS`, `KYB_KEY_PEOPLE`, `PHONE`, `EMAIL`) |
| `vendor_data` | string | El teu identificador de l'empresa |
| `metadata` | objecte | JSON de format lliure que vas adjuntar en crear la sessió |
| `callback` | URL o null | URL de redirecció opcional posterior a la verificació |
| `contact_details` | objecte o null | `{ email, email_lang, send_notification_emails, phone }`: s'estableix quan el flux inclou notificacions per correu electrònic o telèfon |
| `expected_details` | objecte o null | Payload de dades esperades de l'empresa que vas passar en crear la sessió: `company_name`, `registry_country` (`XX` o `XX-YY` amb l'estat per als registres de nivell estatal, p. ex. `US-CA`), `registration_number` |
| `reviews` | array | Notes més recents del revisor sobre la sessió |
| `created_at`, `expires_at` | marques de temps ISO | — |

## `registry_checks[]`

Cada element és una verificació d'un registre mercantil (normalment una per sessió; diverses en fluxos de treball basats en grafs amb KYB corporatiu recursiu d'UBO).

```json theme={null}
{
  "status": "Approved",
  "node_id": "feature_kyb_registry",
  "data_resolved": true,
  "company": { ...see below... },
  "ownership_structure": { },
  "warnings": []
}
```

| Camp | Descripció |
| - | - |
| `status` | Estat del cicle de vida de la funcionalitat (`Approved`, `Declined`, `In Review`, `Not Finished`, `Resub Requested`) |
| `node_id` | Identificador del node del graf per a aquesta verificació |
| `data_resolved` | `true` quan les dades del registre ja s'han carregat o quan l'usuari les ha proporcionat manualment |
| `company` | Payload complet del registre: consulteu el **bloc `company`** més avall |
| `ownership_structure` | La taula de titularitat que el registre ha acreditat quan es va lliurar el nivell de titularitat: `shareholders[]` i `beneficial_owners[]`, cadascun amb la mateixa identitat de registre i la mateixa participació que `company.beneficial_owners[]` (`name`, `entity_type`, `roles`, `ownership_min_shares` / `ownership_max_shares`, ...) i el seu `shareholding` canònic. `null` quan el registre no ha acreditat cap titularitat. Per al registre vigent, llegiu `company.beneficial_owners` i `company.ownership` |
| `warnings` | Advertències estructurades i entrades de registre d'aquesta verificació. Consulteu [advertències de verificació d'empreses (KYB)](https://docs.didit.me/ca/business-verification/warnings.md). |

### Bloc `company`

L'objecte niat d'empresa és la vista completa de l'entitat jurídica tal com es deriva del registre (i, opcionalment, editada per l'usuari):

```json theme={null}
{
  "uuid": "...",
  "node_id": "feature_kyb_registry",
  "status": "Approved",
  "registry_status": "active",
  "data_resolved": true,
  "company_name": "Acme Corporation Limited",
  "registration_number": "12345678",
  "country_code": "GBR",
  "company_type": "Private Limited",
  "incorporation_date": "2010-05-14",
  "registered_address": "1 Main Street, London EC1A 1AA, United Kingdom",
  "tax_number": "SAMPLE-TAX-12345",
  "risk_level": null,
  "verification_status": "verified",
  "is_from_registry": true,
  "fetch_status": "resolved",
  "alternative_names": "Acme Ltd",
  "nature_of_business": "Software publishing",
  "registered_capital": "100000 GBP",
  "website": "https://acme.example",
  "email": "alex.sample@example.com",
  "phone": "+15550101000",
  "legal_entity_identifier": "529900XXXXXXXXXXXXX",
  "location_of_registration": "London",
  "vat_number": "GB980780684",
  "vat_validation_status": "format_valid",
  "vat_validated_number": "GB980780684",
  "vat_validation_source": "format_rules",
  "vat_validated_name": null,
  "vat_validated_address": null,
  "vat_checked_at": "2026-04-16T10:10:00Z",
  "financial_summary": { },
  "officers": [ ... ],
  "beneficial_owners": [ ... ],
  "addresses": [
    {
      "type": "registered",
      "address": "1 Main Street, London EC1A 1AA, United Kingdom",
      "street": "1 Main Street",
      "city": "London",
      "postal_code": "EC1A 1AA",
      "region": null,
      "country_code": "GB",
      "description": null
    }
  ],
  "industries": [
    { "code": "58290", "description": "Other software publishing", "scheme": "UK SIC 2007", "is_primary": true }
  ],
  "accounts": { ... },
  "ownership": {
    "status": "delivered",
    "tier_requested": "ubo",
    "tier_delivered": "ubo",
    "unavailable_reason": null,
    "direct_ownership_complete": true,
    "unresolved": []
  },
  "registry_tier": "ubo",
  "registry_tier_delivered": "ubo",
  "registry_ownership_status": "delivered",
  "registry_monitoring": null,
  "registry_data": { },
  "user_provided_data": { },
  "confirmed_by_user_at": "2026-04-16T10:10:00Z",
  "last_console_edit_at": null,
  "is_editable": false
}
```

| Camp | Descripció |
| - | - |
| `registry_status` | Estat informat pel proveïdor (`active`, `dissolved`, `struck_off`, `inactive`, etc.). Consulteu els [estats](https://docs.didit.me/ca/business-verification/statuses.md#estat-del-registre-del-proveïdor) |
| `is_from_registry` | `true` quan les dades provenen d'un registre oficial; `false` per a introducció manual |
| `fetch_status` | `pending`, `resolved` o `failed`: estat de la consulta al registre |
| `verification_status` | `verified`, `failed` o `unknown` |
| `risk_level` | Valor opcional que es transmet des de la font del registre. Normalment `null`: Didit no calcula un nivell de risc, així que useu `warnings[]` i l'`status` de la sessió per decidir |
| `registry_monitoring` | El monitoratge del registre més recent de l'empresa, o `null` si no n'hi ha cap. Només s'omple quan el [monitoratge de registre](https://docs.didit.me/ca/business-verification/ownership.md#monitoratge-d’accionistes-i-ubo) està disponible. Camps: `uuid`, `status`, `unavailable_reason`, `enrolled_at`, `cancelled_at`, `last_bill_date`, `next_bill_date`, `last_event_at`, `events_count`, `watched_fields` |
| `is_editable` | `true` mentre l'usuari final pugui encara editar les dades procedents del registre |
| `registry_data` | El detall normalitzat del registre de Didit: el resultat de la titularitat (`ownership_error`, `section_errors`, `ubo_resolution`), les correccions fetes amb [update-data](https://docs.didit.me/ca/sessions-api/update-data.md) i dades del registre que no tenen camp propi. Mai conté el registre original de la font. Les seves claus varien segons l'empresa i no és un contracte estable: llegiu els camps canònics |
| `user_provided_data` | Els camps que l'usuari final ha introduït o editat (útil per comparar-los amb els valors del registre en una auditoria) |
| `confirmed_by_user_at` | Marca de temps en què l'usuari final ha confirmat o editat les dades del registre |
| `vat_number` | Número d'IVA tal com s'ha enviat, quan s'ha recollit |
| `vat_validation_status` | Resultat de validar el número d'IVA o, si no n'hi ha, el `tax_number`: `valid`, `invalid`, `format_valid`, `invalid_format`, `could_not_validate` o `not_applicable`. Consulteu [validació d'IVA i identificador fiscal](https://docs.didit.me/ca/business-verification/company-data.md#validació-de-l’iva-i-del-identificador-fiscal) |
| `vat_validated_number` / `vat_validation_source` | El número que s'ha verificat, tal com el coneix la font, i la font que ha decidit l'estat (un registre oficial o `format_rules`) |
| `vat_validated_name` / `vat_validated_address` | Nom i adreça registrats a la font, quan la font els revela |
| `vat_checked_at` | Marca de temps de la verificació; `null` quan no s'ha fet cap verificació |
| `officers[]` | Càrrecs amb enriquiment KYC incrustat (consulteu més avall) |
| `beneficial_owners[]` | UBO amb enriquiment KYC incrustat (consulteu més avall) |
| `addresses[]` | Totes les adreces que indica el registre, en la forma canònica d'adreça que hi ha més avall. `null` quan no n'indica cap |
| `industries[]` | Les activitats en què el registre classifica l'empresa, en la forma canònica d'indústria que hi ha més avall. `null` quan no n'indica cap |
| `accounts` | Dates de presentació de documents corporatius quan es informen: `last_annual_return_date` i `last_agm_date`. Descriuen presentacions i juntes, no estats financers |
| `ownership` | El resultat del nivell de titularitat (accionistes / UBO), en la forma canònica que hi ha més avall |
| `registry_tier` / `registry_tier_delivered` / `registry_ownership_status` | El nivell sol·licitat, el nivell lliurat (i facturat) i el resultat de la titularitat. Els mateixos valors apareixen a `ownership` |

### Un sol format per a cada país i font de registre

Didit consulta registres mercantils de molts països a través de diverses fonts de registre.
Cada font publica el seu propi format, però el bloc `company` sempre té la mateixa forma: les claus següents sempre hi són, amb els mateixos tipus, independentment del país i de la font d'on prové l'empresa.
Un fet que el registre no publica és `null`; no cal que distingiu per país ni que analitzeu `registry_data`.
La mateixa forma es retorna a la [decisió](https://docs.didit.me/ca/sessions-api/retrieve-session.md), als endpoints independents de [registre KYB](https://docs.didit.me/ca/standalone-apis/kyb-registry-ubo.md) i al flux de verificació allotjat.

**Adreça** (cada element de `addresses`)

| Camp | Descripció |
| - | - |
| `type` | En minúscules. `registered` per al domicili social; altres tipus tal com els anomena el registre (per exemple `postal` o `office`). `null` quan el registre no indica quin tipus d'adreça és |
| `address` | L'adreça completa en una sola línia. Sempre present |
| `street`, `city`, `postal_code`, `region` | L'adreça desglossada en parts, quan el registre les publica |
| `country_code` | ISO 3166-1 alfa-2 |
| `description` | L'etiqueta pròpia del registre per a l'adreça, quan en dona una |

**Indústria** (cada element de `industries`)

| Camp | Descripció |
| - | - |
| `code` | Codi d'activitat tal com l'imprimeix el registre |
| `description` | Etiqueta de l'activitat, quan el registre en publica una |
| `scheme` | Sistema de classificació, amb un sol nom per sistema independentment de la font que l'hagi informat (`UK SIC 2007`, `US SIC`, `NACE Rev. 2`, `NACE Rev. 2.1`, `NAF Rev. 2`, `CNAE`, `SBI`, `NOGA 2008`, `CAE Rev. 4`, `Canada SIC 1977`). Els altres sistemes nacionals conserven el nom que els dona el registre; `null` quan el registre no n'indica el nom |
| `is_primary` | `true` per a l'activitat principal. Exactament una entrada és la principal |

Quan el registre indica activitats però cap descripció de l'empresa, `nature_of_business` s'omple amb les etiquetes de les activitats.
Les dades de contacte i els noms alternatius s'omplen quan hi són disponibles, mentre que les edicions explícites de l'usuari o del revisor sempre tenen prioritat.

**Titularitat** (`ownership`)

| Camp | Descripció |
| - | - |
| `status` | `delivered`; `not_held` quan el registre de titularitat ha respost i no inclou aquesta empresa, de manera que no hi ha cap registre de titularitat per proporcionar; `unavailable` quan les dades no s'han proporcionat per cap altre motiu (un registre que no indica cap titular, una secció de titularitat que no s'ha retornat o un proveïdor a qui no s'ha pogut consultar); `pending` mentre el registre encara està obtenint la secció de titularitat; `not_requested` al nivell Basic |
| `tier_requested` / `tier_delivered` | `basic`, `shareholders` o `ubo`. Una sol·licitud UBO que només rep una resposta amb accionistes directes es lliura, i es factura, com a `shareholders` |
| `unavailable_reason` | Per què no s'ha lliurat un nivell de titularitat sol·licitat: `no_owners_on_record`, `no_natural_person_owner`, `ownership_section_unavailable`, `company_not_found`, `ambiguous_company_match`, `missing_registration_number`, `entity_type_not_covered`, `provider_unavailable` o `other`. `null` quan la titularitat s'ha lliurat |
| `direct_ownership_complete` | `true` quan les participacions indicades dels accionistes directes sumen el 100% (amb un marge d'un punt percentual per l'arrodoniment), `false` quan no hi sumen, `null` quan la titularitat no s'ha lliurat o quan alguna participació no està indicada |
| `unresolved[]` | Parts de la cadena de titularitat que el registre no ha pogut resoldre, com a `{ reason, section }` (per exemple, `no_group_structure_on_record` per a `group_structure`: els propietaris directes es coneixen, però el grup empresarial que hi ha per sobre no consta al registre) |

**Detall del registre** (`registry_data`)

Detall propi de Didit sobre la comprovació al registre, mai el registre de la font registral.
Cada clau és opcional i només hi és quan l'empresa té un valor per a aquesta, i se'n poden afegir de noves: per a tot el que cobreixen els camps canònics anteriors, consulteu els camps canònics anteriors.

| Camp | Descripció |
| - | - |
| Dades del registre (`legal_address`, `registered_address`, `registration_date`, `dissolution_date`, `registry_status`, `verification_status`, `company_type`, i els altres camps que accepta [update-data](https://docs.didit.me/ca/sessions-api/update-data.md)) | Cadenes. Les correccions fetes amb update-data, i les dades que el registre indica i que no tenen camp propi (`registration_date`, `dissolution_date`) |
| `ownership_error` | Per què no s'ha lliurat un nivell de titularitat sol·licitat, amb els mateixos codis que `ownership.unavailable_reason` (`no_owners_on_record`, `ownership_section_unavailable`, `company_not_found`, `provider_unavailable`, `other`, ...) |
| `section_errors` | Seccions que el registre no ha retornat, indexades per secció (`officers`, `shareholders`, `group_structure`), cadascuna com a `{ status_code }` |
| `ubo_resolution` | Com s'ha recorregut la cadena per al nivell UBO: `parent_chain[]` i `subsidiaries[]` com a `{ name, country_code, registration_number }`, i `unresolved[]` com a `{ reason, section }` |
| `lite_enrichment` | Camps Lite buits que una altra de les fonts de registre del país ha omplert: `{ fields[], people_added }` |
| `registry_metadata`, `registry_sources[]`, `previous_names[]`, `parent_companies[]`, `documents_available` | Només per a registres antics: els camps propis del registre, els registres oficials consultats (`{ name, source_type }`, només s'hi indiquen els registres oficials), els noms anteriors, els noms de les empreses matrius i el nombre de documents presentats disponibles |

### Format de l'element d'administrador (dins de `company.officers`)

```json theme={null}
{
  "uuid": "...",
  "name": "Jane Doe",
  "first_name": "Jane",
  "last_name": "Doe",
  "date_of_birth": null,
  "date_of_birth_year": 1983,
  "date_of_birth_month": 2,
  "address": "1 Example Street, London",
  "appointment_date": "2024-07-01",
  "termination_date": null,
  "designation": "Director",
  "role": "director",
  "nationality": "USA",
  "is_active": true,
  "kyc_status": "Approved",
  "kyc_session_url": "https://verify.didit.me/..."
}
```

`date_of_birth` s'omple només quan el registre proporciona una data completa.
Si el registre només indica un any o un mes i un any, utilitzeu `date_of_birth_year` i `date_of_birth_month`; el dia que falta mai no es dedueix.
Els noms, les dades de naixement, l'adreça i les dates de nomenament continuen disponibles tant a la llista d'administradors de l'empresa com a la llista del registre de Persones clau.

### Format de l'element de titular real (dins de `company.beneficial_owners`)

```json theme={null}
{
  "uuid": "...",
  "name": "John Doe",
  "first_name": "John",
  "last_name": "Doe",
  "entity_type": "person",
  "date_of_birth": null,
  "country_of_birth": null,
  "email": null,
  "company_name": null,
  "registration_number": null,
  "nationality": null,
  "designation": null,
  "appointment_date": null,
  "voting_min_shares": null,
  "voting_max_shares": null,
  "roles": ["ubo"],
  "ownership_min_shares": "40",
  "ownership_max_shares": "40",
  "is_active": true,
  "kyc_status": "Pending",
  "kyc_session_url": "https://verify.didit.me/...",
  "effective_ownership_percent": 40.0,
  "shareholding": {
    "share_class": "Ordinary",
    "number_of_shares": 40,
    "currency": "GBP",
    "nominal_value": 1,
    "total_value": null,
    "percentage": 40
  }
}
```

`kyc_status` utilitza una projecció segura per a B2C: `Approved`, `Declined` o `Pending` (els estats complets de la sessió es converteixen en `Pending` fins que acaba el KYC).

`shareholding` indica què posseeix el titular, amb la mateixa forma per a tots els països i fonts de registre: `share_class`, `number_of_shares`, `currency`, `nominal_value`, `total_value` i `percentage` (la participació exacta, amb quatre decimals).
És `null` quan el registre no indica cap participació.
Una franja, com el 25-50% d'un PSC del Regne Unit, no és una participació: `percentage` és `null` i la franja es manté en `ownership_min_shares` / `ownership_max_shares`.
Els accionistes i els UBO apareixen tots dos a `beneficial_owners`; `roles` els distingeix.

## `key_people_checks[]`

Aquesta és la **verificació agregada** de tots els directius i UBO de la sessió. Exposa dos grups perquè la consola pugui mostrar, un al costat de l'altre, les dades «extretes del registre mercantil» i les «enviades per l'empresa», a més d'un resum KYC d'UBO d'alt nivell.

```json theme={null}
{
  "status": "Approved",
  "node_id": "feature_kyb_key_people",
  "registry": {
    "officers": [ ...registry-derived officers... ],
    "beneficial_owners": [ ...registry-derived UBOs... ]
  },
  "submitted": {
    "parties": [ ...user-submitted key-people records... ]
  },
  "ubo_kyc_summary": {
    "total": 2,
    "approved": 1,
    "flagged": 0,
    "pending": 1
  },
  "warnings": []
}
```

* **`registry.officers` / `registry.beneficial_owners`**: parts extretes de la verificació del registre mercantil.
* **`submitted.parties`**: parts que l'administrador de l'empresa ha afegit explícitament durant el flux de persones clau (registres amb `source = "USER"`).

### `registry.officers[]` / `registry.beneficial_owners[]`

Les dades del registre coincideixen amb `company.officers` / `company.beneficial_owners` més amunt.
La verificació de persones clau també inclou l'estat AML i l'enllaç de verificació detallat, com ara `kyc_session_id` i els camps del flux de verificació.
Les llistes de l'empresa mantenen l'estat KYC simplificat i l'URL de verificació que ja tenen.

### `submitted.parties[]`

Les parts enviades per l'usuari porten el seu enllaç KYC o KYB fill:

```json theme={null}
{
  "uuid": "...",
  "entity_type": "person",
  "name": "Alice Chen",
  "first_name": "John",
  "last_name": "Doe",
  "email": "alex.sample@example.com",
  "role": "ubo",
  "ownership_percent": 35.0,
  "nationality": "USA",
  "position": "CEO",
  "date_of_birth": "1990-01-01",
  "phone_number": "+34612345678",
  "source": "USER",
  "requires_verification": true,
  "is_skipped": false,
  "kyc_session_id": "sess-xyz...",
  "kyc_session_status": "Not Started",
  "kyc_session_url": "https://verify.didit.me/...",
  "kyc_session_deleted": false,
  "custom_fields": { }
}
```

Les parts corporatives (`entity_type: "company"`) porten a més `company_name`, `registration_number` i `kyb_sub_session_id` / `kyb_sub_session_status` / `kyb_sub_session_deleted` quan el KYB niat està habilitat per als UBO corporatius.

`kyc_session_deleted` (i el seu equivalent corporatiu `kyb_sub_session_deleted`) és `true` quan s'ha eliminat la sessió filla de la part. Una sessió filla eliminada conserva l'estat que tenia en el moment de l'eliminació i no pot arribar mai a un estat final, per això llegeix aquest indicador en lloc de l'estat: el `*_session_url` corresponent es retorna com a `null` perquè l'enllaç ja no es resol, i la verificació de persones clau passa a `In Review` en lloc d'esperar indefinidament. Eliminar una sessió filla no compta mai com a aprovada. Eximeix la part amb [`PATCH /v3/session/{id}/kyb/parties/{party_uuid}/`](https://docs.didit.me/ca/sessions-api/update-data#omet-una-part-de-key-people) perquè el KYB es pugui resoldre.

### `ubo_kyc_summary`

Progrés agregat del KYC dels UBO, útil per a una sola targeta del tauler:

| Camp | Significat |
| - | - |
| `total` | Nombre d'UBO actius amb una sessió KYC vinculada |
| `approved` | UBO amb la sessió KYC en estat `Approved` |
| `flagged` | UBO amb la sessió KYC en estat `Declined` o `In Review` |
| `pending` | La resta (que encara no han acabat) |

Retorna `null` quan cap UBO té sessions KYC vinculades.

## `document_verifications[]`

Documents agrupats per node:

```json theme={null}
{
  "status": "Approved",
  "node_id": "feature_kyb_documents",
  "items": [
    {
      "uuid": "...",
      "document_type": "LEGAL_PRESENCE",
      "document_subtype": "CERTIFICATE_OF_INCORPORATION",
      "document_group": "LEGAL_PRESENCE",
      "status": "Approved",
      "file_url": "https://didit-storage.s3...",
      "document_metadata": {
        "file_size": 246810,
        "content_type": "application/pdf",
        "creation_date": "2024-05-15",
        "modified_date": "2024-05-15",
        "overlay_manipulation": null
      },
      "ocr_data": {
        "company_name": "Acme Corporation Limited",
        "registration_number": "12345678",
        "incorporation_date": "2010-05-14"
      }
    }
  ],
  "groups": {
    "LEGAL_PRESENCE": { "total": 1, "approved": 1, "pending": 0, "declined": 0, "in_review": 0, "other": 0, "missing": 0 },
    "OWNERSHIP_STRUCTURE": { "total": 1, "approved": 1, "pending": 0, "declined": 0, "in_review": 0, "other": 0, "missing": 0 }
  },
  "required_groups": ["LEGAL_PRESENCE", "OWNERSHIP_STRUCTURE"],
  "warnings": []
}
```

| Camp | Descripció |
| - | - |
| `items[]` | Files de documents individuals: cadascun té el seu `status`, `document_type` i `document_group` (el grup), `document_subtype`, `file_url` (signat), `document_metadata` i l'extracte OCR |
| `groups` | Comptadors de progrés per grup, indexats pel valor del grup (`LEGAL_PRESENCE`, `COMPANY_DETAILS`, `OWNERSHIP_STRUCTURE`, `REPRESENTATIVES_AUTHORIZATION`, més `OTHER` per als documents sense classificar). Cada grup conté `total`, `approved`, `pending`, `declined`, `in_review`, `other` i `missing`. Consulta els [grups de documents KYB](https://docs.didit.me/ca/business-verification/documents.md#grups-de-documents) |
| `required_groups` | Grups que el flux de treball ha marcat com a obligatoris; condiciona l'aprovació de la sessió al fet que tots estiguin satisfets |

### Metadades dels documents corporatius

Per als documents corporatius en PDF, `items[].document_metadata.overlay_manipulation` pot incloure evidència forense d'edició sospitosa de text superposat. Quan és present, inclou:

| Camp | Descripció |
| - | - |
| `analysis_incomplete` | Hi és i té el valor `true` només quan el fitxer no s'ha pogut comprovar completament. Allò que sí s'ha comprovat conserva les seves conclusions on sigui possible, i el document genera `KYB_DOCUMENT_UNPROVEN_TEXT_REPLACEMENT`. |
| `detected` | Indica si s'ha detectat evidència de manipulació de text superposat |
| `analyzed` | Indica si el PDF s'ha pogut analitzar |
| `signals` | Senyals forenses que s'han activat, com `duplicate_font_subset` o `glyph_fragmentation` |
| `manipulated_regions` | Rectangles en coordenades de pàgina del PDF que envolten el text sospitosament editat: `page`, `x`, `y`, `width`, `height`, `page_width`, `page_height` |

El camp és `null` quan no s'ha trobat evidència de manipulació de text superposat, quan el document no és un PDF o quan el PDF no s'ha pogut analitzar.

## `aml_screenings[]`

Cribratges AML a nivell d'empresa i (quan el flux de treball els connecta) a nivell de persona.

```json theme={null}
{
  "node_id": "feature_aml",
  "status": "Approved",
  "total_hits": 0,
  "score": 0,
  "entity_type": "COMPANY",
  "screened_data": {
    "company_name": "Acme Corporation Limited",
    "country_code": "GBR"
  },
  "is_ongoing_monitoring_enabled": true,
  "next_ongoing_monitoring_bill_date": "2027-04-16",
  "last_ongoing_screening_at": "2026-09-12T04:03:11Z",
  "last_ongoing_screening_datasets_updated_at": null,
  "hits": [],
  "warnings": []
}
```

Quan `total_hits > 0`, cada coincidència inclou la puntuació de coincidència, la puntuació de risc, les fonts de llistes de vigilància i un `review_status` per coincidència que pots actualitzar mitjançant l'endpoint update-aml-hit-status. Consulta l'[informe de Cribratge AML](https://docs.didit.me/ca/core-technology/aml-screening/report-aml-screening.md) per veure l'estructura de les coincidències.

## Matrius de funcionalitats compartides

`phone_verifications`, `email_verifications`, `questionnaire_responses` i `ip_analyses` usen les mateixes estructures per element que les sessions d'usuari (KYC). Són `null` quan el flux de treball no els inclou. Consulta la [resposta KYC](https://docs.didit.me/ca/sessions-api/retrieve-session.md) per a les estructures dels elements.

`signatures` hi és quan el flux de treball té un pas de [Signatura electrònica](https://docs.didit.me/ca/core-technology/electronic-signature/overview.md). Una sessió d'empresa té un element per cada persona clau que signa en nom de l'empresa, amb `signer.capacity: "company"`, el nom de l'empresa i els rols de la persona clau. Consulta l'[informe de signatura electrònica](https://docs.didit.me/ca/core-technology/electronic-signature/report-electronic-signature.md).

## Grups d'advertències per funcionalitat

Les advertències de Verificació d'empreses (KYB) s'agrupen per la funcionalitat que les ha generat:

* `KYB_REGISTRY` per a problemes de disponibilitat del registre, titularitat, activitat de l'empresa i restriccions per país.
* `KYB_DOCUMENTS` per a problemes d'extracció, verificació creuada i metadades, manipulació, subtipus, antiguitat i límit d'intents dels documents corporatius.
* `AML` per a coincidències del cribratge AML de l'empresa o per a dades de cribratge que falten.
* `KYB_KEY_PEOPLE` per a problemes a nivell de persona vinculats a administradors, directius, UBO o representants.
* `PHONE` per a problemes de risc del número de telèfon, duplicació, llista de bloqueig i intents del codi de verificació.
* `EMAIL` per a problemes de risc del correu electrònic, lliurabilitat, duplicació, llista de bloqueig i intents del codi de verificació.
* `QUESTIONNAIRE` per a regles d'estat personalitzades basades en les respostes del qüestionari.
* `LOCATION` per a l'Anàlisi de dispositiu i IP, problemes de xarxa privada, llista de bloqueig d'IP, llista de bloqueig de dispositius i dispositius o IP duplicats.
* `SIGNATURE` per a rebutjos de signatura electrònica, confirmacions de codi fallides, discrepàncies en el nom del signant, signants no verificats, documents modificats i dades que falten als camps. Consulta les [advertències de signatura electrònica](https://docs.didit.me/ca/core-technology/electronic-signature/warnings-electronic-signature.md).

Consulta les [advertències de Verificació d'empreses (KYB)](https://docs.didit.me/ca/business-verification/warnings.md) per veure la llista completa de codis d'advertència.

## Filtratge de camps segons el flux de treball

Els fluxos de treball poden limitar quins camps imbricats apareixen a cada element de funcionalitat mitjançant `response_attributes`. Els camps que sempre s'inclouen, independentment de la llista de camps permesos, són `status`, `warnings` i `node_id`. Tots els altres camps s'estableixen en null quan no són a la llista de camps permesos: la clau es manté a la resposta per garantir l'estabilitat de l'esquema.

## Següents passos

> [card] [Estats](https://docs.didit.me/ca/business-verification/statuses.md)
>
> Què significa cada valor d'estat.

> [card] [Avaluació de risc](https://docs.didit.me/ca/business-verification/risk-assessment.md)
>
> Què determina el resultat d'un KYB.

> [card] [Informe AML](https://docs.didit.me/ca/core-technology/aml-screening/report-aml-screening.md)
>
> Referència completa del payload de coincidències AML.

> [card] [Persones clau](https://docs.didit.me/ca/business-verification/key-people.md)
>
> Com les parts passen del registre o de l'enviament de l'usuari als grups `registry` i `submitted`.

> [card] [Documents](https://docs.didit.me/ca/business-verification/documents.md)
>
> Grups de documents, OCR i referències creuades.

> [card] [Recuperar sessió](https://docs.didit.me/ca/sessions-api/retrieve-session.md)
>
> Referència completa de l'endpoint, incloent-hi exemples de respostes.


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