FiscalAPI
CFDI: qué es y cómo funciona la factura electrónica

CFDI: qué es y cómo funciona la factura electrónica

2 de abril de 2026

Si vendes un servicio, cobras una renta o pagas una nómina en México, necesitas un CFDI. Sin él, esa transacción no existe para efectos fiscales. No es deducible, no es comprobable, y el SAT no la reconoce. Así de simple. Pero, CFDI qué es exactamente y por qué todo el sistema tributario mexicano gira alrededor de un archivo XML? Eso es lo que vamos a desarmar aquí.

Qué es CFDI

CFDI significa Comprobante Fiscal Digital por Internet. Es un documento electrónico en formato XML que registra una transacción económica con validez fiscal en México. Cada CFDI lleva una firma digital del emisor y un sello digital (timbre fiscal) que genera un Proveedor Autorizado de Certificación, o PAC.

Lo que mucha gente no entiende es que "CFDI" no es sinónimo de "factura". Una factura es un tipo de CFDI, pero el término abarca mucho más: recibos de nómina, complementos de pago, notas de crédito, comprobantes de traslado de mercancías. Todo eso son CFDIs. Cuando alguien pregunta "qué es CFDI", la respuesta corta es: el formato estándar que el SAT usa para rastrear cada peso que se mueve en la economía formal mexicana.

El SAT mantiene un catálogo de reglas, campos y códigos que definen la estructura del XML. La versión actual es CFDI 4.0, y es la única que los PACs aceptan para timbrar desde 2023.

Cómo funciona un CFDI

El proceso de emisión de un CFDI sigue un flujo específico que involucra tres actores: el emisor, el PAC, y el SAT.

El punto clave aquí es el timbrado. Cuando el PAC valida y sella tu CFDI, le asigna un UUID único (el folio fiscal) y un timbre fiscal digital. Ese sello digital es la prueba de que el comprobante fiscal digital fue validado correctamente. El UUID es el identificador definitivo del comprobante ante el SAT. Si necesitas cancelar, consultar o verificar un CFDI, lo haces con ese UUID.

El PAC no solo timbra. También valida que los datos sean correctos: que el RFC del emisor esté activo, que el régimen fiscal coincida con el registrado en SAT, que los códigos de uso y forma de pago existan en el catálogo vigente. Si algo no cuadra, el timbrado se rechaza.

En la práctica, nadie arma el XML a mano. Usas un sistema de facturación o una API como la de Fiscalapi que se encarga de construir el XML, enviarlo al PAC, y devolverte el CFDI timbrado listo para entregar.

Tipos de CFDI

No todos los CFDIs son facturas. El campo typeCode define qué tipo de comprobante estás emitiendo, y cada uno tiene un propósito distinto.

El más común. Lo emites cuando cobras por un producto o servicio. Es lo que la mayoría de la gente llama "factura". Cada vez que un cliente te paga y necesita su comprobante fiscal, generas un CFDI de tipo Ingreso.

Ejemplo: vendes una licencia de software por $5,000 MXN. Emites un CFDI de Ingreso con ese monto, los impuestos correspondientes (IVA, retención de ISR si aplica), y los datos fiscales del cliente.

Estructura de un CFDI

Un CFDI es un documento XML con una estructura definida por el XSD oficial del SAT. El elemento raíz es Comprobante, y dentro de él se organizan los nodos que representan cada parte de la transacción. Esta es la jerarquía real:

Comprobante: el nodo raíz

El elemento Comprobante contiene los atributos globales del CFDI. Estos son los más importantes:

AtributoRequeridoDescripción
VersionSiempre "4.0"
SerieNoSerie interna de control (ej. "F", "NC")
FolioNoFolio interno de control
FechaFecha y hora de emisión (AAAA-MM-DDThh:mm:ss)
FormaPagoNoClave de forma de pago (01 efectivo, 03 transferencia, 04 tarjeta de crédito, 99 por definir)
MetodoPagoNoPUE (pago en una exhibición) o PPD (pago en parcialidades o diferido)
SubTotalSuma de importes antes de impuestos y descuentos
DescuentoNoTotal de descuentos antes de impuestos
MonedaCódigo de moneda ISO 4217 (MXN, USD)
TipoCambioNoTipo de cambio cuando la moneda no es MXN
TotalMonto total del comprobante
TipoDeComprobanteTipo de CFDI: I (Ingreso), E (Egreso), T (Traslado), N (Nómina), P (Pago)
ExportacionClave de exportación (01 No aplica, 02 Definitiva, 03 Temporal)
LugarExpedicionCódigo postal del lugar de expedición
SelloSello digital del emisor (Base64)
NoCertificadoNúmero de certificado del CSD (20 dígitos)
CertificadoCertificado de sello digital (Base64)

