Cómo funcionan los errores en consultas públicas:
- HTTP 200 OK siempre. La API responde 200 incluso cuando la consulta a la fuente externa falla. El indicador de error vive dentro del
item_valuedel ítem (o en el payload del webhook para RENAPO) — no en el status code HTTP. - Errores finales. Trébol reintenta automáticamente antes de reportar; los valores de esta página solo aparecen cuando se agotan los reintentos internos.
- Sincronía. RENAPO (CURP) opera de forma asíncrona — resultado vía webhook. Las demás fuentes (INE, SAT, SIGER, RUES, DIAN, Cámara de Comercio) devuelven el resultado en el
item_valueal procesar la verificación.
¿Qué hacer cuando una consulta falla?
¿Qué hacer cuando una consulta falla?
- Si el error fue causado por datos de entrada incorrectos (ej. RFC mal escrito, NIT inexistente), corrige el dato y crea una nueva verificación.
- Si el error refleja un problema técnico del servicio externo, contacta a soporte.
item_value e item_internal_status que aparecen en la tabla son campos del response de cada ítem (datos estructurados y estado interno de procesamiento, respectivamente). Para la estructura completa de respuesta, consulta Respuestas por tipo de ítem.
Tabla resumen
México
RENAPO — Validación CURP
La búsqueda de CURP contra RENAPO se dispara automáticamente al procesar itemsperson_id o al extraer accionistas de documentos tipo acta (ac_mx, aa_mx, pw_mx), y se ejecuta de forma asíncrona. Para saber si falló, revisa el payload del webhook verification_people.curp_search_completed. Cuando la búsqueda falla, el campo people_error está presente en el payload.
Campo indicador: people_error (string, opcional) — solo presente cuando ocurre un error.
Valores posibles de people_error:
Ejemplo de payload con error:
INE — Validación
Para items de tipoperson_id con id_type: "ine_mx", Trébol realiza una validación del INE. El resultado se encuentra dentro de item_value en las claves ine_validation_result e ine_validation_message.
Campos indicadores:
ine_validation_result(string) — resultado de la validación.ine_validation_message(string) — mensaje descriptivo del resultado.
ine_validation_result que indican error (requieren acción del desarrollador):
Valores de
ine_validation_result informativos (no requieren acción):
Valores de
ine_validation_message:
La validación del INE solo se ejecuta cuando el
id_type es ine_mx. Para otros tipos de identificación (passport, residence_mx, cc), estos campos son null.SAT — Firmas y sellos
El ítempublic_sat_signatures consulta los certificados FIEL y sellos digitales ante el SAT. Cuando la consulta no devuelve certificados hay que distinguir dos casos distintos. El campo status dentro de item_value.data.{rfc} indica si la consulta falló, y validationResult.reason indica por qué.
Valores de status:
Valores de
validationResult.reason (presente cuando status es fail):
Valores de
validationMessage:
status sigue tomando los mismos valores de siempre (success, fail, exception); validationResult.reason es un campo adicional que refina el motivo del fallo. Si hoy ramificas solo por status, tu integración sigue funcionando sin cambios.rfc_not_found):
Este ejemplo muestra ambos ítems SAT (business y representatives):
business no encuentra el RFC (status: "fail" con validationResult.reason: "rfc_not_found"), el ítem de tipo representatives asociado se completa con item_internal_status: "sat_not_found" y item_value vacío, como se muestra en el segundo objeto del ejemplo. Si en cambio hubo una falla técnica (reason: "scraper_error" o status: "exception"), el ítem representatives se completa con item_internal_status: "sat_scrap_failed".
Para la documentación completa del ítem SAT, consulta Items de consultas públicas — KYB México → public_sat_signatures.
SIGER — Sistema Integral de Gestión Registral
Cuando la consulta al portal SIGER falla por problemas técnicos o comportamientos inesperados de la página, el ítem refleja el error en su estado interno. Campo indicador:item_internal_status="siger_error"— la consulta no pudo completarse.
item_internal_status es "siger_error", el item_value puede estar vacío o incompleto.
Para la documentación completa del ítem SIGER, consulta Items de consultas públicas — KYB México → siger.
Colombia
RUES — Registro Único Empresarial
Cuando el NIT consultado no existe en RUES, la respuesta lo indica dentro delitem_value.
Campo indicador:
item_value.status="NIT NO EXISTE"— el NIT no fue encontrado en el RUES.
Este error indica que la página de RUES no encontró registros para el NIT proporcionado. Verifica que el NIT sea correcto e incluya el dígito de verificación.
DIAN — Consulta de NIT (public_rut_co)
Cuando la consulta del NIT en la DIAN falla, el resultado se refleja en item_value. No uses el código HTTP ni item_internal_status como único indicador de éxito: el scrape puede terminar en "scrap_completed" tanto si la consulta fue exitosa como si falló.
Campos indicadores:
item_value.status— estado tributario devuelto por la DIAN en consultas exitosas (texto del campoestado, por ejemplo"ACTIVO"); en fallos puede ser"EXCEPTION","invalid"o cadena vacía.item_value.rut_validation_result— resultado de la validación:"success"o"failed".item_value.message— detalle operativo del proceso (mensaje de éxito, error de DIAN, NIT inválido, etc.).
Consulta exitosa:
item_value.rut_validation_result="success".item_value.status= texto del estado en DIAN (por ejemplo"ACTIVO"); la capitalización puede variar según la fuente.item_value.messageen la implementación actual suele ser"Process finished successfully."(texto operativo; para lógica de negocio priorizastatusyrut_validation_result).
Cámara de Comercio — Dirección pública (public_address_cc_co)
Trébol consulta datos de contacto y dirección en cámaras de comercio públicas. El flujo intenta, en orden: Medellín, luego Cali, y por último Bucaramanga (esta última también puede completar el correo si Cali no lo trae).
Este ítem no expone item_value.status, item_value.message ni un campo equivalente a rut_validation_result. La detección de fallo se hace por contenido de item_value y, de forma auxiliar, por item_internal_status.
Campos en item_value:
legal_nameorganization_typelegal_emailphonebusiness_address(address,city,state,country)tax_id_numberrequest_id(si se envió en la creación de la verificación)
business_address es siempre un objeto (address, city, state, country) cuando viene en la respuesta; nunca es un string. Si la consulta no obtuvo dirección, la clave suele omitirse (no aparece en item_value).
Consulta exitosa:
item_value.legal_namepoblado.item_value.business_addresscon dirección y, habitualmente,city/state.- Pueden faltar
legal_emailophonesegún la cámara que respondió; eso no implica fallo total si hay razón social y dirección.
Ejemplo — consulta exitosa:
business_address no se incluye en item_value (no es "" ni un objeto con strings vacíos).
Si el error fue por NIT incorrecto, corrige el dato y crea una nueva verificación. Si
legal_name viene vacío pero el NIT es correcto y el problema persiste, puede tratarse de indisponibilidad de las cámaras — contacta a soporte.Siguientes pasos
Consultas públicas — México
Documentación completa de SIGER, SAT y CURP.
Consultas públicas — Colombia
Documentación completa de RUES, DIAN y Cámara de Comercio.
Items de documentos — INE
Documentación del ítem
person_id y validación del INE.Webhooks
Eventos de webhook incluyendo errores de CURP.