This commit is contained in:
valenti 2026-04-20 05:40:35 -04:00
parent f7afd0c7af
commit b07d29438e
14 changed files with 494 additions and 25737 deletions

View File

@ -2,7 +2,9 @@
## Resumen Ejecutivo
Duxiter es una plataforma integral de evaluación y monitoreo empresarial construida con una arquitectura moderna, escalable y basada en la nube. La plataforma combina tecnologías de vanguardia incluyendo inteligencia artificial, APIs de terceros, y una arquitectura de microservicios para proporcionar evaluaciones de riesgo empresarial en tiempo real.
Duxiter es una plataforma integral de evaluación y monitoreo empresarial construida con una arquitectura moderna, escalable y basada en la nube. La plataforma combina tecnologías de vanguardia incluyendo inteligencia artificial, APIs de terceros, y una arquitectura orientada a servicios para proporcionar evaluaciones de riesgo empresarial en tiempo real.
En paralelo al backend histórico en Node.js, existe un backend adicional llamado **FastCheck API** implementado en **Python/FastAPI**. Este servicio está pensado como **API producto (SaaS)** para clientes, y corre en paralelo sin reemplazar el backend existente. La regla principal de compatibilidad es que **reutiliza la base de datos MongoDB existente `duxiter` y las colecciones actuales** para autenticación, usuarios, tenants y datos funcionales (sin esquemas paralelos).
## 1. Arquitectura General
@ -11,12 +13,16 @@ Duxiter es una plataforma integral de evaluación y monitoreo empresarial constr
- **Patrón**: Arquitectura de 3 capas (Presentación, Lógica de Negocio, Datos)
- **Comunicación**: API RESTful con autenticación JWT
- **Documentación API**: Swagger/OpenAPI 3.0
- **Estrategia de backend en paralelo**:
- **Backend Node.js (legacy / interno)**: fuente de verdad funcional y persistencia.
- **FastCheck API (FastAPI / cliente)**: capa producto, minimalista, documentada y multi-tenant, adaptada al modelo de datos existente.
### 1.2 Modelo de Despliegue
- **Infraestructura**: Contenedores Docker
- **Proxy Reverso**: Nginx para balanceo de carga y enrutamiento
- **Base de Datos**: MongoDB con replicación
- **Cola de Mensajes**: RabbitMQ para procesamiento asíncrono
- **FastCheck API (FastAPI)**: puede desplegarse sin Docker (venv), y enrutar por prefijo vía Nginx (por ejemplo `/client-api-v1/*`).
## 2. Stack Tecnológico
@ -28,6 +34,13 @@ Duxiter es una plataforma integral de evaluación y monitoreo empresarial constr
- **Enrutamiento**: React Router
- **Testing**: Jest
#### 2.1.1 Estructura frontend (alto nivel)
- **Entrypoints**: `src/main.tsx`, `src/index.tsx`
- **Rutas**: `src/routes/*` (enrutamiento de vistas)
- **Contextos**: `src/contexts/*` (auth, tenant, tema)
- **Servicios**: `src/services/*` (cliente API, servicios de dominio)
- **Componentes**: `src/components/*` (layouts, componentes comunes y Fast Check UI)
### 2.2 Backend
- **Runtime**: Node.js
- **Framework**: Express.js con TypeScript
@ -36,14 +49,25 @@ Duxiter es una plataforma integral de evaluación y monitoreo empresarial constr
- **Seguridad**: Helmet, CORS, Rate Limiting
- **Documentación**: Swagger UI
### 2.3 Base de Datos
### 2.3 FastCheck API (Python)
- **Framework**: FastAPI
- **Modelado**: Pydantic v2 (request/response como fuente de verdad para OpenAPI)
- **MongoDB**: Motor/PyMongo (conexión al mismo `MONGODB_URI` y misma DB `duxiter`)
- **Autenticación**: JWT compatible con el backend Node (mismo `VITE_JWT_SECRET` y payload)
- **Procesamiento asíncrono**: RabbitMQ (publicación/consumo) con tolerancia a degradación (si RabbitMQ no está disponible, la API puede iniciar sin procesamiento async)
- **Documentación**:
- OpenAPI JSON: `/openapi.json` y también `{FASTCHECK_API_PREFIX}/openapi.json`
- Swagger/ReDoc interno: `/internal/docs`, `/internal/redoc`
- RapiDoc (customer docs): `/docs` y también `{FASTCHECK_API_PREFIX}/docs`
### 2.4 Base de Datos
- **Motor**: MongoDB 7.0
- **Características**:
- Esquemas flexibles para datos empresariales complejos
- Índices optimizados para consultas de rendimiento
- Replicación para alta disponibilidad
### 2.4 Servicios de Infraestructura
### 2.5 Servicios de Infraestructura
- **Cola de Mensajes**: RabbitMQ 3.12 con interfaz de gestión
- **Proxy Reverso**: Nginx con compresión gzip y caché
- **Contenedores**: Docker Compose para orquestación
@ -80,6 +104,20 @@ Duxiter es una plataforma integral de evaluación y monitoreo empresarial constr
- **Monitoreo**: `/api/monitoring/*`
- **Notificaciones**: `/api/notifications/*`
### 4.3 FastCheck API (cliente)
La FastCheck API expone un subconjunto estable y orientado a clientes, manteniendo compatibilidad con el modelo persistente:
- **Auth**: `POST {FASTCHECK_API_PREFIX}/auth/login`, `POST {FASTCHECK_API_PREFIX}/auth/refresh`, `GET {FASTCHECK_API_PREFIX}/auth/me`
- **Checks**: `POST {FASTCHECK_API_PREFIX}/checks`, `GET {FASTCHECK_API_PREFIX}/checks`, `GET {FASTCHECK_API_PREFIX}/checks/{job_id}/results`
- **Reports**: `GET {FASTCHECK_API_PREFIX}/reports/fast-check/{rut}`
- **Usage**: `GET {FASTCHECK_API_PREFIX}/usage`, `GET {FASTCHECK_API_PREFIX}/usage/operations`
El prefijo `{FASTCHECK_API_PREFIX}` es configurable vía `.env` (por ejemplo `/client-api-v1`).
### 4.4 Integración con backend Node (adapter)
FastCheck API puede delegar procesamiento complejo al backend existente mediante una capa de integración (adapter) para:
- Ejecutar lookup/rut y lógica propietaria existente.
- Reutilizar generación de resúmenes/reportes ya implementados.
- Reducir duplicación de reglas de negocio en la capa producto.
## 5. Arquitectura Escalable
@ -136,6 +174,7 @@ Servicios Docker:
### 7.2 Health Checks
- **Endpoint de Salud**: `http://localhost/health`
- **Health bajo prefijo**: `http://localhost{FASTCHECK_API_PREFIX}/health` (FastCheck API)
- **Monitoreo de Servicios**: Estado de MongoDB y RabbitMQ
- **Métricas de Rendimiento**: Tiempo de respuesta de APIs
@ -153,7 +192,41 @@ Servicios Docker:
- **RiskChangeNotifications**: Alertas de cambio de riesgo
- **AIOperationLog**: Registro de operaciones de IA
### 8.2 Flujo de Datos
### 8.2 Compatibilidad de persistencia (FastCheck API)
FastCheck API **no define esquemas paralelos**. Reutiliza colecciones existentes en `duxiter`:
- **users** y **tenants** para auth, tenant lookup y control de acceso.
- **evaluationjobs** y **evaluationresults** para checks/jobs/resultados.
- **summaries** para reportes (FastCheck summary).
- **creditoperations** para uso/consumo de créditos.
- **consulta_history** para auditoría/trazabilidad.
Las reglas de compatibilidad priorizan:
- mismos nombres de campos,
- mismos tipos de identificadores (ObjectId vs string),
- misma semántica de roles/permissions derivada del `role` del usuario.
### 8.3 Diagrama (alto nivel)
```mermaid
flowchart LR
U[Cliente Web] --> FE[Frontend React/Vite];
FE --> PX[Reverse Proxy];
PX --> BE1[Backend Node legacy];
PX --> BE2[FastCheck API];
BE1 --> DB[(MongoDB duxiter)];
BE2 --> DB;
BE2 --> MQ[(RabbitMQ)];
MQ --> W[Worker FastCheck];
W --> BE1;
W --> DB;
```
### 8.4 Flujo de Datos
Notas de enrutamiento (fuera del diagrama, para evitar problemas de renderizado Mermaid):
- Reverse Proxy enruta `/api/*` hacia el backend Node (legacy).
- Reverse Proxy enruta `{FASTCHECK_API_PREFIX}/*` hacia FastCheck API (FastAPI).
1. **Ingesta**: APIs externas → MongoDB
2. **Procesamiento**: IA → Análisis → Resultados
3. **Almacenamiento**: Resultados → Base de datos
@ -380,4 +453,4 @@ Para gestionar eficientemente la infraestructura de Duxiter, se recomienda un eq
**Versión del Documento**: 1.1
**Fecha**: Enero 2025
**Versión de la Plataforma**: 1.5.7
**Versión de la Plataforma**: 1.5.7

