Peppol BIS Billing 3.0.20 · UBL

BR-O-04: An Invoice that contains a Document level charge (BG-21) where the Document level charge…

Peppol BIS Billing 3.0.20 · UBL

fatalbusiness

Original rule text

[BR-O-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Not subject to VAT" shall not contain the Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) or the Buyer VAT identifier (BT-48).

Stored validation assertion
(exists((/ubl:Invoice|/cn:CreditNote)/cac:AllowanceCharge[cbc:ChargeIndicator=true()]/cac:TaxCategory[normalize-space(cbc:ID) = 'O'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']) and (not(//cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) = 'VAT')]/cbc:CompanyID) and not(//cac:TaxRepresentativeParty/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) = 'VAT')]/cbc:CompanyID) and not(//cac:AccountingCustomerParty/cac:Party/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) = 'VAT')]/cbc:CompanyID))) or not(exists((/ubl:Invoice|/cn:CreditNote)/cac:AllowanceCharge[cbc:ChargeIndicator=true()]/cac:TaxCategory[normalize-space(cbc:ID) = 'O'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']))

BR-O-04 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-21, BT-102, BT-31, BT-63, BT-48.

What this rule requires

BR-O-04 is a fatal rule: if an invoice or credit note has a document level charge with VAT category code 'O' ("Not subject to VAT") in the VAT tax scheme, then the document must not include a seller VAT identifier, seller tax representative VAT identifier, or buyer VAT identifier. In UBL, the rule checks cac:AllowanceCharge/cac:TaxCategory[cbc:ID='O'] with cac:TaxScheme/cbc:ID='VAT' and then requires that there is no cbc:CompanyID in the relevant cac:PartyTaxScheme under cac:AccountingSupplierParty, cac:TaxRepresentativeParty, or cac:AccountingCustomerParty. In CII, the rule fires for a ram:SpecifiedTradeAllowanceCharge with charge indicator true and a ram:CategoryTradeTax having ram:CategoryCode='O' and ram:TypeCode='VAT', then requires that ram:SellerTradeParty, ram:SellerTaxRepresentativeTradeParty, and //ram:BuyerTradeParty have no ram:SpecifiedTaxRegistration/ram:ID[@schemeID='VA']. The document fails validation if such a charge exists and any of those VAT identifiers is present.

How to fix

In UBL, remove the cbc:CompanyID element from each cac:PartyTaxScheme where cac:TaxScheme/cbc:ID is VAT under cac:AccountingSupplierParty/cac:Party, cac:TaxRepresentativeParty, and cac:AccountingCustomerParty/cac:Party; alternatively, change or remove the document level charge's cac:TaxCategory/cbc:ID value O, or remove the charge. In CII, remove the ram:SpecifiedTaxRegistration/ram:ID element with @schemeID='VA' from ram:SellerTradeParty, ram:SellerTaxRepresentativeTradeParty, and //ram:BuyerTradeParty; alternatively, change or remove the ram:CategoryTradeTax with ram:CategoryCode='O' and ram:TypeCode='VAT' under the relevant ram:SpecifiedTradeAllowanceCharge. Do not only blank the identifier; the elements must not exist.

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-04.

Validate an invoice against these rules · All release changes