CCalcu.mx
Transcrito del esquema del SAT

El XML de un CFDI 4.0, campo por campo

Por Deepak Middha, fundador y autor de calcu.mxRevisado el 25 de septiembre de 2026

Lo esencial

Esta página es la referencia técnica del archivo: los 76 atributos del comprobante y del timbre con su nombre exacto, su uso y qué guarda cada uno. La versión 4.0 trajo 8 campos y nodos nuevos — 6 atributos sueltos y 2 nodos enteros, que entre todos suman 13 atributos nuevos—, y son los que rompen las facturas de quien venía de la 3.3.

  • · Los nombres distinguen mayúsculas de minúsculas, y uno lleva eñe: Año.
  • · Lo que convierte el archivo en comprobante fiscal es el nodo del timbre, que añade el PAC. Sin él es un borrador.
  • · Un programa con los certificados públicos a la mano sí puede comprobar los sellos por criptografía. Lo que esa comprobación no hace es sustituir la consulta oficial del SAT ni decirte si el CFDI sigue vigente. Aquí se explica la diferencia, con la cita del propio SAT.

Fuente: esquemas cfdv40.xsd y TimbreFiscalDigitalv11.xsd, Anexo 20 y su Guía de llenado. Leídos el 25 de septiembre de 2026.

¿Buscabas otra cosa? Está en la página de al lado

Cómo está armado el archivo

Un CFDI es un XML con un nodo raíz, cfdi:Comprobante, del que cuelgan los demás en un orden que el esquema fija. Los prefijos no son decorativos: cfdi: apunta al espacio de nombres http://www.sat.gob.mx/cfd/4 —que es donde vive la versión 4.0— y tfd: a http://www.sat.gob.mx/TimbreFiscalDigital, que es un estándar aparte porque lo escribe otro: el PAC, no tú.

La estructura del archivo, de fuera hacia dentro
cfdi:ComprobanteEl nodo raíz. Version, Fecha, Total, Sello, TipoDeComprobante…cfdi:InformacionGlobalSólo en la factura al público en generalNUEVO 4.0cfdi:CfdiRelacionadosCuando este comprobante se refiere a otrocfdi:EmisorQuién facturacfdi:ReceptorA quién se le facturacfdi:ConceptosUno o más cfdi:Conceptocfdi:ImpuestosTotales de traslados y retencionescfdi:ComplementoAquí dentro va el timbre del SATtfd:TimbreFiscalDigitalUUID, FechaTimbrado, SelloSAT. Lo pone el PAC.Sin este últimonodo no haycomprobante fiscal:es un borrador.

Fuente: esquema cfdv40.xsd y TimbreFiscalDigitalv11.xsd del SAT, leídos el 25 de septiembre de 2026. Elaboración de Calcu.mx. Los complementos —nómina, carta porte, pagos, comercio exterior— son esquemas aparte que se insertan dentro de cfdi:Complemento y tienen sus propios campos.

Busca un atributo

Si llegaste con un nombre suelto —el que te salió en un error de timbrado, en un correo de tu contador o en la pantalla de tu sistema— empieza por aquí. La tabla completa, nodo por nodo, está debajo.

Escribe el nombre tal como te salió: ObjetoImp, DomicilioFiscalReceptor, MetodoPago. También busca por nodo y por descripción.

