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

# Respuestas por tipo de ítem

> Catálogo de la estructura de las respuestas por tipo de ítem.

### Respuestas por tipo de ítem

Este documento describe la estructura de respuesta del API para cada `item_type`. Úsalo para validar contratos y mapear las respuestas.

* Ver listado de tipos: [Tipos de Ítems](/docs/guia-devs/tipos-item)
* Cómo leer las respuestas: [Leer información vía API](/docs/guia-devs/leer)
* Estados y flujos: [Estados de verificación](/docs/guia-devs/estados-verificacion)

### Estructura base de un ítem en las respuestas

A nivel superior, todos los ítems comparten la misma estructura.

```json theme={"dark"}
{
  "id": 123,
  "item_order": 1,
  "item_status": "pending|needs-review|complete|error",
  "item_type": "<item_code>",
  "item_internal_status": "...",
  "item_error": "password_protected_pdf|get_input_file_info_failed",
  "item_value": {
    /* según el item_type */
  },
  "item_options": {
    "upload_url": "https://...",
    "item_type_guide": "...",
    "item_label": "...",
    "is_optional": false
  },
  "original_file_url": "https://..."
}
```

> Nota: `item_type` es el código del ítem (por ejemplo, `ac_mx`, `csf_mx`, `siger`, `ubos`). El campo `item_value` usa `snake_case` y su estructura depende del `item_type`.

**`item_error`**: Campo opcional que indica errores públicos relacionados con el procesamiento del ítem. Valores permitidos:

* `password_protected_pdf`: El PDF subido está protegido con contraseña y no puede ser procesado.
* `get_input_file_info_failed`: Falló la obtención de información del archivo de entrada.

### Índice rápido

* Widgets: `ubos`, `forms`
* Integraciones: `aml_validation`, `signatory_validation`
* Otros: `document`, `doc_classification`, `unknown`, `generic`, `error`

<Note>
  Para items de documentos y consultas públicas específicos de un caso de uso (KYB México, KYB Colombia, KYB Estados Unidos, KYB Todos los países, Hipotecas, Nómina), consulta la guía correspondiente en **Guías por caso de uso** en la barra lateral.
</Note>

### Widgets

<h4 id="ubos">
  `ubos` — Beneficiarios finales
</h4>

```json theme={"dark"}
{
  "item_type": "ubos",
  "item_value": {
    "ubos": {
      "data": [
        {
          "currency": "MXN",
          "id_number": "12345678",
          "id_type": "INE",
          "name": "Ana María López Rodríguez",
          "email": "ana.lopez@email.com",
          "type": "Accionista",
          "share_percentage": 25,
          "documents": [
            { "key": "documento-identidad.pdf", "bucket": "trebol-documents" }
          ],
          "upload_urls": [
            {
              "index": 0,
              "url": "https://s3.amazonaws.com/trebol-documents/documento-identidad.pdf"
            }
          ],
          "external_identities": {
            "curp": {
              "success": true,
              "message": "CURP validado exitosamente",
              "applicant_data": {
                "curp": "LORA800101MDFXXX01",
                "names": "Ana María",
                "gender": "M",
                "birth_date": "1980-01-01",
                "birth_entity": "Distrito Federal",
                "nationality": "Mexicana",
                "first_surname": "López",
                "second_surname": "Rodríguez",
                "evidentiary_document": "Acta de nacimiento"
              },
              "evidentiary_document_data": {
                "act_number": "123456",
                "registry_date": "1980-01-15",
                "register_entity": "Distrito Federal",
                "register_municipality": "Cuauhtémoc"
              },
              "curp_file": "https://curp.gob.mx/curp/consultaCurp.jsp"
            }
          },
          "shareholders": [
            /* estructura anidada de UBO */
          ],
          "aux": {}
        }
      ]
    }
  }
}
```

<h4 id="forms">
  `forms` — Formularios de onboarding
</h4>

```json theme={"dark"}
{
  "item_type": "forms",
  "item_value": {
    "account_id": "acc_123456789",
    "form_schema": {},
    "ui_schema": {},
    "form_values": {},
    "aux": {}
  }
}
```

