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

# Obtener una verificación por su ID

> Retorna una verificación pública con sus items serializados.
Consulta la guía de estructuras de `item_value` por tipo en [Respuestas por tipo de ítem](/docs/guia-devs/respuestas-por-tipo-de-item).

**Coordenadas de citas:** agrega `?with_citations=true` y los items de tipo acta incluirán un campo `citations.url` con la URL firmada al artifact de coordenadas de ese documento. Ver [Coordenadas de citas](/guia-devs/referencia/coordenadas-citas).

**Reporte de consultas públicas externas:** cuando la verificación incluye consultas a fuentes externas (SAT, RENAPO, INE, SIGER), la respuesta agrega `lookups_report` con una URL firmada para descargar el reporte PDF de auditoría. El campo se omite si no hay reporte (verificaciones sin consultas externas, antiguas o de países aún no soportados). Ver [Consultas públicas externas](/guia-devs/monitorear/consultas-publicas-externas).

**Síntesis de Dictamen (`findings`):** la respuesta de este endpoint siempre incluye el campo `findings` con los hallazgos de la Síntesis de Dictamen. El listado `GET /verifications` no lo incluye.

El bloque completo es `null` mientras la revisión no se haya ejecutado para la verificación. Cuando existe, trae tres campos:

- `items`: lista de hallazgos, cada uno con `severity` (`high`, `medium` o `low`), `message` y, cuando aplica, `missing_field`. Una lista vacía significa que la revisión corrió y no encontró nada — distinto de `findings: null`.
- `computed_at`: fecha y hora ISO 8601 de la corrida que produjo los hallazgos. Es `null` en verificaciones antiguas, anteriores a que se registrara este dato.
- `source`: `provisional` o `final`.

`source` indica en qué momento Trébol calcula la revisión. `provisional`: la calcula antes de completarse la verificación, con un modelo más rápido, y una corrida final puede reemplazarla — sus hallazgos pueden cambiar de severidad o desaparecer. `final`: la calcula al completarse la verificación.




## OpenAPI

