CFDI40166
El valor valor del campo ValorUnitario debe ser mayor que cero (0) cuando el tipo de comprobante es Ingreso, Egreso o Nomina.
In English In an I, E or N CFDI a line's ValorUnitario (unit price) must be more than zero.
error: the document is invalid
What the rule checks
As the rule set's publisher wrote it. The rule runs on every element the context matches, and fails where the test is false; the validator reports the line of that element.
Context
cfdi:Conceptos/cfdi:Concepto
Test
not(/cfdi:Comprobante/@TipoDeComprobante = ('I', 'E', 'N')) or mx:dec(@ValorUnitario) gt 0
Checked with CFDI 4.0