Error CFDI40112: Descuento con demasiados decimales
Folios sin caducidad · Multi-empresa · Timbrado CFDI 4.0 · Ver paquetes
Error / Problema Actualizado 28/10/2026

Error CFDI40112 al timbrar: el Descuento excede los decimales que soporta la moneda

El error CFDI40112 aparece cuando el atributo Descuento del comprobante tiene más decimales de los que admite la moneda declarada. En pesos mexicanos son dos decimales, de modo que un valor como 129.625 se rechaza aunque el monto sea correcto. Aquí verás por qué aparece el exceso, cómo redondear sin descuadrar el total y cuál es la diferencia con las reglas vecinas del descuento.

Resumen rápido del error

  • Código: CFDI40112
  • Campo: Descuento
  • Nodo del XML: cfdi:Comprobante
  • Regla del SAT (Anexo 20): El valor de este atributo debe tener hasta la cantidad de decimales que soporte la moneda.
  • Mensaje de rechazo: El valor del campo Descuento excede la cantidad de decimales que soporta la moneda.
  • Cuándo aparece: al timbrar, antes de que se genere el UUID.

¿Qué significa el error CFDI40112?

Cada moneda del catálogo c_Moneda tiene un número de decimales permitidos. Para MXN y USD son dos; para otras monedas puede ser distinto. La regla CFDI40112 compara los decimales del Descuento del comprobante con ese número: puede tener menos, pero no más.

El exceso casi siempre proviene de un cálculo porcentual. Un descuento del 12.5 por ciento sobre 1,037.00 da 129.625, que tiene tres decimales; para declararlo debe redondearse a 129.63 (o al valor que defina la regla de redondeo aplicable) y mantenerse así en todo el comprobante.

Dónde se valida: el nodo Comprobante y Descuento

La validación se aplica al atributo Descuento del nodo cfdi:Comprobante y usa la moneda declarada en el mismo nodo. No cuenta ceros a la derecha como un problema si el número de decimales no se excede.

  • CFDI40110: el descuento global no debe superar el subtotal.
  • CFDI40111: el descuento global debe coincidir con la suma de los descuentos de los conceptos.
  • CFDI40112: el descuento global respeta los decimales de la moneda (esta ficha).
  • CFDI40168: el descuento de un concepto tiene los mismos decimales que su importe.
  • CFDI40113: la moneda debe estar en c_Moneda.

Causas más comunes del error CFDI40112

  • Se aplicó un porcentaje sin redondear. El sistema multiplicó el subtotal por un porcentaje y escribió el resultado con tres o más decimales.
  • La moneda tiene menos decimales de los usados. Se declaró una moneda con cero decimales y se capturó un descuento con centavos.
  • El descuento viene de un sistema externo. Una integración envió un monto con cuatro o seis decimales.
  • Se sumaron descuentos sin redondear. La suma de los descuentos de los conceptos conservó decimales de más.
  • Se convirtió desde otra moneda. Un descuento en dólares se convirtió con tipo de cambio y no se redondeó.
  • Se cambió la moneda después de capturar. El monto se escribió pensando en una moneda con más decimales que la declarada.

Cómo corregir el error CFDI40112 paso a paso

  1. Consulta los decimales de la moneda. En pesos, dos; en otra moneda, revisa el catálogo.
  2. Redondea el descuento global. Deja solo los decimales permitidos.
  3. Revisa los descuentos de los conceptos. La suma debe coincidir con el descuento global (CFDI40111) y cada uno debe respetar los decimales del importe (CFDI40168).
  4. Recalcula las bases y el IVA. Con el descuento redondeado, las bases cambian en centavos.
  5. Verifica el total. El Total debe seguir la fórmula del comprobante.
  6. Vuelve a timbrar. Con decimales correctos, el PAC pasa a las demás validaciones.

Ejemplo en el XML: incorrecto y correcto

Ejemplo del encabezado de un comprobante en pesos con descuento porcentual; los importes son ficticios:

Incorrecto:

<cfdi:Comprobante Moneda="MXN" SubTotal="1037.00" Descuento="129.625" ... >

Correcto:

<cfdi:Comprobante Moneda="MXN" SubTotal="1037.00" Descuento="129.63" ... >

Al redondear el descuento a dos decimales cambian en centavos las bases y el IVA; el ejemplo es esquemático y los importes son ficticios.

Dónde conviene redondear

Una práctica sana es redondear en el concepto y no en el total. Cada línea calcula su descuento con los decimales de su importe, y el descuento del comprobante es simplemente la suma de esos valores ya redondeados. Así el global nunca tiene más decimales que los permitidos y siempre coincide con el detalle. Si redondeas solo al final, es más probable que aparezcan diferencias de centavos entre la suma de conceptos y el encabezado, que generan errores como CFDI40111 o discrepancias en el total. Define en tu sistema una sola regla de redondeo y úsala para descuentos, bases e impuestos. Para repasar el esquema general de montos, consulta la guía de facturación electrónica CFDI 4.0.

Cómo evitar este error con Soicont

Soicont es una plataforma de facturación electrónica CFDI 4.0 con PAC autorizado. Antes de enviar el comprobante a timbrar, valida los datos del receptor, los catálogos del SAT y los cálculos de impuestos, y si algo no cuadra te muestra el error con una explicación clara para que lo corrijas y vuelvas a emitir. Además, tus folios no caducan y puedes facturar para varias empresas (multi-RFC) desde una sola cuenta.

Conoce la facturación electrónica CFDI 4.0, la plataforma y los paquetes de folios.

Errores relacionados

Consulta también el Centro de Soluciones con todos los errores del SAT.

Preguntas frecuentes

¿Qué significa el error 40112?

Que el descuento del comprobante tiene más decimales de los que soporta la moneda.

¿Cuántos decimales lleva MXN?

Dos; confirma el catálogo vigente con tu contador.

¿Puedo declarar menos decimales?

Sí. La regla pide hasta los decimales de la moneda, no exactamente esa cantidad.

¿Es lo mismo que el 40168?

No. El 40168 compara el descuento de un concepto con los decimales del importe; el 40112 usa los de la moneda.

¿Cambiar el descuento altera el IVA?

Sí, porque cambia la base; recalcula los impuestos.

¿Se genera UUID con este error?

No. El comprobante se rechaza antes del timbrado.

¿Todavía no se resuelve?

Si después de revisar estos puntos el error continúa, escríbenos desde la página de contacto con el código del error y el XML que intentaste timbrar (nunca envíes contraseñas ni la llave privada del CSD). Si aún no tienes cuenta, crea la tuya y empieza a facturar con validaciones previas.

Regístrate