Facturación
Qué es CFDI 4.0 y qué cambió para tu negocio
El SAT endureció las reglas. Estos son los cambios que rompen timbrados si no los atiendes, y el checklist para que tus facturas pasen a la primera.
Por Heriberto Varela G. · Publicado el
Si de repente una factura que antes timbrabas sin problema te empezó a rebotar, no es cosa tuya: el CFDI 4.0 endureció varias validaciones que en la versión 3.3 pasaban de noche. Aquí va, sin tecnicismos innecesarios, qué cambió y qué revisar antes de que el SAT te lo diga por ti.
⚠️ Lo que más rechaza el SAT hoy
- DomicilioFiscalReceptor vacío — Obligatorio en 4.0. Debe ser el código postal del RFC receptor.
- Exportación faltante — Campo nuevo obligatorio (01=No aplica, 02=Definitiva, 03=Temporal).
- ObjetoImp sin nodo Impuestos — Si pones 02 (con impuesto) pero no mandas nodo Impuestos, rechazo CFDI40171.
- RFC genérico sin InformacionGlobal — Público en general requiere nodo InformacionGlobal con Año, Periodicidad, Meses/Bimestres.
Tabla de cambios: 3.3 → 4.0
| Campo / Regla | 3.3 | 4.0 |
|---|---|---|
| DomicilioFiscalReceptor | Opcional | Obligatorio |
| Exportación | No existía | Obligatorio (cát. SAT) |
| ObjetoImp | Opcional en concepto | Obligatorio en cada concepto |
| Nodo Impuestos por concepto | Solo si hay retenciones | Obligatorio si ObjetoImp=02 |
| InformacionGlobal (público general) | No existía | Obligatorio con RFC genérico |
| Validación XSD | Básica | Estricta (Anexo 20) |
| Cadena original | XSLT 3.3 | XSLT 4.0 (orden distinto) |
| Complemento Pagos (REP) | Pagos10 | Pagos20 (nuevos campos) |
Checklist antes de timbrar (copy-paste a tu equipo)
- Empresa: RFC, régimen, código postal, lugar de expedición, CSD vigente, zona horaria.
- Cliente: RFC válido en SAT, nombre exacto, código postal, uso CFDI, régimen fiscal.
- Artículo: ClaveProdServ SAT, ClaveUnidad SAT, precio unitario, ObjetoImp (01/02/03/04/05/06).
- Impuestos por concepto: Si ObjetoImp=02 → nodo Impuestos con Traslados (IVA 16%, IEPS si aplica) y Retenciones si aplica.
- Totales: Impuestos agrupados por tasa, redondeo a 2 decimales (SAT exige 6 en cálculo, 2 en XML).
- Complementos: Pagos20 si PPD, InformacionGlobal si público general, ComercioExterior si aplica.
- Fecha/hora: Hora LOCAL del emisor (no UTC), dentro de 72h y no >5 min en futuro.
Errores comunes que ERPCauce evita por ti
✅ NoCertificado en decimal
El SAT lo exige en decimal (20 dígitos). Node-forge da hex (40). ERPCauce lo convierte automático.
✅ Orden de nodo Impuestos
XSLT 4.0 exige: Traslados (solo Impuesto+Importe) → Retenciones (solo Impuesto+Importe) → TotalImpuestosTrasladados/Rettenidos. ERPCauce lo arma en ese orden.
✅ Validación XSD previa
Antes de llamar al PAC, ERPCauce valida contra el XSD oficial del Anexo 20. Si falla, ves el error ANTES de gastar un timbre.
✅ RFC genérico normalizado
Tú pones "Público general". ERPCauce emite "PUBLICO EN GENERAL", régimen 616, uso S01, con InformacionGlobal correcto.
Factura 4.0 sin dolores de cabeza
ERPCauce valida contra el XSD del SAT y arma la cadena original antes de gastar un timbre. Tú te concentras en vender.
Crear mi cuenta gratis →