Skip to main content
Tiempo de lectura: ~3 minutos.
Cuando el PAC rechaza un CFDI, el error trae embebido un código de catálogo del SAT con el formato CFDI#####. Esta página documenta los códigos que Timbrix ha visto y verificado en producción/sandbox, con su causa real y su solución. No es un catálogo exhaustivo del Anexo 20 del SAT — el catálogo oficial de errores de validación tiene un rango mucho más amplio de códigos; aquí solo documentamos los que Timbrix confirma consistentemente en su integración con el PAC.

Cómo se ve el error en cada canal

El PAC siempre responde el error como texto libre, nunca como un {code, message} estructurado. El código CFDI##### viene embebido dentro de ese texto (ej. "Error timbrado: CFDI40143 - Este RFC del receptor no existe..."), y cada canal de Timbrix te lo entrega dentro de ese mismo texto libre: En los tres casos, el patrón para extraer el código es el mismo: buscar /\bCFDI\d{4,6}\b/ dentro del texto. Timbrix nunca separa este código a un campo estructurado aparte — trátalo siempre como texto libre que puede incluir contexto adicional del PAC.

CFDI40130 — Falta InformacionGlobal

Causa: El CFDI es de tipo Ingreso para “público en general” (receptor.rfc = XAXX010101000, receptor.nombre = PUBLICO EN GENERAL) pero no incluye el nodo InformacionGlobal (periodicidad, meses, año), que el SAT exige en ese caso. Solución: Agrega InformacionGlobal.Periodicidad, InformacionGlobal.Meses e InformacionGlobal.Año al timbrar, y asegúrate de que receptor.UsoCFDI sea S01. Ejemplo del texto libre:

CFDI40143 — RFC del receptor no inscrito

Causa: El RFC del receptor no está inscrito o vigente ante el SAT. Es el error más común en sandbox, donde es fácil usar un RFC inventado. Solución: Usa XAXX010101000 (público en general) para pruebas, o un RFC real y vigente en producción. Ejemplo del texto libre:

CFDI40102 — puede ser un falso positivo

Causa aparente: El mensaje dice que “el resultado de la digestión debe ser igual al resultado de la desencripción del sello”, lo que parece un problema con tu CSD (certificado de sello digital). Causa real, con más frecuencia: El PAC internamente reintenta varias variantes de formato de certificado antes de fallar, pero siempre reporta el error de la primera variante como resultado final — incluso cuando la causa real es otra. Las dos causas reales más comunes detrás de un CFDI40102 son:
  • date enviado en UTC en vez de hora de Ciudad de México. El PAC compara la fecha de expedición contra su propio reloj en hora de México sin ninguna conversión; un valor en UTC se ve ~6 horas en el futuro y cae fuera de la ventana de 72 horas que exige el SAT.
  • RFC del receptor no inscrito — la misma causa que CFDI40143.
Solución: Antes de asumir que tu CSD está mal, revisa primero que date esté en hora de México (America/Mexico_City, sin zona horaria en el string) y que el RFC del receptor sea válido. Solo si ambos son correctos y el error persiste, investiga el par .cer/.key de tu CSD. Ejemplo del texto libre:
Este es el error más engañoso de los tres: su mensaje apunta a un problema de certificado, pero en la mayoría de los casos reales confirmados por Timbrix la causa era la zona horaria de date o un RFC de receptor no inscrito — no el CSD.

Nota sobre el catálogo completo de errores del SAT

El Anexo 20 del SAT define un catálogo de validación mucho más amplio que los tres códigos anteriores, cubriendo cada regla estructural del XML CFDI 4.0. Esta página no intenta ser ese catálogo completo — solo documenta los códigos que Timbrix ha confirmado y verificado en su propia integración con el PAC. Si te encuentras con un código CFDI##### que no aparece aquí, revisa el texto completo del mensaje (suele incluir una descripción legible del campo o regla que falló) y, si el problema persiste, contacta a soporte con el UUID o el payload usado.

Glosario fiscal

Términos como CFDI, RFC, PAC y CSD explicados.

API Reference

Endpoints, autenticación y límites de tasa.