Skip to content

LibreDTE/libredte-migration

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LibreDTE Migration Tools

Exportador LibreDTE Enterprise (XML, listados y metadatos)

Herramienta libredte-enterprise-export.py para descargar desde la API de LibreDTE Enterprise los DTE emitidos y recibidos de un contribuyente, por rango de períodos mensuales (YYYYMM). Genera XML en disco, conserva el listado por período en JSON y vuelca metadatos por documento en YAML.

Requisitos

  • Python 3.11 o superior.
  • Cuenta en LibreDTE con hash de API del usuario.
  • RUT del contribuyente a respaldar.

Instalación

En el directorio del repositorio:

python -m venv venv
source venv/bin/activate   # Windows: venv\Scripts\activate
pip install -r requirements.txt

Configuración

Copia la plantilla de variables y edítala:

cp .env-dist .env

Completa al menos hash y RUT (sin dígito verificador).

Si ya exportaste variables con el mismo nombre en el shell, tienen prioridad sobre el archivo .env (python-dotenv no las sobrescribe). Para forzar lo del .env, por ejemplo: unset LIBREDTE_ENTERPRISE_RUT.

Ejecución

Desde la raíz del proyecto (o indicando la ruta al script):

python libredte-enterprise-export.py \
  --hash <hash_api> \
  --rut <rut_sin_dv> \
  --desde 202301 \
  --hasta 202312

Argumentos (todos opcionales salvo que no estén en .env; ver tabla de variables):

Opción Descripción
--hash Hash de autenticación de la API (Basic: usuario X, contraseña el hash).
--rut RUT del contribuyente sin DV. Acepta formatos con puntos o con DV en el valor.
--desde Primer período YYYYMM (por defecto: mes en curso).
--hasta Último período YYYYMM (por defecto: mes en curso).
--url URL base de la API (por defecto https://libredte.cl).
--meses-sin-cache-listado Meses calendario recientes cuyo listado.json no se lee de caché; 0 = caché en todos los períodos (por defecto 3).

Prioridad: línea de comandosvariables de entornovalores por defecto.

Para ver todas las opciones:

python libredte-enterprise-export.py --help

Variables de entorno

Ejemplo de distribución en .env-dist:

Variable Uso
LIBREDTE_ENTERPRISE_HASH Hash de API (equivalente a --hash).
LIBREDTE_ENTERPRISE_RUT RUT sin DV (equivalente a --rut).
LIBREDTE_ENTERPRISE_DESDE Período inicial YYYYMM.
LIBREDTE_ENTERPRISE_HASTA Período final YYYYMM.
LIBREDTE_ENTERPRISE_URL URL base de la API.
LIBREDTE_ENTERPRISE_MESES_SIN_CACHE_LISTADO Entero: meses sin caché de listado; 0 desactiva la regla.

Salida en disco

Raíz por contribuyente: var/export/<rut>/.

  • XML emitidos: dte_emitidos/<YYYYmm>/<tipo:03d>/LibreDTE_<rut>-<dv>_T<tipo>F<folio>.xml
  • XML recibidos: dte_recibidos/<YYYYmm>/<tipo:03d>/LibreDTE_<emisor>-<dv>_T<tipo>F<folio>.xml
  • Listado del período: dte_emitidos/<YYYYmm>/listado.json y dte_recibidos/<YYYYmm>/listado.json
  • Metadatos por documento: mismo path y nombre base que el XML, extensión .yaml (contenido del objeto del listado para ese DTE).

Si el XML ya existe, no se vuelve a descargar. Los listados en JSON se reutilizan salvo la regla de “meses sin caché” y la respuesta 404 con lista vacía de la API (se trata como período sin documentos sin abortar).

Caché del listado y YAML

  • Listado: los últimos N meses calendario (configurable, por defecto 3) siempre se piden de nuevo a la API y se actualiza listado.json. Con N=0 se puede usar caché de listado en cualquier período si el archivo existe.
  • YAML: si el listado vino de caché y el .yaml ya existe, no se reescribe; si el listado es nuevo (API en esa corrida), se escriben o pisan todos los .yaml de ese listado.

Licencia

El script libredte-enterprise-export.py se distribuye bajo GNU AGPL v3 (ver cabecera del archivo).

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages