Error CFDI40109: SubTotal debe ser 0 en traslado o pago
Folios sin caducidad · Multi-empresa · Timbrado CFDI 4.0 · Ver paquetes
Error / Problema Actualizado 28/10/2026

Error CFDI40109 al timbrar: con TipoDeComprobante T o P, el SubTotal debe ser cero

El error CFDI40109 aparece cuando el TipoDeComprobante es T (traslado) o P (pago) y el SubTotal es distinto de cero. Estos dos tipos de comprobante no expresan una venta: el traslado ampara el movimiento de mercancías y el pago registra un cobro, por lo que su subtotal es 0 o cero con decimales, como 0.00. Aquí verás por qué cada tipo lo exige y cómo evitar que una plantilla de factura lo rellene.

Resumen rápido del error

  • Código: CFDI40109
  • Campo: SubTotal
  • Nodo del XML: Comprobante
  • Regla del SAT (Anexo 20): Si el comprobante es T o P el importe debe ser 0, o cero con decimales.
  • Mensaje de rechazo: El TipoDeComprobante es T o P y el importe no es igual a 0, o cero con decimales.
  • Cuándo aparece: al timbrar, antes de que se genere el UUID.

¿Qué significa el error CFDI40109?

La regla CFDI40109 revisa que, cuando el comprobante es de traslado o de pago, el subtotal sea cero. Se acepta 0, 0.0 o 0.00. Si el comprobante es de ingreso, egreso o nómina, esta regla no se activa y el subtotal se valida con CFDI40108.

Tanto un traslado como un pago tienen, además, otras reglas en cadena: el total también debe ser cero, no debe haber forma ni método de pago (CFDI40103, CFDI40125) y no debe existir el nodo de impuestos generales (CFDI40201). Si el subtotal falla porque la plantilla se copió de una factura de venta, probablemente fallarán también las demás.

Dónde se valida: el nodo Subtotal en traslado y pago

La validación se aplica al atributo SubTotal del nodo cfdi:Comprobante y se activa cuando el TipoDeComprobante es T o P.

  • CFDI40107: el SubTotal debe tener los decimales que soporte la moneda.
  • CFDI40108: con I, E o N, el subtotal debe ser el redondeo de la suma de los conceptos.
  • CFDI40109: con T o P, el subtotal debe ser cero (esta ficha).
  • CFDI40103: con T, N o P, la FormaPago no debe existir.
  • CFDI40125: con T o P, se omite el MetodoPago.
  • CFDI40201: con T o P, el nodo Impuestos no debe existir.

Causas más comunes del error CFDI40109

  • La plantilla viene de una factura de venta. Se cambió el tipo a T o P pero se conservaron los importes.
  • Los conceptos traen valor. El traslado incluye precio de la mercancía.
  • Se sumó el valor del pago. En un pago, el monto va en el complemento y no en el subtotal.
  • Se eligió el tipo equivocado. Se quería facturar una venta y se escogió traslado.
  • Un sistema externo rellena el subtotal. Calcula el subtotal desde el pedido.
  • Se copió el total. El subtotal toma el valor del total del complemento.

Cómo corregir el error CFDI40109 paso a paso

  1. Confirma el tipo de comprobante. Decide si es una venta, un traslado o un pago.
  2. Si es T o P, pon cero. Escribe 0 o 0.00 en el subtotal.
  3. Pon cero también en el total. El total de estos tipos debe ser cero.
  4. Retira forma y método de pago. No deben existir en estos tipos (CFDI40103 y CFDI40125).
  5. Retira el nodo de impuestos. No debe existir con T o P (CFDI40201).
  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 comprobante de pago con subtotal distinto de cero; los datos son ficticios:

Incorrecto:

<cfdi:Comprobante TipoDeComprobante="P" Moneda="XXX" SubTotal="1160.00" Total="1160.00" ... >

Correcto:

<cfdi:Comprobante TipoDeComprobante="P" Moneda="XXX" SubTotal="0" Total="0" ... >

Los datos son ficticios. En el ejemplo correcto, el monto del pago va en el complemento de pagos, no en el subtotal. La moneda XXX es la que corresponde al pago.

Valida el tipo antes de armar los importes

La manera más sencilla de evitar este rechazo es decidir el tipo de comprobante antes de calcular los importes. Si tu sistema usa una sola pantalla para varios tipos, haz que, al elegir traslado o pago, se pongan en cero el subtotal y el total, se oculten la forma y el método de pago y no se genere el nodo de impuestos. Así una plantilla de venta no arrastra datos que no corresponden. Revisa también que los conceptos de estos tipos tengan el importe en cero y la clave que corresponda. Para repasar los tipos de 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 40109?

Que un comprobante de traslado o de pago no tiene el subtotal en cero.

¿Se acepta 0.00?

Sí. Cero o cero con decimales.

¿Dónde va el monto de un pago?

En el complemento de pagos, no en el subtotal.

¿Qué otros datos cambian?

No hay forma ni método de pago ni nodo de impuestos.

¿Aplica a facturas de venta?

No. Ahí se valida con la regla 40108.

¿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