Peppol BIS Billing 3.0.20 · UBL

BR-O-13: An Invoice that contains a VAT breakdown group (BG-23) with a VAT category code (BT-118)…

Peppol BIS Billing 3.0.20 · UBL

fatalbusiness

Original rule text

[BR-O-13]-An Invoice that contains a VAT breakdown group (BG-23) with a VAT category code (BT-118) "Not subject to VAT" shall not contain Document level allowances (BG-20) where Document level allowance VAT category code (BT-95) is not "Not subject to VAT".

Stored validation assertion
(exists(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) = 'O']) and count(//cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID) != 'O'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']) = 0) or not(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) = 'O'])

BR-O-13 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-23, BT-118, BG-20, BT-95.

What this rule requires

The rule requires that when an invoice or credit note includes a VAT breakdown with VAT category code O ("Not subject to VAT") in cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory, no document-level allowance (cac:AllowanceCharge[cbc:ChargeIndicator=false()]) may have a VAT category code other than O under the VAT tax scheme. In UBL, the rule fails if such a non-O document-level allowance exists while an O VAT breakdown exists; if there is no O VAT breakdown, the rule is satisfied. In CII, the rule applies to an ram:ApplicableTradeTax with ram:CategoryCode O and ram:TypeCode VAT, and requires that the document contains no ram:CategoryTradeTax with a ram:CategoryCode other than O. Because severity is fatal, a document that does not satisfy this rule fails validation.

How to fix

If a document has an O VAT breakdown, change every document-level allowance's VAT category code to O (UBL: set cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory/cbc:ID to O; CII: ensure no ram:CategoryTradeTax has a ram:CategoryCode other than O when the O VAT trade tax exists). If an allowance must keep a non-O VAT category, then the invoice must not have the O VAT breakdown. The rule does not determine which category is factually correct; check the invoice data and align the categories accordingly. In CII, note that the test searches all ram:CategoryTradeTax elements in the document, so any non-O category trade tax will cause a failure if an O VAT trade tax exists.

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-O-13.

Validate an invoice against these rules · All release changes