76 de 76 atributos

  • VersionRequerido

    en cfdi:Comprobante

    La versión del estándar. En el esquema está fijada al valor 4.0: no admite ningún otro.

    Ojo: Es el campo que contesta de un vistazo si un archivo es 3.3 o 4.0.

  • SerieOpcional

    en cfdi:Comprobante

    Serie de control interno del emisor. Hasta 25 caracteres.

  • FolioOpcional

    en cfdi:Comprobante

    Folio de control interno del emisor. Hasta 40 caracteres.

    Ojo: No es el folio fiscal. El que el SAT pide para verificar es el UUID del timbre, no éste.

    Dónde está el folio fiscal de verdad

  • FechaRequerido

    en cfdi:Comprobante

    Fecha y hora de expedición, en formato AAAA-MM-DDThh:mm:ss y en la hora local del lugar donde se expide.

    Ojo: No la confundas con FechaTimbrado, que va en el timbre y usa la hora del centro del país.

  • SelloRequerido

    en cfdi:Comprobante

    El sello digital del emisor, en base 64. Lo genera con su Certificado de Sello Digital.

  • FormaPagoCondicional

    en cfdi:Comprobante

    Con qué se pagó la operación.

    Valores cerrados por el catálogo c_FormaPago.

    Ojo: Con MetodoPago PPD tiene que ser 99, «Por definir». Poner otra cosa es el error CFDI40105.

  • NoCertificadoRequerido

    en cfdi:Comprobante

    Número de serie del Certificado de Sello Digital del emisor. Veinte dígitos.

  • CertificadoRequerido

    en cfdi:Comprobante

    El certificado del emisor completo, en base 64.

    Ojo: Aquí está la asimetría de los dos sellos: el certificado del EMISOR sí viaja dentro del archivo, así que su firma se puede comprobar sin salir de él. El del SAT no viaja, y hay que descargarlo por su número de serie.

  • CondicionesDePagoCondicional

    en cfdi:Comprobante

    Las condiciones comerciales del pago, en texto libre.

  • SubTotalRequerido

    en cfdi:Comprobante

    Suma de los importes de los conceptos, antes de descuentos e impuestos.

  • DescuentoCondicional

    en cfdi:Comprobante

    Total de descuentos antes de impuestos. Obligatorio si algún concepto trae descuento.

  • MonedaRequerido

    en cfdi:Comprobante

    Clave ISO 4217 de la moneda. MXN para pesos.

    Valores cerrados por el catálogo c_Moneda.

  • TipoCambioCondicional

    en cfdi:Comprobante

    Tipo de cambio conforme a la moneda. Obligatorio cuando la moneda no es MXN ni XXX.

  • TotalRequerido

    en cfdi:Comprobante

    Subtotal, menos descuentos, más impuestos trasladados, menos retenidos.

  • TipoDeComprobanteRequerido

    en cfdi:Comprobante

    El efecto fiscal del comprobante para quien lo emite: ingreso, egreso, traslado, nómina o pago.

    Valores cerrados por el catálogo c_TipoDeComprobante.

    Los cinco tipos de CFDI, explicados

  • ExportacionRequeridoNuevo en 4.0

    en cfdi:Comprobante

    Si el comprobante ampara una operación de exportación.

    Valores cerrados por el catálogo c_Exportacion.

    Ojo: Es obligatorio aunque no exportes nada: una operación normal en territorio nacional lleva la clave que dice que no aplica. No se puede omitir.

  • MetodoPagoCondicional

    en cfdi:Comprobante

    PUE si ya te pagaron todo al emitir; PPD si queda pendiente o va en parcialidades.

    Valores cerrados por el catálogo c_MetodoPago.

    PUE o PPD: cómo decidir

  • LugarExpedicionRequerido

    en cfdi:Comprobante

    Código postal del lugar de expedición: la matriz o la sucursal.

    Valores cerrados por el catálogo c_CodigoPostal.

  • ConfirmacionCondicional

    en cfdi:Comprobante

    Clave de cinco caracteres que entrega el PAC cuando el total o el tipo de cambio se salen de los rangos que el SAT considera normales.

  • PeriodicidadRequeridoNuevo en 4.0

    en cfdi:InformacionGlobal

    El periodo que ampara: diario, semanal, quincenal, mensual o bimestral.

    Valores cerrados por el catálogo c_Periodicidad.

  • MesesRequeridoNuevo en 4.0

    en cfdi:InformacionGlobal

    El mes o los meses que cubre el comprobante.

    Valores cerrados por el catálogo c_Meses.

  • AñoRequeridoNuevo en 4.0

    en cfdi:InformacionGlobal

    El año que cubre. El esquema no admite años anteriores a 2019.

    Ojo: Lleva eñe. Es el único nombre de atributo del esquema con un carácter fuera de ASCII, y un editor que «arregle» la codificación deja el archivo inválido.

  • TipoRelacionRequerido

    en cfdi:CfdiRelacionados

    Qué relación tiene este comprobante con los que enumera. Las dos habituales son la nota de crédito y la sustitución.

    Valores cerrados por el catálogo c_TipoRelacion.

    Ojo: Cuelga de este nodo, el PLURAL, no de cfdi:CfdiRelacionado. Se confunde constantemente porque en el esquema aparece escrito después de sus hijos.

    Cómo se relaciona la factura sustituta

  • UUIDRequerido

    en cfdi:CfdiRelacionado

    El folio fiscal del comprobante con el que se relaciona: 36 caracteres en cinco bloques.

  • RfcRequerido

    en cfdi:Emisor

    RFC de quien emite.

  • NombreRequerido

    en cfdi:Emisor

    Nombre, denominación o razón social del emisor, tal como está inscrito en el RFC.

    Ojo: En la versión 3.3 era opcional. Pasó a obligatorio con la 4.0, igual que el del receptor, y eso se olvida al hablar sólo de los cambios del receptor.

  • RegimenFiscalRequerido

    en cfdi:Emisor

    Régimen fiscal del emisor para esta operación.

    Valores cerrados por el catálogo c_RegimenFiscal.

  • FacAtrAdquirenteCondicionalNuevo en 4.0

    en cfdi:Emisor

    Número de operación que da el SAT cuando la factura se emite a través de un proveedor de certificación y generación autorizado.

    Ojo: Es el campo nuevo de la 4.0 del que nadie habla, porque sólo lo llena quien factura a través de un PCECFDI o un PCGCF. El esquema lo declara opcional; la Guía de llenado lo llama «atributo condicional».

  • RfcRequerido

    en cfdi:Receptor

    RFC de quien recibe.

    Ojo: Se valida contra el padrón de RFC inscritos y no cancelados, no sólo contra el formato.

    Los errores de timbrado, con su código

  • NombreRequerido

    en cfdi:Receptor

    Nombre o razón social del receptor, tal como está inscrito en el RFC.

    Ojo: No es un campo nuevo: existía en la 3.3 como OPCIONAL y la 4.0 lo volvió requerido, que es distinto de haber nacido con la versión. Tiene que corresponder al RFC: un acento de más o el nombre comercial en vez del registrado rechaza el timbrado.

  • DomicilioFiscalReceptorRequeridoNuevo en 4.0

    en cfdi:Receptor

    Código postal del domicilio fiscal del receptor. Cinco dígitos.

    Ojo: Es el del domicilio REGISTRADO ante el SAT, no el de donde vive ni el de la entrega. Es el rechazo número uno del CFDI 4.0.

    Los cuatro datos que sí necesitas de tu cliente

  • ResidenciaFiscalCondicional

    en cfdi:Receptor

    País de residencia fiscal cuando el receptor es extranjero.

    Valores cerrados por el catálogo c_Pais.

  • NumRegIdTribCondicional

    en cfdi:Receptor

    Número de registro de identidad fiscal del receptor extranjero.

  • RegimenFiscalReceptorRequeridoNuevo en 4.0

    en cfdi:Receptor

    Régimen fiscal del receptor para esta operación.

    Valores cerrados por el catálogo c_RegimenFiscal.

    Ojo: Tiene que ser compatible con el UsoCFDI: el catálogo cierra qué usos admite cada régimen.

    Qué uso puede recibir cada régimen

  • UsoCFDIRequerido

    en cfdi:Receptor

    Qué va a hacer el receptor con la factura.

    Valores cerrados por el catálogo c_UsoCFDI.

    Ojo: El catálogo trae una columna «Régimen Fiscal Receptor» y el PAC valida contra ella. Si el uso no está permitido para ese régimen, rechaza.

    El cruce uso ↔ régimen, con la herramienta

  • ClaveProdServRequerido

    en cfdi:Concepto

    Clave del producto o servicio en el catálogo del SAT.

    Valores cerrados por el catálogo c_ClaveProdServ.

    Cómo encontrar tu clave sin desesperarte

  • NoIdentificacionOpcional

    en cfdi:Concepto

    Tu propio número de parte, SKU o código de barras.

  • CantidadRequerido

    en cfdi:Concepto

    Cuánto se vendió. Admite hasta seis decimales.

  • ClaveUnidadRequerido

    en cfdi:Concepto

    Clave de la unidad de medida estandarizada.

    Valores cerrados por el catálogo c_ClaveUnidad.

  • UnidadOpcional

    en cfdi:Concepto

    Tu propia descripción de la unidad, en texto libre.

  • DescripcionRequerido

    en cfdi:Concepto

    Qué se vendió, en palabras.

  • ValorUnitarioRequerido

    en cfdi:Concepto

    Precio unitario.

  • ImporteRequerido

    en cfdi:Concepto

    Cantidad por valor unitario. No admite negativos.

  • DescuentoOpcional

    en cfdi:Concepto

    Descuento de esta línea. Tampoco admite negativos.

  • ObjetoImpRequeridoNuevo en 4.0

    en cfdi:Concepto

    Si esta línea en concreto es objeto de impuesto o no.

    Valores cerrados por el catálogo c_ObjetoImp.

    Ojo: Va por concepto, no por comprobante: una misma factura puede llevar líneas con distinto valor. Y si dices que sí es objeto de impuesto, esa línea tiene que traer su nodo de impuestos.

  • RfcACuentaTercerosRequeridoNuevo en 4.0

    en cfdi:ACuentaTerceros

    RFC del tercero por cuenta de quien se emite.

  • NombreACuentaTercerosRequeridoNuevo en 4.0

    en cfdi:ACuentaTerceros

    Su nombre o razón social.

  • RegimenFiscalACuentaTercerosRequeridoNuevo en 4.0

    en cfdi:ACuentaTerceros

    Su régimen fiscal.

    Valores cerrados por el catálogo c_RegimenFiscal.

  • DomicilioFiscalACuentaTercerosRequeridoNuevo en 4.0

    en cfdi:ACuentaTerceros

    Código postal de su domicilio fiscal.

  • BaseRequerido

    en cfdi:Concepto/Impuestos/Traslados/Traslado

    El monto sobre el que se calcula el impuesto de esta línea.

  • ImpuestoRequerido

    en cfdi:Concepto/Impuestos/Traslados/Traslado

    Qué impuesto es: IVA, IEPS o ISR.

    Valores cerrados por el catálogo c_Impuesto.

  • TipoFactorRequerido

    en cfdi:Concepto/Impuestos/Traslados/Traslado

    Tasa, cuota o exento.

    Valores cerrados por el catálogo c_TipoFactor.

  • TasaOCuotaCondicional

    en cfdi:Concepto/Impuestos/Traslados/Traslado

    El valor de la tasa o de la cuota. Obligatorio si el tipo de factor es Tasa o Cuota.

  • ImporteCondicional

    en cfdi:Concepto/Impuestos/Traslados/Traslado

    El impuesto en pesos. Obligatorio si el tipo de factor es Tasa o Cuota.

  • BaseRequerido

    en cfdi:Concepto/Impuestos/Retenciones/Retencion

    El monto sobre el que se calcula la retención.

  • ImpuestoRequerido

    en cfdi:Concepto/Impuestos/Retenciones/Retencion

    Qué impuesto se retiene.

    Valores cerrados por el catálogo c_Impuesto.

  • TipoFactorRequerido

    en cfdi:Concepto/Impuestos/Retenciones/Retencion

    Tasa o cuota.

    Valores cerrados por el catálogo c_TipoFactor.

  • TasaOCuotaRequerido

    en cfdi:Concepto/Impuestos/Retenciones/Retencion

    El valor de la tasa o cuota.

    Ojo: En la retención es REQUERIDO; en el traslado del mismo nivel es condicional. Es la única asimetría entre los dos nodos y sorprende a quien los da por gemelos.

  • ImporteRequerido

    en cfdi:Concepto/Impuestos/Retenciones/Retencion

    La retención en pesos. También requerido, a diferencia del traslado.

  • TotalImpuestosRetenidosCondicional

    en cfdi:Impuestos

    Suma de las retenciones. Obligatorio si algún concepto trae retenciones.

  • TotalImpuestosTrasladadosCondicional

    en cfdi:Impuestos

    Suma de los traslados. Obligatorio si algún concepto trae traslados.

  • ImpuestoRequerido

    en cfdi:Impuestos/Retenciones/Retencion

    Qué impuesto se retuvo.

    Valores cerrados por el catálogo c_Impuesto.

    Ojo: Este nodo tiene sólo DOS atributos, mientras que su homónimo a nivel de concepto tiene cinco. No hay Base, ni TipoFactor, ni TasaOCuota aquí.

  • ImporteRequerido

    en cfdi:Impuestos/Retenciones/Retencion

    El total retenido de ese impuesto.

  • BaseRequeridoNuevo en 4.0

    en cfdi:Impuestos/Traslados/Traslado

    La base agrupada.

  • ImpuestoRequerido

    en cfdi:Impuestos/Traslados/Traslado

    Qué impuesto se traslada.

    Valores cerrados por el catálogo c_Impuesto.

  • TipoFactorRequerido

    en cfdi:Impuestos/Traslados/Traslado

    Tasa, cuota o exento.

    Valores cerrados por el catálogo c_TipoFactor.

  • TasaOCuotaCondicional

    en cfdi:Impuestos/Traslados/Traslado

    La tasa o cuota del grupo. En la 3.3 era requerido.

  • ImporteCondicional

    en cfdi:Impuestos/Traslados/Traslado

    La suma del grupo. En la 3.3 era requerido.

  • VersionRequerido

    en tfd:TimbreFiscalDigital

    Versión del estándar del timbre. Fijada a 1.1.

  • UUIDRequerido

    en tfd:TimbreFiscalDigital

    El folio fiscal: 36 caracteres en cinco bloques. Es el identificador con el que el SAT conoce esta factura.

    Verificar el CFDI con este folio en el SAT

  • FechaTimbradoRequerido

    en tfd:TimbreFiscalDigital

    Cuándo se generó el timbre.

    Ojo: Va en hora de la Zona Centro, mientras que la Fecha del comprobante va en hora local del lugar de expedición. No tienen por qué coincidir.

  • RfcProvCertifRequerido

    en tfd:TimbreFiscalDigital

    RFC del PAC que timbró. Es siempre una persona moral.

  • LeyendaOpcional

    en tfd:TimbreFiscalDigital

    Un mensaje que el SAT puede hacer llegar a través del comprobante. El único atributo opcional del timbre.

  • SelloCFDRequerido

    en tfd:TimbreFiscalDigital

    El sello del emisor sobre el que se timbró, repetido aquí.

  • NoCertificadoSATRequerido

    en tfd:TimbreFiscalDigital

    Número de serie del certificado del SAT que firmó el timbre.

    Ojo: Un número de serie, no el certificado. Para comprobar la firma del SAT hay que descargar antes el certificado público que corresponde a ese número: el archivo por sí solo no alcanza.

  • SelloSATRequerido

    en tfd:TimbreFiscalDigital

    El sello digital del SAT. Sin esto no hay comprobante fiscal.

