← Todos los artículos

Cómo leer el XML de un CFDI y verificar que es válido

Te llega un XML por correo, o lo descargas del portal del SAT, y no dice nada a simple vista: es texto plano con etiquetas. El PDF que normalmente ves es solo una “representación impresa” — el XML es la factura real, y es el único archivo que tiene valor fiscal.

Esta guía explica qué buscar dentro de ese XML y, más importante, cómo confirmar ante el propio SAT que el comprobante es auténtico y no fue inventado, sin depender de que “se vea bien”.

El XML es el CFDI. El PDF es solo una copia legible

El Código Fiscal es explícito: los contribuyentes deben emitir sus comprobantes como documentos digitales, y solo cuando el cliente lo pide se les entrega también su representación impresa, la cual únicamente presume la existencia de dicho comprobante fiscal — no lo sustituye.

Fuente: Artículo 29, fracción V, Código Fiscal de la Federación · Diputados

En la práctica esto tiene una consecuencia concreta: si el PDF y el XML de una misma factura no coinciden en algún dato, el XML es el que vale para efectos fiscales. Guardar solo el PDF y borrar el XML es el error más caro que se comete con la contabilidad electrónica.

Los nodos que trae cualquier CFDI 4.0

Abrir un XML de CFDI no requiere software especial: cualquier editor de texto lo muestra, aunque sea incómodo de leer. La estructura, de afuera hacia adentro, siempre es la misma:

NodoQué contiene
cfdi:ComprobanteEl nodo raíz: fecha, folio, forma de pago, moneda, subtotal, total y el sello digital del emisor
cfdi:EmisorRFC, nombre y régimen fiscal de quien factura
cfdi:ReceptorRFC, nombre, código postal del domicilio fiscal y uso del CFDI de quien recibe la factura
cfdi:ConceptosCada línea de la factura: clave de producto/servicio, cantidad, valor unitario, importe
cfdi:ImpuestosIVA, IEPS o ISR trasladados y retenidos, con sus totales
tfd:TimbreFiscalDigitalVa dentro de cfdi:Complemento, y es lo que agrega el PAC al timbrar: el UUID (folio fiscal), la fecha de timbrado y el sello digital del SAT

Fuente: Anexo 20 — Guía de llenado del CFDI 4.0 · SAT

El dato que más se busca —y el que casi nadie encuentra a la primera— es el UUID. No está en el nodo Comprobante, sino hasta el fondo, en el atributo UUID del TimbreFiscalDigital. Tiene el formato de 36 caracteres con guiones (8-4-4-4-12), por ejemplo A1B2C3D4-E5F6-1234-5678-9ABCDEF01234. Sin ese timbre, el archivo no es un CFDI: es un XML sin validez, porque nunca se le incorporó el sello del SAT.

Los requisitos mínimos que exige la ley

El artículo 29-A del Código Fiscal lista lo que un CFDI tiene que contener. Los que se revisan a ojo, sin herramientas:

  • Fracción I — RFC, nombre o razón social y régimen fiscal de quien lo expide.
  • Fracción II — El folio y el sello digital del SAT, además del sello digital del propio emisor.
  • Fracción III — Lugar y fecha de expedición.
  • Fracción IV — RFC, nombre y código postal del domicilio fiscal de quien recibe, más la clave del uso que le dará al comprobante.
  • Fracción V — Cantidad, unidad de medida y descripción de lo que ampara, usando los catálogos del Anexo 20.
  • Fracción VI — El valor unitario de cada concepto.
  • Fracción VII — El importe total, con los impuestos desglosados por tasa.

Fuente: Artículo 29-A, Código Fiscal de la Federación · Diputados

Si el XML que tienes enfrente no trae folio fiscal (UUID), o el RegimenFiscal del emisor no aparece, o el CodigoPostal del receptor está vacío, ya sabes que algo del comprobante no cumple sin necesidad de nada más sofisticado que buscar la etiqueta.

Por qué no puedes “verificar el sello” a simple vista

El sello digital (Sello en el nodo Comprobante, y el del SAT dentro del TimbreFiscalDigital) es el resultado de encriptar la cadena original del comprobante con la llave privada del Certificado de Sello Digital. Mirarlo no dice nada: es una cadena de texto en base64 que solo tiene sentido si se desencripta con el certificado correspondiente y se compara contra la cadena original — exactamente la validación que hace el PAC al timbrar y que corresponde al código de error CFDI40102 cuando falla.

Verificar esto manualmente requiere reconstruir la cadena original según las reglas del Anexo 20 y correr la desencriptación criptográfica. No es algo que se resuelva leyendo el XML: para eso existe el siguiente paso.

Cómo verificarlo de verdad: el servicio gratuito del SAT

La ley prevé exactamente este caso. El propio Código Fiscal dice que los contribuyentes pueden comprobar la autenticidad de un comprobante que reciben consultando en el sitio del SAT si el folio fue autorizado al emisor y si el certificado del sello estaba vigente al momento de expedirse.

