HomeError code lexicon › BR-37
BR-37 Field BT-102 EN 16931 core rules (BR)

Fix BR-37: VAT category of the charge (BT-102) missing

[BR-37]-Each Document level charge (BG-21) shall have a Document level charge VAT category code (BT-102).

BR-37 in your own invoice? Upload the file and find every error in seconds.

What does BR-37 mean?

Every document level charge needs a VAT category code. It assigns the charge to the right VAT breakdown.

Common causes of BR-37

How to fix BR-37

  1. Find the faulty spot in the XML. Open the XML of the invoice and go to field BT-102 along this XPath://ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:CategoryTradeTax/ram:CategoryCode
  2. Apply the fix. Every document level charge (BG-21) needs a VAT category code (BT-102). Add a block ram:CategoryTradeTax with ram:TypeCode 'VAT' and ram:CategoryCode inside the element ram:SpecifiedTradeAllowanceCharge with ChargeIndicator=true, for example 'S' for the standard rate. For category 'S' ram:RateApplicablePercent belongs there too.
  3. Validate again. Save the file and validate it again to check that BR-37 is no longer reported.
Concrete fix

Every document level charge (BG-21) needs a VAT category code (BT-102). Add a block ram:CategoryTradeTax with ram:TypeCode 'VAT' and ram:CategoryCode inside the element ram:SpecifiedTradeAllowanceCharge with ChargeIndicator=true, for example 'S' for the standard rate. For category 'S' ram:RateApplicablePercent belongs there too.

XPath//ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:CategoryTradeTax/ram:CategoryCode

Before / after: the XML example

This is the spot in question before and after the fix (Cross Industry Invoice, ZUGFeRD/Factur-X).

Wrong
<ram:SpecifiedTradeAllowanceCharge>
  <ram:ChargeIndicator><udt:Indicator>true</udt:Indicator></ram:ChargeIndicator>
  <ram:ActualAmount>15.00</ram:ActualAmount>
  <ram:Reason>Versandpauschale</ram:Reason>
</ram:SpecifiedTradeAllowanceCharge>
Correct
<ram:SpecifiedTradeAllowanceCharge>
  <ram:ChargeIndicator><udt:Indicator>true</udt:Indicator></ram:ChargeIndicator>
  <ram:ActualAmount>15.00</ram:ActualAmount>
  <ram:Reason>Versandpauschale</ram:Reason>
  <ram:CategoryTradeTax>
    <ram:TypeCode>VAT</ram:TypeCode>
    <ram:CategoryCode>S</ram:CategoryCode>
    <ram:RateApplicablePercent>19</ram:RateApplicablePercent>
  </ram:CategoryTradeTax>
</ram:SpecifiedTradeAllowanceCharge>

Frequent questions about BR-37

Which category code do I use for BT-102?
The same one that applies to the invoice lines: 'S' for the standard rate, 'AE' for reverse charge, 'Z' for zero rate, 'E' for exemption. The code must match the tax treatment of the charge.
Does the rule apply to allowances too?
No, BR-37 covers only charges (BG-21, ChargeIndicator=true). For document level allowances, rule BR-32 requires the category code BT-95.

Related error codes

Check BR-37 automatically

Instead of digging through the XML by hand you can validate your ZUGFeRD or XRechnung file online – upload the PDF or the XML and you get every error with rule ID, affected field, fix and XPath, as a readable report or as JSON through the API.

Find every error automatically instead of searching by hand

Upload your ZUGFeRD, Factur-X or XRechnung file – you get every violation back with rule ID, field, fix and XPath.

Validate online for free
Check invoice