Skip to content

BR-48: VAT category rate of the VAT breakdown (BT-119) is missing

Official message

[BR-48] Each VAT breakdown (BG-23) shall have a VAT category rate (BT-119), except if the Invoice is not subject to VAT.

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

[BR-48] Each VAT breakdown (BG-23) shall have a VAT category rate (BT-119), except if the Invoice is not subject to VAT.

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

[BR-48] Each VAT breakdown (BG-23) shall have a VAT category rate (BT-119), except if the Invoice is not subject to VAT.

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-119

What does this mean?

Every VAT breakdown (BG-23) must contain a VAT category rate (BT-119). The only exception is category O (not subject to VAT), where no rate is given. The rate is missing for at least one other breakdown.

Typical causes

For a category with 0% (e.g. Z, E, AE, K or G) the rate was omitted instead of stating 0.
No rate was entered for a line or an allowance/charge.

How to fix the error

State the rate in percent for every breakdown except category O, e.g. 19, 7 or 0.
For category O state no rate.
CII: ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:RateApplicablePercent, UBL: cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:Percent.
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. In section "Rechnungspositionen (BG-25)" (invoice lines) fill in the field "Steuersatz % (BT-152)" (VAT rate; simple view "Einfach": "MwSt %") for every line, also with 0. In section "Zu-/Abschläge auf Dokumentenebene (BG-20/BG-21)" (document level allowances and charges, "Experte" view) check the field "St-Satz %"; if it is empty, the rate of the category is used if there is exactly one for it.

Example

Wrong

<ram:ApplicableTradeTax>
  <ram:CalculatedAmount>0.00</ram:CalculatedAmount>
  <ram:TypeCode>VAT</ram:TypeCode>
  <ram:BasisAmount>800.00</ram:BasisAmount>
  <ram:CategoryCode>K</ram:CategoryCode>
  <ram:ExemptionReasonCode>VATEX-EU-IC</ram:ExemptionReasonCode>
</ram:ApplicableTradeTax>

Correct

<ram:ApplicableTradeTax>
  <ram:CalculatedAmount>0.00</ram:CalculatedAmount>
  <ram:TypeCode>VAT</ram:TypeCode>
  <ram:BasisAmount>800.00</ram:BasisAmount>
  <ram:CategoryCode>K</ram:CategoryCode>
  <ram:ExemptionReasonCode>VATEX-EU-IC</ram:ExemptionReasonCode>
  <ram:RateApplicablePercent>0</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
For developers: test expression per syntax

EN 16931 (CII) (CII)

Context: //ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax

(.[upper-case(ram:TypeCode) = 'VAT']/ram:RateApplicablePercent) or (.[upper-case(ram:TypeCode) = 'VAT']/ram:CategoryCode = 'O')

EN 16931 (UBL) (UBL)

Context: cac:TaxTotal/cac:TaxSubtotal

exists(cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:Percent) or (cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/normalize-space(cbc:ID)='O')

Factur-X / ZUGFeRD EN 16931 (CII)

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

Context: //ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax

(ram:RateApplicablePercent) or (ram:CategoryCode = 'O')

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

Frequently asked questions

Does a rate have to be stated for exempt supplies?

Yes, as 0. Only for category O (not subject to VAT) the rate is omitted; there it must not be stated.

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