FormaPago y MetodoPago se confunden constantemente. FormaPago es cómo te pagaron (transferencia, tarjeta, efectivo). MetodoPago es cuándo: PUE si ya pagaron, PPD si van a pagar después. Si pones FormaPago="99" con MetodoPago="PUE", el PAC te lo rechaza. Forma 99 solo va con PPD.

Emisor

Datos fiscales de quien emite el comprobante.

AtributoRequeridoDescripción
RfcRFC del emisor
NombreNombre o razón social exacta como aparece en SAT
RegimenFiscalCódigo de régimen fiscal (601, 612, 626, etc.)

Receptor

Datos fiscales de quien recibe el comprobante. En CFDI 4.0, el receptor dejó de ser un nodo simple.

AtributoRequeridoDescripción
RfcRFC del receptor
NombreNombre o razón social exacta como aparece en la Constancia de Situación Fiscal
DomicilioFiscalReceptorCódigo postal del domicilio fiscal del receptor
RegimenFiscalReceptorCódigo de régimen fiscal del receptor
UsoCFDIClave de uso del CFDI (G03, G01, S01, etc.)

El error más común en producción es que el nombre del receptor no coincide exactamente con lo registrado en SAT. "EMPRESA SA DE CV" no es lo mismo que "EMPRESA, S.A. DE C.V." para el timbrado. Antes de emitir, verifica los datos fiscales del receptor con su Constancia de Situación Fiscal.

Conceptos

Cada Concepto dentro del nodo Conceptos describe una línea del comprobante: un producto vendido o un servicio prestado.

AtributoRequeridoDescripción
ClaveProdServClave del catálogo de productos y servicios del SAT
CantidadCantidad del bien o servicio
ClaveUnidadClave de unidad de medida del SAT (E48 servicio, H87 pieza, etc.)
DescripcionDescripción del bien o servicio
ValorUnitarioPrecio unitario
ImporteCantidad × ValorUnitario
DescuentoNoDescuento aplicado a este concepto
ObjetoImpSi el concepto es objeto de impuesto (01 No, 02 Sí, 03 Sí y no obligado al desglose)

Cada Concepto puede contener su propio nodo Impuestos con traslados (IVA, IEPS) y retenciones (ISR, IVA retenido) a nivel de línea. También puede incluir InformacionAduanera para importaciones, CuentaPredial para inmuebles, y Parte para desglosar componentes de un kit o paquete.

Impuestos (nivel global)

El nodo Impuestos a nivel de Comprobante consolida todos los impuestos de todos los conceptos. Contiene:

  • TotalImpuestosTrasladados: suma de todos los IVA e IEPS trasladados
  • TotalImpuestosRetenidos: suma de todas las retenciones de ISR e IVA
  • Nodos Traslado y Retencion agrupados por tipo de impuesto, tasa y tipo de factor

Complemento y Addenda

El nodo Complemento es el punto de extensión donde el SAT inserta información adicional obligatoria. Aquí va el Timbre Fiscal Digital que genera el PAC al timbrar, y aquí van los complementos de CFDI (pago, nómina, carta porte, comercio exterior, etc.). Es un nodo de tipo xs:any, lo que significa que acepta cualquier XML que cumpla con un esquema XSD registrado por el SAT.

El nodo Addenda es similar pero para uso comercial privado entre emisor y receptor. No tiene validez fiscal; es donde las empresas agregan información adicional como números de orden de compra, centros de costo, o datos logísticos que su ERP necesita.

CFDI 4.0: qué cambió

La versión 4.0 del CFDI se volvió obligatoria el 1 de enero de 2023. Los cambios principales respecto a la versión 3.3 fueron:

