Peppol BIS Billing 3.0.20 · UBL

BR-E-01: An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or…

Peppol BIS Billing 3.0.20 · UBL

fatalbusiness

Original rule text

[BR-E-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Exempt from VAT" shall contain exactly one VAT breakdown (BG-23) with the VAT category code (BT-118) equal to "Exempt from VAT".

Stored validation assertion
((exists(//cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) = 'E']) or exists(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) = 'E'])) and (count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) = 'E']) = 1)) or (not(//cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) = 'E']) and not(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) = 'E']))

BR-E-01 is a fatal rule in the business layer of Peppol BIS Billing 3.0.20 · UBL. An invoice that breaks it is rejected. It refers to BG-25, BG-20, BG-21, BT-151, BT-95, BT-102, BG-23, BT-118.

What this rule requires

The rule requires that if any invoice line (UBL: cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory or cac:TaxCategory, or CII: ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax), document level allowance (BG-20) or document level charge (BG-21) has VAT category code 'E' (Exempt from VAT), then exactly one VAT breakdown must use code 'E'. In UBL, the VAT breakdown is cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:ID; in CII, it is ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode. If no such line/allowance/charge uses 'E', the rule passes, requiring no 'E' breakdown. However, both tests also require that a single 'E' breakdown be accompanied by at least one 'E' on a line, allowance, or charge, which is not stated in the message but is enforced by the test conditions.

How to fix

Ensure consistency between VAT category codes on lines/allowances/charges and VAT breakdowns. If any line, document allowance, or document charge uses code 'E', set exactly one VAT breakdown to code 'E' and ensure no other breakdown has 'E'. Conversely, if exactly one VAT breakdown has code 'E', make sure at least one line, allowance, or charge also has code 'E'. If no item uses 'E', remove any 'E' from breakdowns (e.g., change to another applicable code). In UBL, check cac:TaxCategory/cbc:ID and cac:ClassifiedTaxCategory/cbc:ID (with VAT tax scheme) and cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:ID. In CII, check ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode, ram:CategoryTradeTax/ram:CategoryCode, and ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode.

Guidance on this rule. The original text above is authoritative.

Where to go next

No published Peppol BIS Billing UBL release comparison lists a change to BR-E-01.

Validate an invoice against these rules · All release changes