Skip to main content
Los tipos de ítem personalizados permiten que tu cuenta defina sus propios tipos de documento, cada uno con procesos configurables de clasificación, validación y extracción. Trébol gestiona el ciclo de vida completo a través del endpoint /v2/custom-item-types.

Cuándo usarlos

Usa tipos de ítem personalizados cuando necesites:
  • Procesar un tipo de ítem que Trébol no soporta de forma estándar.
  • Definir reglas de clasificación, validación o extracción específicas para tu negocio.
  • Controlar el esquema de salida (JSON) de la extracción.
Esta funcionalidad complementa las extracciones personalizadas. Las extracciones personalizadas aplican sobre tipos ya soportados; los tipos de ítem personalizados crean un tipo nuevo desde cero.

Conceptos clave

Tipo y procesos

Un tipo de ítem personalizado (custom_item_type) agrupa uno o más procesos. Cada proceso define una tarea que Trébol ejecuta sobre el documento: Al crear un tipo, el proceso de clasificación se crea automáticamente de forma atómica. Solo puede editarse mediante PATCH; no puede añadirse de nuevo ni eliminarse.

Identificadores

Cada tipo y cada proceso exponen dos identificadores:
  • id — generado por Trébol, inmutable. Úsalo en las rutas de la API (ej. cit_abc123, ccp_def456).
  • name (solo en tipos) — identificador que defines tú (no una etiqueta legible; para eso está friendly_name). Debe empezar con el prefijo cit_ y no puede contener espacios (usa _ o - como separador). Único por cuenta entre tipos activos y archivados. Se usa como valor de type al enviar ítems en verificaciones.
  • process_reference (solo en procesos) — etiqueta elegida por ti, única dentro del mismo tipo. Editable vía PATCH. Identifica el resultado de ese proceso dentro del ítem procesado (ver Dónde salen los resultados).

Ciclo de vida

  • active — el tipo acepta documentos en verificaciones.
  • archived — el tipo está pausado. Sigue apareciendo en el listado y puede reactivarse en cualquier momento con PATCH status: "active". Verificaciones que lo referencien son rechazadas mientras esté archivado.
  • Eliminado (DELETE) — el tipo y todos sus procesos se borran de forma permanente e irreversible. Para pausar un tipo sin perderlo, archívalo en lugar de eliminarlo.

Mejora automática

Al crear o actualizar un proceso puedes incluir auto_improve (por defecto true). Cuando está activo, Trébol mejora automáticamente tus instrucciones con IA en segundo plano para todos los tipos de proceso. Para procesos de extracción, también genera un json_schema.

Extracción con json_schema propio

Si proporcionas un json_schema al crear o actualizar un proceso de extracción, auto_improve se establece automáticamente en false. Enviar auto_improve: true junto con json_schema devuelve error 400: cuando defines tu propio esquema, Trébol lo usa tal cual sin modificarlo. Esto aplica tanto en la creación (POST) como en la actualización (PATCH) del proceso.
Al crear un proceso de extracción tienes dos caminos:
  • Sin json_schema: auto_improve debe enviarse como true (o se omite y toma ese valor por defecto). Trébol genera el esquema automáticamente. auto_improve: false sin json_schema devuelve error 400.
  • Con json_schema: auto_improve se establece en false automáticamente. Enviar auto_improve: true devuelve error 400. Trébol usa tu esquema tal cual.

Autenticación

Todos los endpoints requieren tu API key en el header x-api-key.

Referencia de la API

Todos los endpoints, parámetros, ejemplos de request/response y códigos de error están documentados en la API Reference:

Tipos

Crear un tipo

POST /v2/custom-item-types

Listar tipos

GET /v2/custom-item-types

Obtener un tipo

GET /v2/custom-item-types/{id}

Actualizar un tipo

PATCH /v2/custom-item-types/{id}

Eliminar un tipo

DELETE /v2/custom-item-types/{id}

Procesos

Agregar un proceso

POST /v2/custom-item-types/{id}/processes

Obtener un proceso

GET /v2/custom-item-types/{id}/processes/{processId}

Actualizar un proceso

PATCH /v2/custom-item-types/{id}/processes/{processId}

Eliminar un proceso

DELETE /v2/custom-item-types/{id}/processes/{processId}

Procesamiento asíncrono

Cuando creas o actualizas un proceso con auto_improve = true, Trébol no bloquea la respuesta. En su lugar:
1

Respuesta inmediata

El endpoint devuelve 201 (creación) o 200 (actualización). La respuesta de escritura no incluye user_input ni json_schema.
2

Mejora en segundo plano

Trébol mejora tus instrucciones con IA para todos los tipos de proceso. Para procesos de extracción, también genera un json_schema.
3

Resultado disponible vía GET (extracción)

Para procesos de extracción, consulta el proceso con GET hasta que json_schema esté poblado. Para clasificación y validación, el proceso es funcional de inmediato con tus instrucciones originales.

Cómo saber cuándo terminó la mejora

