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

# Agregar items a una verificación existente

> Agrega nuevos items/documentos a una verificación específica usando el id de la verificación.

**Flujo de trabajo:**
- **Paso 2 (Validación)**: Agregar items tipo `doc_validation` para validar documentos
- **Paso 5 (Extracción)**: Agregar items de extracción real (`ac_mx`, `csf_mx`, etc.) basados en resultados de validación




## OpenAPI

````yaml /api-reference/openapi.yaml put /verifications/{verification-id}/add-items
openapi: 3.0.0
info:
  title: Coleccion de API KYB MX
  description: >
    La Colección de API KYB MX proporciona puntos finales para crear y gestionar
    verificaciones de empresas en México. La verificación de empresas implica
    validar la información proporcionada por un cliente comercial, incluyendo
    documentos y fuentes de datos, para asegurar su legitimidad y precisión.


    Cada verificación de empresa puede incluir múltiples ítems, como Actas
    Constitutivas, Constancias de Situación Fiscal, Identificaciones Personales
    y Comprobantes de Domicilio. Trebol maneja automáticamente la clasificación
    de documentos, lo que te permite enviar todos los documentos requeridos como
    URLs descargables (por ejemplo, URLs prefirmadas de AWS o GCP).


    **Autenticación**: 

    La API utiliza una clave API para la autenticación, pasada en el encabezado
    `x-api-key`. Para obtener una clave API, por favor
    [contáctanos](mailto:sales@gotrebol.com).
  version: 1.0.0
servers:
  - url: https://api.gotrebol.com
  - url: http://{{trebol_api_base_url}}
security: []
tags:
  - name: Creacion de Verificacion
    description: Endpoints para crear nuevas verificaciones.
  - name: Leer información de la empresa
    description: >-
      Endpoints v2 para obtener información detallada de empresas y
      verificaciones.
  - name: Leer por Etiqueta
    description: >-
      Endpoints para obtener información detallada sobre empresas mediante
      etiquetas.
  - name: Leer por ID de Verificacion
    description: >-
      Endpoints para obtener información detallada sobre verificaciones mediante
      ID.
  - name: Gestión de IPs Permitidas
    description: >-
      Endpoints para gestionar la lista de IPs permitidas (whitelist) para la
      cuenta del cliente.
  - name: Gestión de API Keys
    description: Endpoints para crear, listar y eliminar API keys de la cuenta del usuario.
  - name: Gestion de item Ids
    description: Endpoints para gestionar items de verificaciones.
  - name: Invalidar un documento
    description: Endpoints para invalidar documentos de verificaciones.
  - name: Labels de Verificacion
    description: Endpoints para gestionar labels de verificaciones.
  - name: Actualizar personas clave de una verificacion
    description: Endpoints para actualizar personas clave de verificaciones.
  - name: Agregar items a una verificacion
    description: Endpoints para agregar items a verificaciones existentes.
  - name: Estado de validacion de documentos
    description: Endpoints para obtener el estado de validación de documentos.
  - name: Gestión de Flujos de Cuenta
    description: Endpoints para gestionar flujos de cuenta.
  - name: Gestión de Webhooks
    description: Endpoints para crear, listar, actualizar y eliminar webhooks de la cuenta.
  - name: Gestión de Política de Retención
    description: Endpoints para gestionar la política de retención de datos de la cuenta.
  - name: Exportación de Verificaciones
    description: >-
      Endpoints para exportar datos de verificaciones a documentos
      personalizados.
  - name: Leer información de la empresa v1
    description: >-
      Endpoints v1 (legacy) para obtener información detallada de empresas y
      verificaciones. Te recomendamos migrar a los endpoints v2.
  - name: Tipos de Ítem Personalizados
    description: >-
      Endpoints para crear y gestionar tipos de ítem personalizados con procesos
      configurables de clasificación, validación y extracción.
  - name: Síntesis de Dictamen
    description: >-
      Endpoints para ejecutar bajo demanda la Síntesis de Dictamen (`findings`)
      de una verificación.
