Skip to content

BR-46: VAT category tax amount (BT-117) is missing

Official message

[BR-46] Each VAT breakdown (BG-23) shall have a VAT category tax amount (BT-117).

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

[BR-46] Each VAT breakdown (BG-23) shall have a VAT category tax amount (BT-117).

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

[BR-46] Each VAT breakdown (BG-23) shall have a VAT category tax amount (BT-117).

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, BT-117

What does this mean?

Every VAT breakdown (BG-23) must contain the VAT category tax amount (BT-117), even if it is 0. The element is missing for at least one breakdown.

Typical causes

For a category without tax, e.g. exempt (E) or reverse charge (AE), the tax amount was omitted instead of stating 0.00.
The generating system writes only taxable amount and rate per category.

How to fix the error

State the tax amount for every VAT category: taxable amount (BT-116) × rate (BT-119) / 100, rounded to two decimals (BR-CO-17); 0.00 for categories without tax.
CII: ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CalculatedAmount, UBL: cac:TaxTotal/cac:TaxSubtotal/cbc:TaxAmount.
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 and allowances/charges when the XML is generated; the tax amount per category is calculated and always output. The values in section "Steueraufstellung (BG-23)" (VAT breakdown) are not used for this. Generate and validate the invoice again.

Example

Wrong

<ram:ApplicableTradeTax>
  <ram:TypeCode>VAT</ram:TypeCode>
  <ram:ExemptionReason>Export outside the EU</ram:ExemptionReason>
  <ram:BasisAmount>500.00</ram:BasisAmount>
  <ram:CategoryCode>G</ram:CategoryCode>
  <ram:RateApplicablePercent>0.00</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>

Correct

<ram:ApplicableTradeTax>
  <ram:CalculatedAmount>0.00</ram:CalculatedAmount>
  <ram:TypeCode>VAT</ram:TypeCode>
  <ram:ExemptionReason>Export outside the EU</ram:ExemptionReason>
  <ram:BasisAmount>500.00</ram:BasisAmount>
  <ram:CategoryCode>G</ram:CategoryCode>
  <ram:RateApplicablePercent>0.00</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
For developers: test expression per syntax

EN 16931 (CII) (CII)

Context: //ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax

(ram:CalculatedAmount)

EN 16931 (UBL) (UBL)

Context: cac:TaxTotal/cac:TaxSubtotal

exists(cbc:TaxAmount)

Factur-X / ZUGFeRD EN 16931 (CII)

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

Context: //ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax

(ram:CalculatedAmount)

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.