Los nodos, uno por uno

El uso de cada atributo viene del esquema y de la Guía de llenado. Requerido es siempre obligatorio; condicional lo es cuando se cumple un supuesto, que se indica en cada caso; y opcional queda a tu criterio. El esquema por sí solo sólo distingue dos: la categoría condicional vive en la documentación de cada campo, y se respeta aquí porque es la que usa el SAT.

cfdi:Comprobante

El nodo raíz. Lleva los datos de la operación entera: cuándo, cuánto, en qué moneda, con qué efecto fiscal y con qué sello.

Uno. Es el documento.

AtributoUsoQué guarda
VersionRequeridoLa versión del estándar. En el esquema está fijada al valor 4.0: no admite ningún otro.Ojo: Es el campo que contesta de un vistazo si un archivo es 3.3 o 4.0.
SerieOpcionalSerie de control interno del emisor. Hasta 25 caracteres.
FolioOpcionalFolio de control interno del emisor. Hasta 40 caracteres.Ojo: No es el folio fiscal. El que el SAT pide para verificar es el UUID del timbre, no éste.Dónde está el folio fiscal de verdad
FechaRequeridoFecha y hora de expedición, en formato AAAA-MM-DDThh:mm:ss y en la hora local del lugar donde se expide.Ojo: No la confundas con FechaTimbrado, que va en el timbre y usa la hora del centro del país.
SelloRequeridoEl sello digital del emisor, en base 64. Lo genera con su Certificado de Sello Digital.
FormaPagoCondicionalCon qué se pagó la operación.Catálogo c_FormaPago.Ojo: Con MetodoPago PPD tiene que ser 99, «Por definir». Poner otra cosa es el error CFDI40105.
NoCertificadoRequeridoNúmero de serie del Certificado de Sello Digital del emisor. Veinte dígitos.
CertificadoRequeridoEl certificado del emisor completo, en base 64.Ojo: Aquí está la asimetría de los dos sellos: el certificado del EMISOR sí viaja dentro del archivo, así que su firma se puede comprobar sin salir de él. El del SAT no viaja, y hay que descargarlo por su número de serie.
CondicionesDePagoCondicionalLas condiciones comerciales del pago, en texto libre.
SubTotalRequeridoSuma de los importes de los conceptos, antes de descuentos e impuestos.
DescuentoCondicionalTotal de descuentos antes de impuestos. Obligatorio si algún concepto trae descuento.
MonedaRequeridoClave ISO 4217 de la moneda. MXN para pesos.Catálogo c_Moneda.
TipoCambioCondicionalTipo de cambio conforme a la moneda. Obligatorio cuando la moneda no es MXN ni XXX.
TotalRequeridoSubtotal, menos descuentos, más impuestos trasladados, menos retenidos.
TipoDeComprobanteRequeridoEl efecto fiscal del comprobante para quien lo emite: ingreso, egreso, traslado, nómina o pago.Catálogo c_TipoDeComprobante.Los cinco tipos de CFDI, explicados
ExportacionNuevo en 4.0RequeridoSi el comprobante ampara una operación de exportación.Catálogo c_Exportacion.Ojo: Es obligatorio aunque no exportes nada: una operación normal en territorio nacional lleva la clave que dice que no aplica. No se puede omitir.
MetodoPagoCondicionalPUE si ya te pagaron todo al emitir; PPD si queda pendiente o va en parcialidades.Catálogo c_MetodoPago.PUE o PPD: cómo decidir
LugarExpedicionRequeridoCódigo postal del lugar de expedición: la matriz o la sucursal.Catálogo c_CodigoPostal.
ConfirmacionCondicionalClave de cinco caracteres que entrega el PAC cuando el total o el tipo de cambio se salen de los rangos que el SAT considera normales.

