Skip to content

BR-CO-18: VAT breakdown (BG-23) is missing

Official message

[BR-CO-18] An Invoice shall at least have one VAT breakdown group (BG-23).

EN 16931 (CII) · Error · Message language: English · Version: xrechnung-3.0.2-validator-configuration-2026-08-31

[BR-CO-18] An Invoice shall at least have one VAT breakdown group (BG-23).

EN 16931 (UBL) · Error · Message language: English · Version: xrechnung-3.0.2-validator-configuration-2026-08-31

[BR-CO-18] An Invoice shall at least have one VAT breakdown group (BG-23).

Factur-X / ZUGFeRD EN 16931 · Error · Message language: English · Version: Factur-X 1.08 / ZUGFeRD 2.4
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

What does this mean?

An invoice shall have at least one VAT breakdown group (BG-23), i.e. at least one entry with category, taxable amount and tax amount on document level. The invoice contains none.

Typical causes

The VAT breakdown was omitted, e.g. for tax-exempt invoices; an entry with the appropriate category and tax amount 0 is required in that case as well.
The tax information is only stated at the lines, not on document level.

How to fix the error

Create an entry in the VAT breakdown for every combination of VAT category and rate that occurs in the invoice.
CII: ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax, UBL: cac:TaxTotal/cac:TaxSubtotal.
Generate and validate the invoice again.

In E-Rechnungsfreund

In the invoice form, the VAT breakdown (BG-23) is built from VAT category and rate of the lines when the XML is generated. Create at least one line in section "Rechnungspositionen (BG-25)" (invoice lines) and validate the invoice again.

Example

Wrong

<ram:ApplicableHeaderTradeSettlement>
  <ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
  <ram:SpecifiedTradeSettlementHeaderMonetarySummation>
    ...
  </ram:SpecifiedTradeSettlementHeaderMonetarySummation>
</ram:ApplicableHeaderTradeSettlement>

Correct

<ram:ApplicableHeaderTradeSettlement>
  <ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
  <ram:ApplicableTradeTax>
    <ram:CalculatedAmount>190.00</ram:CalculatedAmount>
    <ram:TypeCode>VAT</ram:TypeCode>
    <ram:BasisAmount>1000.00</ram:BasisAmount>
    <ram:CategoryCode>S</ram:CategoryCode>
    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
  </ram:ApplicableTradeTax>
  <ram:SpecifiedTradeSettlementHeaderMonetarySummation>
    ...
  </ram:SpecifiedTradeSettlementHeaderMonetarySummation>
</ram:ApplicableHeaderTradeSettlement>
For developers: test expression per syntax

EN 16931 (CII) (CII)

Context: //ram:IncludedSupplyChainTradeLineItem

//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax

EN 16931 (UBL) (UBL)

Context: /ubl:Invoice | /cn:CreditNote

exists(cac:TaxTotal/cac:TaxSubtotal)

Factur-X / ZUGFeRD EN 16931 (CII)

Technical ID in the source: FX-SCH-A-000135

Context: //rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement

ram:ApplicableTradeTax

Related validation rules

  • BR-CO-03: Value added tax point date (BT-7) and tax point date code (BT-8) are mutually exclusive
  • BR-CO-04: Invoiced item VAT category code (BT-151) is missing
  • BR-CO-05: Document level allowance reason code (BT-98) and allowance reason (BT-97) must indicate the same type
  • BR-CO-06: Document level charge reason code (BT-105) and charge reason (BT-104) must indicate the same type
  • BR-CO-07: Invoice line allowance reason code (BT-140) and allowance reason (BT-139) must indicate the same type
  • BR-CO-08: Invoice line charge reason code (BT-145) and charge reason (BT-144) must indicate the same type

Last updated:
Explanation of the validation rule, not legal or tax advice.