Error CFDI40167 al timbrar: el Importe del concepto está fuera de los límites permitidos
El error CFDI40167 aparece cuando el Importe de un concepto no queda entre el límite inferior y el superior que el SAT calcula a partir de Cantidad y ValorUnitario. Casi siempre significa que el importe se obtuvo por un camino distinto a multiplicar: se tomó del total de un pedido, se dividió un precio con IVA incluido o se redondeó antes de tiempo. Aquí verás cómo reconstruir el importe y evitar la diferencia.
Resumen rápido del error
- Código: CFDI40167
- Campo: Importe
- Nodo del XML:
cfdi:Conceptos/cfdi:Concepto - Regla del SAT (Anexo 20): El valor de este atributo debe ser mayor o igual que el límite inferior y menor o igual que el límite superior.
- Mensaje de rechazo: El valor del campo Importe no se encuentra entre el limite inferior y superior permitido.
- Cuándo aparece: al timbrar, antes de que se genere el UUID.
¿Qué significa el error CFDI40167?
El producto de Cantidad por ValorUnitario rara vez tiene el mismo número de decimales que el Importe, que se expresa con los decimales de la moneda. Por eso el SAT no pide una igualdad exacta: define un intervalo, con un límite inferior y uno superior, que absorbe el redondeo. La regla CFDI40167 exige que el Importe caiga dentro de ese intervalo.
Cuando el importe cae fuera, la diferencia es mayor que un simple redondeo: hay un cálculo distinto detrás. Revisa de dónde sale el importe y si la cantidad o el valor unitario corresponden a lo que realmente se cobra.
Dónde se valida: el nodo Concepto, cantidad e importe
La validación se aplica al atributo Importe de cada cfdi:Concepto y usa los valores de Cantidad y ValorUnitario del mismo concepto.
- CFDI40166: el
ValorUnitariodebe ser mayor que cero en ingresos, egresos o nómina. - CFDI40167: el
Importedebe estar entre los límites (esta ficha). - CFDI40168: el
Descuentodebe tener hasta los decimales delImporte. - CFDI40169: el
Descuentodebe ser menor o igual alImporte. - CFDI40198: la misma regla de límites, aplicada al
Importede unaParte.
Causas más comunes del error CFDI40167
- El precio unitario incluye el IVA. Se dividió el total entre la cantidad con pocos decimales y el producto ya no coincide.
- El importe viene del pedido. El total de la línea se tomó del pedido sin recalcularlo.
- Se redondeó el valor unitario antes de multiplicar. Un precio con muchos decimales se cortó a dos y el importe se calculó con el original.
- La cantidad está mal. Se cambió la cantidad y no se actualizó el importe.
- Se aplicó un descuento dentro del importe. El importe ya trae el descuento restado en lugar de declararlo aparte.
- Se usaron unidades distintas. Se cobra por caja, pero la cantidad se registró por pieza.
Cómo corregir el error CFDI40167 paso a paso
- Toma la cantidad y el valor unitario. Revisa que sean los de la línea.
- Multiplica y compara. El resultado debe quedar cerca del importe, salvo el redondeo.
- Corrige el origen de la diferencia. Ajusta la cantidad, el valor unitario o el importe, según el caso.
- Declara el descuento aparte. Si hay descuento, usa su atributo y deja el importe sin restarlo.
- Usa los decimales de la moneda. El importe se redondea al número de decimales que corresponda.
- Vuelve a timbrar. Con un importe coherente, el PAC pasa a las demás validaciones.
Ejemplo en el XML: incorrecto y correcto
Ejemplo de un concepto cuyo importe no corresponde a cantidad por valor unitario; los importes son ficticios:
Incorrecto:
<cfdi:Concepto Cantidad="3" ValorUnitario="33.33" Importe="105.00" ... />
Correcto:
<cfdi:Concepto Cantidad="3" ValorUnitario="33.33" Importe="99.99" ... />
Los importes son ficticios: 3 × 33.33 = 99.99. Si hay descuento, se declara en su atributo y no se resta del importe.
Precios con IVA incluido: calcula hacia adelante
Un origen frecuente de este rechazo es el precio al público con IVA incluido. Si tu tienda vende a 116.00 y el IVA es del 16%, el valor unitario de la factura es el precio sin impuesto. Si lo calculas dividiendo y redondeas a dos decimales, el producto por la cantidad ya no coincide con el importe que muestra el pedido. Una solución robusta es guardar el precio base con los decimales necesarios, multiplicar y redondear solo el importe final. Evita calcular el importe a partir del total con impuesto. Para repasar los demás cálculos 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
- Error CFDI40166 (ValorUnitario): el valor unitario debe ser mayor que cero en ingresos, egresos o nómina.
- Error CFDI40198 (Importe): la misma regla de límites, aplicada al importe de una parte.
- Error CFDI40168 (Descuento): el descuento debe tener hasta los decimales del importe.
- Error CFDI40169 (Descuento): el descuento debe ser menor o igual al importe.
- Error CFDI40197 (ValorUnitario): el valor unitario de una parte debe ser mayor que cero.
Consulta también el Centro de Soluciones con todos los errores del SAT.
Preguntas frecuentes
¿Qué significa el error 40167?
Que el importe del concepto está fuera de los límites calculados a partir de cantidad y valor unitario.
¿Debe ser exactamente cantidad por valor unitario?
Debe quedar dentro de un intervalo que tolera el redondeo.
¿Dónde declaro el descuento?
En su propio atributo; no lo restes del importe.
¿Por qué falla con precios con IVA incluido?
Porque al dividir y redondear el producto ya no coincide con el importe.
¿Es lo mismo que el 40198?
No. El 40198 aplica la regla a una parte del concepto.
¿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.