cfdi:InformacionGlobal

El nodo de la factura al público en general: agrupa las ventas de un periodo en un solo comprobante.

Cero o una vez. Sólo en las facturas globales.

AtributoUsoQué guarda
PeriodicidadNuevo en 4.0RequeridoEl periodo que ampara: diario, semanal, quincenal, mensual o bimestral.Catálogo c_Periodicidad.
MesesNuevo en 4.0RequeridoEl mes o los meses que cubre el comprobante.Catálogo c_Meses.
AñoNuevo en 4.0RequeridoEl año que cubre. El esquema no admite años anteriores a 2019.Ojo: Lleva eñe. Es el único nombre de atributo del esquema con un carácter fuera de ASCII, y un editor que «arregle» la codificación deja el archivo inválido.

cfdi:CfdiRelacionados

Agrupa los comprobantes con los que éste se relaciona, y declara qué tipo de relación es.

Cero o muchas veces: un bloque por cada tipo de relación.

AtributoUsoQué guarda
TipoRelacionRequeridoQué relación tiene este comprobante con los que enumera. Las dos habituales son la nota de crédito y la sustitución.Catálogo c_TipoRelacion.Ojo: Cuelga de este nodo, el PLURAL, no de cfdi:CfdiRelacionado. Se confunde constantemente porque en el esquema aparece escrito después de sus hijos.Cómo se relaciona la factura sustituta

cfdi:CfdiRelacionado

Cada uno de los comprobantes relacionados, identificado por su folio fiscal.

Uno o muchos dentro de cada bloque.

AtributoUsoQué guarda
UUIDRequeridoEl folio fiscal del comprobante con el que se relaciona: 36 caracteres en cinco bloques.

cfdi:Emisor

Quién factura.

Exactamente uno.

AtributoUsoQué guarda
RfcRequeridoRFC de quien emite.
NombreRequeridoNombre, denominación o razón social del emisor, tal como está inscrito en el RFC.Ojo: En la versión 3.3 era opcional. Pasó a obligatorio con la 4.0, igual que el del receptor, y eso se olvida al hablar sólo de los cambios del receptor.
RegimenFiscalRequeridoRégimen fiscal del emisor para esta operación.Catálogo c_RegimenFiscal.
FacAtrAdquirenteNuevo en 4.0CondicionalNúmero de operación que da el SAT cuando la factura se emite a través de un proveedor de certificación y generación autorizado.Ojo: Es el campo nuevo de la 4.0 del que nadie habla, porque sólo lo llena quien factura a través de un PCECFDI o un PCGCF. El esquema lo declara opcional; la Guía de llenado lo llama «atributo condicional».

cfdi:Receptor

A quién se le factura. Es el nodo que más cambió con la versión 4.0, y el que más rechazos provoca.

Exactamente uno.

AtributoUsoQué guarda
RfcRequeridoRFC de quien recibe.Ojo: Se valida contra el padrón de RFC inscritos y no cancelados, no sólo contra el formato.Los errores de timbrado, con su código
NombreRequeridoNombre o razón social del receptor, tal como está inscrito en el RFC.Ojo: No es un campo nuevo: existía en la 3.3 como OPCIONAL y la 4.0 lo volvió requerido, que es distinto de haber nacido con la versión. Tiene que corresponder al RFC: un acento de más o el nombre comercial en vez del registrado rechaza el timbrado.
DomicilioFiscalReceptorNuevo en 4.0RequeridoCódigo postal del domicilio fiscal del receptor. Cinco dígitos.Ojo: Es el del domicilio REGISTRADO ante el SAT, no el de donde vive ni el de la entrega. Es el rechazo número uno del CFDI 4.0.Los cuatro datos que sí necesitas de tu cliente
ResidenciaFiscalCondicionalPaís de residencia fiscal cuando el receptor es extranjero.Catálogo c_Pais.
NumRegIdTribCondicionalNúmero de registro de identidad fiscal del receptor extranjero.
RegimenFiscalReceptorNuevo en 4.0RequeridoRégimen fiscal del receptor para esta operación.Catálogo c_RegimenFiscal.Ojo: Tiene que ser compatible con el UsoCFDI: el catálogo cierra qué usos admite cada régimen.Qué uso puede recibir cada régimen
UsoCFDIRequeridoQué va a hacer el receptor con la factura.Catálogo c_UsoCFDI.Ojo: El catálogo trae una columna «Régimen Fiscal Receptor» y el PAC valida contra ella. Si el uso no está permitido para ese régimen, rechaza.El cruce uso ↔ régimen, con la herramienta

cfdi:Concepto

Cada línea de lo que se vendió. Un comprobante lleva al menos una.

Uno o muchos, dentro de cfdi:Conceptos.

