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 tiene docenas de campos, pero estos son los que necesitas entender para armar uno sin que el PAC te lo rechace.

1

RFC del emisor y receptor#

El RFC (Registro Federal de Contribuyentes) identifica a ambas partes. En CFDI 4.0, además del RFC del receptor, necesitas su nombre o razón social exacta tal como aparece en la Constancia de Situación Fiscal. Un carácter de diferencia y el timbrado falla.

2

Régimen fiscal#

Tanto el emisor como el receptor deben declarar su régimen fiscal. Código 601 para General de Ley Personas Morales, 612 para Personas Físicas con Actividades Empresariales, 616 para Sin Obligaciones Fiscales (público en general). El régimen fiscal debe coincidir con lo registrado en SAT, y es uno de los campos que más errores genera en producción.

3

Uso del CFDI#

El receptor indica para qué va a usar el comprobante. G03 para Gastos en General, G01 para Adquisición de Mercancías, S01 para Sin Efectos Fiscales. Este campo afecta cómo el receptor deduce el gasto, así que no lo pongas al azar.

4

Forma y método de pago#

Dos campos que se confunden constantemente. Forma de pago (paymentFormCode) es cómo te pagaron: 01 efectivo, 03 transferencia, 04 tarjeta de crédito, 99 por definir. Método de pago (paymentMethodCode) es cuándo: PUE (pago en una sola exhibición) o PPD (pago en parcialidades o diferido).

Si pones forma de pago 99 con método PUE, el PAC te lo va a rechazar. Forma 99 solo va con PPD.

5

Conceptos (items)#

Cada línea del CFDI describe un producto o servicio con su clave del SAT (prodServCode), unidad de medida (unitCode), cantidad, precio unitario, y los impuestos que aplican. La clave de producto viene del catálogo del SAT, que tiene miles de entradas.

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.

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ó.

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.

var fiscalapi = FiscalApiClient.Create(settings => {
    settings.ApiUrl = "https://test.fiscalapi.com";
    settings.ApiKey = "TU_API_KEY";
    settings.Tenant = "TU_TENANT";
});

var invoice = await fiscalapi.Invoices.CreateAsync(new Invoice {
    VersionCode = "4.0",
    Series = "F",
    TypeCode = "I",
    PaymentFormCode = "03",
    PaymentMethodCode = "PUE",
    CurrencyCode = "MXN",
    ExpeditionZipCode = "42501",
    Issuer = new InvoiceIssuer { Id = "ID_DEL_EMISOR" },
    Recipient = new InvoiceRecipient { Id = "ID_DEL_RECEPTOR" },
    Items = new List<InvoiceItem> {
        new InvoiceItem {
            Id = "ID_DEL_PRODUCTO",
            Quantity = 1
        }
    }
});

Fiscalapi se encarga del timbrado, la generación del PDF, y el almacenamiento. El XML timbrado y el UUID vienen en la respuesta. Si necesitas cancelar, consultar el estatus, o descargar el PDF, todo se hace con el mismo id del invoice que te regresó la API.

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.