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.

error: the document is invalid

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.

Context
cfdi:Concepto/cfdi:Impuestos/cfdi:Traslados/cfdi:Traslado
Test
not(@TasaOCuota) or @TipoFactor = 'Exento' or mx:rate(@Impuesto, @TipoFactor, @TasaOCuota, true())

Checked with CFDI 4.0