View File

@ -8,6 +8,12 @@ FASTCHECK_API_PORT=8080
FASTCHECK_API_PREFIX=/api/v1
FASTCHECK_LOG_LEVEL=INFO
# CORS: lista de orígenes permitidos separados por coma
# Ejemplos:
# FASTCHECK_CORS_ORIGINS=*
# FASTCHECK_CORS_ORIGINS=https://fastcheck.duxiter.cl
FASTCHECK_CORS_ORIGINS=*
LEGACY_BASE_URL=http://localhost:4040/api
LEGACY_HTTP_TIMEOUT_SECONDS=30

View File

@ -19,6 +19,11 @@ class Settings(BaseSettings):
api_host: str = Field(default="127.0.0.1", validation_alias="FASTCHECK_API_HOST")
api_port: int = Field(default=8080, validation_alias="FASTCHECK_API_PORT")
api_prefix: str = Field(default="/api/v1", validation_alias="FASTCHECK_API_PREFIX")
cors_origins_raw: str = Field(
default="*",
validation_alias="FASTCHECK_CORS_ORIGINS",
description="Lista de orígenes separados por coma, por ejemplo: https://fastcheck.duxiter.cl,https://otro.com",
)
log_level: str = Field(default="INFO", validation_alias="FASTCHECK_LOG_LEVEL")
legacy_base_url: str = Field(default="http://localhost:4040/api", validation_alias="LEGACY_BASE_URL")
@ -67,6 +72,14 @@ class Settings(BaseSettings):
prefix = prefix[:-1]
return prefix
@property
def cors_origins(self) -> list[str]:
raw = (self.cors_origins_raw or "").strip()
if not raw or raw == "*":
return ["*"]
parts = [p.strip() for p in raw.split(",")]
return [p for p in parts if p]
def get_settings() -> Settings:
return Settings()

View File

