CFDI
Objetivo
Documentar cómo sy-energy emite los comprobantes fiscales digitales y qué sucede con ellos después de emitirlos.
Responsabilidad del módulo
Tomar los documentos pendientes de facturar, timbrarlos con el proveedor externo, almacenarlos y cargarlos al portal SIM de CENACE.
Audiencia
Facturación, operación y desarrollo interno.
Estado documental
- Estado: Borrador
- Última actualización: 2026-08-02
- Owner: Pendiente
- SME requerido: facturación / integraciones
- Fuente resumida: comandos de facturación, integración de timbrado y catálogo fiscal de CENACE del repositorio.
Ciclo de vida de un CFDI
documento pendiente
│ ecd:create_invoices
▼
timbrado (Factura.com)
│ ecd:upload_invoices_to_s3
▼
almacenado en S3
│ ecd:upload_invoices
▼
cargado al portal SIM
│ ecd:invoices_status
▼
estatus confirmadoCada paso corre automáticamente en la cadena diaria, en horarios distintos. Si una etapa se retrasa, la siguiente corre igual y procesa menos documentos de los esperados.
Comandos
| Comando | Uso |
|---|---|
ecd:create_invoices {--chunk=} {--total=} ⚠️ | Crea todas las facturas pendientes. --total limita cuántas. |
ecd:create_invoice {--id=} {--csv} {--csv-path=} ⚠️ | Crea una factura. Con --csv solo exporta los documentos pendientes, sin emitir. |
ecd:upload_invoices_to_s3 {date?} {--ids=} | Sube las facturas del día a S3. |
ecd:upload_invoices {date?} {--chunk=} {--ids=} | Encola la carga al portal SIM. |
ecd:invoices_status {--from=} {--to=} | Consulta el estatus en el SIM. Fechas en formato d/m/Y. |
relate:cfdis {filename} {--step_2=} | Relaciona el UUID de un CFDI con su archivo usando el FUF. |
sync:cenace-cfdi {--file=} {--date=} | Sincroniza los CFDI que emite CENACE. |
Revisa antes de emitir
ecd:create_invoice --csv exporta los documentos pendientes con los datos con los que se facturarían, sin timbrar nada. Es la verificación previa recomendada antes de un cierre mensual.
Proveedor de timbrado
El timbrado se hace vía Factura.com, con URL de API, llave de API, llave secreta y versión de CFDI configuradas por variable de ambiente.
Dependencia única
No hay proveedor alterno configurado. Si Factura.com no está disponible durante un cierre mensual, la facturación se detiene por completo.
Comprobantes emitidos a CENACE
Los comprobantes dirigidos a CENACE usan reglas fiscales fijas, codificadas en el sistema y no configurables desde la interfaz: uso del CFDI, forma y método de pago, moneda, condiciones de pago, claves de producto y servicio, claves de unidad, tasa de impuesto y redondeo.
El sistema también distingue los folios según correspondan a transmisión o a distribución.
Cambiar cualquiera de estas reglas requiere cambio de código, no configuración.
Relación con otros módulos
| Módulo | Relación |
|---|---|
| ECD / CENACE | Origen de los documentos pendientes de facturar. |
| Billing | Determina los importes que se facturan. |
| Bots del SIM | Realizan la carga al portal y devuelven el estatus. |
Errores comunes
| Síntoma | Causa probable | Acción |
|---|---|---|
| No se crearon facturas | No hay documentos pendientes, o falló la conexión con el proveedor. | Revisar con ecd:create_invoice --csv y el log de proceso. |
| Se crearon pero no llegaron a S3 | Falla del bucket o de credenciales de AWS. | Reejecutar ecd:upload_invoices_to_s3. |
| Están en S3 pero no en el SIM | El bot no procesó la carga. | Revisar la cola de carga y el estado del bot. |
| El estatus no se actualiza | Notificación pendiente en el SIM, o credenciales del participante vencidas. | bot:queue --slug=cenace-notifications y reintentar. |
| Se timbró de más | — | No hay reversión automatizada. Escalar a desarrollo. |
Evidencia esperada
- Registro de creación de facturas en el log del día.
- Archivos presentes en el bucket de facturas.
- Estatus confirmado en el SIM para las facturas del periodo.
Riesgos y gaps
- No hay procedimiento documentado de cancelación o corrección de un CFDI emitido por error.
- Proveedor de timbrado único, sin contingencia documentada.
- No está documentado el manejo de los complementos de pago.
- Las reglas fiscales están codificadas: un cambio normativo exige despliegue.
Próxima revisión
Al documentar el procedimiento de cancelación de comprobantes.