# CRP20265

Source: https://xmlvalid.com/rules/CRP20265

> El campo ImporteP que corresponde a Retención, no es igual a la suma de los importes de los impuestos retenidos registrados en el documento relacionado donde el impuesto sea igual al campo ImpuestoP de este elemento (falta la RetencionP del impuesto …).

- Level: error
- Rule sets: SAT validations of CFDI 4.0 and Pagos 2.0 Matrices of 25 March 2026 and Pagos 2.0 rev. B
- Context: `pago20:Pagos/pago20:Pago`
- Test: `every $r in $docs/pago20:ImpuestosDR/pago20:RetencionesDR/pago20:RetencionDR satisfies pago20:ImpuestosP/pago20:RetencionesP/pago20:RetencionP[@ImpuestoP = $r/@ImpuestoDR]`

> El campo ImporteP que corresponde a Retención, no es igual a la suma de los importes de los impuestos retenidos registrados en el documento relacionado donde el impuesto sea igual al campo ImpuestoP de este elemento (…, documentos …).

- Level: error
- Rule sets: SAT validations of CFDI 4.0 and Pagos 2.0 Matrices of 25 March 2026 and Pagos 2.0 rev. B
- Context: `pago20:ImpuestosP/pago20:RetencionesP/pago20:RetencionP`
- Test: `abs(mx:dec(@ImporteP) - $docs) le mx:unit(mx:currency($pago/@MonedaP))`

In English: A payment's withholding (ImporteP) must be the sum of its related documents' withholdings of the same tax, each divided by its EquivalenciaDR; every tax withheld in a related document needs its RetencionP. Compared within one unit of the payment's currency.

Validate a document against these rules: https://xmlvalid.com/validate