AtributoUsoQué guarda
ClaveProdServRequeridoClave del producto o servicio en el catálogo del SAT.Catálogo c_ClaveProdServ.Cómo encontrar tu clave sin desesperarte
NoIdentificacionOpcionalTu propio número de parte, SKU o código de barras.
CantidadRequeridoCuánto se vendió. Admite hasta seis decimales.
ClaveUnidadRequeridoClave de la unidad de medida estandarizada.Catálogo c_ClaveUnidad.
UnidadOpcionalTu propia descripción de la unidad, en texto libre.
DescripcionRequeridoQué se vendió, en palabras.
ValorUnitarioRequeridoPrecio unitario.
ImporteRequeridoCantidad por valor unitario. No admite negativos.
DescuentoOpcionalDescuento de esta línea. Tampoco admite negativos.
ObjetoImpNuevo en 4.0RequeridoSi esta línea en concreto es objeto de impuesto o no.Catálogo c_ObjetoImp.Ojo: Va por concepto, no por comprobante: una misma factura puede llevar líneas con distinto valor. Y si dices que sí es objeto de impuesto, esa línea tiene que traer su nodo de impuestos.

cfdi:ACuentaTerceros

Los datos del tercero cuando facturas por cuenta de alguien más.

Cero o una vez, dentro de cada concepto.

AtributoUsoQué guarda
RfcACuentaTercerosNuevo en 4.0RequeridoRFC del tercero por cuenta de quien se emite.
NombreACuentaTercerosNuevo en 4.0RequeridoSu nombre o razón social.
RegimenFiscalACuentaTercerosNuevo en 4.0RequeridoSu régimen fiscal.Catálogo c_RegimenFiscal.
DomicilioFiscalACuentaTercerosNuevo en 4.0RequeridoCódigo postal de su domicilio fiscal.

cfdi:Concepto/Impuestos/Traslados/Traslado

El impuesto que se traslada en una línea concreta. Es el IVA de ese renglón.

Uno o muchos por concepto.

AtributoUsoQué guarda
BaseRequeridoEl monto sobre el que se calcula el impuesto de esta línea.
ImpuestoRequeridoQué impuesto es: IVA, IEPS o ISR.Catálogo c_Impuesto.
TipoFactorRequeridoTasa, cuota o exento.Catálogo c_TipoFactor.
TasaOCuotaCondicionalEl valor de la tasa o de la cuota. Obligatorio si el tipo de factor es Tasa o Cuota.
ImporteCondicionalEl impuesto en pesos. Obligatorio si el tipo de factor es Tasa o Cuota.

cfdi:Concepto/Impuestos/Retenciones/Retencion

El impuesto que se retiene en una línea concreta.

Uno o muchos por concepto.

AtributoUsoQué guarda
BaseRequeridoEl monto sobre el que se calcula la retención.
ImpuestoRequeridoQué impuesto se retiene.Catálogo c_Impuesto.
TipoFactorRequeridoTasa o cuota.Catálogo c_TipoFactor.
TasaOCuotaRequeridoEl valor de la tasa o cuota.Ojo: En la retención es REQUERIDO; en el traslado del mismo nivel es condicional. Es la única asimetría entre los dos nodos y sorprende a quien los da por gemelos.
ImporteRequeridoLa retención en pesos. También requerido, a diferencia del traslado.

cfdi:Impuestos

Los totales de impuestos del comprobante entero, no de una línea.

Cero o una vez.

AtributoUsoQué guarda
TotalImpuestosRetenidosCondicionalSuma de las retenciones. Obligatorio si algún concepto trae retenciones.
TotalImpuestosTrasladadosCondicionalSuma de los traslados. Obligatorio si algún concepto trae traslados.

cfdi:Impuestos/Retenciones/Retencion

La retención agrupada a nivel de comprobante.

Uno o muchos.

AtributoUsoQué guarda
ImpuestoRequeridoQué impuesto se retuvo.Catálogo c_Impuesto.Ojo: Este nodo tiene sólo DOS atributos, mientras que su homónimo a nivel de concepto tiene cinco. No hay Base, ni TipoFactor, ni TasaOCuota aquí.
ImporteRequeridoEl total retenido de ese impuesto.

cfdi:Impuestos/Traslados/Traslado

El traslado agrupado a nivel de comprobante, por impuesto, tipo de factor y tasa.

Uno o muchos.

AtributoUsoQué guarda
BaseNuevo en 4.0RequeridoLa base agrupada.
ImpuestoRequeridoQué impuesto se traslada.Catálogo c_Impuesto.
TipoFactorRequeridoTasa, cuota o exento.Catálogo c_TipoFactor.
TasaOCuotaCondicionalLa tasa o cuota del grupo. En la 3.3 era requerido.
ImporteCondicionalLa suma del grupo. En la 3.3 era requerido.

tfd:TimbreFiscalDigital

Lo que añade el PAC al certificar. Es lo que convierte un archivo en un comprobante fiscal.

Uno, dentro de cfdi:Complemento.

AtributoUsoQué guarda
VersionRequeridoVersión del estándar del timbre. Fijada a 1.1.
UUIDRequeridoEl folio fiscal: 36 caracteres en cinco bloques. Es el identificador con el que el SAT conoce esta factura.Verificar el CFDI con este folio en el SAT
FechaTimbradoRequeridoCuándo se generó el timbre.Ojo: Va en hora de la Zona Centro, mientras que la Fecha del comprobante va en hora local del lugar de expedición. No tienen por qué coincidir.
RfcProvCertifRequeridoRFC del PAC que timbró. Es siempre una persona moral.
LeyendaOpcionalUn mensaje que el SAT puede hacer llegar a través del comprobante. El único atributo opcional del timbre.
SelloCFDRequeridoEl sello del emisor sobre el que se timbró, repetido aquí.
NoCertificadoSATRequeridoNúmero de serie del certificado del SAT que firmó el timbre.Ojo: Un número de serie, no el certificado. Para comprobar la firma del SAT hay que descargar antes el certificado público que corresponde a ese número: el archivo por sí solo no alcanza.
SelloSATRequeridoEl sello digital del SAT. Sin esto no hay comprobante fiscal.

Tabla 1. Los 76 atributos del CFDI 4.0 y del Timbre Fiscal Digital 1.1. Fuente: esquemas cfdv40.xsd y TimbreFiscalDigitalv11.xsd del SAT, más la Guía de llenado del Anexo 20. Leídos el 25 de septiembre de 2026.

Qué cambió de la 3.3 a la 4.0

Esta tabla no está copiada de ningún resumen: sale de comparar los dos esquemas del SAT campo por campo y por ruta. Dos resultados contradicen lo que se publica por ahí y conviene decirlos antes de la tabla. No se eliminó nada: todo lo que existía en la 3.3 sigue existiendo. Y no se renombró nada: en particular, ACuentaTerceros no es un renombre de ComplementoConcepto, porque los dos conviven en la 4.0. Lo que pasó es que esos datos viajaban en un complemento y ascendieron al estándar base.

De los 15 renglones, 8 son altas —y ahí un nodo nuevo cuenta como uno solo, aunque traiga varios atributos dentro—. Los demás son campos que ya existían y cambiaron de uso o de cardinalidad. Pasar de opcional a obligatorio no es nacer con la 4.0, y es la confusión más frecuente: el Nombre del receptor y el del emisor están en las dos versiones, y lo que cambió es que ya no se pueden omitir.

