Crear una entidad automáticamente con enriquecimiento
Crear una entidad automáticamente con enriquecimiento
Crea automáticamente con datos enriquecidos de registros oficiales — en el modelo universal de entidades gu1 para KYC, KYB y análisis de riesgo.
POST
Crear una entidad automáticamente con enriquecimiento
Documentation Index
Fetch the complete documentation index at: https://docs.gu1.ai/llms.txt
Use this file to discover all available pages before exploring further.
Descripción General
El endpoint de creación automática de entidades le permite crear entidades proporcionando información mínima (ID fiscal y país). El sistema automáticamente:- Obtiene datos de empresa/persona de registros oficiales
- Enriquece la entidad con información adicional
- Crea entidades relacionadas (accionistas, directores) según la profundidad especificada
- Ejecuta integraciones (verificaciones y enriquecimientos) automáticamente
Endpoint
Autenticación
Requiere una clave API válida en el encabezado Authorization:Cuerpo de la Solicitud
Número de identificación fiscal de la entidad (ej: CNPJ para Brasil, RFC para México, CUIT para Argentina)Tipo:
string (longitud mínima: 1)Código de país ISO 3166-1 alpha-2 (ej: “BR”, “MX”, “AR”, “CL”)Tipo:
string (longitud: 2)Tipo de entidad a crear:
company- Entidad empresarialperson- Persona física
enum - 'company' | 'person'Opcional. ISO 3166-1 alfa-2 o etiqueta mapeable; se guarda en la fila de la entidad principal (misma validación que Crear entidad).
Opcional. Misma semántica que en Crear entidad, con dos mapas:
main: watchlist para enrichments de la entidad raíz (taxId del request).relationships: watchlist para enrichments de accionistas/relacionadas creadas condepth> 0 (mismas claves de código que enautoExecuteIntegrationsShareholders).
global_gueno_sanctions_enrichment. Valor recomendado: { "watchlist": true } o { "watchlist": true, "riskMatrixId": "<uuid>" | null } (también acepta boolean legacy).Cada mapa solo afecta entidades que reciben ese enrichment en el job. Requiere el código en el arreglo de enrichments correspondiente y monitoreo ON en Marketplace.Su identificador único para esta entidad en su sistema (opcional, se generará automáticamente si no se proporciona)Tipo:
string (opcional)Cuántos niveles de accionistas/relaciones crear automáticamente:
0- Crear solo la entidad principal (sin relaciones)1- Crear accionistas/directores directos2- Crear accionistas y sus accionistas- Máximo:
5
number (mín: 0, máx: 5, predeterminado: 0)Marcar esta entidad como cliente para fines de seguimientoTipo:
boolean (predeterminado: false)UUID de la matriz de riesgo para ejecutar reglas automáticamenteTipo:
string | null (opcional)Omitir ejecución automática de reglas después de la creación de la entidadTipo:
boolean (opcional, predeterminado: false)Estado inicial para la entidad. Opciones:
activeinactiveblockedunder_review(predeterminado)suspendedexpireddeletedrejected
enum - 'active' | 'inactive' | 'blocked' | 'under_review' | 'suspended' | 'expired' | 'deleted' | 'rejected' (predeterminado: ‘under_review’)Horario operativo opcional de la entidad principal (
timezone + weekly). Se persiste en creación automática igual que en creación manual de entidades. No se aplica a accionistas/relaciones creadas por depth.Configurar ejecución automática de integraciones para la entidad principal. Vea Referencia de Códigos de Proveedores para códigos disponibles.Tipo: Ejemplo:
object (opcional)Propiedades:executeAllActiveEnrichments(boolean, opcional, predeterminado:false) - Ejecutar todas las integraciones de enriquecimiento activasenrichments(array, opcional, predeterminado:[]) - Array de códigos específicos de proveedores de enriquecimiento para ejecutarenrichmentGroupRefs(array de strings, opcional) - Slugs de grupos de enriquecimiento del Marketplace (solo enriquecimientos). ConexecuteAllActiveEnrichments: false, se resuelven los grupos y se fusionan conenrichmentsexplícitos. ConexecuteAllActiveEnrichments: true, los refs de grupo no se usan; losenrichmentsexplícitos pueden seguir añadiendo códigos tras el conjunto activo.excludeEnrichments(array, opcional, predeterminado:[]) - Códigos de proveedor que se omiten del conjunto final resuelto
Configurar ejecución automática de integraciones para accionistas y entidades relacionadas creadas durante el recorrido de la jerarquía. Esto le permite especificar diferentes integraciones para empresas vs personas. Vea Referencia de Códigos de Proveedores para códigos disponibles.Tipo: Ejemplo:
object (opcional)Propiedades:executeAllActiveEnrichments(boolean, opcional, predeterminado:false) - Ejecutar todas las integraciones de enriquecimiento activas para todos los accionistasenrichments(object, opcional) - Códigos específicos de proveedores de enriquecimiento por tipo de entidad:company(array, opcional, predeterminado:[]) - Enriquecimientos para accionistas empresasperson(array, opcional, predeterminado:[]) - Enriquecimientos para accionistas personas
enrichmentGroupRefs(array de strings, opcional) - Mismos slugs que en el objeto principal; conexecuteAllActiveEnrichments: falsese aplican tanto acompanycomo aperson. ConexecuteAllActiveEnrichments: trueen este objeto, los refs de grupo no se usan; losenrichmentsexplícitos por tipo pueden seguir añadiendo códigos tras el activo de cada lado.excludeEnrichments(array, opcional, predeterminado:[]) - Códigos omitidos en las listascompanyypersontras el merge
Códigos de Enrichment Obligatorios por País
Brasil (BR)
Entidad Principal
| Tipo de Entidad | Código de Enrichment Obligatorio | Descripción |
|---|---|---|
| Company | br_cpfcnpj_complete_company_enrichment | Obtiene datos de la empresa de CNPJ/Receita Federal (razón social, nombre comercial, dirección, industria, etc.) |
| Person | br_bdc_basic_data_enrichment | Obtiene datos de la persona vía BDC/CPF (nombre completo, fecha de nacimiento, dirección, etc.) |
Accionistas / Entidades Relacionadas (solo cuando depth > 0)
| Tipo de Entidad Principal | Código(s) de Enrichment Obligatorio(s) | Descripción |
|---|---|---|
| Company | br_bdc_shareholders_enrichment | Obtiene el QSA (Quadro Societário) para descubrir accionistas y directores de la empresa |
| Person | br_bdc_related_companies_enrichment Y br_bdc_related_persons_enrichment | Ambos son obligatorios. Obtiene empresas y personas relacionadas con el individuo |
Los enrichments de accionistas deben incluirse en el array
autoExecuteIntegrations.enrichments de la entidad principal (no en autoExecuteIntegrationsShareholders), porque el sistema necesita ejecutarlos sobre la entidad principal para descubrir quiénes son los accionistas. El campo autoExecuteIntegrationsShareholders controla qué enrichments ejecutar sobre cada accionista después de ser creado.Argentina (AR)
Entidad Principal
| Tipo de Entidad | Código de Enrichment Obligatorio | Descripción |
|---|---|---|
| Company | ar_nosis_extended_verification_enrichment | Obtiene datos de la empresa de Nosis (razón social, estado CUIT, dirección, actividades, etc.) |
| Person | ar_nosis_extended_verification_enrichment | Mismo proveedor para ambos tipos de entidad |
Accionistas / Entidades Relacionadas
Opcional — Datos que envía el cliente para la entidad principal y que no deben ser reemplazados por los enrichments del registro. No aplica a accionistas ni entidades relacionadas (
Propiedades documentadas: Ejemplo (empresa):
depth > 0).Tras los enrichments, la API re-aplica los valores enviados en customData para que no se pierdan (p. ej. sincronización automática de nombre).Dónde se persiste cada campo:Campo en customData | Columna root (entities) | entityData |
|---|---|---|
name | name | — |
email | email | person.email / company.email |
phone | phone | person.phone / company.phone |
birthDate | — | Solo person.dateOfBirth (personas) |
address | — | person.address o company.address |
gender | — | person.gender (AR, derivación CUIL) |
name, email, phone, birthDate (persona), address (string o objeto con fullAddress, street, city, …), gender (opcional, AR).Claves adicionales (solo API): cualquier otra clave en customData se acepta y se guarda en entityData.person o entityData.company (misma protección contra enrichments). Ej.: firstName, occupation, tradeName. El dashboard solo envía los campos del formulario; integraciones vía API pueden ampliar el objeto.Ejemplo (persona):Opcional - Atributos personalizados como pares clave-valor para la entidad creada.Se aplican solo a la entidad principal (persona o empresa creada), no a accionistas/relaciones. Útil para segmentos de negocio, etiquetas, IDs internos o cualquier metadato que quieras asociar desde el momento de la creación.Estructura: objeto con claves string y valores de cualquier tipo (string, number, boolean, array, etc.).Ejemplo:
Parámetros de Query
Fuerza el re-enriquecimiento de la entidad principal incluso si ya existe en el sistema.Tipo: Nota de Costo: Puede incurrir en cargos adicionales de proveedores de datos terceros.
boolean (query string: "true" o "false")Comportamiento:- Cuando es
true: Fuerza la búsqueda de datos actualizados de registros oficiales y proveedores de enriquecimiento - Cuando es
falseu omitido: Utiliza datos de enriquecimiento en caché si están disponibles - Sobreescribe la configuración de organización
enrichmentsConfig.reEnrichExistingEntities
- Revisiones periódicas de cumplimiento que requieren información actualizada
- Re-validar datos de entidad después de cambios regulatorios
- Actualizar estructura empresarial después de cambios corporativos conocidos
- Actualización manual activada por oficiales de cumplimiento
Fuerza el re-enriquecimiento de TODOS los accionistas y entidades relacionadas en la estructura corporativa.Tipo: Esto actualizará la empresa principal Y todos los accionistas hasta 3 niveles de profundidad.Nota de Rendimiento:
boolean (query string: "true" o "false")Comportamiento:- Cuando es
true: Fuerza la búsqueda de datos actualizados para la entidad principal Y todos los accionistas en todos los niveles (hastadepth) - Cuando es
falseu omitido: Solo actualiza la entidad principal sirefresh=true, los accionistas usan datos en caché - Funciona en combinación con el parámetro
depthpara determinar qué tan profundo actualizar - Sobreescribe configuración de organización para todas las entidades relacionadas
- Auditoría completa de estructura corporativa
- Due diligence que requiere cadena de propiedad actualizada
- Revisiones anuales de cumplimiento de todo el árbol corporativo
- Investigación de estructuras de propiedad complejas
- Establecer esto en
truecon valores altos dedepth(4-5) puede tomar varios minutos - Puede resultar en costos significativos si la estructura corporativa es compleja
- Considere usar selectivamente solo para entidades de alto riesgo
- Use
refresh=truesolo para actualizaciones de entidad única - Use
reEnrichExistingChildEntities=truesolo cuando necesite validación completa de la cadena de propiedad
Respuesta
El endpoint se ejecuta síncronamente y retorna el resultado completo incluyendo la entidad principal y todas las entidades relacionadas creadas.Indica si la entidad se creó correctamente
Información completa sobre la creación:
entity(object) - La entidad principal creada con todos sus datosshareholders(array) - Array de entidades de accionistas creadas (para empresas)relationships(array) - Array de entidades relacionadas creadas (para personas)summary(object):entitiesCreated(number) - Número total de entidades creadasrelationshipsCreated(number) - Número total de relaciones creadaserrorsCount(number) - Número de errores encontrados
errors(object, opcional) - Detalles de cualquier error que ocurrió:creationFailed(array) - Creaciones de entidades que fallaronenrichmentFailed(array) - Ejecuciones de enriquecimiento que fallaron
Resultado de la ejecución de reglas (solo presente cuando se ejecutaron reglas, p. ej. cuando skipRulesExecution es
false y se proporcionó riskMatrixId), o null. Cuando está presente, incluye:- success (boolean) - Si las reglas se ejecutaron correctamente
- rulesTriggered (number) - Número de reglas disparadas
- alerts (array) - Alertas generadas por las reglas
- riskScore (number) - Puntuación de riesgo final
- decision (string) - Decisión final (APPROVE, REJECT, HOLD, REVIEW_REQUIRED)
- rulesExecutionSummary (object) - Presente cuando se ejecutaron reglas. Ver abajo la estructura.
En la raíz de la respuesta (igual que la API de transacciones). Mismo valor que
rulesResult.rulesExecutionSummary. Solo presente cuando se ejecutaron reglas (p. ej. skipRulesExecution es false y se ejecutó la matriz de riesgo). Resumen de qué reglas hicieron match (hit) vs no (no hit), acciones ejecutadas y puntuación total. Omitido cuando las reglas no se ejecutaron. Estructura completa y ejemplo: Resumen de Ejecución de Reglas.- rulesHit (array) - Reglas cuyas condiciones se cumplieron. Cada ítem: name, description, score, priority, category, status (p. ej.
active,shadow), conditions (array de{ field, value, operator? }), actions (alerts, suggestion, status, assignedUser). - rulesNoHit (array) - Reglas evaluadas pero cuyas condiciones no se cumplieron. Misma estructura que rulesHit (incluye acciones configuradas, no ejecutadas).
- actionsExecuted (object) - Acciones ejecutadas agregadas de todas las reglas que hicieron hit: alerts (array de
{ name?, type?, severity?, description? }), suggestion (BLOCK|SUSPEND|FLAG, mayor peso), status (estado aplicado a la entidad, si hay), assignedUser ({ userId }, si hay), customKeys (array de strings, opcional) — claves de acciones personalizadas de las reglas que hicieron match; para integraciones/workflows. - totalScore (number) - Suma del score de todas las reglas que hicieron hit y no están en estado
shadow.
Eventos WebSocket
El sistema emite eventos en tiempo real durante el proceso de creación:entity:creation-started
Emitido cuando el proceso de creación comienza.
entity:creation-completed
Emitido cuando la entidad y todas las relaciones han sido creadas.
entity:creation-failed
Emitido si el proceso de creación falla.
Monitoreo de sanciones Gu1 en creación automática
EnPOST /entities/automatic:
| Campo | Aplica a |
|---|---|
monitoring.main | Entidad principal (taxId del body) cuando su enrichment corre desde autoExecuteIntegrations. |
monitoring.relationships | Cada accionista/relacionada con depth > 0 cuando su enrichment corre desde autoExecuteIntegrationsShareholders (por type company/person). |
global_gueno_sanctions_enrichment. Debe estar en el arreglo de enrichments del nivel que corresponda y en el mapa main o relationships con watchlist activo.
main: la matriz Gu1 de la empresa matriz puede heredarriskMatrixIddel body o usar matriz dedicada en el objeto.relationships:riskMatrixId: nullhereda la matriz global de cada entidad hija; un UUID fija matriz solo para screening de monitoreo de esas hijas.- Los enrichments de registro (p. ej.
ar_afip_registration_enrichment) no usanmonitoring; corren siempre como consulta normal.
Ejemplos
Crear Empresa con Accionistas (Profundidad 1)
Crear Persona (KYC) con Integraciones Específicas
Crear Empresa Argentina (Sin Soporte de Accionistas)
Crear Empresa Brasileña con Accionistas e Integraciones Selectivas
Ejemplo de Respuesta
Creación Exitosa de Empresa con Accionistas
Creación Exitosa de Persona
Respuestas de Error
400 Bad Request - ID Fiscal Inválido
404 Not Found - Entidad No Encontrada en el Registro
409 Conflict - La Entidad Ya Existe
500 Internal Server Error
Mejores Prácticas
- Use la profundidad sabiamente: Valores de profundidad más altos (3-5) pueden crear muchas entidades y tardar más en completarse. Comience con profundidad 0-1 para pruebas.
-
Monitoree eventos WebSocket: Aunque la API retorna síncronamente, los eventos WebSocket también se emiten para actualizaciones de UI en tiempo real (
entity:creation-started,entity:creation-completed,entity:creation-failed). - Maneje timeouts: Para jerarquías complejas con alta profundidad, la solicitud puede tomar varios minutos. Configure valores de timeout HTTP apropiados en su cliente.
-
Manejo de errores: Siempre verifique el campo
successy el objetoerrorsen la respuesta. Algunas entidades pueden crearse exitosamente mientras otras fallan. - Limitación de velocidad: Tenga cuidado con los límites de velocidad al crear múltiples entidades en rápida sucesión. El endpoint obtiene datos de APIs externas que pueden tener sus propios límites de velocidad.
Endpoints Relacionados
- Crear Entidad Manualmente - Crear entidades con sus propios datos
- Obtener Entidad - Recuperar detalles de la entidad
- Listar Entidades - Consultar sus entidades