Peppol BIS Billing 3.0.21 · UBL

BR-G-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-G-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 "Export outside the EU" shall contain in the VAT breakdown (BG-23) exactly one VAT category code (BT-118) equal with "Export outside the EU".

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

BR-G-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

The rule requires that if any invoice line, document-level allowance, or document-level charge has VAT category code G ("Export outside the EU"), the VAT breakdown must contain exactly one VAT category code G. In UBL, the test checks any cac:TaxCategory or cac:ClassifiedTaxCategory with cbc:ID = G; if any such exists, cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:ID with value G must occur exactly once; if none exist anywhere, the rule passes. In CII, the test counts G in ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax (VAT breakdown), ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax (line VAT), and ram:CategoryTradeTax (allowance/charge VAT); it passes if all three counts are zero, or if the header count is exactly one and at least one of the line or allowance/charge counts is greater than zero. The CII test is stricter than the message: it rejects an invoice that has a VAT breakdown category G but no line or allowance/charge category G, while the UBL test accepts it.

How to fix

If the invoice has any line, allowance, or charge with VAT category G but the VAT breakdown does not contain exactly one G, add or correct the VAT breakdown entry to have one G (UBL: cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:ID; CII: ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode). If the VAT breakdown has more than one G, reduce to exactly one. In CII only, if the VAT breakdown has G but no line or allowance/charge has G, either add a line/allowance/charge category G or change the breakdown category to match the actual line categories. If no G appears anywhere, no change is needed.

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

Validate an invoice against these rules · All release changes