Tabla 2. Diferencias entre cfdv33.xsd y cfdv40.xsd, comparados por ruta. Elaboración de Calcu.mx sobre los esquemas publicados por el SAT.
CampoQué pasóDetalle
Exportacioncfdi:ComprobanteNuevoRequerido. Hay que declararlo aunque la operación no sea de exportación.
DomicilioFiscalReceptorcfdi:ReceptorNuevoRequerido. El código postal del domicilio fiscal registrado.
RegimenFiscalReceptorcfdi:ReceptorNuevoRequerido, y tiene que ser compatible con el UsoCFDI.
ObjetoImpcfdi:ConceptoNuevoRequerido, y por línea: dice si ese concepto es objeto de impuesto.
FacAtrAdquirentecfdi:EmisorNuevoCondicional. Para la factura emitida a través de un proveedor autorizado.
Basecfdi:Impuestos/Traslados/TrasladoNuevoRequerido en el traslado agrupado del comprobante, donde antes no existía.
cfdi:InformacionGlobalcfdi:ComprobanteNuevoNodo nuevo entero, con Periodicidad, Meses y Año. Es el de la factura al público en general.
cfdi:ACuentaTerceroscfdi:ConceptoNuevoNodo nuevo entero. En la 3.3 esos datos iban en un complemento; en la 4.0 subieron al estándar base.
Nombrecfdi:ReceptorPasó a obligatorioEra opcional en la 3.3. Pasó a requerido y tiene que coincidir con el padrón.
Nombrecfdi:EmisorPasó a obligatorioTambién pasó de opcional a requerido, cosa que casi nadie menciona al hablar sólo del receptor.
TasaOCuotacfdi:Impuestos/Traslados/TrasladoDejó de ser obligatorioEra requerido en la 3.3 y pasó a opcional en el traslado agrupado del comprobante.
Importecfdi:Impuestos/Traslados/TrasladoDejó de ser obligatorioMismo caso: de requerido a opcional en el nivel del comprobante.
(el nodo)cfdi:CfdiRelacionadosCambió cuántas veces cabePasó de aparecer una vez como mucho a poder repetirse: un bloque por cada tipo de relación.
(el nodo)cfdi:ComplementoCambió cuántas veces cabeAl revés: de poder repetirse a admitir sólo uno.
(el nodo)cfdi:Concepto/CuentaPredialCambió cuántas veces cabeDe uno como máximo a poder repetirse.

¿Y el CFDI 5.0?

Tabla 3. Las versiones del estándar y su vigencia. Fuente: página del Anexo 20 del SAT.
VersiónEstadoDetalle
3.3RetiradaConvivió con la 4.0 del 1 de enero de 2022 al 31 de marzo de 2023. Desde el 1 de abril de 2023 ya no se admite.
4.0VigenteÚnica versión válida desde el 1 de abril de 2023. Es la que tiene que decir el atributo Version del nodo raíz.
5.0Sin publicarAl 25 de septiembre de 2026, el SAT no publica ningún esquema, estándar ni catálogo de una versión 5.0 en su página del Anexo 20, y la Resolución Miscelánea Fiscal 2026 no la menciona. Comprobado en esa fecha; si aparece, se actualiza aquí.

Quién firma qué, y qué prueba comprobarlo por tu cuenta

En un CFDI hay dos firmas y las escriben dos personas distintas. La tuya va en el atributo Sello del comprobante. La del SAT va dentro del nodo del timbre y la pone el PAC. Las dos se pueden verificar por criptografía fuera del SAT: hace falta el certificado público de cada firmante —el tuyo viaja dentro del archivo, el del SAT se descarga por su número de serie— y reconstruir la cadena original con las transformaciones que el propio SAT publica. Hay software que lo hace, y no tiene nada de magia.

Lo que conviene no confundir es eso con una validación. Una firma que cuadra prueba que esos bytes se firmaron y que nadie los tocó después. No sustituye la consulta oficial del SAT ni confirma por sí sola que el comprobante siga vigente: si se canceló, o si el emisor acabó en la lista del artículo 69-B, eso no está en el archivo y ninguna comprobación criptográfica lo puede contestar. Nuestras herramientas no comprueban sellos, y las cuatro precisiones de abajo son la razón.

Quién firma qué, y qué prueba comprobarlo por tu cuenta
1 · Tú generasEl XML sin sellar.Todavía no esun comprobante.2 · Tú sellasCon tu CSD.Va en el atributoSello. TuCertificado viajadentro.3 · El PAC timbraValida y añadetfd:TimbreFiscal-Digital: UUID ySelloSAT.4 · Ya es un CFDICon folio fiscal.Deducible,cancelable yconsultable.Qué NO prueba comprobar los sellos por tu cuenta· Se puede: el certificado del SAT no viaja, pero se descarga por su número de serie.· La «cadena original» se reconstruye con las transformaciones XSLT que el SAT publica.· Pero no sustituye la consulta oficial: el SAT no le reconoce validez a otra validación.· Ni dice si el CFDI se canceló después, ni si el emisor acabó en la lista del 69-B.

Fuente: Anexo 20, estándar técnico del CFDI 4.0 (el sello es una digestión SHA-2 256 cifrada con RSA y codificada en base 64) y esquema TimbreFiscalDigitalv11.xsd. Elaboración de Calcu.mx.

1. El certificado del SAT no viaja en el archivo: hay que ir por él

El del emisor sí: el atributo Certificado lleva su certificado completo en base 64. Del SAT sólo viaja NoCertificadoSAT, que es un número de serie. Comprobar esa segunda firma exige descargar antes el certificado público que corresponde a ese número, que el SAT publica fuera del comprobante. Es un paso extra, no un muro: un programa que lo descargue puede verificar la firma.

2. La cadena original hay que reconstruirla, y no es el XML tal cual

Lo que se firma no es el archivo: es una cadena que se obtiene aplicándole una transformación XSLT que publica el SAT y que a su vez llama a otras, más una por cada complemento. Quien aplique esas transformaciones publicadas reproduce los bytes que se firmaron; quien compare contra el XML en crudo no va a hacer cuadrar ninguna firma.

3. Una firma válida es un hecho del pasado, no un estado de hoy

Aunque la firma cuadre, sólo prueba que esos bytes se firmaron alguna vez y que nadie los alteró después. No dice si el comprobante se canceló, ni si el emisor apareció más tarde en la lista del artículo 69-B del Código Fiscal. Eso vive en la base del SAT, cambia con el tiempo y no está en el archivo: ninguna comprobación criptográfica lo puede contestar.

4. Y aunque cuadre, no sustituye la consulta oficial

El propio SAT lo dice en sus preguntas frecuentes del CFDI 4.0: la única validación tecnológica reconocida es la que hace el SAT o el PAC al timbrar, y «cualquier otra validación tecnológica que un contribuyente haga a una factura, no tiene validez ante el SAT». La comprobación por tu cuenta puede servirte para depurar; para acreditar algo ante la autoridad, no.

