Error CFDI40203: total de retenciones distinto a la suma
Folios sin caducidad · Multi-empresa · Timbrado CFDI 4.0 · Ver paquetes
Error / Problema Actualizado 28/10/2026

Error CFDI40203 al timbrar: TotalImpuestosRetenidos no es igual a la suma de las retenciones

El error CFDI40203 aparece cuando TotalImpuestosRetenidos no coincide con la suma de los Importe de los nodos cfdi:Retencion del resumen de impuestos. Se presenta sobre todo cuando el comprobante retiene más de un impuesto, por ejemplo ISR e IVA, y el sistema suma solo uno, o cuando el total se calcula por separado de los renglones. Aquí verás cómo reconstruir el total desde las retenciones y cómo detectar la diferencia.

Resumen rápido del error

  • Código: CFDI40203
  • Campo: TotalImpuestosRetenidos
  • Nodo del XML: cfdi:Impuestos
  • Regla del SAT (Anexo 20): El valor de este atributo debe ser igual a la suma de los importes registrados en el elemento hijo Retencion.
  • Mensaje de rechazo: El valor del campo TotalImpuestosRetenidos debe ser igual a la suma de los importes registrados en el elemento hijo Retencion.
  • Cuándo aparece: al timbrar, antes de que se genere el UUID.

¿Qué significa el error CFDI40203?

En el resumen de impuestos del comprobante, el nodo cfdi:Retenciones agrupa un renglón por cada impuesto retenido. El atributo TotalImpuestosRetenidos de cfdi:Impuestos debe ser la suma de los Importe de esos renglones. La regla CFDI40203 verifica solo esa igualdad.

Es la contraparte de CFDI40205, que hace la misma comprobación con los traslados. Aquí no se revisa cuántos decimales tiene el total (eso es CFDI40202), ni que exista el atributo cuando hay retenciones (CFDI40206), ni que haya un solo renglón por impuesto (CFDI40208). Si el desfase es de centavos, conviene revisar también el redondeo de cada renglón.

Dónde se valida: el nodo Resumen de retenciones

La validación se aplica al atributo TotalImpuestosRetenidos del nodo cfdi:Impuestos del comprobante y suma todos los hijos cfdi:Retencion.

  • CFDI40202: el total debe tener hasta los decimales que soporte la moneda.
  • CFDI40203: el total debe ser la suma de las retenciones (esta ficha).
  • CFDI40206: si existen retenciones, debe existir el total.
  • CFDI40207: el impuesto de cada retención debe estar en c_Impuesto.
  • CFDI40208: debe haber un solo renglón por cada tipo de impuesto retenido.

Causas más comunes del error CFDI40203

  • Se sumó una sola retención. El total incluye el ISR pero no el IVA retenido, o al revés.
  • Se agregó un renglón sin actualizar el total. Se añadió una retención a mano y el total quedó con el valor anterior.
  • El total sale de otro cálculo. Se calculó sobre el subtotal y no sumando los renglones del resumen.
  • Se mezclaron traslados y retenciones. El total retenido incluye importes de traslados, o se restó el IVA trasladado.
  • Hay renglones duplicados. El mismo impuesto aparece dos veces y el total solo cuenta uno.
  • El redondeo difiere. Cada renglón se redondeó distinto al total.

Cómo corregir el error CFDI40203 paso a paso

  1. Lista los renglones del resumen. Anota el Importe de cada cfdi:Retencion.
  2. Suma los importes. El resultado es el valor que debe tener el total.
  3. Compara con el atributo. Identifica la retención que falta o sobra.
  4. Revisa que no haya duplicados. Debe haber un solo renglón por tipo de impuesto (CFDI40208).
  5. Corrige el cálculo. Haz que el sistema sume los renglones y no el subtotal por una tasa.
  6. Se vuelve a timbrar. Con los datos coherentes, el PAC pasa a las demás validaciones.

Ejemplo en el XML: incorrecto y correcto

Ejemplo de un resumen con dos retenciones cuyo total solo incluye una; los importes son ficticios:

Incorrecto:

<cfdi:Impuestos TotalImpuestosRetenidos="100.00">
  <cfdi:Retenciones>
    <cfdi:Retencion Impuesto="001" Importe="100.00" />
    <cfdi:Retencion Impuesto="002" Importe="106.67" />
  </cfdi:Retenciones>
</cfdi:Impuestos>

Correcto:

<cfdi:Impuestos TotalImpuestosRetenidos="206.67">
  <cfdi:Retenciones>
    <cfdi:Retencion Impuesto="001" Importe="100.00" />
    <cfdi:Retencion Impuesto="002" Importe="106.67" />
  </cfdi:Retenciones>
</cfdi:Impuestos>

Los importes son ficticios: 100.00 + 106.67 = 206.67. Las claves 001 y 002 corresponden a ISR e IVA en el catálogo c_Impuesto.

Construye el total desde los renglones, no a la inversa

La forma más segura de evitar este rechazo es que el sistema genere primero los renglones de retención y después sume sus importes para obtener el total, de modo que ambos datos salgan de la misma fuente. Si tu sistema permite editar retenciones a mano, haz que recalcule el total en cuanto se modifique un renglón. Una revisión previa al timbrado que sume los renglones y los compare con el total detecta el desfase antes de enviar. Si trabajas con clientes que retienen impuestos de forma habitual, deja sus retenciones configuradas en su ficha para no capturarlas en cada factura. Para repasar el cálculo general del comprobante, 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 40203?

Que el total de retenciones no es igual a la suma de los renglones de retención.

¿Por qué falla con ISR e IVA?

Porque el sistema suma solo una de las dos retenciones.

¿Es un problema de decimales?

No necesariamente; esa regla es la 40202.

¿Debo incluir traslados en este total?

No. Los traslados tienen su propio total, validado por la regla 40205.

¿Qué hago con una diferencia de centavos?

Revisa el redondeo de cada renglón y del total.

¿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