paths:
  /verifications/{verification-id}/add-items:
    put:
      tags:
        - Agregar items a una verificacion
      summary: Agregar items a una verificación existente
      description: >
        Agrega nuevos items/documentos a una verificación específica usando el
        id de la verificación.


        **Flujo de trabajo:**

        - **Paso 2 (Validación)**: Agregar items tipo `doc_validation` para
        validar documentos

        - **Paso 5 (Extracción)**: Agregar items de extracción real (`ac_mx`,
        `csf_mx`, etc.) basados en resultados de validación
      parameters:
        - in: path
          name: verification-id
          required: true
          description: El ID de la verificación.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - items
              properties:
                items:
                  type: array
                  description: >
                    Una lista de ítems o documentos que serán agregados a la
                    verificación, cada item debe tener un tipo y opciones.
                  items:
                    type: object
                    required:
                      - type
                      - options
                    properties:
                      type:
                        type: string
                        description: >
                          El tipo de documento o ítem a procesar. Acepta
                          cualquier tipo soportado por Trébol.

                          - **Clasificación**: `generic` (Trébol detecta el tipo
                          automáticamente).

                          - **Validación**: `doc_validation` (requiere
                          `options.client_item_type`).

                          - **División de PDFs multi-documento**: `doc_splitter`
                          (ver [guía del divisor de
                          documentos](/producto/guias/doc-splitter)).

                          - **Extractores built-in México**: `ac_mx` (acta
                          constitutiva), `aa_mx` (acta de asamblea), `pw_mx`
                          (poder), `fme_mx` (fusión/escisión), `csf_mx`
                          (constancia SAT), `union_documents_extractor`, entre
                          otros.

                          - **Tipos personalizados**: nombres con prefijo `cit_`
                          definidos en [tipos de ítem
                          personalizados](/producto/guias/tipos-de-item-personalizados).


                          La lista completa vive en `SUPPORTED_ITEM_TYPES` del
                          backend y crece con nuevos extractores; para ver la
                          forma de respuesta por cada tipo consulta [respuestas
                          por tipo de
                          item](/guia-devs/referencia/respuestas-por-tipo-de-item).
                        example: doc_validation
                      tags:
                        type: object
                        description: >-
                          Mapa de etiquetas que se asignarán al ítem como pares
                          clave-valor.
                        additionalProperties:
                          type: string
                        example:
                          client_id: some-client-id
                      options:
                        type: object
                        description: >
                          Opciones adicionales para el ítem. Para el origen del
                          archivo envía **uno** de:

                          `file_url` (URL descargable) o `file_source: "item"`
                          (para referenciar un corte de un `doc_splitter`).

                          Si omites ambos, Trébol devuelve una `upload_url`
                          presignada (ver [flujo de carga
                          directa](/guia-devs/crear-verificaciones/via-api/carga-directa)).
                          Este flujo también aplica a `doc_splitter`: sube el
                          archivo y confirma con `options.uploaded_file: true`.
                        properties:
                          file_url:
                            type: string
                            description: >-
                              URL de un archivo presignado que se puede
                              descargar para el ítem a verificar.
                            example: https://www.googleapis.com/downloadableFile
                          file_password:
                            type: string
                            minLength: 1
                            maxLength: 128
                            writeOnly: true
                            description: >
                              Contraseña del PDF cuando el archivo está
                              protegido. Trébol abre el documento con ella al
                              recibirlo, procesa la copia sin contraseña y
                              conserva el archivo original cifrado. Trébol
                              almacena la contraseña cifrada en la base de datos
                              y no la devuelve en respuestas ni webhooks. Si la
                              contraseña es incorrecta, el ítem termina con
                              `item_error: invalid_file_password`. Se ignora
                              para archivos que no son PDF. Aplica por ítem.
                            example: clave-del-pdf
                          constancia_type:
                            type: string
                            description: >-
                              Tipo de constancia para items csf_mx (opcional).
                              Especifica si es para empresa o individuo.
                            enum:
                              - business
                              - individual
                            example: business
                          people_scope:
                            type: array
                            description: >-
                              Especifica el alcance de las personas que deben
                              ser consideradas en la verificación.
                            items:
                              type: string
                              example: powers
                          client_item_type:
                            $ref: '#/components/schemas/ClientItemType'
                          allowed_item_types:
                            type: array
                            description: >
                              Solo para `doc_splitter`. Restringe los tipos que
                              el splitter puede identificar. Acepta tipos
                              built-in (por ejemplo `ac_mx`, `aa_mx`) y nombres
                              de tipos de ítem personalizados (`cit_...`). Si se
                              omite o está vacío, se usa el catálogo base
                              completo.

                              **No confundir con** el `allowed_item_types` del
                              `RequirementDefinition` (schema
                              `AllowedItemType`): aquel es un enum cerrado usado
                              en `record_validation_schema` para definir qué
                              tipos satisfacen un requerimiento del expediente.
                            items:
                              type: string
                            example:
                              - ac_mx
                              - aa_mx
                          file_source:
                            type: string
                            description: >
                              Origen del archivo. Envía `"item"` para
                              referenciar un corte generado por un ítem
                              `doc_splitter` previo; en ese caso, completa
                              `file_source_info` con `item_id` y `support_id`.
                              Detalle en la [guía del divisor de
                              documentos](/producto/guias/doc-splitter).
                            enum:
                              - item
                          file_source_info:
                            type: object
                            description: >
                              Referencia al corte del `doc_splitter`. Requerido
                              cuando `file_source: "item"`. Trébol resuelve el
                              sub-PDF internamente; no envíes `bucket`, `key` ni
                              `support_url`.
                            properties:
                              item_id:
                                type: integer
                                description: >-
                                  `id` del ítem `doc_splitter` que produjo el
                                  corte.
                                example: 30829
                              support_id:
                                type: string
                                description: >
                                  Identificador del sub-recurso dentro del ítem
                                  referenciado por `item_id`. Para un
                                  `doc_splitter` este valor es el `support_id`
                                  del corte que Trébol expone en
                                  `item_value.split_documents[].support_id`.
                                example: ds_9f7d3a1c-1c72-4b0f-b8e2-5c9c8b5d4a11
                            required:
                              - item_id
                              - support_id
            examples:
              Step2Validation:
                summary: Paso 2 - Validación de documentos
                value:
                  items:
                    - type: doc_validation
                      options:
                        file_url: https://www.googleapis.com/downloadableFile
                      tags:
                        some: tag value
              Step5Extraction:
                summary: Paso 5 - Extracción de información
                value:
                  items:
                    - type: ac_mx
                      options:
                        file_url: https://www.googleapis.com/downloadableFile
                      tags:
                        some: tag value
                    - type: union_documents_extractor
                      options:
                        file_url: https://www.googleapis.com/downloadableFile
                      tags:
                        some: tag value
                    - type: csf_mx
                      options:
                        file_url: https://www.googleapis.com/downloadableFile
                        constancia_type: business
                      tags:
                        some: tag value
              DocSplitterCreate:
                summary: >-
                  Crear un doc_splitter para dividir un PDF con varios
                  documentos
                value:
                  items:
                    - type: doc_splitter
                      options:
                        file_url: https://ejemplo.com/expediente-completo.pdf
                        allowed_item_types:
                          - ac_mx
                          - aa_mx
                          - pw_mx
                          - fme_mx
              DocSplitterConsume:
                summary: Crear un ítem a partir de un corte de un doc_splitter
                value:
                  items:
                    - type: ac_mx
                      options:
                        file_source: item
                        file_source_info:
                          item_id: 30829
                          support_id: ds_9f7d3a1c-1c72-4b0f-b8e2-5c9c8b5d4a11
      responses:
        '200':
          description: Items agregados exitosamente a la verificación.
          content:
            application/json:
              schema:
                type: array
                description: Lista de items agregados con sus IDs asignados.
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                      description: ID del ítem/documento.
                      example: 25440
                    item_status:
                      type: string
                      description: Estado del ítem/documento.
                      example: pending
                      enum:
                        - pending
                        - complete
                    item_type:
                      type: string
                      description: Tipo de ítem/documento.
                      example: ubos
                    item_value:
                      type: object
                      description: Valores especificos del ítem/documento.
                    item_options:
                      type: object
                      description: >-
                        Opciones adicionales del ítem/documento que afectan al
                        proceso interno del mismo.
                      properties:
                        upload_url:
                          type: string
                          format: uri
                          description: >-
                            URL firmada temporal para subir el archivo del item
                            mediante PUT antes de confirmar con
                            options.uploaded_file.
                        is_optional:
                          type: boolean
                          description: Indica si el ítem/documento es opcional.
                          example: true
                      nullable: true
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '409':
          description: >
            Conflicto. Causa habitual al referenciar un corte de `doc_splitter`
            con `file_source: "item"`: `source_item_not_ready` — el ítem fuente
            aún no está en `complete` sin `item_error`. Ver [Errores HTTP al
            referenciar un
            corte](/producto/guias/doc-splitter#errores-http-al-referenciar-un-corte).
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    ClientItemType:
      type: string
      description: >-
        Especificacion del tipo de item segun el cliente. Consulta los valores
        disponibles en [Tipos de ítem](/guia-devs/referencia/tipos-item)
    ErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          example: false
        message:
          type: string
          example: Descripción breve y accionable del error
        code:
          oneOf:
            - type: string
              enum:
                - VALIDATION_ERROR
                - BAD_REQUEST
                - UNAUTHORIZED
                - FORBIDDEN
                - NOT_FOUND
                - CONFLICT
                - DUPLICATE_RESOURCE
                - INTERNAL_SERVER_ERROR
            - type: string
              description: Código de dominio específico (p.ej., items_not_provided)
          example: VALIDATION_ERROR
        timestamp:
          type: string
          format: date-time
          example: '2025-01-01T12:34:56.000Z'
  responses:
    BadRequestError:
      description: Datos de entrada inválidos
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            ValidationError:
              summary: Error de validación
              value:
                success: false
                message: 'Validation failed: ''items'' is required'
                code: VALIDATION_ERROR
                timestamp: '2025-01-01T12:34:56.000Z'
            ItemsNotProvided:
              summary: items_not_provided
              value:
                success: false
                message: >-
                  Please provide a valid items array or a flow id in your
                  request
                code: items_not_provided
                timestamp: '2025-01-01T12:34:56.000Z'
            InvalidItemType:
              summary: invalid_item_type
              value:
                success: false
                message: The generic item type is not supported
                code: invalid_item_type
                timestamp: '2025-01-01T12:34:56.000Z'
            InvalidItemOptionsFileUrl:
              summary: invalid_item_options_file_url
              value:
                success: false
                message: >-
                  The specified file_url is invalid. Ensure it is public and
                  downloadable.
                code: invalid_item_options_file_url
                timestamp: '2025-01-01T12:34:56.000Z'
            InvalidItemOptionsFilePassword:
              summary: invalid_item_options_file_password
              value:
                success: false
                message: The file_password option must be a non-empty string.
                code: invalid_item_options_file_password
                timestamp: '2025-01-01T12:34:56.000Z'
    UnauthorizedError:
      description: No autorizado
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            Unauthorized:
              summary: Falta API key o inválida
              value:
                success: false
                message: Unauthorized
                code: UNAUTHORIZED
                timestamp: '2025-01-01T12:34:56.000Z'
    NotFoundError:
      description: Recurso no encontrado
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            NotFound:
              summary: Recurso inexistente
              value:
                success: false
                message: Entity not found
                code: NOT_FOUND
                timestamp: '2025-01-01T12:34:56.000Z'
    InternalServerError:
      description: Error interno del servidor
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            ServerError:
              summary: Error inesperado
              value:
                success: false
                message: Internal server error
                code: INTERNAL_SERVER_ERROR
                timestamp: '2025-01-01T12:34:56.000Z'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key

````

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