Fuente: Artículo 29, fracción VI, segundo párrafo, Código Fiscal de la Federación · Diputados

Ese servicio es el portal de Verificación de Comprobantes Fiscales Digitales por Internet del propio SAT. Pide cuatro datos, todos tomados del XML:

  1. Folio fiscal (UUID) — del TimbreFiscalDigital.
  2. RFC del emisor — del nodo Emisor.
  3. RFC del receptor — del nodo Receptor.
  4. Total — del nodo Comprobante (opcional en algunas variantes del servicio, pero ayuda a que la búsqueda sea exacta).

El resultado dice si el comprobante está vigente, cancelado, o si simplemente no se encuentra registrado en los controles del SAT — la señal más clara de que el XML fue alterado o nunca se timbró. Ningún dato “se ve bien” reemplaza esta consulta: es la única fuente que compara contra el registro real del SAT, no contra lo que el archivo dice de sí mismo.

La representación impresa: qué debe traer para no ser solo un PDF cualquiera

Cuando entregas o recibes la versión en PDF de una factura, la regla 2.7.1.7 de la Resolución Miscelánea Fiscal fija lo mínimo que debe incluir, además de lo que ya exige el artículo 29-A:

  • Código de barras (o al menos el folio fiscal) según la especificación del Anexo 20.
  • Número de serie del certificado de sello digital del emisor y del SAT.
  • La leyenda: “Este documento es una representación impresa de un CFDI”.
  • Fecha y hora de emisión y de certificación.
  • La cadena original del complemento de certificación digital del SAT.

Fuente: Regla 2.7.1.7, Resolución Miscelánea Fiscal para 2026 · SAT

Un PDF que no trae esa leyenda ni el folio fiscal legible no es una representación impresa válida del CFDI, aunque el diseño se parezca a una factura. Si lo que tienes es el XML y necesitas generar esa representación, puedes hacerlo gratis con el visor de CFDI de Cofadix: subes el archivo y se convierte a PDF al instante, sin registro.

Checklist rápido antes de aceptar un CFDI

  1. Abre el XML y busca el UUID dentro de TimbreFiscalDigital. Si no existe, no es un comprobante timbrado.
  2. Revisa que el RFC del emisor y su régimen fiscal correspondan a quien te está facturando.
  3. Confirma que el código postal del receptor sea el de tu domicilio fiscal registrado, no el de la sucursal.
  4. Entra a la Verificación de CFDI del SAT con el folio, los dos RFC y el total.
  5. Si el resultado dice “vigente”, el comprobante es real y sigue activo. Si dice “cancelado” o “no encontrado”, no lo uses para deducir nada.

Preguntas frecuentes

¿Puedo verificar un CFDI sin tener el XML, solo con el PDF? Sí, siempre que el PDF incluya el folio fiscal, el RFC del emisor y el del receptor de forma legible — que es justo lo que exige la regla 2.7.1.7. Con esos tres datos alcanza para consultar el portal del SAT.

El portal del SAT me dice que el comprobante “no se encuentra registrado”, ¿qué significa? Que ese folio fiscal no existe en los controles del SAT con esos RFC. O el XML fue alterado después de timbrarse, o nunca llegó a timbrarse realmente. No lo aceptes como comprobante fiscal.

¿El sello digital del emisor y el del SAT son lo mismo? No. El sello del emisor lo genera el CSD del contribuyente al crear el comprobante; el sello del SAT lo agrega el PAC al timbrar, dentro del TimbreFiscalDigital. Verificar el primero prueba quién lo emitió; verificar el segundo prueba que el SAT lo certificó.

¿Un XML sin el nodo TimbreFiscalDigital puede ser válido? No. Ese nodo es la prueba de que el comprobante pasó por un PAC y fue certificado por el SAT. Sin él es un archivo con forma de factura, pero sin validez fiscal.

¿Cada cuánto cambia la estructura del XML y tengo que revisar esto de nuevo? La versión 4.0 del CFDI es la vigente desde abril de 2023. Los catálogos que usa (productos, unidades, formas de pago) se actualizan varias veces al año, pero la estructura de nodos que se explica aquí no cambia con esas actualizaciones.

Conclusión

El XML del CFDI no es un archivo técnico que solo le importe al sistema de facturación: es la factura. Revisar sus nodos te dice si trae lo mínimo que exige la ley, pero solo la consulta ante el SAT confirma que es auténtico y sigue vigente — nada de lo que el archivo diga de sí mismo sustituye esa validación.

Con Cofadix cada CFDI que recibes se puede visualizar y verificar sin salir del sistema, y el visor de CFDI convierte cualquier XML en su representación impresa gratis, sin registro. Prueba gratis →

Preguntas y comentarios

¿Tienes una duda sobre este tema? Déjala aquí. Los comentarios se revisan antes de publicarse.