> ## 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 un proceso a un tipo de ítem personalizado

> Agrega un proceso de validación o extracción a un tipo existente. Hasta 5 procesos de extracción y 20 de validación por tipo.
En procesos de extracción sin `json_schema`, `auto_improve` debe enviarse como `true`; enviarlo como `false` devuelve 400.
Si se envía `json_schema`, `auto_improve` se establece en `false` automáticamente; enviarlo como `true` devuelve 400.




## OpenAPI

````yaml /api-reference/openapi.yaml post /v2/custom-item-types/{id}/processes
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:
  /v2/custom-item-types/{id}/processes:
    post:
      tags:
        - Tipos de Ítem Personalizados
      summary: Agregar un proceso a un tipo de ítem personalizado
      description: >
        Agrega un proceso de validación o extracción a un tipo existente. Hasta
        5 procesos de extracción y 20 de validación por tipo.

        En procesos de extracción sin `json_schema`, `auto_improve` debe
        enviarse como `true`; enviarlo como `false` devuelve 400.

        Si se envía `json_schema`, `auto_improve` se establece en `false`
        automáticamente; enviarlo como `true` devuelve 400.
      operationId: crearProcesoTipoItemPersonalizado
      parameters:
        - $ref: '#/components/parameters/customItemTypeId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCustomItemTypeProcessRequest'
            examples:
              Extraction:
                summary: Proceso de extracción con auto_improve
                value:
                  process_type: extraction
                  process_reference: extraer_montos
                  user_input: >-
                    Extrae todos los montos monetarios del contrato, incluyendo
                    renta mensual y depósito.
                  auto_improve: true
              ExtractionWithSchema:
                summary: Proceso de extracción con json_schema propio
                value:
                  process_type: extraction
                  process_reference: extraer_personas
                  user_input: >-
                    Extrae todas las personas mencionadas en el documento con su
                    nombre completo y rol.
                  json_schema:
                    type: object
                    required:
                      - persons
                    properties:
                      persons:
                        type: array
                        description: >-
                          Lista de todas las personas mencionadas en el
                          documento.
                        items:
                          type: object
                          required:
                            - name
                            - role
                          properties:
                            name:
                              type: string
                              description: >-
                                Nombre completo de la persona mencionada en el
                                documento.
                            role:
                              type:
                                - string
                                - 'null'
                              description: >-
                                Rol, cargo o calidad con la que la persona
                                aparece en el documento. Usa null si no se
                                especifica.
              Validation:
                summary: Proceso de validación con failure_policy
                value:
                  process_type: validation
                  process_reference: validar_firmas
                  user_input: >-
                    Verifica que el contrato contenga las firmas de ambas partes
                    y del notario público.
                  failure_policy: hard_stop
      responses:
        '201':
          description: Proceso creado exitosamente.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomItemTypeProcessResponse'
        '400':
          description: |
            Solicitud inválida. Posibles causas:
            - Campos requeridos faltantes o inválidos.
            - `auto_improve: false` en extracción sin `json_schema`.
            - `auto_improve: true` en extracción con `json_schema`.
            - `json_schema` enviado en un proceso que no es de extracción.
            - `json_schema` con formato inválido.
            - `failure_policy` enviado en un proceso que no es de validación.
        '401':
          description: No autorizado. API key inválida o faltante.
        '404':
          description: Tipo padre no encontrado o eliminado.
        '409':
          description: >
            Conflicto. Posibles causas:

            - `process_reference` ya existe en este tipo.

            - `user_input` idéntico ya en uso en otro proceso del mismo tipo.

            - Se alcanzó el límite de procesos del tipo (5 de extracción o 20 de
            validación).
      security:
        - ApiKeyAuth: []
components:
  parameters:
    customItemTypeId:
      name: id
      in: path
      required: true
      description: Identificador único del tipo de ítem personalizado (ej. `cit_abc123`).
      schema:
        type: string
      example: cit_abc123
  schemas:
    CreateCustomItemTypeProcessRequest:
      type: object
      required:
        - process_type
        - process_reference
        - user_input
      properties:
        process_type:
          type: string
          enum:
            - validation
            - extraction
          description: >-
            Tipo de proceso a crear. Hasta 5 procesos de extracción y 20 de
            validación por tipo.
        process_reference:
          type: string
          description: Etiqueta del proceso. Única dentro del mismo tipo.
          example: extraer_montos
        user_input:
          type: string
          description: Instrucciones escritas por el usuario para este proceso.
          example: Extrae todos los montos monetarios del contrato.
        json_schema:
          type: object
          description: >-
            Solo para procesos de extracción. Define el esquema JSON de salida.
            Cuando se envía, `auto_improve` se establece en `false`
            automáticamente; enviar `auto_improve: true` junto con `json_schema`
            devuelve error 400. La raíz debe ser `type: object` con
            `properties`. Usa `type: ["<tipo>", "null"]` para campos anulables.
            Consulta la [estructura del
            json_schema](/producto/guias/tipos-de-item-personalizados#estructura-del-json_schema)
            para el formato requerido y ejemplos.
        auto_improve:
          type: boolean
          default: true
          description: >-
            Para extracción sin `json_schema`, debe enviarse como `true` (o se
            omite; por defecto `true`). Enviar `false` sin `json_schema`
            devuelve error 400. Cuando se envía `json_schema`, `auto_improve` se
            establece en `false` automáticamente; enviar `true` devuelve error
            400. Para validación, es opcional (por defecto `true`).
        failure_policy:
          type: string
          nullable: true
          enum:
            - warning
            - hard_stop
            - null
          description: >-
            Solo para validación. `warning`: el ítem se pausa hasta que se
            revise el resultado. `hard_stop`: si la regla no se cumple, el ítem
            se da por finalizado. `null`: el ítem continúa procesándose aunque
            la regla falle. Se rechaza si se envía en otro tipo de proceso.
    CustomItemTypeProcessResponse:
      type: object
      properties:
        success:
          type: boolean
          example: true
        data:
          $ref: '#/components/schemas/CustomItemTypeProcess'
    CustomItemTypeProcess:
      type: object
      properties:
        id:
          type: string
          description: Identificador único del proceso generado por Trébol.
          example: ccp_def456
        process_reference:
          type: string
          description: >
            Etiqueta del proceso asignada por el usuario. Identifica el
            resultado de este proceso en el ítem procesado: cada paso de
            `item_value.pipeline` lo trae en `process_reference`. Ver [Tipos de
            ítem
            personalizados](/producto/guias/tipos-de-item-personalizados#donde-salen-los-resultados).
          example: extraer_montos
        process_type:
          type: string
          enum:
            - classification
            - validation
            - extraction
          description: Tipo de proceso.
        is_active:
          type: boolean
          description: Indica si el proceso está activo.
          example: true
        failure_policy:
          type: string
          nullable: true
          enum:
            - warning
            - hard_stop
            - null
          description: >-
            Política de fallo para validaciones. `warning`: el ítem se pausa
            hasta que se revise el resultado. `hard_stop`: si la regla no se
            cumple, el ítem se da por finalizado. `null`: el ítem continúa
            procesándose aunque la regla falle. Para clasificación y extracción
            siempre es `null`.
        active_version_id:
          type: integer
          nullable: true
          description: ID de la versión activa del proceso.
          example: 42
        version_number:
          type: integer
          description: Número secuencial de la versión activa.
          example: 1
        created_at:
          type: string
          format: date-time
          description: Fecha de creación del proceso.
        updated_at:
          type: string
          format: date-time
          description: Fecha de última actualización del proceso.
  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.