CFDI40179
El valor del campo TasaOCuota que corresponde a Traslado no contiene un valor del catálogo c_TasaOcuota o se encuentra fuera de rango (…, …, …).
In English The rate of a line's transferred tax is not in catalogue c_TasaOCuota for its tax and factor: VAT 0, 0.16 or 0.08 (border region), the IEPS rates, or an IEPS quota up to 72.1605.
Why it fails
- A rate written as a percentage (16) instead of a fraction (0.160000).
- A transferred ISR (001), which is only withheld.
How to fix it
Give the rate as a fraction with six decimals, as the catalogue lists it: 0.160000 for VAT at 16 %.
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.
cfdi:Concepto/cfdi:Impuestos/cfdi:Traslados/cfdi:Traslado
not(@TasaOCuota) or @TipoFactor = 'Exento' or mx:rate(@Impuesto, @TipoFactor, @TasaOCuota, true())
Checked with CFDI 4.0