El mecanismo varía según el tipo de proceso:
Si proporcionas tu propio json_schema al crear o actualizar el proceso, no hay espera asíncrona: Trébol lo usa de inmediato y el proceso queda listo para recibir documentos. Solo necesitas esperar a que json_schema se pueble cuando dejas que la mejora automática lo genere (auto_improve: true sin json_schema).

Estructura del json_schema

El json_schema sigue el formato JSON Schema y define los campos que Trébol extrae del documento. La raíz debe ser un objeto ("type": "object") con properties y, opcionalmente, required.

Reglas

  • Raíz: siempre "type": "object".
  • Tipos permitidos: string, number, integer, boolean, array, object, null.
  • Campos obligatorios: lista las claves en required para que Trébol siempre intente extraerlas.
  • Campos anulables: usa "type": ["<tipo>", "null"] en campos donde el documento podría no contener la información. Trébol devuelve null en lugar de inventar un valor.
  • Descripciones: cada campo debe incluir description para que Trébol entienda qué buscar en el documento.

Ejemplo: esquema plano

Extrae datos básicos de un contrato con campos que pueden no estar presentes:

Ejemplo: esquema con arrays y objetos anidados

Extrae una lista de personas con sus roles:

Ejemplo: esquema mixto con campos opcionales

Extrae información financiera donde algunos campos son opcionales:
El json_schema define la estructura que Trébol usa para la extracción. Un esquema incorrecto o con descripciones vagas produce resultados imprecisos. Incluye siempre descripciones claras que indiquen exactamente qué dato buscar en el documento.

Ejemplo: crear un proceso de extracción con json_schema

Este ejemplo crea un proceso de extracción proporcionando un json_schema que usa el esquema de personas con campos anulables. Como se envía json_schema, auto_improve se establece en false automáticamente.
Usa "type": ["string", "null"] (o ["number", "null"], etc.) en los campos que podrían no encontrarse en el documento. Así Trébol devuelve null en lugar de inventar un valor cuando no hay coincidencia.

Interacción con verificaciones

Envío de ítems

Al enviar un ítem de verificación que referencia un tipo de ítem personalizado:
  1. El name debe corresponder a un tipo existente en tu cuenta (activo o archivado).
  2. El tipo debe tener status = 'active'.

Dónde salen los resultados

Los resultados de un ítem de tipo personalizado viven en item_value.pipeline, dentro del ítem. Léelo con cualquiera de estos endpoints: item_value tiene esta forma:
array
Un elemento por proceso de extracción configurado en el tipo. Array vacío si el tipo no tiene extracciones.
array
Un elemento por regla de validación configurada en el tipo. Array vacío si el tipo no tiene validaciones.
string
Etapa del pipeline interno en la que quedó el ítem. Es informativa y su lista de valores no es estable. Para saber si el ítem terminó, usa item_status junto con item_error.
Los tipos de ítem personalizados no usan llaves cp_<...>. Ese prefijo es exclusivo de las extracciones personalizadas, que aplican sobre tipos de documento estándar. Un ítem cit_* sí aparece en la sección sources de los endpoints v2, pero solo con sus campos comunes (id, type, item_status, …): esa sección no expone su item_value. Sus resultados se leen únicamente desde el ítem.
Trébol elimina de cada value de extracción, en todos los niveles, las claves que empiezan por paragraphs_ o parrafos_. Son trazas internas de citas y no forman parte de tu esquema.

Ejemplo completo

Este ejemplo crea un tipo de ítem personalizado para contratos de arrendamiento, le agrega una extracción y luego envía un documento para procesar.
1

Crear el tipo

2

Agregar un proceso de extracción

Usa el id del tipo devuelto en el paso 1 (aquí cit_abc123). Tienes dos opciones:
Trébol genera el json_schema automáticamente. Necesitas esperar a que esté listo (paso 3).
La respuesta incluye el id del proceso creado (por ejemplo, ccp_ghi789). Lo necesitas en el siguiente paso.
3

Esperar la mejora automática (solo si no enviaste json_schema)

Si creaste el proceso con auto_improve: true (sin json_schema), consulta el proceso con GET hasta que json_schema esté poblado. Si proporcionaste tu propio json_schema, salta este paso.
4

Enviar un documento para procesar

Crea una verificación usando el name del tipo como type del ítem.
5

Consultar los resultados

Una vez que la verificación termine de procesarse (puedes saberlo vía webhook), lee el ítem con GET /verification-items/{id}. Los resultados están en item_value.pipeline.extraction: un elemento por proceso de extracción, identificado por su process_reference.
Las claves de value las define el json_schema que Trébol generó automáticamente en el paso 3.
El contrato completo, campo por campo, está en Dónde salen los resultados.

Siguientes pasos

Extracciones personalizadas

Personaliza la extracción para tipos de documento que Trébol ya soporta.

Divisor de documentos

Divide un PDF con varios documentos y usa tus tipos personalizados (cit_*) como destino de cada corte.

Reglas de validación

Reglas predefinidas y personalizadas para validar documentos.

Tipos de documentos

Lista completa de tipos de documento soportados.

Webhooks

Recibe notificaciones cuando una verificación termine de procesarse.