@ -5,6 +5,7 @@ from contextlib import asynccontextmanager
from fastapi import FastAPI, Request
from fastapi import APIRouter
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import HTMLResponse, JSONResponse
from fastcheck_api.app.api.v1.routers import auth, checks, reports, usage
@ -56,6 +57,13 @@ app = FastAPI(
openapi_tags=tags_metadata,
lifespan=lifespan,
)
app.add_middleware(
CORSMiddleware,
allow_origins=settings.cors_origins,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
app.add_middleware(RequestLoggingMiddleware)
app.add_middleware(TenantContextMiddleware)

357
prompt_API_1.txt Normal file
View File

@ -0,0 +1,357 @@
You are a senior software architect and backend engineer.
Your task is to design and bootstrap a NEW backend system for a product called "FastCheck".
IMPORTANT CONTEXT:
- There is an EXISTING backend written in Node.js + TypeScript.
- That backend is already working in production and contains many more internal features than what clients need.
- The existing backend MUST NOT be rewritten or replaced directly.
- We want to build a NEW backend in Python using FastAPI.
- This new backend will run IN PARALLEL and will be exposed to CLIENTS as a clean SaaS/API product.
- The current ecosystem already uses MongoDB and RabbitMQ.
- The existing MongoDB database name is: duxiter
CRITICAL RULE:
The new FastAPI backend must reuse the CURRENT database and CURRENT collections for EVERYTHING.
That means:
- authentication must use the current db and current collections
- users must use the current db and current collections
- tenants/accounts/companies must use the current db and current collections
- checks must use the current db and current collections
- reports must use the current db and current collections
- permissions/roles must use the current db and current collections
- audit/log structures must reuse current collections if they already exist
- webhook-related persistence must reuse current structures if possible
- usage tracking must reuse current structures if possible
DO NOT create:
- a new database
- a parallel schema
- a new auth model
- a new user store
- a new tenant store
- new collections unless absolutely unavoidable and explicitly justified
The priority is compatibility with the existing `duxiter` persistence model.
==================================================
PRIMARY GOAL
==================================================
Design and generate a production-ready FastAPI backend that:
- runs in parallel to the current Node.js backend
- reuses the CURRENT MongoDB database and CURRENT collections for all data access
- exposes only the subset of features needed for clients
- stays compatible with the current schema and data model
- avoids any unnecessary persistence redesign
==================================================
MANDATORY FIRST STEP: ANALYZE EXISTING SCHEMA
==================================================
Before generating any implementation, you must FIRST inspect the current codebase and infer the real MongoDB usage.
You must analyze:
- MongoDB connection code
- model definitions
- repository classes
- service classes
- auth logic
- login flow
- token/session handling
- user collections
- tenant/account/company collections
- permissions/roles structures
- checks collections
- reports collections
- audit collections
- webhook collections or equivalent
- usage/metering collections or equivalent
- RabbitMQ integration points
Then provide an ANALYSIS SECTION with:
1. Existing database detected
2. Existing collections detected
3. Existing auth collections and fields
4. Existing user/account/company/tenant collections and fields
5. Existing permission model
6. Existing checks/reports collections and fields
7. Existing audit/log collections and fields
8. Existing webhook or callback-related persistence
9. Existing usage/metering-related persistence
10. Which existing collections will be reused by the FastAPI backend
11. Which existing fields must be preserved for compatibility
12. Which parts will be wrapped with adapters rather than redesigned
DO NOT proceed to implementation until this mapping is complete.
==================================================
STRICT COMPATIBILITY RULES
==================================================
1. Reuse the existing MongoDB database called `duxiter`
2. Reuse the existing collections for ALL business areas wherever they already exist
3. Preserve existing field naming whenever possible
4. Preserve existing document structures whenever possible
5. Preserve existing identifiers and references
6. Preserve current authentication compatibility
7. Preserve current tenant/account/company compatibility
8. Preserve current permission compatibility
9. Preserve current check/report compatibility
10. Do not create new collections unless absolutely unavoidable
If a new collection is truly unavoidable:
- explain exactly why
- explain why no existing collection can be reused
- keep it minimal
- do not continue silently
==================================================
ARCHITECTURAL PRINCIPLES
==================================================
1. Parallel backend strategy
- New FastAPI backend = CLIENT PRODUCT BACKEND
- Existing Node.js backend = INTERNAL / LEGACY BACKEND
- Both run in parallel
2. Reuse-first strategy
- The FastAPI backend must adapt itself to the CURRENT persistence model
- Do not force the data layer to adapt to a new idealized design
- Compatibility is more important than architectural purity
3. Productization
- The FastAPI backend should expose only the client-facing subset of functionality
- It should be stable, documented, secure, and multi-tenant
- But its persistence must remain aligned to the current system
==================================================
TECH STACK
==================================================
Use:
- FastAPI
- Pydantic v2
- MongoDB (existing `duxiter` database)
- RabbitMQ
- Redis only if absolutely optional and isolated
- Python typing throughout
Important constraints:
- Do NOT use PostgreSQL
- Do NOT use SQLAlchemy
- Do NOT use Docker
- Do NOT generate a new persistence architecture
- Do NOT generate greenfield Mongo models disconnected from the existing collections
==================================================
AUTHENTICATION AND AUTHORIZATION
==================================================
The new backend must use the CURRENT authentication and authorization data model already present in the codebase.
You must inspect:
- how users are stored
- how passwords are stored
- how tokens are generated or validated
- how sessions or JWTs are currently handled
- how roles/permissions are attached
- how tenant/account/company membership is resolved
Then:
- reuse the same collections
- reuse the same fields
- preserve compatibility with existing users
- preserve compatibility with current access control logic where possible
Do NOT invent:
- a new auth collection
- a new users collection
- a new tenants collection
- a parallel RBAC model
If API keys do not already exist, do not casually invent a new storage model unless necessary and justified.
==================================================
BUSINESS SCOPE
==================================================
The new FastAPI backend is a CLIENT-FACING PRODUCT API for FastCheck.
It should expose only essential client-facing APIs such as:
- login
- token refresh
- list checks
- create check
- get check result
- get report
- get usage
- manage webhooks if current schema supports it or can be adapted cleanly
But all of this must use current database structures and current collections.
==================================================
LEGACY INTEGRATION REQUIREMENTS
==================================================
The existing Node.js backend must be treated as the current internal source of truth for business behavior.
The new FastAPI backend must:
- reuse the same MongoDB database and collections
- optionally call legacy services through an integration layer
- avoid reimplementing every internal behavior immediately
Create an integration layer such as:
services/
legacy_service.py
This layer should:
- abstract interactions with the legacy backend
- support gradual migration
- avoid tight coupling in the API layer
==================================================
RABBITMQ / ASYNC REQUIREMENTS
==================================================
RabbitMQ is already part of the ecosystem and must be reused.
Use it for asynchronous check processing.
Suggested flow:
- client submits a check
- FastAPI writes using the existing MongoDB collections/patterns
- FastAPI publishes a message to RabbitMQ
- worker consumes the message
- worker processes the check via legacy integration or compatible logic
- worker writes results back using the current schema
- optional webhook/callback behavior should reuse existing persistence patterns if available
Do not invent a separate async persistence model.
==================================================
PROJECT STRUCTURE
==================================================
Generate a production-grade FastAPI structure such as:
app/
main.py
core/
config.py
security.py
mongodb.py
logging.py
api/
dependencies.py
v1/
routers/
auth.py
checks.py
reports.py
usage.py
webhooks.py
services/
auth_service.py
check_service.py
report_service.py
usage_service.py
webhook_service.py
legacy_service.py
rabbitmq_service.py
audit_service.py
repositories/
middleware/
tenant_context.py
request_logging.py
schemas/
workers/
check_worker.py
utils/
tests/
IMPORTANT:
repositories, services, schemas, and models must be based on the EXISTING `duxiter` collections, not on invented collections.
==================================================
OUTPUT REQUIRED
==================================================
Generate the project as a real implementation starter.
Required output:
1. Analysis of the existing MongoDB schema usage from the current codebase
2. Explicit collection mapping table:
- collection name
- purpose
- reused as-is / reused via adapter / not used
3. Full proposed project structure
4. Implementation of key files:
- app/main.py
- app/core/config.py
- app/core/mongodb.py
- app/core/security.py
- app/api/v1/routers/auth.py
- app/api/v1/routers/checks.py
- app/middleware/tenant_context.py
- app/services/auth_service.py
- app/services/check_service.py
- app/services/legacy_service.py
- app/services/rabbitmq_service.py
- app/workers/check_worker.py
5. Pydantic schemas aligned with the current collection structures
6. Auth flow aligned with current persistence
7. RabbitMQ async publish/consume example
8. Audit handling aligned with existing persistence
9. README with local run instructions without Docker
10. .env.example
11. requirements.txt
==================================================
IMPLEMENTATION PREFERENCES
==================================================
- Keep code modular and production-minded
- Prefer pragmatic compatibility over clean-slate redesign
- Use strong typing
- Use structured logging
- Add centralized exception handling
- Add a GET /health endpoint
- Preserve naming alignment with the current codebase
- Add TODO markers where legacy behavior must be completed
- Avoid abstract theory; generate concrete starter code
==================================================
VERY IMPORTANT CONSTRAINTS
==================================================
DO NOT:
- create a new MongoDB database
- create new collections unless absolutely unavoidable
- create a parallel auth system
- create a parallel user model
- create a parallel tenant/account model
- redesign persistence from scratch
- introduce SQL or PostgreSQL
- introduce Docker
- mirror every internal feature unnecessarily
DO:
- build a new FastAPI backend in parallel
- reuse the existing `duxiter` database for everything
- reuse the existing collections for everything wherever possible
- adapt FastAPI code to the current persistence model
- keep legacy integration abstract and replaceable
- expose only the subset of features needed by clients
==================================================
FINAL INSTRUCTION
==================================================
Before generating code, explicitly confirm through analysis that the new FastAPI backend will use the EXISTING `duxiter` database and EXISTING collections for ALL areas of the system.
Only after that, generate implementation code.

8
prompt_API_2.txt Normal file
View File

@ -0,0 +1,8 @@
Important refinement:
for authentication, authorization, tenant/account lookup, and user access control, you must reuse the existing MongoDB database `duxiter` and the current collections already used by the Node.js backend.
Do not introduce new auth collections, user collections, or tenant collections unless absolutely unavoidable.
First inspect the codebase and map the existing schema.
Then adapt the FastAPI backend to that schema.
Compatibility with the existing Mongo data model is more important than idealized redesign.

8
prompt_API_3.txt Normal file
View File

@ -0,0 +1,8 @@
Before generating code, list the existing collections and inferred document structures found in the current codebase.
Then explicitly mark each one as:
- reused as-is
- reused with adapter
- not used by FastAPI
- unavoidable new collection
Do not continue to implementation until this mapping is complete.

16
prompt_API_4.txt Normal file
View File

@ -0,0 +1,16 @@
The FastAPI backend must use FastAPI's automatic OpenAPI generation as the source of truth for API documentation.
Requirements:
- define request and response models properly with Pydantic
- add endpoint summaries and descriptions
- add tags for endpoint grouping
- add example payloads where useful
- expose the generated OpenAPI schema
- keep Swagger/ReDoc available for internal use if helpful
On top of the generated OpenAPI spec, provide a better user-facing documentation experience for customers, with:
- polished API reference
- quickstart guides
- authentication guide
- end-to-end examples
- code samples in multiple languages

View File

@ -1,72 +0,0 @@
{
"rut": "79559670",
"events": [
{
"cve": "2733935",
"published_at": "2025-11-27",
"actuation_type": "MODIFICACIÓN",
"company_name": "Proquiel Químicos SpA",
"source": "DO",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2025/11/27/44310/05/2733935.pdf"
},
{
"cve": "2708229",
"published_at": "2025-10-04",
"actuation_type": "MODIFICACIÓN",
"company_name": "Proquiel Químicos SpA",
"source": "DO",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2025/10/04/44266/05/2708229.pdf"
},
{
"cve": "2624462",
"published_at": "2025-03-22",
"actuation_type": "MODIFICACIÓN",
"company_name": "PROQUIEL QUÍMICOS SpA",
"source": "DO",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2025/03/22/44106/05/2624462.pdf"
},
{
"cve": "2554845",
"published_at": "2024-10-09",
"actuation_type": "MODIFICACIÓN",
"company_name": "PROQUIEL QUIMICOS SpA",
"source": "DO",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2024/10/09/43969/05/2554845.pdf"
},
{
"cve": "2554840",
"published_at": "2024-10-09",
"actuation_type": "MODIFICACIÓN",
"company_name": "PROQUIEL QUIMICOS SpA",
"source": "DO",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2024/10/09/43969/05/2554840.pdf"
},
{
"cve": "2521272",
"published_at": "2024-07-20",
"actuation_type": "MODIFICACIÓN",
"company_name": "PROQUIEL TRANSPORTES QUÍMICOS SpA",
"source": "DO",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2024/07/20/43904/05/2521272.pdf"
},
{
"cve": "2049643",
"published_at": "2021-11-29",
"actuation_type": "MODIFICACIÓN",
"company_name": "PROQUIEL QUIMICOS LIMITADA",
"source": "DO",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2021/11/29/43115/05/2049643.pdf"
},
{
"cve": "2040579",
"published_at": "2021-11-12",
"actuation_type": "MODIFICACIÓN",
"company_name": "PROQUIEL TRANSPORTES QUIMICOS LIMITADA",
"source": "DO",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2021/11/12/43101/05/2040579.pdf"
}
],
"cached": true,
"timestamp": "2026-04-16T09:13:57.119503",
"constitution_date": null
}

View File

@ -1,72 +0,0 @@
{
"rut": "79559670",
"events": [
{
"cve": "2733935",
"published_at": "2025-11-27",
"actuation_type": "MODIFICACIÓN",
"company_name": "Proquiel Químicos SpA",
"source": "DO",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2025/11/27/44310/05/2733935.pdf"
},
{
"cve": "2708229",
"published_at": "2025-10-04",
"actuation_type": "MODIFICACIÓN",
"company_name": "Proquiel Químicos SpA",
"source": "DO",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2025/10/04/44266/05/2708229.pdf"
},
{
"cve": "2624462",
"published_at": "2025-03-22",
"actuation_type": "MODIFICACIÓN",
"company_name": "PROQUIEL QUÍMICOS SpA",
"source": "DO",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2025/03/22/44106/05/2624462.pdf"
},
{
"cve": "2554845",
"published_at": "2024-10-09",
"actuation_type": "MODIFICACIÓN",
"company_name": "PROQUIEL QUIMICOS SpA",
"source": "DO",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2024/10/09/43969/05/2554845.pdf"
},
{
"cve": "2554840",
"published_at": "2024-10-09",
"actuation_type": "MODIFICACIÓN",
"company_name": "PROQUIEL QUIMICOS SpA",
"source": "DO",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2024/10/09/43969/05/2554840.pdf"
},
{
"cve": "2521272",
"published_at": "2024-07-20",
"actuation_type": "MODIFICACIÓN",
"company_name": "PROQUIEL TRANSPORTES QUÍMICOS SpA",
"source": "DO",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2024/07/20/43904/05/2521272.pdf"
},
{
"cve": "2049643",
"published_at": "2021-11-29",
"actuation_type": "MODIFICACIÓN",
"company_name": "PROQUIEL QUIMICOS LIMITADA",
"source": "DO",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2021/11/29/43115/05/2049643.pdf"
},
{
"cve": "2040579",
"published_at": "2021-11-12",
"actuation_type": "MODIFICACIÓN",
"company_name": "PROQUIEL TRANSPORTES QUIMICOS LIMITADA",
"source": "DO",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2021/11/12/43101/05/2040579.pdf"
}
],
"cached": true,
"timestamp": "2026-04-16T09:21:25.577623",
"constitution_date": null
}

View File

@ -1,879 +0,0 @@
{
"pathCount": 81,
"relationships": [
{
"source": "79559670",
"target": "17700725",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2010-03-25",
"source": "SII_REP"
}
},
{
"source": "79559670",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "1994-10-05",
"source": "SII_REP"
}
},
{
"source": "79559670",
"target": "16212300",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2005-02-04",
"source": "SII_REP"
}
},
{
"source": "79559670",
"target": "17267165",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2010-03-25",
"source": "SII_REP"
}
},
{
"source": "79559670",
"target": "77881423",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_2733935",
"cve": "2733935",
"shares_percent": 30,
"source": "DO",
"published_at": "2025-11-27",
"doc_extraction_id": "2264351",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2025/11/27/44310/05/2733935.pdf"
}
},
{
"source": "79559670",
"target": "59219100",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_2733935",
"cve": "2733935",
"shares_percent": 70,
"source": "DO",
"published_at": "2025-11-27",
"doc_extraction_id": "2264351",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2025/11/27/44310/05/2733935.pdf"
}
},
{
"source": "79559670",
"target": "76632794",
"label": "OWNED_BY",
"information_source": {
"shares_percent": 100,
"source": "SII_REC_COM"
}
},
{
"source": "76165184",
"target": "79559670",
"label": "OWNED_BY",
"information_source": {
"shares_percent": 50,
"source": "SII_REC_COM"
}
},
{
"source": "76632707",
"target": "17700725",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-09-02",
"source": "SII_REP"
}
},
{
"source": "76632794",
"target": "17700725",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-11-11",
"source": "SII_REP"
}
},
{
"source": "76632793",
"target": "17700725",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-11-11",
"source": "SII_REP"
}
},
{
"source": "77881423",
"target": "17700725",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-04-04",
"source": "SII_REP"
}
},
{
"source": "76243196",
"target": "17700725",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2012-10-23",
"source": "SII_REP"
}
},
{
"source": "76049214",
"target": "17700725",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2016-04-08",
"source": "SII_REP"
}
},
{
"source": "76243196",
"target": "17700725",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_505687",
"cve": "505687",
"source": "DO",
"doc_extraction_id": "1406518",
"published_at": "2012-06-23",
"url": "https://www.diariooficial.interior.gob.cl/media/2012/06/23/505687_C_EIRL_20120623_firmado.pdf"
}
},
{
"source": "77881423",
"target": "17700725",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_2479373",
"cve": "2479373",
"shares_percent": 25,
"source": "DO",
"published_at": "2024-04-13",
"doc_extraction_id": "1678068",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2024/04/13/43825/05/2479373.pdf"
}
},
{
"source": "76109383",
"target": "17700725",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_808751",
"cve": "808751",
"shares_percent": 50,
"source": "DO",
"published_at": "2014-08-21",
"doc_extraction_id": "2270667",
"url": "https://www.diariooficial.interior.gob.cl/media/2014/08/21/808751_M_LTDA_20140821_firmado.pdf"
}
},
{
"source": "76632707",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-09-02",
"source": "SII_REP"
}
},
{
"source": "77963188",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2025-02-06",
"source": "SII_REP"
}
},
{
"source": "76632794",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-11-11",
"source": "SII_REP"
}
},
{
"source": "76632793",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-11-11",
"source": "SII_REP"
}
},
{
"source": "78714990",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "1995-07-18",
"source": "SII_REP"
}
},
{
"source": "78713520",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "1995-05-18",
"source": "SII_REP"
}
},
{
"source": "78296030",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "1995-05-18",
"source": "SII_REP"
}
},
{
"source": "77881423",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-04-04",
"source": "SII_REP"
}
},
{
"source": "77791034",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2023-05-09",
"source": "SII_REP"
}
},
{
"source": "76626600",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2006-09-04",
"source": "SII_REP"
}
},
{
"source": "76249044",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2012-11-28",
"source": "SII_REP"
}
},
{
"source": "76109383",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2010-08-20",
"source": "SII_REP"
}
},
{
"source": "76162244",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2011-08-26",
"source": "SII_REP"
}
},
{
"source": "76165184",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2019-07-04",
"source": "SII_REP"
}
},
{
"source": "76049214",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2016-04-08",
"source": "SII_REP"
}
},
{
"source": "53331365",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2017-06-15",
"source": "SII_REP"
}
},
{
"source": "76626600",
"target": "6288822",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_799322",
"cve": "799322",
"source": "DO",
"doc_extraction_id": "1685839",
"published_at": "2014-07-25",
"url": "https://www.diariooficial.interior.gob.cl/media/2014/07/25/799322_M_LTDA_20140725_firmado.pdf"
}
},
{
"source": "78713520",
"target": "6288822",
"label": "OWNED_BY",
"information_source": {
"pub_id": "doh_id_2984726",
"doh_extraction_id": "480765",
"shares_percent": 95,
"source": "DOH",
"doh_id": "2984726",
"published_at": "1995-04-06",
"url": "https://www.diariooficial.interior.gob.cl/media/1995/04/06/do-19950406.pdf"
}
},
{
"source": "78296030",
"target": "6288822",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_799318",
"cve": "799318",
"source": "DO",
"doc_extraction_id": "1557120",
"published_at": "2014-07-25",
"url": "https://www.diariooficial.interior.gob.cl/media/2014/07/25/799318_M_LTDA_20140725_firmado.pdf"
}
},
{
"source": "77881423",
"target": "6288822",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_2479373",
"cve": "2479373",
"shares_percent": 25,
"source": "DO",
"published_at": "2024-04-13",
"doc_extraction_id": "1678068",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2024/04/13/43825/05/2479373.pdf"
}
},
{
"source": "76249044",
"target": "6288822",
"label": "OWNED_BY",
"information_source": {
"cve": "563766",
"match_type": "bt_pn",
"source": "DO",
"published_at": "2012-11-17",
"url": "https://www.diariooficial.interior.gob.cl/media/2012/11/17/563766_C_SPA_20121117_firmado.pdf"
}
},
{
"source": "99541230",
"target": "6288822",
"label": "OWNED_BY",
"information_source": {
"match_type": "i_bt",
"source": "DOH",
"published_at": "2003-12-03",
"doh_id": "6252959",
"url": "https://www.diariooficial.interior.gob.cl/media/2003/12/03/do-20031203.pdf"
}
},
{
"source": "76632707",
"target": "16212300",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-09-02",
"source": "SII_REP"
}
},
{
"source": "76632794",
"target": "16212300",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-11-11",
"source": "SII_REP"
}
},
{
"source": "76632793",
"target": "16212300",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-11-11",
"source": "SII_REP"
}
},
{
"source": "77881423",
"target": "16212300",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-04-04",
"source": "SII_REP"
}
},
{
"source": "77372997",
"target": "16212300",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2021-05-26",
"source": "SII_REP"
}
},
{
"source": "76239620",
"target": "16212300",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2011-05-02",
"source": "SII_REP"
}
},
{
"source": "76049214",
"target": "16212300",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2009-03-03",
"source": "SII_REP"
}
},
{
"source": "77881423",
"target": "16212300",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_2479373",
"cve": "2479373",
"shares_percent": 25,
"source": "DO",
"published_at": "2024-04-13",
"doc_extraction_id": "1678068",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2024/04/13/43825/05/2479373.pdf"
}
},
{
"source": "77372997",
"target": "16212300",
"label": "OWNED_BY",
"information_source": {
"cve": "ACcGRVee0mFz",
"source": "RES",
"published_at": "2021-05-26"
}
},
{
"source": "76632707",
"target": "17267165",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-09-02",
"source": "SII_REP"
}
},
{
"source": "76632794",
"target": "17267165",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-11-11",
"source": "SII_REP"
}
},
{
"source": "76632793",
"target": "17267165",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-11-11",
"source": "SII_REP"
}
},
{
"source": "77881423",
"target": "17267165",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-04-04",
"source": "SII_REP"
}
},
{
"source": "77737301",
"target": "17267165",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2023-03-14",
"source": "SII_REP"
}
},
{
"source": "77695054",
"target": "17267165",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2023-01-11",
"source": "SII_REP"
}
},
{
"source": "77414574",
"target": "17267165",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2021-07-19",
"source": "SII_REP"
}
},
{
"source": "77320239",
"target": "17267165",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2021-02-17",
"source": "SII_REP"
}
},
{
"source": "76612946",
"target": "17267165",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2016-04-21",
"source": "SII_REP"
}
},
{
"source": "76239620",
"target": "17267165",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2011-05-02",
"source": "SII_REP"
}
},
{
"source": "76049214",
"target": "17267165",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2009-03-03",
"source": "SII_REP"
}
},
{
"source": "77881423",
"target": "17267165",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_2479373",
"cve": "2479373",
"shares_percent": 25,
"source": "DO",
"published_at": "2024-04-13",
"doc_extraction_id": "1678068",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2024/04/13/43825/05/2479373.pdf"
}
},
{
"source": "77737301",
"target": "17267165",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_2288299",
"cve": "2288299",
"shares_percent": 50,
"source": "DO",
"published_at": "2023-03-22",
"doc_extraction_id": "1956740",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2023/03/22/43508/05/2288299.pdf"
}
},
{
"source": "77414574",
"target": "17267165",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_1981944",
"cve": "1981944",
"shares_percent": 100,
"source": "DO",
"published_at": "2021-07-23",
"doc_extraction_id": "1597070",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2021/07/23/43009/05/1981944.pdf"
}
},
{
"source": "77320239",
"target": "17267165",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_1898902",
"cve": "1898902",
"shares_percent": 100,
"source": "DO",
"published_at": "2021-02-19",
"doc_extraction_id": "1823771",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2021/02/19/42885/05/1898902.pdf"
}
},
{
"source": "77695054",
"target": "17267165",
"label": "OWNED_BY",
"information_source": {
"cve": "ACVgYG050Wid",
"source": "RES",
"published_at": "2024-05-08"
}
},
{
"source": "77695054",
"target": "17267165",
"label": "OWNED_BY",
"information_source": {
"cve": "ACsp82eIi12n",
"source": "RES",
"published_at": "2023-01-11"
}
},
{
"source": "76633549",
"target": "17267165",
"label": "OWNED_BY",
"information_source": {
"cve": "ACxkvJZLvZKs",
"source": "RES"
}
},
{
"source": "76531048",
"target": "17267165",
"label": "OWNED_BY",
"information_source": {
"cve": "ACKgOwuZ3Rrw",
"source": "RES",
"published_at": "2015-08-03"
}
},
{
"source": "76612946",
"target": "17267165",
"label": "OWNED_BY",
"information_source": {
"cve": "ACHOUOkDmInm",
"source": "RES",
"published_at": "2016-04-21"
}
},
{
"source": "76632794",
"target": "77881423",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_2572292",
"cve": "2572292",
"shares_percent": 100,
"source": "DO",
"published_at": "2024-11-20",
"doc_extraction_id": "2135577",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2024/11/20/44003/05/2572292.pdf"
}
},
{
"source": "76049214",
"target": "77881423",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_2572668",
"cve": "2572668",
"shares_percent": 100,
"source": "DO",
"published_at": "2024-11-20",
"doc_extraction_id": "1889820",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2024/11/20/44003/05/2572668.pdf"
}
},
{
"source": "76632794",
"target": "77881423",
"label": "OWNED_BY",
"information_source": {
"shares_percent": 100,
"source": "SII_REC_COM"
}
},
{
"source": "76632793",
"target": "77881423",
"label": "OWNED_BY",
"information_source": {
"shares_percent": 100,
"source": "SII_REC_COM"
}
},
{
"source": "76049214",
"target": "77881423",
"label": "OWNED_BY",
"information_source": {
"shares_percent": 100,
"source": "SII_REC_COM"
}
},
{
"source": "59219100",
"target": "16365908",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2016-05-17",
"source": "SII_REP"
}
},
{
"source": "77963188",
"target": "59219100",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_2580888",
"cve": "2580888",
"source": "DO",
"doc_extraction_id": "1291559",
"published_at": "2024-12-07",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2024/12/07/44018/05/2580888.pdf"
}
},
{
"source": "77963188",
"target": "59219100",
"label": "OWNED_BY",
"information_source": {
"shares_percent": 100,
"source": "SII_REC_COM"
}
},
{
"source": "77590990",
"target": "76632794",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_2624458",
"cve": "2624458",
"shares_percent": 100,
"source": "DO",
"published_at": "2025-03-22",
"doc_extraction_id": "1373489",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2025/03/22/44106/05/2624458.pdf"
}
},
{
"source": "76162244",
"target": "76632794",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_2624466",
"cve": "2624466",
"shares_percent": 100,
"source": "DO",
"published_at": "2025-03-22",
"doc_extraction_id": "1370738",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2025/03/22/44106/05/2624466.pdf"
}
},
{
"source": "76162244",
"target": "76632794",
"label": "OWNED_BY",
"information_source": {
"shares_percent": 100,
"source": "SII_REC_COM"
}
},
{
"source": "76239620",
"target": "76632794",
"label": "OWNED_BY",
"information_source": {
"shares_percent": 100,
"source": "SII_REC_COM"
}
},
{
"source": "76165184",
"target": "76152508",
"label": "OWNED_BY",
"information_source": {
"shares_percent": 50,
"source": "SII_REC_COM"
}
}
],
"entityNames": {
"6288822": "EDUARDO RAFAEL LATORRE SALAS",
"16212300": "FERNANDA DEL CARMEN LATORRE ARAYA",
"16365908": "JOSE TOMAS LABBE FIGUEROA",
"17267165": "EDUARDO PATRICIO LATORRE ARAYA",
"17700725": "FELIPE ANDRES LATORRE ARAYA",
"53331365": "CONDOMINIO PARQUE INDUSTRIAL LOS YACIMIENTOS",
"59219100": "MANUCHAR NV",
"76049214": "INVERSIONES LATORRE SPA",
"76109383": "TRANSPORTES SOINVER LIMITADA",
"76152508": "INVERSIONES CERAS LIMITADA",
"76162244": "PROQUIEL TRANSPORTES QUIMICOS SPA",
"76165184": "COMERCIALIZADORA PROCERAS S.A.",
"76239620": "TRANSPORTES EDUARDO LATORRE Y COMPANIA SPA",
"76243196": "COMERCIALIZADORA E IMPORTADORA FELIPE ANDRES LATORRE ARAYA E.I.R.L.",
"76249044": "DOS E SPA",
"76531048": "INTECH REMATES SPA",
"76612946": "ALPHA MOTORS SPA",
"76626600": "RENTAS SOINVER S A",
"76632707": "INVERSIONES CARMEN SPA",
"76632793": "INMOBILIARIA LATORRE UNO SPA",
"76632794": "INVERSIONES NUEVA LATORRE SPA",
"76633549": "LAVCAR SPA",
"77320239": "INPARTS SPA",
"77372997": "ESTUDIO K SPA",
"77414574": "COMERCIALIZADORA REL SPA",
"77590990": "TRANSPORTES LATORRE LIMITADA",
"77695054": "T ACERCA SPA",
"77737301": "INVERSIONES LATBAR SPA",
"77791034": "COMERCIALIZADORA PINTURAS CUMBRES SPA",
"77881423": "PARAPENTE SPA",
"77963188": "PROQUIEL MANUCHAR SPA",
"78296030": "SOINVER INGENIERIA S A",
"78713520": "IMPORTADORA EDUARDO LATORRE Y CIA LTDA",
"78714990": "INMOBILIARIA SOINVER DOS LTDA",
"79559670": "PROQUIEL QUIMICOS SPA",
"99541230": "SOUTH TRADING AND SERVICES S A"
},
"_cache_info": {
"cached": true,
"cache_key": "dequienes_cache:dequienes_relationships:966a5a06bf0ed9da5ce8d7a43a610cb117281cb3174a11d869d15f89313d6819",
"retrieved_at": "2026-04-16T09:13:57.109168"
}
}

