Proceso de facturación
Objetivo
Dar la vista completa del proceso de facturación de punta a punta: de la energía consumida al comprobante cargado en el portal de CENACE.
Audiencia
Facturación, operación, soporte y stakeholders.
Alcance
El flujo completo y los puntos de control. El procedimiento paso a paso con comandos está en Ciclo mensual de facturación.
Estado documental
- Estado: Borrador
- Última actualización: 2026-08-02
- Owner: Pendiente
- SME requerido: facturación / operación
- Fuente resumida: comandos de facturación, constructores de estado de cuenta y tipos de producto del repositorio.
Vista general
1. Demanda cuánta energía consumió el centro de carga
▼
2. ECD de CENACE qué pasó en el mercado ese día
▼
3. Cálculo del costo según el tipo de producto del contrato
▼
4. Estado de cuenta desglose mensual por centro de carga
▼
5. CFDI comprobante fiscal timbrado
▼
6. Carga al SIM entrega del documento a CENACE
▼
7. Confirmación de estatusLos pasos 1 y 2 ocurren de forma continua durante todo el mes. Los pasos 3 a 5 son el cierre mensual. Los pasos 6 y 7 forman parte de la cadena diaria.
Paso 1 — Demanda
La demanda se sincroniza a diario. Un hueco no genera error visible: genera un importe menor al real.
Punto de control: antes de calcular, confirmar que la demanda del mes está completa para todos los centros de carga. Ver Demanda.
Paso 2 — ECD de CENACE
El Estado de Cuenta Diario llega con desfase, porque CENACE no publica de inmediato.
Punto de control:
php artisan passthrough:check-cenace-energy <inicio> <fin>Si reporta energía faltante, el cálculo saldrá incompleto. Ver ECD / CENACE.
Paso 3 — Cálculo del costo
Depende del tipo de producto del contrato:
| Tipo de producto | Cómo se calcula |
|---|---|
| Fijo / Fijo con pérdidas | Precio pactado en el contrato aplicado a la demanda. |
| Pass-through | Se suman los componentes reales del mercado: MDA, MTR, congestión, distribución, ancho de banda, capacidad y CELs. |
Detalle en Billing pass-through y Billing.
Paso 4 — Estado de cuenta
Un documento mensual por centro de carga, con el desglose del periodo.
Requisito estricto: exactamente un contrato activo por centro de carga en el periodo. Con cero o con más de uno, ese centro no genera documento.
Punto de control: comparar los estados de cuenta generados contra el CSV de contracts:active del periodo. Lo que falte, falta por una razón.
Paso 5 — CFDI
El comprobante se timbra con Factura.com. Ver CFDI y Factura.com.
Punto de control previo:
php artisan ecd:create_invoice --csvExporta los documentos pendientes con los datos con los que se facturarían, sin emitir nada. Es la última oportunidad de detectar un error antes de que el comprobante exista.
Pasos 6 y 7 — Carga al SIM y confirmación
Las facturas se depositan en S3 y un bot las carga al portal SIM. Después se consulta el estatus.
Ambos pasos corren automáticamente en la cadena diaria; solo hay que ejecutarlos a mano si el cierre se hizo fuera de esa ventana.
Calendario
| Momento | Qué ocurre |
|---|---|
| Diario, 05:00 – 08:30 | Sincronización de ECD, creación de facturas pendientes, carga a S3 y al SIM, verificación de estatus. |
| Día 1 del mes | Facturación de contratos de costo fijo. |
| Día 4 del mes | Facturación de contratos pass-through, después de la fecha de corte del participante. |
Puntos donde el proceso se rompe
Ordenados por frecuencia esperada:
| Punto | Síntoma | Detección |
|---|---|---|
| Contrato | Centro de carga sin estado de cuenta. | Comparar contra contratos activos. |
| Demanda | Importes menores a lo esperado. | Revisar completitud del mes. |
| ECD | Cálculos pass-through en cero. | passthrough:check-cenace-energy |
| Colas | Comandos que "terminan bien" sin efecto. | queue:failed y estado de Supervisor. |
| Timbrado | No se emite ninguna factura. | Log de proceso del día. |
| SIM | Facturas emitidas que no llegan a CENACE. | ecd:invoices_status |
Evidencia mínima de un cierre
- CSV de contratos activos del periodo.
- Resultado de las validaciones previas.
- Lista de estados de cuenta generados.
- Facturas emitidas con su UUID.
- Confirmación de estatus en el SIM.
Riesgos y gaps
- No hay reversión automatizada de facturas emitidas por error.
- No existe una vista consolidada del avance del cierre; hoy se arma revisando varias fuentes.
- No está documentado el tratamiento de reliquidaciones posteriores a la facturación.
- No hay registro histórico de qué se ejecutó en cada cierre.
Próxima revisión
Al resolver las preguntas abiertas del ciclo mensual.