| .gitea/workflows | ||
| app | ||
| docs | ||
| migrations | ||
| scripts | ||
| tests | ||
| .flake8 | ||
| .gitignore | ||
| analisis_sii.py | ||
| CHANGELOG.md | ||
| import_sii.py | ||
| LICENSE | ||
| pytest.ini | ||
| README.md | ||
| requirements.txt | ||
| requirements_frozen.txt | ||
| run.py | ||
Servicio de Registro de Empresas
-
Este programa básicamente se crea para generar una api pública para ser utilizado en distintos programas de facturación electrónica y tener un acceso actualizado de los datos de contribuyentes Chilenos, principlamente para fomentar el uso masivo del ERP Odoo y Flektra, distribuidos por la empresa y futura cooperativa https://odoocoop.cl/
-
Se habilita la opción de:
-
Recibir mediante PUT la actualización de 1-n registros.
-
Sincronización total de la base de datos a modo de "Enjambre" con el servidor principal de este proyecto (por ahora https://sre.cl).
-
El servicio contará con un token público "token_publico" el cual dará derecho a 200 consultas diarias.
-
Podrán registrarse para obtener un token premium por el valor de CLP$1.000 +iva (si lo requieren con factura) anuales, que permitirá 50 consultas diarias.
-
El dinero obtenido por token es un valor simbólico de "donación", para efectos de mantención y mejoras del sistema.
Información que entrega
versión pública
- Razón Social
- RUT
- DTE Email
- Actecos *
- Glosa de Giro *
- Fecha Resolución
- Dirección ( comuna, provincia, región )*
Para registrados ( todo lo anterior +)
- Email *
- Teléfono *
- Logo*
- Información puede no estar disponible
Installation
First install virtualenv
To install Flask-Admin, simply::
pip3 install flask-admin
-
Create and activate a virtual environment::
git clone https://gitlab.com/dansanti/servicio_registro_empresas.git cd servicio_registro_empresas
-
Create and activate a virtual environment::
virtualenv env -p python3 source env/bin/activate
-
Install requirements::
pip3 install -r 'requirements.txt'
-
Run the application::
python3 ./run.py
Documentación :
https://flask-restful.readthedocs.io/en/latest/
http://flask-admin.org/
Archivo CSV del SII :
https://drive.google.com/open?id=1GrQLy3nfOtCj7dZWfjRRY7gGQZvJFQY3
Procedimiento de actualización de base de datos de empresas
Origen de los datos
El SII publica periódicamente archivos CSV con el padrón de contribuyentes autorizados para emitir DTE (facturas electrónicas). Los archivos se llaman:
ce_empresas_dwnld_YYYYMMDD.csv
Contienen todas las empresas activas a la fecha del archivo (snapshot completo). Cada entrega puede incluir registros nuevos (nuevas empresas autorizadas) y actualizaciones (cambios de email DTE, URL, resolución, etc.).
Dónde se almacenan
/opt/SRE/DBempresas-sii/
2020/ ce_empresas_dwnld_20XXXXXX.csv.gz (históricos comprimidos)
2021/ ...
2025/ ...
2026/ ce_empresas_dwnld_20260406.csv ← archivo nuevo sin comprimir
README.md
Cada directorio anual tiene su propio README.md con el historial de archivos.
Proceso automático (crontab — cada hora en punto)
El watcher scripts/sii_watch_empresas.py corre cada hora:
0 * * * * /opt/SRE/env/bin/python3 /opt/SRE/scripts/sii_watch_empresas.py
- Detecta archivos nuevos en
DBempresas-sii/YYYY/comparando consii_import_log - Verifica que no haya otra importación en curso (lock
/tmp/sii_import.lock) - Dispara
import_sii.pysi hay archivos pendientes - Registra actividad en
/opt/SRE/logs/sii_watch.log
Proceso manual (administrador)
Ver estado de todos los archivos:
cd /opt/SRE
/opt/SRE/env/bin/python3 import_sii.py --listar
/opt/SRE/env/bin/python3 import_sii.py --status
Procesar inmediatamente sin esperar al cron:
cd /opt/SRE
/opt/SRE/env/bin/python3 import_sii.py
Reprocesar un archivo específico:
cd /opt/SRE
/opt/SRE/env/bin/python3 import_sii.py --force ce_empresas_dwnld_20260406.csv
Incorporar un archivo nuevo:
# Copiar en el directorio del año correspondiente
cp /ruta/al/archivo/ce_empresas_dwnld_20261015.csv /opt/SRE/DBempresas-sii/2026/
# El watcher lo detectará en la próxima hora, o ejecutar manualmente
Qué hace el importador (import_sii.py)
| Caso | Acción |
|---|---|
| RUT nuevo en el CSV | INSERT en company_info con fecha_incorporacion = fecha del archivo |
| RUT existente con datos distintos | UPDATE de los campos que cambiaron |
| RUT existente sin cambios | Skip (contado en sin_cambios) |
Cambio de dte_email o url |
INSERT en company_info_history (trazabilidad) |
| Proceso exitoso | Comprime .csv → .csv.gz |
| Resultado | Registrado en tabla sii_import_log |
Logs
| Log | Descripción |
|---|---|
/opt/SRE/logs/sii_watch.log |
Verificaciones horarias del watcher |
/opt/SRE/logs/sii_import_YYYYMMDD_HHMMSS.log |
Detalle línea a línea de cada importación |
Historial de procesamiento (BD)
# Consulta rápida vía admin web: http://192.168.100.84:5000/admin/siiimportlog/
# O directamente:
/opt/SRE/env/bin/python3 import_sii.py --status