Peppol BIS Billing 3.0.21 · UBL

BR-S-02: An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category…

Peppol BIS Billing 3.0.21 · UBL

fatalbusiness

Original rule text

[BR-S-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Standard rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).

Stored validation assertion
(exists(//cac:ClassifiedTaxCategory[normalize-space(cbc:ID) = 'S'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']) and (exists(//cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID) or exists(//cac:TaxRepresentativeParty/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) = 'VAT')]/cbc:CompanyID))) or not(exists(//cac:ClassifiedTaxCategory[normalize-space(cbc:ID) = 'S']))

BR-S-02 is a fatal rule in the business layer of Peppol BIS Billing 3.0.21 · UBL. An invoice that breaks it is rejected. It refers to BG-25, BT-151, BT-31, BT-32, BT-63.

What this rule requires

BR-S-02 is fatal: if an invoice has a standard-rated VAT category, it must also carry a seller VAT/tax registration identifier or a seller tax representative VAT identifier. In UBL the check is document-wide: if any cac:ClassifiedTaxCategory has cbc:ID = 'S' and cac:TaxScheme/cbc:ID = 'VAT' (case-insensitive), then at least one of cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID or cac:TaxRepresentativeParty/cac:PartyTaxScheme[cac:TaxScheme/cbc:ID='VAT']/cbc:CompanyID must exist; otherwise it passes. Note the message says 'Invoice line' but the UBL test is not limited to line-level categories. In CII the test is line-specific: for each ram:ApplicableTradeTax with ram:CategoryCode = 'S' and upper-case ram:TypeCode = 'VAT', the header must contain ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA' or 'FC'] or ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'].

How to fix

For UBL, add or ensure a non-empty cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID (seller VAT/tax registration), or cac:TaxRepresentativeParty/cac:PartyTaxScheme[cac:TaxScheme/cbc:ID='VAT']/cbc:CompanyID (tax representative VAT). For CII, add or ensure a header-level ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID with @schemeID = 'VA' or 'FC', or ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID with @schemeID = 'VA'. In both syntaxes, check that any standard-rated VAT category actually exists; if not, the rule passes even with missing identifiers.

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

Validate an invoice against these rules · All release changes