Skip to main content

BR-DE-14 VAT category rate must be provided

In XRechnung, every VAT breakdown group (BG-23 / VAT BREAKDOWN) must contain the VAT category rate (BT-119) expressed as a percentage. While the base European standard EN 16931 allows the percentage to be omitted in specific non-taxable or exempt scenarios (such as reverse charge AE or exempt E), the German XRechnung profile strictly enforces the presence of BT-119 (e.g. 0.00 for zero/exempt/reverse charge, or 19.00 / 7.00 for standard / reduced rates) so that automated tax calculation engines can calculate and verify tax amounts deterministically.

Problem Description

ERROR

German XRechnung rule (KoSIT, BR-DE) · XRechnung 3.0

Context and Significance

Without BT-119, validator engines cannot execute the arithmetic consistency formula TaxAmount = round(TaxableAmount * Percent / 100). The presence of BT-119 is mandatory across all VAT breakdowns in XRechnung.

Solution

In your ERP tax determination configuration, ensure the tax percentage is exported in all VAT breakdown subtotals. For reverse charge (code AE), export transactions (code G), zero-rated supplies (code Z), and tax-exempt sales (code E), explicitly output a rate of 0.00 in BT-119. In UBL 2.1 syntax, populate <cbc:Percent> inside <cac:TaxTotal><cac:TaxSubtotal><cac:TaxCategory>. In UN/CEFACT CII syntax, populate <ram:RateApplicablePercent> inside <ram:ApplicableHeaderTradeSettlement><ram:ApplicableTradeTax>.

Quick actions

Valid Examples

  • Standard rate VAT breakdown with BT-118 = "S", BT-119 = 19.00, BT-116 = 100.00, BT-117 = 19.00
  • Reverse charge VAT breakdown with BT-118 = "AE", BT-119 = 0.00, BT-116 = 500.00, BT-117 = 0.00

Invalid Examples

  • TaxSubtotal element specifies category S and taxable amount but omits the cbc:Percent element
  • Reverse charge breakdown (category AE) exported without rate percentage element under the assumption that zero rate is implicit

Code Examples

Valid XML
<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="EUR">100.00</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="EUR">19.00</cbc:TaxAmount>
  <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:TaxSubtotal>
Invalid XML
<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="EUR">100.00</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="EUR">19.00</cbc:TaxAmount>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
  </cac:TaxCategory>
</cac:TaxSubtotal>

Affected Fields

Validation Tools