memsim-cenace-scrapers
Qué es
El conjunto de bots que operan el portal SIM de CENACE en nombre de sy-energy: descargan documentos, suben facturas, consultan estatus y crean los folios de pago.
CENACE no ofrece API para estas operaciones. Todo se hace navegando el portal con un navegador automatizado.
Tipo de sistema
| Campo | Valor |
|---|---|
| Tipo | Conjunto de bots AWS Lambda |
| Lenguaje | Python |
| Automatización | Selenium con Chrome headless |
| Empaquetado | Imagen Docker |
| Disparo | Mensaje SQS, una cola por bot |
| Despliegue | AWS SAM (us-east-2), ambientes de desarrollo y producción |
Estado documental
- Estado: Borrador
- Última actualización: 2026-08-02
- Owner: Pendiente
- SME requerido: desarrollo / operación
- Fuente resumida: estructura del repositorio, plantilla de despliegue y comando de despacho de
sy-energy.
Los bots
Todos se despachan desde sy-energy con bot:queue --slug=<bot>, salvo los de carga y estatus de facturas, que tienen su propio comando.
| Bot | Qué hace |
|---|---|
cenace-notifications | Retira la notificación inicial del SIM que bloquea la navegación de los demás bots. |
rea | Descarga la REA para desplegarla en sy-energy. |
cenace-documents | Descarga las facturas emitidas por CENACE, base de los complementos de pago. |
| Carga de facturas | Recibe por cola los documentos a buscar en S3 y subirlos al SIM; devuelve la respuesta del portal. |
| Estatus de facturas | Verifica el estatus de las facturas cargadas, por fecha de publicación. |
bank-one | Extrae los FUF y totales de la sección de Pagos, para validar que no falten documentos antes de crear el FOP. |
bank-two | Crea el FOP. |
bank-three | Envía la información del FOP de vuelta a sy-energy. |
| Ofertas | Pendiente de documentar. |
Además, el proyecto incluye un componente de respuesta que estandariza la comunicación de vuelta hacia sy-energy.
Estructura
Una carpeta por bot dentro de src/, más componentes compartidos:
src/
browser.py arranque y configuración de Chrome
helpers/ utilidades compartidas
notifications/ retiro de la notificación del SIM
rea/ descarga de la REA
cenacedocuments/ documentos de CENACE
upload/ carga de facturas
status/ estatus de facturas
bankreference/ etapas del FOP
offer/ ofertas
response/ comunicación de vuelta a sy-energyDos secuencias obligatorias
1. Notificaciones antes que todo
Si el SIM tiene una notificación pendiente, la muestra antes que cualquier otra pantalla y ningún otro bot logra navegar.
Ante fallas simultáneas de varios bots, esta es siempre la primera hipótesis:
php artisan bot:queue --slug=cenace-notifications2. Las tres etapas bancarias, en orden
bank-one valida FUF y totales
↓
bank-two crea el FOP
↓
bank-three devuelve el FOP a sy-energyEjecutar bank-two sin haber corrido bank-one significa crear el folio de pago sin saber si faltan documentos.
Credenciales
Los bots entran al SIM con las credenciales del participante: certificado (.cer), llave (.key), usuario y contraseña. Se administran en la infraestructura de AWS.
El mensaje que dispara cada bot incluye el participante propietario, de modo que el bot sabe con qué credenciales entrar.
Fallas simultáneas en varios bots
Tienen dos causas probables: notificación pendiente en el SIM, o credenciales del participante vencidas o rotadas. Descartar la primera antes de escalar la segunda.
Fragilidad
Navegación de portal, sin alternativa
Toda la operación con CENACE que no pasa por su API depende de estos bots. Un cambio de interfaz en el SIM los rompe sin aviso previo, y no hay ruta alterna.
Es el punto más frágil del ecosistema y, al mismo tiempo, el que sostiene la entrega de documentos fiscales.
Relación con otros sistemas
| Sistema | Relación |
|---|---|
sy-energy | Los despacha y consume sus respuestas. Ver Bots y automatizaciones. |
| Portal SIM de CENACE | El sistema que operan. |
| S3 | Origen de los documentos que se suben al SIM. |
Operación
Calendario, desde el scheduler de sy-energy:
| Cuándo | Bot |
|---|---|
| Diario, 08:30 | rea |
| Diario, 06:45 | Carga de facturas |
| Diario, 08:15 | Estatus de facturas |
| Lunes, 07:00 | bank-one |
| Bajo demanda | cenace-notifications, cenace-documents, bank-two, bank-three |
Riesgos y gaps
- Sin alternativa a la navegación del portal.
- No hay alerta cuando un bot se encola y nunca responde.
- No está documentado el tiempo esperado de respuesta de cada bot, así que no hay criterio para decidir cuándo se tardó demasiado.
- Los bots de ofertas y de carga de documentos están pendientes de documentar.
bank-twoybank-threese ejecutan a mano sin procedimiento documentado ni responsable asignado.- No está documentado el manejo de reintentos cuando un bot falla a mitad del proceso en el portal.
Próxima revisión
Al documentar los bots pendientes y el procedimiento del FOP con operación.