Error CFDI40212: falta TotalImpuestosTrasladados | Solución
Folios sin caducidad · Multi-empresa · Timbrado CFDI 4.0 · Ver paquetes
Error / Problema Actualizado 28/10/2026

Error CFDI40212 al timbrar: debe existir TotalImpuestosTrasladados

El error CFDI40212 significa que el nodo cfdi:Impuestos de tu comprobante muestra traslados, pero no incluye el atributo TotalImpuestosTrasladados, aunque hay conceptos cuyo TipoFactor es distinto de Exento. Se corrige en pocos pasos. Aquí verás cuándo aplica, cuándo no, y cómo evitar confundir tasa 0 % con exento.

Resumen rápido del error

  • Código: CFDI40212
  • Campo: Traslados
  • Nodo del XML: cfdi:Comprobante/cfdi:Impuestos/cfdi:Traslados
  • Regla del SAT (Anexo 20): Debe existir el atributo TotalImpuestosTrasladados, cuando existan conceptos con un TipoFactor distinto a Exento.
  • Mensaje de rechazo: Debe existir el campo TotalImpuestosTrasladados.
  • Cuándo aparece: al timbrar, antes de que se genere el UUID.

¿Qué significa el error CFDI40212?

Los impuestos trasladados (por ejemplo, el IVA que cobras) se detallan por concepto y se resumen al final del comprobante en cfdi:Impuestos/cfdi:Traslados. El SAT exige que ese resumen incluya el total en TotalImpuestosTrasladados siempre que algún concepto tenga un factor de tipo Tasa o Cuota.

Si el atributo no está, el PAC rechaza el XML con el código CFDI40212 y no genera UUID. La buena noticia es que corregirlo no requiere cambiar los conceptos, solo completar el total.

Dónde se valida: el nodo Impuestos y Traslados

La validación revisa el nodo cfdi:Traslados a nivel comprobante. Allí cada cfdi:Traslado agrupa por impuesto, factor y tasa: Base, Impuesto, TipoFactor, TasaOCuota e Importe. El total de todos esos importes debe escribirse en el atributo TotalImpuestosTrasladados del elemento cfdi:Impuestos.

La regla distingue tres escenarios: con TipoFactor="Tasa" o "Cuota" el total es obligatorio; con Tasa y tasa de 0.000000 el total existe y vale 0.00; y cuando todos los conceptos son Exento, el traslado solo lleva Base, Impuesto y TipoFactor y no se registra el total (validaciones CFDI40213 y CFDI40216).

Causas más comunes del error CFDI40212

  • Se omitió el total. El XML trae los traslados pero la plantilla no calculó TotalImpuestosTrasladados.
  • Confundir tasa 0 % con exento. Un concepto con IVA al 0 % usa TipoFactor="Tasa" y TasaOCuota="0.000000"; sí requiere el total, con valor 0.00. Solo el exento no lo lleva.
  • Impuestos solo con retenciones. Se armó el nodo cfdi:Impuestos pensando únicamente en retenciones y se olvidó el total de traslados.
  • Atributo mal escrito o mal ubicado. Por ejemplo TotalImpuestoTrasladado o fuera del nodo cfdi:Impuestos.
  • Objeto de impuesto mal definido. Si un concepto está marcado como sí objeto de impuesto (ObjetoImp="02") debe traer su desglose; si no, el resumen a nivel comprobante queda incoherente.

Cómo corregir el error CFDI40212 paso a paso

  1. Revisa el TipoFactor de tus conceptos. Abre el XML y observa cada cfdi:Concepto/cfdi:Impuestos/cfdi:Traslados/cfdi:Traslado. Distingue Tasa, Cuota y Exento.
  2. Verifica el resumen a nivel comprobante. Confirma que cfdi:Impuestos/cfdi:Traslados agrupe cada combinación de impuesto, factor y tasa una sola vez (CFDI40218).
  3. Suma los importes. Suma el Importe de todos los traslados del comprobante. Con tasa 0 % el resultado es 0.00.
  4. Agrega el atributo. Escribe TotalImpuestosTrasladados en cfdi:Impuestos con los decimales de la moneda.
  5. Valida la coherencia. El total debe igualar la suma de los traslados (CFDI40205) y cada importe debe cuadrar con los conceptos (CFDI40221).
  6. Emite otra vez. Con el XML corregido (y nuevo sello si lo editaste), vuelve a timbrar.

Ejemplo en el XML: incorrecto y correcto

Ejemplo con un concepto de 1,000.00 y IVA al 16 %:

Incorrecto:

<cfdi:Impuestos>
  <cfdi:Traslados>
    <cfdi:Traslado Base="1000.00" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.160000" Importe="160.00"/>
  </cfdi:Traslados>
</cfdi:Impuestos>

Correcto:

<cfdi:Impuestos TotalImpuestosTrasladados="160.00">
  <cfdi:Traslados>
    <cfdi:Traslado Base="1000.00" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.160000" Importe="160.00"/>
  </cfdi:Traslados>
</cfdi:Impuestos>

Si en lugar de IVA al 16 % tu concepto fuera de tasa 0 %, el traslado llevaría TasaOCuota="0.000000" e Importe="0.00", y el total sería TotalImpuestosTrasladados="0.00". Si fuera exento, el traslado solo tendría Base, Impuesto y TipoFactor="Exento".

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é diferencia hay entre IVA 0 % y exento?

Con IVA 0 % el concepto sí es objeto del impuesto, usa TipoFactor="Tasa" con tasa 0.000000 y el total de traslados se registra en 0.00. Con exento se usa TipoFactor="Exento", el traslado solo lleva Base, Impuesto y TipoFactor, y no se registra el total. Valida con tu contador cuál aplica a tu producto o servicio.

¿Dónde se escribe TotalImpuestosTrasladados?

En el elemento cfdi:Impuestos a nivel comprobante, junto al resumen de traslados.

¿Qué pasa si el total no coincide con la suma?

El PAC mostrará CFDI40205. El total debe ser igual a la suma de los importes de los traslados.

¿Debo incluir el atributo si solo tengo retenciones?

Si no hay conceptos con traslados de tipo Tasa o Cuota, no aplica esta regla. Para retenciones consulta CFDI40206.

¿Puedo corregirlo editando el XML a mano?

Es posible, pero el sello debe regenerarse. Lo más seguro es corregir los datos en tu sistema de facturación y emitir de nuevo.

¿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