### Integraciones

#### `aml_validation`

```json theme={"dark"}
{
  "item_type": "aml_validation",
  "item_value": {
    "validation_provider": "compliance_check",
    "validation_data": [
      /* AMLItemValidationData[] */
    ]
  }
}
```

#### `signatory_validation`

```json theme={"dark"}
{
  "item_type": "signatory_validation",
  "item_value": {
    "id_number": "1234567890123456",
    "id_type": "INE",
    "email": "firmante@empresa.com",
    "name": "Roberto Carlos Méndez Silva",
    "nationality": "Mexicana",
    "confirmation_date": "2024-01-01T00:00:00Z",
    "confirmation_ip_address": "192.168.1.100",
    "confirmation_check_boxes": {
      "data": [{ "text": "Acepto los términos y condiciones", "checked": true }]
    },
    "validation_date": "2024-01-01T00:00:00Z",
    "validation_result": "valid",
    "validation_name": "Roberto Carlos Méndez Silva",
    "validation_data": {
      "ocr": {
        "name": {
          "full_name": "Roberto Carlos Méndez Silva",
          "paternal_last_name": "Méndez",
          "maternal_last_name": "Silva"
        },
        "document_number": "1234567890123456"
      },
      "scores": { "overall": { "status": "passed", "value": 95 } }
    },
    "name_comparison_result": true
  }
}
```

### Otros

#### `document` — Extractor de documentos (genérico)

Este ítem agrupa distintos extractores de documentos bajo un mismo `item_type`. La forma de la respuesta es:

```json theme={"dark"}
{
  "item_type": "document",
  "item_value": {
    "type": "<document_type>",
    "payload": {
      /* estructura depende de <document_type> */
    }
  }
}
```

* "type": uno de los tipos soportados.
* "payload": objeto JSON con los datos extraídos. La estructura varía por tipo y corresponde a los esquemas JSON del AI Prompter.

Tipos soportados (`type`):

* `property_deed`
* `lien_certificate`
* `property_tax_receipt`
* `property_appraisal`
* `payroll_receipt`
* `camara_comercio_co_extractor`
* `trust_contract_fideicomiso_extractor`
* `union_documents_extractor`
* `designacion_responsable_cumplimiento_extractor`
* `registro_actividades_vulnerables_extractor`
* `irs_ein_assignment_letter_extractor`
* `certificate_of_incumbency_extractor`
* `certificate_of_incorporation_extractor`
* `fincen_msb_registration_extractor`
* `financial_statements_any`

Notas:

* La estructura exacta de `payload` depende del `type` y se define en los esquemas del AI Prompter.
* La respuesta pública expone `payload` ya "normalizado" como JSON plano según el esquema correspondiente.

##### Dónde encontrar la estructura de cada `type`

La estructura detallada de respuesta de cada `type` vive en la guía del caso de uso correspondiente:

* `trust_contract_fideicomiso_extractor`, `union_documents_extractor`, `financial_statements_any`: [KYB Todos los países](/docs/guia-devs/uso-kyb/todos-paises/items-documentos)
* `camara_comercio_co_extractor`: [KYB Colombia — Items de documentos](/docs/guia-devs/uso-kyb/colombia/items-documentos)
* `designacion_responsable_cumplimiento_extractor`, `registro_actividades_vulnerables_extractor`: [KYB México — Items de documentos](/docs/guia-devs/uso-kyb/mexico/items-documentos)
* `property_deed`, `lien_certificate`, `property_tax_receipt`, `property_appraisal`: [Hipotecas — Items](/docs/guia-devs/uso-hipotecas/items)
* `payroll_receipt`: [Nómina — Items](/docs/guia-devs/uso-nomina/items)
* `certificate_of_incorporation_extractor`, `certificate_of_incumbency_extractor`, `irs_ein_assignment_letter_extractor`, `fincen_msb_registration_extractor`: [KYB Estados Unidos — Items de documentos](/docs/guia-devs/uso-kyb/eeuu/items-documentos)
