Skip to content

Incidentes de CFDI y Factura.com

Cuándo usar este documento

Cuando falla la emisión de comprobantes, su carga al portal SIM o la confirmación de su estatus.

Audiencia

Soporte y facturación.

Estado documental

  • Estado: Borrador
  • Última actualización: 2026-08-02
  • Owner: Pendiente
  • SME requerido: facturación / integraciones
  • Fuente resumida: comandos de facturación e integración de timbrado.

Antes de empezar: dónde se detuvo

El comprobante recorre cinco estaciones. Ubicar en cuál se quedó ahorra la mitad del diagnóstico:

text
1. pendiente  →  2. timbrado  →  3. en S3  →  4. cargado al SIM  →  5. estatus confirmado
Se quedó enSíntoma
1No existe el comprobante.
2Existe el documento origen, no hay UUID.
3Hay UUID, el archivo no está en el bucket.
4Está en S3, CENACE no lo tiene.
5CENACE lo tiene, el sistema no lo refleja.

Síntomas

SíntomaIr a
No se emitió ninguna facturaFalla total de timbrado
Se emitieron algunas y otras noFalla parcial
Emitidas pero no llegaron al SIMNo llegan al portal
El estatus no se actualizaEstatus sin confirmar
Se emitió un comprobante incorrectoComprobante emitido por error

Falla total de timbrado

Síntoma: ecd:create_invoices no produce ningún comprobante.

Causas probables, en orden:

  1. No hay documentos pendientes. No es una falla. Verificar:
    bash
    php artisan ecd:create_invoice --csv
    Si la exportación viene vacía, el problema está aguas arriba: no llegaron los ECD o no se generaron los estados de cuenta.
  2. Credenciales del proveedor incorrectas. Revisar el log de proceso.
  3. Factura.com no disponible. Es un bloqueo externo: no hay proveedor alterno.
  4. Workers caídos. El comando encola; si nadie procesa, no se emite nada.

Recuperación: resuelta la causa, reejecutar. Para una primera verificación acotada:

bash
php artisan ecd:create_invoices --total=1

Falla parcial

Síntoma: unos comprobantes se emitieron y otros no.

Causa habitual: datos fiscales incompletos o inválidos en los documentos que fallaron — no un problema del proveedor.

Diagnóstico:

bash
php artisan ecd:create_invoice --csv

Muestra qué sigue pendiente y con qué datos. Comparar contra los que sí se emitieron.

Recuperación: corregir los datos de la empresa o del documento en su módulo de origen, y reemitir solo los pendientes.

No llegan al portal

Síntoma: hay UUID pero CENACE no tiene el documento.

Diagnóstico: avanzar estación por estación.

VerificarCómo
¿Está en S3?Revisar el bucket de facturas para la fecha.
¿Se encoló la carga?Revisar la cola de carga y queue:failed.
¿El bot respondió?Revisar el log de proceso.

Recuperación:

bash
php artisan ecd:upload_invoices_to_s3 <fecha>
php artisan ecd:upload_invoices <fecha>

Ambos aceptan --ids= para acotar a documentos específicos.

Causa frecuente: una notificación pendiente en el SIM bloquea la navegación de los bots.

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

Estatus sin confirmar

Síntoma: el documento llegó al SIM, el sistema no lo refleja.

Recuperación:

bash
php artisan ecd:invoices_status --from=<dd/mm/YYYY> --to=<dd/mm/YYYY>

Las fechas van en formato d/m/Y, distinto del resto de los comandos.

Si el bot no responde, revisar credenciales del participante y notificaciones pendientes en el SIM.

Comprobante emitido por error

Sin reversión automatizada

No existe procedimiento de cancelación ni sustitución implementado en el sistema. Un comprobante timbrado existe ante el SAT.

No intentar corregirlo por cuenta propia. Escalar de inmediato a desarrollo y al área de facturación, con el UUID, el periodo y el centro de carga.

Prevención

La verificación previa evita la mayoría de estos incidentes:

bash
php artisan ecd:create_invoice --csv

Exporta lo que se va a facturar, con sus datos, sin emitir. Es la última oportunidad de detectar un error mientras todavía es reversible.

Evidencia mínima

  • UUID, o identificador del documento origen si aún no se timbró.
  • Periodo y centro de carga.
  • Instancia del participante.
  • Estación donde se detuvo el proceso.
  • Respuesta del proveedor o del bot, sanitizada.
  • Acción tomada y resultado.

Riesgos y gaps

  • No hay procedimiento de cancelación de CFDI.
  • Proveedor de timbrado único, sin contingencia.
  • No hay alerta cuando una factura emitida no llega al SIM.
  • No está documentado el manejo de complementos de pago.

Próxima revisión

Al documentar el procedimiento de cancelación con facturación.