Error CFDI40106 al timbrar: el atributo Certificado debe contener un archivo .cer válido
El error CFDI40106 indica que el certificado incluido en tu comprobante no cumple con lo que el SAT espera: un archivo .cer válido del certificado de sello digital (CSD). Suele deberse a usar la e.firma en lugar del CSD, a un certificado vencido o revocado, o a un archivo dañado. En esta guía te explicamos cómo identificarlo y qué hacer.
Resumen rápido del error
- Código: CFDI40106
- Campo: Certificado
- Nodo del XML:
cfdi:Comprobante - Regla del SAT (Anexo 20): El atributo debe contener un archivo .cer válido.
- Mensaje de rechazo: El certificado no cumple con alguno de los valores permitidos.
- Cuándo aparece: al timbrar, antes de que se genere el UUID.
¿Qué significa el error CFDI40106?
Todo CFDI se firma con el CSD del emisor. El atributo Certificado del comprobante contiene ese certificado en formato Base64, junto con NoCertificado y el Sello. El PAC revisa que el contenido sea un certificado válido; si no lo es, devuelve CFDI40106.
El CSD no es lo mismo que la FIEL (e.firma). La e.firma sirve para identificarte y firmar trámites ante el SAT; el CSD se usa específicamente para sellar comprobantes. Un archivo .cer de la e.firma no es válido para timbrar facturas.
Dónde se valida: el nodo Comprobante y Certificado
La validación se hace sobre el atributo Certificado del nodo raíz cfdi:Comprobante. Allí no se escribe el nombre del archivo, sino el contenido del certificado codificado en Base64.
El sello (Sello) se genera con la llave privada del CSD y se valida con el certificado incluido en el comprobante. Si el certificado no es válido, la verificación del sello no puede completarse; por eso es común ver este error junto con problemas de sello, como CFDI40102.
Causas más comunes del error CFDI40106
- Se cargó la e.firma en lugar del CSD. Es una causa frecuente. Los archivos de la e.firma y los del CSD se parecen, pero no son intercambiables.
- El CSD está vencido. Los certificados de sello digital tienen una vigencia de cuatro años desde su emisión.
- El CSD fue revocado o dejó de estar activo. Se generó uno nuevo, se canceló por el contribuyente o el SAT lo dejó sin efecto.
- El archivo está dañado. Se descargó incompleto, se editó, se abrió y se guardó con otro programa o se codificó mal.
- No corresponde al RFC emisor. Se cargó el CSD de otra empresa o de otro RFC del mismo contador.
- Se envió un archivo que no es un .cer. Por ejemplo, la llave privada (
.key) o un PDF en lugar del certificado. - El certificado no fue emitido por el SAT. El archivo
.ceres un certificado de otra autoridad, uno autofirmado, uno de prueba de otro sistema o un archivo que solo se parece a un CSD. El PAC solo acepta certificados de sello digital emitidos por el SAT. - El NoCertificado no corresponde al certificado. El atributo
NoCertificadodebe ser el número de serie del mismo.cerque viaja enCertificado. Si se cambió el certificado pero se dejó el número anterior (o a la inversa), los dos datos no coinciden y el comprobante se rechaza.
Cómo corregir el error CFDI40106 paso a paso
- Confirma el tipo de archivo. El CSD se compone de un
.cery un.keycon su contraseña de llave privada. No uses el par de la e.firma. - Revisa la vigencia. Verifica en el SAT que tu CSD esté vigente y no revocado. Si venció, tramita uno nuevo.
- Confirma el emisor del certificado. Asegúrate de que el
.cerse descargó del SAT para tu RFC y no es un archivo de prueba, autofirmado o de otro origen. - Comprueba el RFC. El certificado debe pertenecer al RFC emisor del comprobante.
- Verifica que el NoCertificado coincida. Compara el número de serie del
.cercon el atributoNoCertificadodel XML. Si usas un sistema de facturación, vuelve a cargar el CSD para que ambos datos se generen juntos. - Vuelve a cargar los archivos. Sube de nuevo el
.cery el.keyoriginales, sin editarlos, y captura correctamente la contraseña. - Prueba con un comprobante nuevo. Genera la factura otra vez para que se calcule un
Sellocon el certificado actualizado. - Si el problema continúa, contáctanos. Envía el código del error y el RFC emisor; nunca compartas la contraseña ni el archivo
.key.
Ejemplo en el XML: incorrecto y correcto
En el XML, el certificado aparece como una cadena en Base64 dentro del nodo raíz (se abrevia aquí por espacio). Los números de serie de este ejemplo son ficticios a propósito (ceros y consecutivos):
Incorrecto:
<cfdi:Comprobante Version="4.0" ...
NoCertificado="00000000000000000001"
Certificado="(Base64 de otro archivo: e.firma, CSD vencido o certificado que no emitió el SAT)" ...>
Correcto:
<cfdi:Comprobante Version="4.0" ...
NoCertificado="00000000000000000002"
Certificado="(Base64 del .cer del CSD vigente cuyo número de serie es 00000000000000000002)" ...>
Los números de certificado de este ejemplo son ficticios (no corresponden a ningún CSD real). No pegues certificados reales en foros ni en mensajes públicos. En el XML real, NoCertificado es el número de serie del .cer que va en Certificado.
Cómo evitar este error con Soicont
Soicont es una plataforma de facturación electrónica CFDI 4.0 con PAC autorizado. Se administra el CSD de cada RFC en un solo lugar: subes el CSD de cada empresa y, en tu panel, consultas si sigue vigente o está por vencer, algo útil cuando facturas para varias empresas desde una cuenta. Además, tus folios no caducan y los datos se validan antes de enviar a timbrar.
Conoce la facturación electrónica CFDI 4.0, la plataforma y los paquetes de folios.
Errores relacionados
- Error CFDI40102 (Sello): el resultado del sello debe coincidir con la digestión de la cadena original.
- Error CFDI40103 (FormaPago): FormaPago no debe existir en comprobantes de tipo T, N o P.
- Error CFDI40105 (FormaPago): con PPD, la forma de pago debe ser 99.
- Error CFDI40107 (SubTotal): decimales permitidos por la moneda.
- Error CFDI40113 (Moneda): la moneda debe pertenecer al catálogo.
- Error CFDI40119 (Total): el total debe corresponder a la suma de los importes.
Consulta también el Centro de Soluciones con todos los errores del SAT.
Preguntas frecuentes
¿Cuál es la diferencia entre CSD y e.firma?
La e.firma identifica a la persona y firma trámites ante el SAT. El CSD se usa solo para sellar facturas electrónicas. Para timbrar CFDI necesitas el CSD.
¿Qué es el NoCertificado y por qué debe coincidir?
Es el número de serie del certificado que firma el comprobante. El PAC lo compara con el contenido del atributo Certificado; si no son del mismo archivo, el comprobante no puede validarse.
¿Cuánto dura un CSD?
Cuatro años desde su emisión. Consulta la vigencia de tu certificado en el SAT y renueva antes de que venza.
¿Puedo usar un certificado que no sea del SAT?
No. Para timbrar CFDI se usa el CSD emitido por el SAT para tu RFC; un certificado de otra procedencia no es válido.
¿Puedo timbrar con un CSD vencido?
No. El certificado debe estar vigente y activo para que el comprobante se acepte.
¿El error significa que hay un problema con mi contraseña?
No necesariamente. La contraseña de la llave privada se usa para generar el sello. CFDI40106 revisa el certificado .cer. Aun así, confirma que tu .cer y .key sean del mismo CSD.
¿Debo enviar mis archivos a soporte?
Nunca envíes la contraseña ni el archivo .key. Para revisar el caso basta con el código de error y el RFC emisor.
¿Todavía no se resuelve?
Si después de revisar estos puntos el error continúa, escríbenos desde la página de contacto con el código del error y el XML que intentaste timbrar (nunca envíes contraseñas ni la llave privada del CSD). Si aún no tienes cuenta, crea la tuya y empieza a facturar con validaciones previas.