El error CFDI40180 del SAT se refiere a un problema con el valor del campo "Importe" en un nodo de traslado de impuestos dentro de un CFDI. Este error ocurre cuando el importe del traslado no está dentro del rango permitido con base en la tasa/cuota e importe base del impuesto.
???? Causa del error CFDI40180
Este error ocurre cuando el valor del campo:
no se encuentra dentro del rango calculado de forma automática por el SAT para ese impuesto, según esta fórmula:
Importe = Base × TasaOCuota
✅ Solución
Asegúrate de que el campo Importe
sea igual al resultado de:
Importe = Base × TasaOCuota
Y redondeado a dos decimales. Se permite una tolerancia mínima (normalmente ±0.000002), pero para evitar errores se recomienda usar exactamente el resultado redondeado.
???? Ejemplo con error
<cfdi:Concepto Importe="100.00" ValorUnitario="100.00" Cantidad="1">
<cfdi:Impuestos>
<cfdi:Traslados>
<cfdi:Traslado Base="100.00" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.160000" Importe="15.99"/>
</cfdi:Traslados>
</cfdi:Impuestos>
</cfdi:Concepto>
Aquí el cálculo correcto sería:
100.00 × 0.160000 = 16.0000
Pero se está usando 15.99
, lo cual está fuera del rango permitido.
✅ Ejemplo corregido
<cfdi:Concepto Importe="100.00" ValorUnitario="100.00" Cantidad="1">
<cfdi:Impuestos>
<cfdi:Traslados>
<cfdi:Traslado Base="100.00" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.160000" Importe="16.00"/>
</cfdi:Traslados>
</cfdi:Impuestos>
</cfdi:Concepto>
Ahora Importe="16.00"
coincide con el resultado correcto y se evita el error CFDI40180.
✅ Recomendaciones adicionales
-
Usa siempre 6 decimales en
TasaOCuota
(ej.0.160000
). -
Calcula
Importe
comoBase * TasaOCuota
y redondea a 2 decimales. -
Verifica que no estés redondeando antes de multiplicar.