«La única validación tecnológica de una factura electrónica reconocida por el SAT, es la que el propio SAT realiza directamente cuando la factura se generó en sus aplicaciones tecnológicas o cuando esta fue certificada (timbrada) por un PAC, cualquier otra validación tecnológica que un contribuyente haga a una factura, no tiene validez ante el SAT.»
SAT, Preguntas frecuentes del CFDI versión 4.0, pregunta 35. Artículo 29 del Código Fiscal de la Federación y regla 2.7.1.4 de la RMF vigente.

Por eso lo único que zanja el estado de una factura es preguntarle al SAT. Nuestra página de verificación no valida nada: revisa que el folio y los RFC tengan la forma correcta y te arma el enlace al verificador oficial con los campos puestos, que es la única consulta con valor.

El reloj del complemento de pago

Éste es el dato que no está en ninguna otra página del sitio y que las guías de proveedores publican mal con notable frecuencia. Si emitiste una factura como PPD, cada pago que recibas exige un CFDI con complemento de pago, y hay fecha límite.

Si la factura es PPD, el reloj del complemento de pago ya corre
¿Ya tienes el dinero completo al emitir?SÍNOMetodoPago = PUEPago en una sola exhibición.FormaPago: con qué te pagaronNo se emite nada más.MetodoPago = PPDEn parcialidades o diferido.FormaPago tiene que ser 99.Y falta un CFDI por cada pago.La fecha límite que casi nadie publica bienEl CFDI con complemento de pago se emiteal quinto día NATURAL del mes siguienteal del pago. Regla 2.7.1.32. No es hábil.¿Y si era PUE y nunca te pagaron?Si el pago no llega antes de que acabe el mesde emisión: cancelas y emites otra como PPD,relacionada como sustitución. Regla 2.7.1.42.

Fuente: RMF 2026, reglas 2.7.1.32 y 2.7.1.42 (DOF 28 de diciembre de 2025); catálogos c_MetodoPago y c_FormaPago del Anexo 20. Elaboración de Calcu.mx. El plazo se cuenta en días NATURALES: los fines de semana cuentan.

Regla 2.7.1.7 · Requisitos de las representaciones impresas del CFDI

Obliga a que el papel o el PDF lleven, entre otras cosas, el folio fiscal, el número de serie del CSD del emisor y del SAT, la cadena original del complemento de certificación digital del SAT y la leyenda «Este documento es una representación impresa de un CFDI».

«Este documento es una representación impresa de un CFDI»

Cada requisito de la representación impresa es un puntero hacia el XML. El papel está definido en la ley como derivado del archivo, y lleva escrito encima que lo es.

Regla 2.7.1.32 · Expedición de CFDI por pagos realizados

Cuando la contraprestación no se paga en una sola exhibición se emite un CFDI por el total y después uno por cada pago, con «cero» en el campo Total, sin dato en MetodoPago ni en FormaPago, y con el Complemento para recepción de Pagos incorporado.

«deberá emitirse a más tardar al quinto día natural del mes inmediato siguiente al que corresponda el o los pagos recibidos»

Aquí está la fecha límite que casi nadie publica bien: el CFDI con complemento de pago «deberá emitirse a más tardar al quinto día natural del mes inmediato siguiente al que corresponda el o los pagos recibidos». Natural, no hábil. Y se puede emitir uno solo por todos los pagos de un mes al mismo receptor.

Regla 2.7.1.42 · Facturación PUE que acaba sin cobrarse

Si se emitió un CFDI como PUE y el pago no se recibe a más tardar el último día del mes en que se expidió, el emisor cancela el comprobante y emite uno nuevo con forma de pago «99 Por definir» y método «PPD», relacionándolo con el original como sustitución.

Es el enredo más común del mundo real y casi nadie lo cubre: la factura no estaba mal cuando se emitió, se volvió incorrecta porque el cliente no pagó.

Regla 2.7.1.35 · Cancelación sin aceptación del receptor

Lista los supuestos en los que un CFDI se cancela sin pedirle permiso a quien lo recibió. El primero es el de los comprobantes de hasta mil pesos.

Con una excepción que sorprende a todo el mundo: un CFDI con Complemento para recepción de Pagos NO se libra por el importe, aunque sea de trescientos pesos.

Reglas de la Resolución Miscelánea Fiscal para 2026, publicada en el Diario Oficial de la Federación el 28 de diciembre de 2025. Si lo que necesitas es decidir entre PUE y PPD al emitir, está explicado en cómo hacer una factura.

El catálogo de formas de pago, completo

Las 22 claves de c_FormaPago. Se publica entero porque el catálogo oficial es una hoja dentro de un libro de Excel de decenas de megabytes, y quien necesita saber qué es la clave 17 no va a descargarlo. Dos avisos: la clave es una cadena de dos caracteres con cero a la izquierda, y los huecos de la numeración son reales —no existen la 07, ni de la 09 a la 11, ni la 16, ni de la 18 a la 22—.

Tabla 4. Catálogo c_FormaPago del CFDI 4.0, vigente desde el 1 de enero de 2022. Transcrito de la enumeración de catCFDI.xsd y cotejado contra el libro de catálogos del SAT. La columna «bancarizado» decide qué campos del complemento de pago pasan a ser obligatorios.
ClaveDescripciónBancarizado
01EfectivoNo
02Cheque nominativoSí
03Transferencia electrónica de fondosSí
04Tarjeta de créditoSí
05Monedero electrónicoSí
06Dinero electrónicoSí
08Vales de despensaNo
12Dación en pagoNo
13Pago por subrogaciónNo
14Pago por consignaciónNo
15CondonaciónNo
17CompensaciónNo
23NovaciónNo
24ConfusiónNo
25Remisión de deudaNo
26Prescripción o caducidadNo
27A satisfacción del acreedorNo
28Tarjeta de débitoSí
29Tarjeta de serviciosSí
30Aplicación de anticiposNo
31Intermediario pagosNo
99Por definirLa obligatoria cuando el método de pago es PPD.Depende

Preguntas frecuentes

¿Qué significa el atributo ObjetoImp de un concepto?

Dice si ese concepto en concreto es objeto de impuesto o no, y es de los campos que nacieron con la versión 4.0. Va en cada concepto, no en el comprobante, así que una misma factura puede llevar conceptos con distinto valor. Si declaras que sí es objeto de impuesto, ese concepto tiene que traer su nodo de impuestos; declararlo y no desglosarlos es un rechazo al timbrar.

¿Qué atributos nacieron con el CFDI 4.0 y no existían en la 3.3?

