Peppol BIS Billing 3.0.21 · UBL

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

Peppol BIS Billing 3.0.21 · UBL

fatalbusiness

Original rule text

[BR-IC-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 "Intra-community supply" shall contain in the VAT breakdown (BG-23) exactly one VAT category code (BT-118) equal with "Intra-community supply".

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

BR-IC-01 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, BG-20, BG-21, BT-151, BT-95, BT-102, BG-23, BT-118.

What this rule requires

For UBL, the rule requires that if any invoice line (cac:TaxCategory) or document-level allowance/charge (cac:ClassifiedTaxCategory) carries VAT category code “K” (Intra-community supply), then the VAT breakdown (cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory) must contain exactly one element with code “K”. If no line or allowance/charge has “K”, the rule passes regardless of the VAT breakdown. For CII, the test is stricter: either there is no “K” in any header tax, line tax, or document-level category trade tax, or there is exactly one header tax (ApplicableHeaderTradeSettlement/ApplicableTradeTax) with “K” and at least one line or document-level “K”. Thus CII also rejects a header “K” without a corresponding line or document-level “K”, while UBL does not.

How to fix

For UBL, locate every cac:TaxCategory or cac:ClassifiedTaxCategory with cbc:ID = “K”; if any exist, ensure cac:TaxTotal contains exactly one cac:TaxSubtotal/cac:TaxCategory/cbc:ID = “K”. For CII, ensure either all of ApplicableHeaderTradeSettlement/ApplicableTradeTax, SpecifiedLineTradeSettlement/ApplicableTradeTax, and CategoryTradeTax have no CategoryCode = “K”, or the header has exactly one such element and at least one line or CategoryTradeTax has “K”. If the document fails, correct the VAT breakdown to contain exactly one “K” when line/allowance/charge “K” exists, or remove “K” where the test would reject it.

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

Validate an invoice against these rules · All release changes