Skip to content

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

CampoValor
TipoConjunto de bots AWS Lambda
LenguajePython
AutomatizaciónSelenium con Chrome headless
EmpaquetadoImagen Docker
DisparoMensaje SQS, una cola por bot
DespliegueAWS 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.

BotQué hace
cenace-notificationsRetira la notificación inicial del SIM que bloquea la navegación de los demás bots.
reaDescarga la REA para desplegarla en sy-energy.
cenace-documentsDescarga las facturas emitidas por CENACE, base de los complementos de pago.
Carga de facturasRecibe por cola los documentos a buscar en S3 y subirlos al SIM; devuelve la respuesta del portal.
Estatus de facturasVerifica el estatus de las facturas cargadas, por fecha de publicación.
bank-oneExtrae los FUF y totales de la sección de Pagos, para validar que no falten documentos antes de crear el FOP.
bank-twoCrea el FOP.
bank-threeEnvía la información del FOP de vuelta a sy-energy.
OfertasPendiente 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:

text
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-energy

Dos 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:

bash
php artisan bot:queue --slug=cenace-notifications

2. Las tres etapas bancarias, en orden

text
bank-one    valida FUF y totales

bank-two    crea el FOP

bank-three  devuelve el FOP a sy-energy

Ejecutar 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

SistemaRelación
sy-energyLos despacha y consume sus respuestas. Ver Bots y automatizaciones.
Portal SIM de CENACEEl sistema que operan.
S3Origen de los documentos que se suben al SIM.

Operación

Calendario, desde el scheduler de sy-energy:

CuándoBot
Diario, 08:30rea
Diario, 06:45Carga de facturas
Diario, 08:15Estatus de facturas
Lunes, 07:00bank-one
Bajo demandacenace-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-two y bank-three se 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.