# aligned-ibrp-048

Source: https://xmlvalid.com/rules/aligned-ibrp-048

> Each VAT breakdown (ibg-23) MUST have a VAT category rate (ibt-119), except if the Invoice is not subject to VAT or Exempt from Tax.

- Level: error
- Rule sets: PINT AE rules (United Arab Emirates) 1.0.4
- Context: `cac:TaxSubtotal`
- Test: `exists(cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:Percent) or (cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/normalize-space(cbc:ID)=('O','E'))`

> Each tax breakdown (ibg-23) MUST have a tax category rate (ibt-119), except if the Invoice is not subject to tax.

- Level: error
- Rule sets: PINT JP rules (Japan) 1.1.3
- Context: `cac:TaxSubtotal`
- Test: `exists(cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:Percent) or (cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/normalize-space(cbc:ID)='O')`

> VAT subtotals MUST have a tax rate (ibt-119) except when ID='O'. AAL/TTX subtotals MUST NOT contain a tax rate.

- Level: error
- Rule sets: PINT MY rules (Malaysia) 1.3.1
- Context: `cac:TaxSubtotal`
- Test: `(exists(cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT' and (cbc:Percent or normalize-space(cbc:ID)='O')])) or (exists(cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='AAL' and normalize-space(cbc:ID)='TTX' and not(cbc:Percent)]))`

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