Skip to content

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

Official message

[BR-36] Each Document level charge (BG-21) shall have a Document level charge amount (BT-99).

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

[BR-36] Each Document level charge (BG-21) shall have a Document level charge amount (BT-99).

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

[BR-36] Each Document level charge (BG-21) shall have a Document level charge amount (BT-99).

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-21, BT-99

What does this mean?

Every document level charge (BG-21) must contain an amount (Document level charge amount, BT-99). The element is missing for at least one charge.

Typical causes

The charge was only given as a percentage (BT-101), without the amount calculated from it.
An empty charge without amount was output.

How to fix the error

State the amount without VAT for every charge, with at most two decimals. For percentage charges additionally state the base amount (BT-100) and the percentage (BT-101); the amount is base amount × percentage / 100.
CII: ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge (ChargeIndicator true)/ram:ActualAmount, UBL: cac:AllowanceCharge (cbc:ChargeIndicator true)/cbc:Amount.
Generate and validate the invoice again.

In E-Rechnungsfreund

In the invoice form ("Experte" view), section "Zu-/Abschläge auf Dokumentenebene (BG-20/BG-21)" (document level allowances and charges), fill in the field "Betrag" (amount) for every entry of type "Zuschlag (BG-21)" (charge).

Example

Wrong

<ram:SpecifiedTradeAllowanceCharge>
  <ram:ChargeIndicator>
    <udt:Indicator>true</udt:Indicator>
  </ram:ChargeIndicator>
  <ram:Reason>Shipping costs</ram:Reason>
  <ram:CategoryTradeTax>
    <ram:TypeCode>VAT</ram:TypeCode>
    <ram:CategoryCode>S</ram:CategoryCode>
    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
  </ram:CategoryTradeTax>
</ram:SpecifiedTradeAllowanceCharge>

Correct

<ram:SpecifiedTradeAllowanceCharge>
  <ram:ChargeIndicator>
    <udt:Indicator>true</udt:Indicator>
  </ram:ChargeIndicator>
  <ram:ActualAmount>9.90</ram:ActualAmount>
  <ram:Reason>Shipping costs</ram:Reason>
  <ram:CategoryTradeTax>
    <ram:TypeCode>VAT</ram:TypeCode>
    <ram:CategoryCode>S</ram:CategoryCode>
    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
  </ram:CategoryTradeTax>
</ram:SpecifiedTradeAllowanceCharge>
For developers: test expression per syntax

EN 16931 (CII) (CII)

Context: //ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator='true']

(../ram:ActualAmount)

EN 16931 (UBL) (UBL)

Context: /ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = true()] | /cn:CreditNote/cac:AllowanceCharge[cbc:ChargeIndicator = true()]

exists(cbc:Amount)

Factur-X / ZUGFeRD EN 16931 (CII)

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

Context: //ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator='true']

(../ram:ActualAmount)

Related validation rules

  • BR-01: Specification identifier (BT-24) is missing
  • BR-02: Invoice number (BT-1) is missing
  • BR-03: Invoice issue date (BT-2) is missing
  • BR-04: Invoice type code (BT-3) is missing
  • BR-05: Invoice currency code (BT-5) is missing
  • BR-06: Seller name (BT-27) is missing

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