````yaml /api-reference/openapi.yaml get /verifications/{verification-id}
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}:
    get:
      tags:
        - Leer información de la empresa
      summary: Obtener una verificación por su ID
      description: >
        Retorna una verificación pública con sus items serializados.

        Consulta la guía de estructuras de `item_value` por tipo en [Respuestas
        por tipo de ítem](/docs/guia-devs/respuestas-por-tipo-de-item).


        **Coordenadas de citas:** agrega `?with_citations=true` y los items de
        tipo acta incluirán un campo `citations.url` con la URL firmada al
        artifact de coordenadas de ese documento. Ver [Coordenadas de
        citas](/guia-devs/referencia/coordenadas-citas).


        **Reporte de consultas públicas externas:** cuando la verificación
        incluye consultas a fuentes externas (SAT, RENAPO, INE, SIGER), la
        respuesta agrega `lookups_report` con una URL firmada para descargar el
        reporte PDF de auditoría. El campo se omite si no hay reporte
        (verificaciones sin consultas externas, antiguas o de países aún no
        soportados). Ver [Consultas públicas
        externas](/guia-devs/monitorear/consultas-publicas-externas).


        **Síntesis de Dictamen (`findings`):** la respuesta de este endpoint
        siempre incluye el campo `findings` con los hallazgos de la Síntesis de
        Dictamen. El listado `GET /verifications` no lo incluye.


        El bloque completo es `null` mientras la revisión no se haya ejecutado
        para la verificación. Cuando existe, trae tres campos:


        - `items`: lista de hallazgos, cada uno con `severity` (`high`, `medium`
        o `low`), `message` y, cuando aplica, `missing_field`. Una lista vacía
        significa que la revisión corrió y no encontró nada — distinto de
        `findings: null`.

        - `computed_at`: fecha y hora ISO 8601 de la corrida que produjo los
        hallazgos. Es `null` en verificaciones antiguas, anteriores a que se
        registrara este dato.

        - `source`: `provisional` o `final`.


        `source` indica en qué momento Trébol calcula la revisión.
        `provisional`: la calcula antes de completarse la verificación, con un
        modelo más rápido, y una corrida final puede reemplazarla — sus
        hallazgos pueden cambiar de severidad o desaparecer. `final`: la calcula
        al completarse la verificación.
      operationId: getVerificationById
      parameters:
        - $ref: '#/components/parameters/verificationIdParam'
        - name: with_citations
          in: query
          required: false
          description: >
            Si es `true`, cada item de tipo acta en `items[]` incluye
            `citations.url`: una URL firmada al artifact de coordenadas de ese
            documento. Ver [Coordenadas de
            citas](/guia-devs/referencia/coordenadas-citas).
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: Verificación recuperada exitosamente.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PublicVerification'
                  - type: object
                    required:
                      - findings
                    properties:
                      findings:
                        $ref: '#/components/schemas/VerificationFindings'
              examples:
                Success:
                  summary: Respuesta exitosa
                  value:
                    id: c8dc41fc-c477-404e-aff7-b9074f86d6d1
                    account_id: 99999999-9999-9999-9999-999999999999
                    status: pending
                    created_at: '2025-04-28T20:10:06.840Z'
                    updated_at: '2025-04-28T20:10:06.840Z'
                    tag: etiqueta
                    tax_id: SAG160927GIA
                    business_name: Trebol OPCO
                    friendly_name: Empresa ACME S.A. de C.V.
                    flow_id: documents-v2
                    details_url: >-
                      https://app.gotrebol.com/verifications/c8dc41fc-c477-404e-aff7-b9074f86d6d1
                    onboarding_url: https://onboarding.gotrebol.com/verification/c8dc41fc...
                    items:
                      - id: 25440
                        item_status: pending
                        item_type: csf_mx
                        item_value: {}
                    findings: null
                ConReporteDeConsultas:
                  summary: Respuesta con reporte de consultas públicas externas
                  value:
                    id: c8dc41fc-c477-404e-aff7-b9074f86d6d1
                    account_id: 99999999-9999-9999-9999-999999999999
                    status: finished
                    created_at: '2026-06-16T18:00:00.000Z'
                    updated_at: '2026-06-16T18:30:00.000Z'
                    tag: etiqueta
                    tax_id: SAG160927GIA
                    business_name: Trebol OPCO
                    friendly_name: Empresa ACME S.A. de C.V.
                    flow_id: documents-v2
                    items:
                      - id: 25440
                        item_status: complete
                        item_type: public_sat_signatures
                        item_value: {}
                    lookups_report:
                      url: >-
                        https://files.gotrebol.com/.../lookups-report.pdf?...firma...
                      generated_at: '2026-06-16T18:30:00.000Z'
                    findings:
                      items:
                        - severity: medium
                          message: >-
                            La estructura accionaria proviene únicamente de
                            SIGER; no fue posible confirmarla con el acta
                            constitutiva proporcionada.
                      computed_at: '2026-06-16T18:30:00.000Z'
                      source: final
                ConHallazgosProvisionales:
                  summary: >-
                    Respuesta con hallazgos provisionales (revisión aún no
                    final)
                  value:
                    id: c8dc41fc-c477-404e-aff7-b9074f86d6d1
                    account_id: 99999999-9999-9999-9999-999999999999
                    status: pending
                    created_at: '2026-06-16T18:00:00.000Z'
                    updated_at: '2026-06-16T18:12:00.000Z'
                    tag: etiqueta
                    tax_id: SAG160927GIA
                    business_name: Trebol OPCO
                    friendly_name: Empresa ACME S.A. de C.V.
                    flow_id: documents-v2
                    items:
                      - id: 25441
                        item_status: complete
                        item_type: acta_constitutiva
                        item_value: {}
                    findings:
                      items:
                        - severity: high
                          message: >-
                            No se encontró el acta constitutiva; sin ella no es
                            posible confirmar la razón social ni la fecha de
                            constitución.
                          missing_field: razon_social
                        - severity: low
                          message: >-
                            El domicilio fiscal declarado no coincide con el del
                            comprobante de domicilio.
                      computed_at: '2026-06-16T18:12:00.000Z'
                      source: provisional
                SinHallazgos:
                  summary: Respuesta con la revisión ejecutada y sin hallazgos
                  value:
                    id: c8dc41fc-c477-404e-aff7-b9074f86d6d1
                    account_id: 99999999-9999-9999-9999-999999999999
                    status: finished
                    created_at: '2026-06-16T18:00:00.000Z'
                    updated_at: '2026-06-16T18:30:00.000Z'
                    tax_id: SAG160927GIA
                    business_name: Trebol OPCO
                    flow_id: documents-v2
                    items: []
                    findings:
                      items: []
                      computed_at: '2026-06-16T18:30:00.000Z'
                      source: final
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
        - ApiKeyAuth: []
