BR-O-01: Not exactly one VAT breakdown for category O
Official message
[BR-O-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 "Not subject to VAT" shall contain exactly one VAT breakdown group (BG-23) with the VAT category code (BT-118) equal to "Not subject to VAT".
[BR-O-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 "Not subject to VAT" shall contain exactly one VAT breakdown group (BG-23) with the VAT category code (BT-118) equal to "Not subject to VAT".
[BR-O-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 "Not subject to VAT" shall contain exactly one VAT breakdown group (BG-23) with the VAT category code (BT-118) equal to "Not subject to VAT".
- Severity
- Error The invoice is invalid and may be rejected by the recipient.
- Applies to
- EN 16931 (CII), EN 16931 (UBL), Factur-X / ZUGFeRD EN 16931
- Affected fields
- BG-25, BG-20, BG-21, BT-151, BT-95, BT-102, BG-23, BT-118
What does this mean?
If the invoice contains an invoice line (BG-25), a document level allowance (BG-20) or a document level charge (BG-21) with VAT category O (Not subject to VAT, outside the scope of VAT), the VAT breakdown (BG-23) must contain exactly one entry with VAT category code (BT-118) O. Such an entry is missing or there are several.
Differences: in CII the official check only covers invoices that already contain a breakdown O; it fails if there are several or if no line and no allowance/charge has category O. In UBL it also fails if lines or allowances/charges with O exist but no breakdown O.
Typical causes
No breakdown was generated for lines or allowances/charges of category O.
The lines of category O are split over several breakdowns, e.g. some with rate 0 and others without a rate.
A breakdown O is present although no line and no allowance/charge has this category.
How to fix the error
Create exactly one breakdown with BT-118 = O without a rate and include all lines and allowances/charges of this category in it.
Remove breakdowns of category O without a matching line or allowance/charge.
CII: ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax, UBL: cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory.
In E-Rechnungsfreund
In the invoice form, the VAT breakdown (BG-23) is built from VAT category and rate of the lines and allowances/charges when the XML is generated; every combination of category and rate gives one entry. Entries in section "Steueraufstellung (BG-23)" (VAT breakdown, "Experte" view) without a line or allowance/charge of the same category and rate are output additionally with taxable amount 0; remove such entries.
For all lines of category O leave the field "Steuersatz % (BT-152)" (VAT rate, section "Rechnungspositionen (BG-25)", "Experte" view) empty; a line with rate 0 results in a separate breakdown.
Example
Wrong
<!-- Invoice line -->
<ram:SpecifiedLineTradeSettlement>
<ram:ApplicableTradeTax>
<ram:TypeCode>VAT</ram:TypeCode>
<ram:CategoryCode>O</ram:CategoryCode>
</ram:ApplicableTradeTax>
...
</ram:SpecifiedLineTradeSettlement>
<!-- VAT breakdown (BG-23): no entry with O -->
Correct
<!-- Invoice line -->
<ram:SpecifiedLineTradeSettlement>
<ram:ApplicableTradeTax>
<ram:TypeCode>VAT</ram:TypeCode>
<ram:CategoryCode>O</ram:CategoryCode>
</ram:ApplicableTradeTax>
...
</ram:SpecifiedLineTradeSettlement>
<!-- VAT breakdown (BG-23) -->
<ram:ApplicableTradeTax>
<ram:CalculatedAmount>0.00</ram:CalculatedAmount>
<ram:TypeCode>VAT</ram:TypeCode>
<ram:BasisAmount>1000.00</ram:BasisAmount>
<ram:CategoryCode>O</ram:CategoryCode>
<ram:ExemptionReasonCode>VATEX-EU-O</ram:ExemptionReasonCode>
</ram:ApplicableTradeTax>
For developers: test expression per syntax
EN 16931 (CII) (CII)
Context: /rsm:CrossIndustryInvoice
not(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='O']) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='O'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='O']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='O'])))
EN 16931 (UBL) (UBL)
Context: /ubl:Invoice | /cn:CreditNote
((exists(//cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) = 'O']) or exists(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) = 'O'])) and (count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) = 'O']) = 1)) or (not(//cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) = 'O']) and not(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) = 'O']))
Factur-X / ZUGFeRD EN 16931 (CII)
Technical ID in the source: FX-SCH-A-000260
Context: /rsm:CrossIndustryInvoice
not(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='O']) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='O'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='O']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='O'])))
Related validation rules
- BR-O-02: VAT identifier not allowed for invoice line with category O
- BR-O-03: VAT identifier not allowed for document level allowance with category O
- BR-O-04: VAT identifier not allowed for document level charge with category O
- BR-O-05: VAT rate not allowed for invoice line with category O
- BR-O-06: VAT rate not allowed for document level allowance with category O
- BR-O-07: VAT rate not allowed for document level charge with category O
Last updated:
Explanation of the validation rule, not legal or tax advice.