El receptor dejó de ser opcional en términos de datos. Ahora necesitas su nombre completo, RFC, domicilio fiscal (código postal), y régimen fiscal. Antes bastaba con el RFC y un uso de CFDI genérico. Esto rompió integraciones en producción por todos lados, porque muchos sistemas no recopilaban esos datos del cliente.

Se agregó el campo de exportación, obligatorio en todos los CFDIs aunque no exportes nada (en ese caso va 01 - No Aplica).

Los CFDIs relacionados ahora requieren especificar el tipo de relación con más precisión. Y las cancelaciones cambiaron: ya no puedes cancelar un CFDI unilateralmente si tiene más de 24 horas. El receptor tiene que aceptar la cancelación, excepto en montos menores a $1,000 MXN.

Desde 2026, el SAT exige que cada CFDI ampare una operación real y existente. Esto se llama "materialidad": la autoridad fiscal puede verificar que la transacción efectivamente ocurrió. No basta con tener un CFDI timbrado; necesitas poder demostrar que el servicio se prestó o el producto se entregó.

Complementos de CFDI: cómo evolucionó la facturación electrónica

Cuando la facturación electrónica arrancó en México, el CFDI solo necesitaba representar dos cosas: una factura de ingreso y una nota de crédito (egreso). Ese modelo inicial fue suficiente durante los primeros años. Pero la realidad fiscal es más compleja que eso: hay pagos diferidos, nóminas, traslado de mercancías, comercio exterior, y docenas de operaciones que la autoridad tributaria necesita fiscalizar con detalle.

El modelo original de Ingreso y Egreso no alcanzaba para capturar toda esa información. La solución del SAT fue crear los complementos de CFDI: sub-XMLs que se insertan dentro del XML principal para representar conceptos específicos de la vida fiscal mexicana.

Cómo funciona la arquitectura de complementos

El XML principal del CFDI está definido por el elemento Comprobante (su esquema oficial es el XSD del CFDI 4.0). Dentro de ese XML existe un nodo llamado Complemento, y es ahí donde se insertan los sub-XMLs de cada complemento. Cada complemento tiene su propio esquema XSD, sus propias reglas de validación, y sus propios campos obligatorios. Es literalmente otro XML dentro del XML.

Los complementos más importantes

Representa el pago que un beneficiario recibe de un deudor. Se usa cuando una factura se emitió con método de pago PPD (pago en parcialidades o diferido) y el pago ocurre después. El complemento contiene toda la información del evento: importe del pago, fecha en que ocurrió, forma de pago utilizada, cuentas bancarias involucradas, y la referencia al CFDI original que se está pagando.

Cada vez que recibes un pago parcial o diferido, emites un CFDI de tipo Pago (P) con este complemento dentro. Es el comprobante que le dice al SAT: "este dinero ya cambió de manos".

Guía completa: Complemento de pago: guía práctica para emitirlo

Existen más complementos además de estos tres: comercio exterior, INE, leyendas fiscales, entre otros. Pero pagos, nómina y carta porte cubren la gran mayoría de las operaciones que un desarrollador va a integrar. Cada complemento tiene su propio XSD publicado por el SAT y sus propias reglas de construcción independientes del CFDI base.

Preguntas frecuentes sobre CFDI

Cómo emitir un CFDI con Fiscalapi

Armar un CFDI a mano es inviable en producción. Necesitas una API que construya el XML, lo valide contra el catálogo del SAT, lo envíe al PAC, y te devuelva el comprobante timbrado. Eso es exactamente lo que hace Fiscalapi: una sola llamada a la API y obtienes el XML timbrado, el UUID y el PDF. Si necesitas cancelar, consultar el estatus o descargar el comprobante, todo se hace con el mismo id del invoice que te regresó la API. Hay SDKs disponibles para C#, Node.js, Python, PHP y Java, con ejemplos de código listos para usar.

Algo que vale la pena mencionar: en el ambiente de pruebas (test.fiscalapi.com) puedes timbrar CFDIs sin costo y sin consecuencias fiscales. El sandbox simula el comportamiento del SAT completo, incluyendo validaciones de RFC y régimen fiscal. Úsalo antes de apuntar a producción. La documentación completa de la API cubre todos los endpoints, desde emisión hasta cancelación.