Peppol BIS Billing 3.0.20 · UBL

BR-S-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-S-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 "Standard rated" shall contain in the VAT breakdown (BG-23) at least one VAT category code (BT-118) equal with "Standard rated".

Stored validation assertion
((count(//cac:AllowanceCharge/cac:TaxCategory[normalize-space(cbc:ID) = 'S']) + count(//cac:ClassifiedTaxCategory[normalize-space(cbc:ID) = 'S'])) > 0 and count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'S']) > 0) or ((count(//cac:AllowanceCharge/cac:TaxCategory[normalize-space(cbc:ID) = 'S']) + count(//cac:ClassifiedTaxCategory[normalize-space(cbc:ID) = 'S'])) = 0 and count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'S']) = 0)

BR-S-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 standard-rated VAT category appears on an invoice line (//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax with ram:CategoryCode='S' in CII, //cac:ClassifiedTaxCategory with cbc:ID='S' in UBL) or on a document-level allowance/charge (//ram:CategoryTradeTax with ram:CategoryCode='S' in CII, cac:AllowanceCharge/cac:TaxCategory with cbc:ID='S' in UBL), then the VAT breakdown (//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax in CII, cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory in UBL) must contain at least one standard-rated entry. In UBL, the test additionally enforces the reverse: if there are no standard-rated source categories, then the VAT breakdown must not contain a standard-rated entry; the CII test does not include this reverse check. Documents that do not satisfy this are rejected as fatal.

How to fix

Fix the VAT breakdown to match the source categories. In UBL: if any cac:AllowanceCharge/cac:TaxCategory or cac:ClassifiedTaxCategory has cbc:ID 'S', add a cac:TaxTotal/cac:TaxSubtotal with cac:TaxCategory/cbc:ID 'S' (or set an existing one to 'S'); if none have 'S', remove or change any 'S' in cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:ID. In CII: if any //ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax or //ram:CategoryTradeTax has ram:CategoryCode='S', ensure //ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax includes at least one ram:CategoryCode='S'; the reverse removal is not required by the CII test. Check that the VAT category code values for sources (BT-151, BT-95, BT-102) and breakdown (BT-118) are consistent.

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-S-01.

Validate an invoice against these rules · All release changes