CRP20268

The rule sets below word this rule differently; each wording is shown with its rule set.

error: the document is invalid

Why it fails

  • The bases of an invoice in dollars added to a payment in pesos without converting them.
  • The receipt's taxes copied from the invoice when it pays only part of it.

How to fix it

For each related document divide BaseDR and ImporteDR by EquivalenciaDR, add them up by tax, factor and rate, and write one TrasladoP per combination.

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.

Message

El campo BaseP que corresponde a Traslado, no es igual a la suma de los importes de las bases registrados en los documentos relacionados donde el impuesto del documento relacionado sea igual al campo ImpuestoP de este elemento y la TasaOCuotaDR del documento relacionado sea igual al campo TasaOCuotaP de este elemento (falta un TrasladoP).

Context
pago20:Pagos/pago20:Pago
Test
every $t in $transfers satisfies $summary[@ImpuestoP = $t/@ImpuestoDR and @TipoFactorP = $t/@TipoFactorDR and mx:dec(@TasaOCuotaP) = mx:dec($t/@TasaOCuotaDR)]

Checked with CFDI 4.0

Message

El campo BaseP que corresponde a Traslado, no es igual a la suma de los importes de las bases registrados en los documentos relacionados donde el impuesto del documento relacionado sea igual al campo ImpuestoP de este elemento y la TasaOCuotaDR del documento relacionado sea igual al campo TasaOCuotaP de este elemento (…, documentos …).

Context
pago20:ImpuestosP/pago20:TrasladosP/pago20:TrasladoP
Test
$exempt or abs(mx:dec(@BaseP) - $bases) le $unit

Checked with CFDI 4.0