Skip to content
EN 16931 core rules

BR-36: Document level charge amount (BT-99) is required

What this rule requires

Document level charge amount (BT-99) 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>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cbc:Percent>19.00</cbc:Percent>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:AllowanceCharge>

The validator says: Document level charge amount (BT-99) 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-36]-Each Document level charge (BG-21) shall have a Document level charge amount (BT-99).

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 amount to the invoice.

Frequently asked questions

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

Runs under these profiles

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

Element path

  • Document level charge amount (BT-99)UBL /Invoice/cac:AllowanceCharge[cbc:ChargeIndicator=true]/cbc:AmountCII /CrossIndustryInvoice/SupplyChainTradeTransaction/ApplicableHeaderTradeSettlement/SpecifiedTradeAllowanceCharge[ChargeIndicator/Indicator=true]/ActualAmountRead 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.