Seis atributos sueltos y dos nodos enteros. Los sueltos son DomicilioFiscalReceptor y RegimenFiscalReceptor en el receptor, Exportacion en el comprobante, ObjetoImp en cada concepto, FacAtrAdquirente en el emisor y Base en el traslado agrupado. Los nodos nuevos son InformacionGlobal, de la factura al público en general, y ACuentaTerceros, para cuando facturas por cuenta de alguien más; entre los dos añaden siete atributos más. Ojo con un caso que casi todas las guías cuentan mal: el Nombre del receptor NO es nuevo. Existía en la 3.3 como opcional y la 4.0 lo volvió requerido, igual que el del emisor, que es un cambio de uso y no un campo nuevo.

¿Qué pongo en Exportacion si no exporto nada?

El atributo es obligatorio aunque no exportes: la operación normal en territorio nacional lleva la clave que significa que no es una operación de exportación. No es un campo que puedas omitir por no dedicarte al comercio exterior; el esquema lo exige en todos los comprobantes de la versión 4.0.

¿Cuándo tengo que emitir el complemento de pago?

A más tardar el quinto día natural del mes inmediato siguiente al que corresponda el pago, según la regla 2.7.1.32 de la Resolución Miscelánea Fiscal. Ojo con el adjetivo: la regla dice día NATURAL, no hábil, así que los fines de semana cuentan. Y puedes emitir uno solo por todos los pagos que hayas recibido de un mismo receptor en el mes, en vez de uno por abono.

¿Para qué sirve el nodo InformacionGlobal?

Es el nodo de la factura al público en general: agrupa las ventas de un periodo en un solo comprobante y declara su periodicidad, el mes y el año que ampara. Lo llevan sólo esas facturas globales, no las que emites a un cliente identificado. Si quieres el procedimiento completo para emitir una, está en la guía de cómo hacer una factura.

¿Qué diferencia hay entre el Sello del emisor y el sello del SAT?

Son dos firmas distintas y viven en sitios distintos del archivo. La del emisor va en el atributo Sello del comprobante y la produce él con su Certificado de Sello Digital. La del SAT va dentro del nodo del Timbre Fiscal Digital, la añade el PAC al timbrar y es la que convierte un borrador en comprobante fiscal. Un XML sin timbre no ampara nada.

¿Puedo comprobar el sello de un CFDI con una herramienta que no sea del SAT?

Técnicamente sí, y conviene separar dos cosas que se confunden todo el tiempo. Un programa externo puede hacer una verificación criptográfica de las dos firmas si obtiene los certificados públicos —el del emisor viaja dentro del archivo; el del SAT hay que descargarlo por su número de serie— y reconstruye la cadena original con las transformaciones que publica el SAT. Lo que esa comprobación no hace es sustituir la consulta oficial del SAT, que es la única validación tecnológica que el SAT reconoce según sus preguntas frecuentes del CFDI 4.0, ni confirmar por sí sola el estado vigente del comprobante: si se canceló después, o si el emisor acabó en la lista del 69-B, eso no está en el archivo.

¿Qué es la cadena original y cómo se reconstruye?

Es la secuencia de datos que de verdad se firma, y no es el XML tal cual: se obtiene aplicándole una transformación XSLT que publica el SAT, la cual llama a su vez a otras, más una por cada complemento que traiga el comprobante. Quien aplique esas transformaciones publicadas reproduce los bytes exactos que se firmaron, que es el primer paso para comprobar cualquier firma; quien intente cuadrar la firma contra el XML en crudo no va a conseguirlo nunca. Es trabajo de implementación, no un secreto: las hojas de transformación son públicas.

¿Qué es el atributo TipoRelacion y cuándo aparece?

Aparece cuando un comprobante se relaciona con otro, dentro del nodo de CFDI relacionados, y dice qué tipo de relación es. Los dos casos que se ven a diario son la nota de crédito, que corrige un comprobante anterior, y la sustitución, que es la que se usa al refacturar después de cancelar. Si vas a cancelar y refacturar, el orden y el motivo están en la guía de cancelación.

¿Por qué el XML se ve mal cuando lo abro en Excel o en el navegador?

Porque no está pensado para que lo leas tú: es un formato de intercambio entre sistemas, y Excel intenta acomodarlo en celdas inventándose una estructura que el archivo no tiene. Abrirlo en un editor de texto sí funciona y se ve la etiqueta de cada campo. Si lo que quieres es leerlo en español, en la página de verificación tenemos un lector que lo traduce dentro de tu navegador, sin subirlo a ningún servidor.

¿Existe el CFDI 5.0?

Al 25 de septiembre de 2026, el SAT no publica ningún esquema, estándar ni catálogo de una versión 5.0 en su página del Anexo 20, y la Resolución Miscelánea Fiscal de 2026 no la menciona. Circula bastante contenido de proveedores anunciándola; conviene pedirle a quien la anuncie el documento oficial que la respalda. La versión que tiene que decir el atributo Version de tu archivo hoy es la 4.0.

¿Un XML sin el nodo del Timbre Fiscal Digital sirve de algo?

No como comprobante fiscal. Ese nodo es el que añade el PAC al certificar, y trae el folio fiscal, la fecha de timbrado y el sello del SAT. Sin él tienes un archivo que nunca se certificó: un borrador. No ampara ninguna deducción, no aparece en la consulta del SAT y no se puede cancelar, porque para el SAT no existe.

¿Cuánto tiempo tengo que guardar los XML?

El archivo es el comprobante, así que guardar sólo el PDF equivale a no guardarlo. Conviene conservar el XML de todo lo que emites y de todo lo que deduces durante el plazo de conservación de la contabilidad, y hacerlo en un lugar del que puedas recuperarlo por tu cuenta: el portal del SAT tiene límites de descarga y no está pensado como tu archivo permanente.

Fuentes oficiales y referencias

Esta guía es información educativa sobre reglas fiscales públicas, no asesoría fiscal ni contable, y no sustituye a un contador. Las reglas de facturación cambian con cada Resolución Miscelánea Fiscal y el SAT rediseña sus portales sin aviso: antes de emitir, cancelar o deducir, confirma en sat.gob.mx o con tu contador. Calcu.mx no es un PAC, no timbra facturas, no consulta tu información fiscal y nunca te pedirá tu Contraseña ni tu e.firma.

Autor y revisión editorial

Deepak Middha

Fundador y autor de Calcu.mx

Contador calificadoChartered AccountantSeries 65Autor de dos libros

Contenido sobre el estándar técnico del Comprobante Fiscal Digital por Internet con enfoque contable, verificado contra fuentes oficiales (SAT (esquemas del CFDI 4.0 y del Timbre Fiscal Digital, Anexo 20 y su Guía de llenado), Diario Oficial de la Federación). Conoce nuestra metodología editorial o escríbenos a support@calcu.mx.

Aviso: contenido informativo y educativo; no constituye asesoría fiscal, legal ni contable. Calcu.mx no está afiliado al SAT ni a ninguna autoridad. Las fechas, tasas y montos pueden cambiar por reformas o actualizaciones; verifica siempre el dato vigente en el DOF o en el SAT, y consulta a un contador antes de tomar decisiones.

Publicado: 27 de agosto de 2026Última revisión normativa: 25 de septiembre de 2026

Sigue en Facturas

Ver herramientas de impuestos →