Error CFDI40178 al timbrar: un traslado con Tasa o Cuota debe registrar TasaOCuota e Importe
El error CFDI40178 aparece cuando el traslado de un concepto declara TipoFactor="Tasa" o "Cuota" y no incluye TasaOCuota o Importe. Es el caso opuesto al del traslado exento. Esta guía se centra en lo que se omite: por qué un producto a tasa cero también debe llevar ambos atributos y cómo revisar cada línea del concepto.
Resumen rápido del error
- Código: CFDI40178
- Campo: TipoFactor
- Nodo del XML:
cfdi:Conceptos/cfdi:Concepto/cfdi:Impuestos/cfdi:Traslados/cfdi:Traslado - Regla del SAT (Anexo 20): Si el valor registrado es Tasa o Cuota, se deben registrar los atributos TasaOCuota e Importe.
- Mensaje de rechazo: Si el valor registrado en el campo TipoFactor que corresponde a Traslado es Tasa o Cuota, se deben registrar los campos TasaOCuota e Importe.
- Cuándo aparece: al timbrar, antes de que se genere el UUID.
¿Qué significa el error CFDI40178?
Con un factor de Tasa o de Cuota, el traslado calcula un importe a partir de la base: el porcentaje o la cantidad fija va en TasaOCuota y el resultado, en Importe. La regla CFDI40178 exige ambos atributos siempre que el factor sea alguno de esos dos.
Esto incluye la operación gravada a tasa cero. Aunque el impuesto resultante sea cero, el traslado declara TasaOCuota="0.000000" e Importe="0.00"; no se omiten. Es una diferencia clave con el factor Exento, que sí se declara sin esos atributos (CFDI40177). Conviene confirmar con el contador cuál de los dos tratamientos corresponde a cada producto.
Dónde se valida: el nodo Traslado del concepto
La validación se aplica al nodo cfdi:Traslado dentro de cfdi:Impuestos/cfdi:Traslados de cada concepto, cuando TipoFactor es Tasa o Cuota.
- CFDI40176: el
TipoFactordebe estar en el catálogoc_TipoFactor. - CFDI40177: con
Exento,TasaOCuotaeImporteno deben existir. - CFDI40178: con
TasaoCuota, ambos son requeridos (esta ficha). - CFDI40179: la
TasaOCuotadebe corresponder al catálogoc_TasaOCuotay coincidir con el impuesto y el factor. - CFDI40180: el
Importedebe estar entre el límite inferior y el superior.
Causas más comunes del error CFDI40178
- El producto está a tasa cero y se omitió el importe. El sistema no escribe
Importecuando vale cero. - Falta la tasa en la ficha del producto. El producto tiene factor
Tasapero no una tasa configurada. - Se cambió el factor sin completar. La línea era exenta y se cambió a
Tasasin agregar los atributos. - La integración omite campos vacíos. El sistema externo no envía los atributos con valor cero.
- Se borró el importe al editar. Al corregir una cantidad se eliminó el importe calculado.
- Se editó el XML a mano. Se quitó
Importecreyendo que se calcula solo.
Cómo corregir el error CFDI40178 paso a paso
- Localiza el traslado. Busca el concepto con
TipoFactorigual aTasaoCuota. - Agrega la tasa. Escribe
TasaOCuotacon seis decimales, por ejemplo0.160000. - Calcula el importe. Multiplica la base por la tasa y redondea a los decimales de la moneda.
- Revisa la tasa cero. Si el producto es gravado a tasa cero, escribe ambos atributos en cero.
- Revisa el resumen. El importe del resumen suma los de los conceptos (CFDI40221).
- Vuelve a timbrar. Con ambos atributos, el PAC pasa a las demás validaciones.
Ejemplo en el XML: incorrecto y correcto
Ejemplo de un concepto gravado a tasa cero al que le falta el importe; los datos son ficticios:
Incorrecto:
<cfdi:Traslado Base="500.00" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.000000" />
Correcto:
<cfdi:Traslado Base="500.00" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.000000" Importe="0.00" />
Los importes son ficticios. El ejemplo supone un producto gravado a tasa cero; si fuera exento, el traslado no llevaría tasa ni importe.
Revisa la tasa cero antes de emitir
La tasa cero es el origen más común de esta alarma porque se parece a «no hay impuesto» y es fácil omitirla. Para el SAT, es una operación gravada cuyo importe es cero y debe aparecer completa. Si tu sistema calcula el importe solo cuando es mayor que cero, haz una prueba con un producto de tasa cero y revisa el XML generado. Otra prueba útil es cambiar un producto de exento a tasa cero y comprobar que los atributos aparecen y desaparecen según el caso. Con ambas pruebas resueltas, la regla deja de ser una sorpresa. Para ver el contexto general, 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
- Error CFDI40177 (TipoFactor): con factor exento, el traslado no lleva TasaOCuota ni Importe.
- Error CFDI40179 (TasaOCuota): la tasa debe corresponder al catálogo c_TasaOCuota.
- Error CFDI40176 (TipoFactor): el factor debe estar en el catálogo c_TipoFactor.
- Error CFDI40221 (Importe): el importe del resumen es el redondeo de la suma de los importes de los conceptos.
- Error CFDI40171 (ObjetoImp): con ObjetoImp 02, el concepto debe tener el nodo Impuestos.
Consulta también el Centro de Soluciones con todos los errores del SAT.
Preguntas frecuentes
¿Qué significa el error 40178?
Que un traslado con Tasa o Cuota no trae TasaOCuota o Importe.
¿Y si el producto está a tasa cero?
Debe llevar TasaOCuota 0.000000 e Importe 0.00.
¿Es lo mismo que el 40177?
No. El 40177 es el caso del factor exento, que no lleva esos atributos.
¿Cómo calculo el importe?
Base por tasa, redondeado a los decimales de la moneda.
¿Debo escribir seis decimales en la tasa?
Es el formato usual del catálogo; confírmalo con tu contador.
¿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.