components:
  parameters:
    verificationIdParam:
      name: verification-id
      in: path
      required: true
      description: El ID único de la verificación
      schema:
        type: string
  schemas:
    PublicVerification:
      type: object
      properties:
        country:
          type: string
        created_at:
          type: string
        updated_at:
          type: string
        account_id:
          type: string
        id:
          type: string
        items:
          type: array
          items:
            $ref: '#/components/schemas/PublicVerificationItem'
          nullable: true
        metadata:
          type: object
          additionalProperties: true
          nullable: true
        status:
          type: string
        documents_status:
          type: string
          nullable: true
        tag:
          type: string
          nullable: true
        email:
          type: string
          nullable: true
        signatory_email:
          type: string
          nullable: true
        tax_id:
          type: string
          nullable: true
        flow_id:
          nullable: true
        notification_hint:
          type: string
          nullable: true
        validation_options:
          type: object
          additionalProperties: true
          nullable: true
        details_url:
          type: string
        onboarding_url:
          type: string
        business_name:
          type: string
          nullable: true
        friendly_name:
          type: string
          nullable: true
          description: >
            Nombre descriptivo asignado por el usuario al crear la verificación.
            Permite identificar fácilmente la empresa o persona asociada a la
            verificación.
          example: Empresa ACME S.A. de C.V.
        comments_legal_review:
          type: array
          items:
            type: string
          nullable: true
        access_token:
          type: string
        options:
          type: object
          properties:
            requires_id_validation:
              type: boolean
          nullable: true
        created_by:
          type: string
          nullable: true
        onboarding_terms_and_conditions:
          type: object
          additionalProperties: true
          nullable: true
        lookups_report:
          type: object
          nullable: true
          description: >
            Reporte PDF de auditoría de las consultas públicas externas (SAT,
            RENAPO, INE, SIGER). Presente solo cuando existe un reporte para la
            verificación; se omite en caso contrario. Ver [Consultas públicas
            externas](/guia-devs/monitorear/consultas-publicas-externas).
          properties:
            url:
              type: string
              description: >
                URL firmada para descargar el PDF (se sirve como adjunto). Es de
                corta duración y se regenera en cada llamada; ver el detalle de
                uso en [Consultas públicas
                externas](/guia-devs/monitorear/consultas-publicas-externas).
            generated_at:
              type: string
              description: Fecha y hora (ISO 8601) en que se generó el reporte.
        _kind:
          type: string
          enum:
            - public_verification
            - verification
    VerificationFindings:
      type: object
      nullable: true
      description: >
        Hallazgos de la Síntesis de Dictamen.

        Solo lo devuelve `GET /verifications/{verification-id}`, donde siempre
        está presente. El listado `GET /verifications` no incluye este campo:
        para leer los hallazgos de una verificación, consúltala por su ID.

        Es `null` mientras la revisión no se haya ejecutado para esa
        verificación. Un `items` vacío es distinto: significa que la revisión sí
        corrió y no encontró nada.
      required:
        - items
        - computed_at
        - source
      properties:
        items:
          type: array
          description: >
            Lista de hallazgos. Vacía cuando la revisión se ejecutó y no
            encontró problemas.
          items:
            $ref: '#/components/schemas/VerificationFinding'
        computed_at:
          type: string
          format: date-time
          nullable: true
          description: >
            Fecha y hora (ISO 8601) de la corrida que produjo los hallazgos. Es
            `null` en verificaciones antiguas, anteriores a que se registrara
            este dato.
        source:
          type: string
          enum:
            - provisional
            - final
          description: >
            Origen de la revisión. `provisional`: Trébol la calcula antes de
            completarse la verificación, con un modelo más rápido, y una corrida
            final puede reemplazarla. `final`: Trébol la calcula al completarse
            la verificación.
    PublicVerificationItem:
      type: object
      properties:
        id:
          type: number
        item_status:
          type: string
        item_order:
          type: number
        item_type:
          type: string
        item_value:
          description: >
            Estructura depende de `item_type`. Ver guía en
            /guia-devs/respuestas-por-tipo-de-item.


            Además de los campos propios del tipo, incluye una llave
            `cp_<prompt_id>` por cada extracción personalizada con resultado
            para ese ítem, donde `prompt_id` es el identificador editable de la
            extracción. Ver [Extracciones
            personalizadas](/producto/guias/extracciones-personalizadas).


            Ese prefijo solo aplica a tipos de documento estándar. Un ítem de un
            tipo de ítem personalizado (`item_type` con prefijo `cit_`) nunca
            lleva llaves `cp_`: sus resultados viven en `pipeline`, con la forma
            del schema `CustomItemTypeItemValue`. Ver [Tipos de ítem
            personalizados](/producto/guias/tipos-de-item-personalizados#donde-salen-los-resultados).
          type: object
          additionalProperties: true
        item_error:
          type: string
          nullable: true
          description: >
            Campo opcional que indica errores públicos relacionados con el
            procesamiento del ítem. Su valor depende del `item_type` que produjo
            el error.


            **Comunes a ítems documentales**

            - `password_protected_pdf`: el PDF está protegido con contraseña y
            no se envió `file_password`. Reenvía el archivo con
            `options.file_password`.

            - `invalid_file_password`: se envió `file_password` pero el PDF la
            rechazó. Reenvía el archivo con la contraseña correcta.

            - `get_input_file_info_failed`: falló la obtención de información
            del archivo de entrada.


            **Específicos de `doc_splitter`** (ver
            [guía](/producto/guias/doc-splitter) para el listado completo)

            - `unsupported_file_type`: el archivo no es un PDF.

            - `unknown_custom_item_type` / `misconfigured_custom_item_type`:
            `allowed_item_types` o `client_item_type` referencia un tipo
            personalizado (`cit_*`) que no existe o no está listo.

            - `no_splits_returned`: el análisis no identificó ningún documento
            en el PDF.

            - `pdf_slice_failed`: no se pudo leer o recortar el PDF (archivo
            corrupto o error de descarga del original).

            - `pdf_slice_upload_failed`: se recortaron los sub-PDFs pero falló
            la subida de al menos uno.

            - `doc_splitter_request_failed`: falló la llamada al servicio de
            análisis (OCR o AI). Reintentar suele resolverlo.


            **Específicos de `doc_validation`**

            - `invalid_document_type`: el documento no corresponde al
            `client_item_type` esperado.

            - `ruleset_validation_failed`: al menos una regla del `ruleset` no
            se cumplió.


            Trata este campo como un `string` opaco: además de los códigos
            anteriores puede llegar con otros valores para ítems específicos
            (por ejemplo `prevalidation_failed` en `csf_mx`) o, en errores
            inesperados, con un mensaje libre en inglés.
        item_internal_status:
          type: string
          nullable: true
        item_options:
          type: object
          additionalProperties: true
          nullable: true
          properties:
            upload_url:
              type: string
              format: uri
              description: >-
                URL firmada temporal para subir el archivo del item mediante
                PUT. Después de subirlo, confirma con options.uploaded_file en
                PUT /verification-items/{id}.
        item_ui_options:
          type: object
          additionalProperties: true
          nullable: true
        validation_result:
          type: object
          additionalProperties: true
          nullable: true
        user_event_completed_at:
          type: string
          nullable: true
        user_event_name:
          type: string
          nullable: true
        user_event_reason:
          type: string
          nullable: true
        tag:
          type: string
          nullable: true
        item_scope:
          type: string
          nullable: true
        original_file_url:
          type: string
          nullable: true
        citations:
          type: object
          description: >
            Presente solo cuando se llamó con `?with_citations=true` y el item
            es de tipo acta. Contiene la URL firmada (CloudFront) al artifact de
            coordenadas en S3. Ver [Coordenadas de
            citas](/guia-devs/referencia/coordenadas-citas).
          properties:
            url:
              type: string
              format: uri
              description: >
                URL firmada y temporal. Descarga el JSON cuanto antes; si
                caduca, vuelve a llamar al endpoint con el flag para obtener una
                nueva. Si el artifact aún no se horneó para esta verificación,
                no se devuelve la llave citations.
              example: >-
                https://files.gotrebol.com/{verification_id}/citations/sources/{item_id}.json?Expires=…&Signature=…
          required:
            - url
    VerificationFinding:
      type: object
      description: Un hallazgo individual de la Síntesis de Dictamen.
      properties:
        severity:
          type: string
          enum:
            - high
            - medium
            - low
          description: Severidad del hallazgo.
        message:
          type: string
          description: Descripción del hallazgo en lenguaje natural.
        missing_field:
          type: string
          description: >
            Campo o dato faltante al que se refiere el hallazgo, cuando aplica
            (por ejemplo `shareholders`). Se omite cuando el hallazgo no
            corresponde a un dato faltante.
      required:
        - severity
        - message
    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:
    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.