BR-48

Each VAT breakdown (BG-23) shall have a VAT category rate (BT-119), except if the Invoice is not subject to VAT.

error: the document is invalid Peppol documentation ↗

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
cac:TaxTotal/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')

Checked with EN 16931 Invoice (UBL), EN 16931 Credit Note (UBL), Croatia eRačun Invoice (UBL), Croatia eRačun Credit Note (UBL)

Context
//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax
Test
(.[upper-case(ram:TypeCode) = 'VAT']/ram:RateApplicablePercent) or (.[upper-case(ram:TypeCode) = 'VAT']/ram:CategoryCode = 'O')

Checked with EN 16931 Invoice (CII)

Context
//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax
Test
(ram:RateApplicablePercent) or (ram:CategoryCode = 'O')

Checked with France Factur-X BASIC WL, Factur-X / ZUGFeRD BASIC WL