View File

@ -1,879 +0,0 @@
{
"pathCount": 81,
"relationships": [
{
"source": "79559670",
"target": "17700725",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2010-03-25",
"source": "SII_REP"
}
},
{
"source": "79559670",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "1994-10-05",
"source": "SII_REP"
}
},
{
"source": "79559670",
"target": "16212300",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2005-02-04",
"source": "SII_REP"
}
},
{
"source": "79559670",
"target": "17267165",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2010-03-25",
"source": "SII_REP"
}
},
{
"source": "79559670",
"target": "77881423",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_2733935",
"cve": "2733935",
"shares_percent": 30,
"source": "DO",
"published_at": "2025-11-27",
"doc_extraction_id": "2264351",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2025/11/27/44310/05/2733935.pdf"
}
},
{
"source": "79559670",
"target": "59219100",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_2733935",
"cve": "2733935",
"shares_percent": 70,
"source": "DO",
"published_at": "2025-11-27",
"doc_extraction_id": "2264351",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2025/11/27/44310/05/2733935.pdf"
}
},
{
"source": "79559670",
"target": "76632794",
"label": "OWNED_BY",
"information_source": {
"shares_percent": 100,
"source": "SII_REC_COM"
}
},
{
"source": "76165184",
"target": "79559670",
"label": "OWNED_BY",
"information_source": {
"shares_percent": 50,
"source": "SII_REC_COM"
}
},
{
"source": "76632707",
"target": "17700725",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-09-02",
"source": "SII_REP"
}
},
{
"source": "76632794",
"target": "17700725",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-11-11",
"source": "SII_REP"
}
},
{
"source": "76632793",
"target": "17700725",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-11-11",
"source": "SII_REP"
}
},
{
"source": "77881423",
"target": "17700725",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-04-04",
"source": "SII_REP"
}
},
{
"source": "76243196",
"target": "17700725",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2012-10-23",
"source": "SII_REP"
}
},
{
"source": "76049214",
"target": "17700725",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2016-04-08",
"source": "SII_REP"
}
},
{
"source": "76243196",
"target": "17700725",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_505687",
"cve": "505687",
"source": "DO",
"doc_extraction_id": "1406518",
"published_at": "2012-06-23",
"url": "https://www.diariooficial.interior.gob.cl/media/2012/06/23/505687_C_EIRL_20120623_firmado.pdf"
}
},
{
"source": "77881423",
"target": "17700725",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_2479373",
"cve": "2479373",
"shares_percent": 25,
"source": "DO",
"published_at": "2024-04-13",
"doc_extraction_id": "1678068",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2024/04/13/43825/05/2479373.pdf"
}
},
{
"source": "76109383",
"target": "17700725",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_808751",
"cve": "808751",
"shares_percent": 50,
"source": "DO",
"published_at": "2014-08-21",
"doc_extraction_id": "2270667",
"url": "https://www.diariooficial.interior.gob.cl/media/2014/08/21/808751_M_LTDA_20140821_firmado.pdf"
}
},
{
"source": "76632707",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-09-02",
"source": "SII_REP"
}
},
{
"source": "77963188",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2025-02-06",
"source": "SII_REP"
}
},
{
"source": "76632794",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-11-11",
"source": "SII_REP"
}
},
{
"source": "76632793",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-11-11",
"source": "SII_REP"
}
},
{
"source": "78714990",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "1995-07-18",
"source": "SII_REP"
}
},
{
"source": "78713520",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "1995-05-18",
"source": "SII_REP"
}
},
{
"source": "78296030",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "1995-05-18",
"source": "SII_REP"
}
},
{
"source": "77881423",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-04-04",
"source": "SII_REP"
}
},
{
"source": "77791034",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2023-05-09",
"source": "SII_REP"
}
},
{
"source": "76626600",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2006-09-04",
"source": "SII_REP"
}
},
{
"source": "76249044",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2012-11-28",
"source": "SII_REP"
}
},
{
"source": "76109383",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2010-08-20",
"source": "SII_REP"
}
},
{
"source": "76162244",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2011-08-26",
"source": "SII_REP"
}
},
{
"source": "76165184",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2019-07-04",
"source": "SII_REP"
}
},
{
"source": "76049214",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2016-04-08",
"source": "SII_REP"
}
},
{
"source": "53331365",
"target": "6288822",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2017-06-15",
"source": "SII_REP"
}
},
{
"source": "76626600",
"target": "6288822",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_799322",
"cve": "799322",
"source": "DO",
"doc_extraction_id": "1685839",
"published_at": "2014-07-25",
"url": "https://www.diariooficial.interior.gob.cl/media/2014/07/25/799322_M_LTDA_20140725_firmado.pdf"
}
},
{
"source": "78713520",
"target": "6288822",
"label": "OWNED_BY",
"information_source": {
"pub_id": "doh_id_2984726",
"doh_extraction_id": "480765",
"shares_percent": 95,
"source": "DOH",
"doh_id": "2984726",
"published_at": "1995-04-06",
"url": "https://www.diariooficial.interior.gob.cl/media/1995/04/06/do-19950406.pdf"
}
},
{
"source": "78296030",
"target": "6288822",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_799318",
"cve": "799318",
"source": "DO",
"doc_extraction_id": "1557120",
"published_at": "2014-07-25",
"url": "https://www.diariooficial.interior.gob.cl/media/2014/07/25/799318_M_LTDA_20140725_firmado.pdf"
}
},
{
"source": "77881423",
"target": "6288822",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_2479373",
"cve": "2479373",
"shares_percent": 25,
"source": "DO",
"published_at": "2024-04-13",
"doc_extraction_id": "1678068",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2024/04/13/43825/05/2479373.pdf"
}
},
{
"source": "76249044",
"target": "6288822",
"label": "OWNED_BY",
"information_source": {
"cve": "563766",
"match_type": "bt_pn",
"source": "DO",
"published_at": "2012-11-17",
"url": "https://www.diariooficial.interior.gob.cl/media/2012/11/17/563766_C_SPA_20121117_firmado.pdf"
}
},
{
"source": "99541230",
"target": "6288822",
"label": "OWNED_BY",
"information_source": {
"match_type": "i_bt",
"source": "DOH",
"published_at": "2003-12-03",
"doh_id": "6252959",
"url": "https://www.diariooficial.interior.gob.cl/media/2003/12/03/do-20031203.pdf"
}
},
{
"source": "76632707",
"target": "16212300",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-09-02",
"source": "SII_REP"
}
},
{
"source": "76632794",
"target": "16212300",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-11-11",
"source": "SII_REP"
}
},
{
"source": "76632793",
"target": "16212300",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-11-11",
"source": "SII_REP"
}
},
{
"source": "77881423",
"target": "16212300",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-04-04",
"source": "SII_REP"
}
},
{
"source": "77372997",
"target": "16212300",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2021-05-26",
"source": "SII_REP"
}
},
{
"source": "76239620",
"target": "16212300",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2011-05-02",
"source": "SII_REP"
}
},
{
"source": "76049214",
"target": "16212300",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2009-03-03",
"source": "SII_REP"
}
},
{
"source": "77881423",
"target": "16212300",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_2479373",
"cve": "2479373",
"shares_percent": 25,
"source": "DO",
"published_at": "2024-04-13",
"doc_extraction_id": "1678068",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2024/04/13/43825/05/2479373.pdf"
}
},
{
"source": "77372997",
"target": "16212300",
"label": "OWNED_BY",
"information_source": {
"cve": "ACcGRVee0mFz",
"source": "RES",
"published_at": "2021-05-26"
}
},
{
"source": "76632707",
"target": "17267165",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-09-02",
"source": "SII_REP"
}
},
{
"source": "76632794",
"target": "17267165",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-11-11",
"source": "SII_REP"
}
},
{
"source": "76632793",
"target": "17267165",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-11-11",
"source": "SII_REP"
}
},
{
"source": "77881423",
"target": "17267165",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2024-04-04",
"source": "SII_REP"
}
},
{
"source": "77737301",
"target": "17267165",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2023-03-14",
"source": "SII_REP"
}
},
{
"source": "77695054",
"target": "17267165",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2023-01-11",
"source": "SII_REP"
}
},
{
"source": "77414574",
"target": "17267165",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2021-07-19",
"source": "SII_REP"
}
},
{
"source": "77320239",
"target": "17267165",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2021-02-17",
"source": "SII_REP"
}
},
{
"source": "76612946",
"target": "17267165",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2016-04-21",
"source": "SII_REP"
}
},
{
"source": "76239620",
"target": "17267165",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2011-05-02",
"source": "SII_REP"
}
},
{
"source": "76049214",
"target": "17267165",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2009-03-03",
"source": "SII_REP"
}
},
{
"source": "77881423",
"target": "17267165",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_2479373",
"cve": "2479373",
"shares_percent": 25,
"source": "DO",
"published_at": "2024-04-13",
"doc_extraction_id": "1678068",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2024/04/13/43825/05/2479373.pdf"
}
},
{
"source": "77737301",
"target": "17267165",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_2288299",
"cve": "2288299",
"shares_percent": 50,
"source": "DO",
"published_at": "2023-03-22",
"doc_extraction_id": "1956740",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2023/03/22/43508/05/2288299.pdf"
}
},
{
"source": "77414574",
"target": "17267165",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_1981944",
"cve": "1981944",
"shares_percent": 100,
"source": "DO",
"published_at": "2021-07-23",
"doc_extraction_id": "1597070",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2021/07/23/43009/05/1981944.pdf"
}
},
{
"source": "77320239",
"target": "17267165",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_1898902",
"cve": "1898902",
"shares_percent": 100,
"source": "DO",
"published_at": "2021-02-19",
"doc_extraction_id": "1823771",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2021/02/19/42885/05/1898902.pdf"
}
},
{
"source": "77695054",
"target": "17267165",
"label": "OWNED_BY",
"information_source": {
"cve": "ACVgYG050Wid",
"source": "RES",
"published_at": "2024-05-08"
}
},
{
"source": "77695054",
"target": "17267165",
"label": "OWNED_BY",
"information_source": {
"cve": "ACsp82eIi12n",
"source": "RES",
"published_at": "2023-01-11"
}
},
{
"source": "76633549",
"target": "17267165",
"label": "OWNED_BY",
"information_source": {
"cve": "ACxkvJZLvZKs",
"source": "RES"
}
},
{
"source": "76531048",
"target": "17267165",
"label": "OWNED_BY",
"information_source": {
"cve": "ACKgOwuZ3Rrw",
"source": "RES",
"published_at": "2015-08-03"
}
},
{
"source": "76612946",
"target": "17267165",
"label": "OWNED_BY",
"information_source": {
"cve": "ACHOUOkDmInm",
"source": "RES",
"published_at": "2016-04-21"
}
},
{
"source": "76632794",
"target": "77881423",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_2572292",
"cve": "2572292",
"shares_percent": 100,
"source": "DO",
"published_at": "2024-11-20",
"doc_extraction_id": "2135577",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2024/11/20/44003/05/2572292.pdf"
}
},
{
"source": "76049214",
"target": "77881423",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_2572668",
"cve": "2572668",
"shares_percent": 100,
"source": "DO",
"published_at": "2024-11-20",
"doc_extraction_id": "1889820",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2024/11/20/44003/05/2572668.pdf"
}
},
{
"source": "76632794",
"target": "77881423",
"label": "OWNED_BY",
"information_source": {
"shares_percent": 100,
"source": "SII_REC_COM"
}
},
{
"source": "76632793",
"target": "77881423",
"label": "OWNED_BY",
"information_source": {
"shares_percent": 100,
"source": "SII_REC_COM"
}
},
{
"source": "76049214",
"target": "77881423",
"label": "OWNED_BY",
"information_source": {
"shares_percent": 100,
"source": "SII_REC_COM"
}
},
{
"source": "59219100",
"target": "16365908",
"label": "REPRESENTED_BY",
"information_source": {
"started_at": "2016-05-17",
"source": "SII_REP"
}
},
{
"source": "77963188",
"target": "59219100",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_2580888",
"cve": "2580888",
"source": "DO",
"doc_extraction_id": "1291559",
"published_at": "2024-12-07",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2024/12/07/44018/05/2580888.pdf"
}
},
{
"source": "77963188",
"target": "59219100",
"label": "OWNED_BY",
"information_source": {
"shares_percent": 100,
"source": "SII_REC_COM"
}
},
{
"source": "77590990",
"target": "76632794",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_2624458",
"cve": "2624458",
"shares_percent": 100,
"source": "DO",
"published_at": "2025-03-22",
"doc_extraction_id": "1373489",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2025/03/22/44106/05/2624458.pdf"
}
},
{
"source": "76162244",
"target": "76632794",
"label": "OWNED_BY",
"information_source": {
"pub_id": "cve_2624466",
"cve": "2624466",
"shares_percent": 100,
"source": "DO",
"published_at": "2025-03-22",
"doc_extraction_id": "1370738",
"url": "https://www.diariooficial.interior.gob.cl/publicaciones/2025/03/22/44106/05/2624466.pdf"
}
},
{
"source": "76162244",
"target": "76632794",
"label": "OWNED_BY",
"information_source": {
"shares_percent": 100,
"source": "SII_REC_COM"
}
},
{
"source": "76239620",
"target": "76632794",
"label": "OWNED_BY",
"information_source": {
"shares_percent": 100,
"source": "SII_REC_COM"
}
},
{
"source": "76165184",
"target": "76152508",
"label": "OWNED_BY",
"information_source": {
"shares_percent": 50,
"source": "SII_REC_COM"
}
}
],
"entityNames": {
"6288822": "EDUARDO RAFAEL LATORRE SALAS",
"16212300": "FERNANDA DEL CARMEN LATORRE ARAYA",
"16365908": "JOSE TOMAS LABBE FIGUEROA",
"17267165": "EDUARDO PATRICIO LATORRE ARAYA",
"17700725": "FELIPE ANDRES LATORRE ARAYA",
"53331365": "CONDOMINIO PARQUE INDUSTRIAL LOS YACIMIENTOS",
"59219100": "MANUCHAR NV",
"76049214": "INVERSIONES LATORRE SPA",
"76109383": "TRANSPORTES SOINVER LIMITADA",
"76152508": "INVERSIONES CERAS LIMITADA",
"76162244": "PROQUIEL TRANSPORTES QUIMICOS SPA",
"76165184": "COMERCIALIZADORA PROCERAS S.A.",
"76239620": "TRANSPORTES EDUARDO LATORRE Y COMPANIA SPA",
"76243196": "COMERCIALIZADORA E IMPORTADORA FELIPE ANDRES LATORRE ARAYA E.I.R.L.",
"76249044": "DOS E SPA",
"76531048": "INTECH REMATES SPA",
"76612946": "ALPHA MOTORS SPA",
"76626600": "RENTAS SOINVER S A",
"76632707": "INVERSIONES CARMEN SPA",
"76632793": "INMOBILIARIA LATORRE UNO SPA",
"76632794": "INVERSIONES NUEVA LATORRE SPA",
"76633549": "LAVCAR SPA",
"77320239": "INPARTS SPA",
"77372997": "ESTUDIO K SPA",
"77414574": "COMERCIALIZADORA REL SPA",
"77590990": "TRANSPORTES LATORRE LIMITADA",
"77695054": "T ACERCA SPA",
"77737301": "INVERSIONES LATBAR SPA",
"77791034": "COMERCIALIZADORA PINTURAS CUMBRES SPA",
"77881423": "PARAPENTE SPA",
"77963188": "PROQUIEL MANUCHAR SPA",
"78296030": "SOINVER INGENIERIA S A",
"78713520": "IMPORTADORA EDUARDO LATORRE Y CIA LTDA",
"78714990": "INMOBILIARIA SOINVER DOS LTDA",
"79559670": "PROQUIEL QUIMICOS SPA",
"99541230": "SOUTH TRADING AND SERVICES S A"
},
"_cache_info": {
"cached": true,
"cache_key": "dequienes_cache:dequienes_relationships:966a5a06bf0ed9da5ce8d7a43a610cb117281cb3174a11d869d15f89313d6819",
"retrieved_at": "2026-04-16T09:21:25.568697"
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff