Skip to content
EN 16931 core rules

BR-37: Document level charge VAT category code (BT-102) is required

What this rule requires

Document level charge VAT category code (BT-102) is required.

ExampleEN 16931 (UBL)

An invoice built like a valid one, except for this:

<cac:AllowanceCharge>
  <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReason>Packaging</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="EUR">0.00</cbc:Amount>
</cac:AllowanceCharge>

The validator says: Document level charge VAT category code (BT-102) is required and the document does not contain it.

Official validation message

This is the official EN 16931 validation message for this rule, quoted verbatim in English from the validation artefacts below. It is not translated: a translation would no longer be the official text.

[BR-37]-Each Document level charge (BG-21) shall have a Document level charge VAT category code (BT-102).

Quoted verbatim and unmodified from the official EN 16931 validation artefacts published by CEN/TC 434, release validation-1.3.16 of April 13, 2026, licensed under the European Union Public Licence v. 1.2. Provided without warranty of any kind, including as to accuracy. Source and licence →

How to fix it

Add Document level charge VAT category code to the invoice.

Frequently asked questions

What does BR-37 mean?
Document level charge VAT category code (BT-102) is required. The rule runs under EN 16931 (UBL), Peppol BIS 3.0, and XRechnung 3.0 (UBL).
How do I fix BR-37?
Add Document level charge VAT category code to the invoice. In UBL the element is ⁦/Invoice/cac:AllowanceCharge[cbc:ChargeIndicator=true]/cac:TaxCategory/cbc:ID⁩.

Runs under these profiles

  • EN 16931 (UBL)
  • Peppol BIS 3.0
  • XRechnung 3.0 (UBL)

Element path

  • Document level charge VAT category code (BT-102)UBL /Invoice/cac:AllowanceCharge[cbc:ChargeIndicator=true]/cac:TaxCategory/cbc:IDCII /CrossIndustryInvoice/SupplyChainTradeTransaction/ApplicableHeaderTradeSettlement/SpecifiedTradeAllowanceCharge[ChargeIndicator/Indicator=true]/CategoryTradeTax/CategoryCodeRead from what WorkAlio's CII parser accepts — there is no CII writer yet, so this path is not independently verified the way the UBL path is.