Contenido
¿Qué es el CFDI 4.0? Cambios vs 3.3 Campos nuevos Estructura del CFDI Receptor Tipos de CFDI Cancelación 2.0 Generar con Timbrify
📄

Guía completa CFDI 4.0

Todo lo que necesitas saber sobre el Comprobante Fiscal Digital por Internet versión 4.0: cambios respecto a la versión 3.3, campos obligatorios, tipos de comprobante y cómo emitirlos correctamente.

Obligatorio desde 1 Ene 2023 CFDI 4.0 activo Última revisión: Ene 2026
📋 ¿Qué es el CFDI 4.0?

El Comprobante Fiscal Digital por Internet (CFDI) es el documento electrónico que ampara operaciones comerciales con valor fiscal en México. La versión 4.0, publicada en el DOF el 28 de diciembre de 2021, es obligatoria desde el 1 de enero de 2023 y reemplaza definitivamente a la versión 3.3.

El CFDI es un archivo XML estructurado, firmado digitalmente por el contribuyente y sellado por un Proveedor Autorizado de Certificación (PAC) que actúa como intermediario ante el SAT. Sin el sello del PAC, el documento no tiene validez fiscal.

ℹ️ La versión 3.3 quedó definitivamente obsoleta. El SAT dejó de aceptar CFDIs 3.3 desde el 1 de enero de 2023. Todos los comprobantes nuevos deben ser versión 4.0.
🔄 Cambios vs CFDI 3.3

La versión 4.0 introduce cambios significativos orientados a mejorar la identificación de contribuyentes y reducir el fraude fiscal.

CFDI 3.3 — ELIMINADO
Sin validación estricta del RFC receptor
Nombre del receptor opcional
Sin Régimen Fiscal del Receptor
Sin Domicilio Fiscal del Receptor
ExportacionesNacional sin distinción
CFDI 4.0 — NUEVO / OBLIGATORIO
RFC receptor validado en tiempo real contra SAT
Nombre del receptor obligatorio y coincidente con SAT
RegimenFiscalReceptor nuevo campo obligatorio
DomicilioFiscalReceptor (código postal)
Exportacion campo distingue tipo de exportación
InformacionGlobal para facturas globales
🏗️ Nodo Receptor (campos clave)

El nodo cfdi:Receptor es donde residen los cambios más importantes de CFDI 4.0. Estos 3 campos son nuevos y obligatorios:

CampoReq.Descripción
Rfc Obligatorio RFC del receptor. Debe existir en el catálogo del SAT (se valida en tiempo real). Para público en general: XAXX010101000. Para extranjero: XEXX010101000
Nombre Obligatorio Nombre o razón social del receptor. Debe coincidir exactamente con el nombre registrado en el SAT para ese RFC.
DomicilioFiscalReceptor Obligatorio (v4.0) Código postal del domicilio fiscal del receptor. Para público en general: mismo CP que el emisor.
RegimenFiscalReceptor Obligatorio (v4.0) Clave del régimen fiscal del receptor. Persona física: usualmente 605 (Sueldos y Salarios) o 616 (Sin obligaciones fiscales). Persona moral: 601.
UsoCFDI Obligatorio Clave del uso que el receptor dará al comprobante. Los más comunes: G01 (Adquisición de mercancias), G03 (Gastos en general), S01 (Sin efectos fiscales).
📁 Tipos de CFDI

El atributo TipoDeComprobante define qué operación ampara el CFDI:

ClaveTipoUso
IIngresoVenta de bienes o servicios. El más común.
EEgresoNota de crédito, devoluciones o descuentos.
TTrasladoMovimiento de mercancías sin transacción monetaria. Requiere Carta Porte si hay transporte.
PPagoComplemento de pago (REP). Obligatorio para facturas a crédito cuando se recibe el pago parcial o total.
NNóminaRecibo de nómina electrónico. Requiere complemento de nómina 1.2.
🗑️ Cancelación de CFDI 2.0

Desde el 1 de enero de 2022, la cancelación de CFDIs requiere el motivo y, en algunos casos, la aceptación del receptor. Hay 4 motivos de cancelación:

ClaveMotivoRequiere aceptación
01Comprobante emitido con errores con relaciónSí (receptor)
02Comprobante emitido con errores sin relaciónNo
03No se llevó a cabo la operaciónSí (receptor)
04Operación nominativa relacionada en factura globalNo
⚠️ Para cancelar un CFDI con motivo 01 ó 03, el receptor tiene 3 días para aceptar o rechazar la cancelación. Si no responde, la cancelación se aplica automáticamente después del plazo.
⚡ Generar CFDI 4.0 con Timbrify

Timbrify maneja toda la complejidad del CFDI 4.0 por ti: valida RFCs en tiempo real, construye el XML correctamente y lo timbra con el PAC. Solo necesitas pasar los datos del negocio.

import { Timbrify } from '@timbrify/sdk';

const cfdi = await client.invoices.stamp({
  emisor: { rfc: '...', nombre: '...', regimenFiscal: '601' },
  receptor: {
    rfc: 'GOML8902154P3',
    nombre: 'LAURA GOMEZ MENDOZA',  // Timbrify valida vs SAT
    usoCfdi: 'G03',
    regimenFiscalReceptor: '605', // NUEVO en 4.0
    domicilioFiscal: '06600',          // NUEVO en 4.0
  },
  conceptos: [{ /* ... */ }],
});

console.log(cfdi.uuid); // UUID del TFD — factura válida
Ver documentación completa Probar en sandbox