BR-O-11: Category O: further breakdown not allowed
Official message
[BR-O-11] An Invoice that contains a VAT breakdown group (BG-23) with a VAT category code (BT-118) "Not subject to VAT" shall not contain other VAT breakdown groups (BG-23).
[BR-O-11] An Invoice that contains a VAT breakdown group (BG-23) with a VAT category code (BT-118) "Not subject to VAT" shall not contain other VAT breakdown groups (BG-23).
[BR-O-11] An Invoice that contains a VAT breakdown group (BG-23) with a VAT category code (BT-118) "Not subject to VAT" shall not contain other VAT breakdown groups (BG-23).
- 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-23, BT-118
What does this mean?
If the invoice contains a VAT breakdown (BG-23) with category O (Not subject to VAT), it must not contain other VAT breakdowns (BG-23). An invoice not subject to VAT may only contain information of category O.
In CII the rule checks the same as BR-O-12: there must be no tax information (breakdown or line) with another category at all. In UBL only the breakdowns are checked.
Typical causes
Supplies not subject to VAT and taxable or exempt supplies were invoiced in one invoice.
A line or allowance/charge still has the default category S.
How to fix the error
Check whether all lines and allowances/charges are not subject to VAT; if so, use category O everywhere.
Otherwise invoice the supplies of category O and the other supplies in separate invoices.
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 the VAT categories of the lines and allowances/charges when the XML is generated. Check the field "Steuerkategorie (BT-151)" (VAT category) in section "Rechnungspositionen (BG-25)" (invoice lines, "Experte" view) and the field "St-Kat." in section "Zu-/Abschläge auf Dokumentenebene (BG-20/BG-21)" (document level allowances and charges, "Experte" view); remove entries of other categories in section "Steueraufstellung (BG-23)" (VAT breakdown). In the simple view ("Einfach") lines without a category get category S.
Example
Wrong
<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>
<ram:ApplicableTradeTax>
<ram:CalculatedAmount>38.00</ram:CalculatedAmount>
<ram:TypeCode>VAT</ram:TypeCode>
<ram:BasisAmount>200.00</ram:BasisAmount>
<ram:CategoryCode>S</ram:CategoryCode>
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
Correct
<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:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'O'][upper-case(ram:TypeCode) = 'VAT']
not(//ram:ApplicableTradeTax[ram:CategoryCode != 'O'])
EN 16931 (UBL) (UBL)
Context: /ubl:Invoice | /cn:CreditNote
(exists(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) = 'O']) and count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) != 'O'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']) = 0) or not(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[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-000152
Context: //rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'O']
not(//ram:ApplicableTradeTax[ram:CategoryCode != 'O'])
Related validation rules
- BR-O-01: Not exactly one VAT breakdown for category O
- 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
Last updated:
Explanation of the validation rule, not legal or tax advice.