BR-37: Document level charge VAT category code (BT-102) is missing
Official message
[BR-37] Each Document level charge (BG-21) shall have a Document level charge VAT category code (BT-102).
[BR-37] Each Document level charge (BG-21) shall have a Document level charge VAT category code (BT-102).
[BR-37] Each Document level charge (BG-21) shall have a Document level charge VAT category code (BT-102).
- 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-102
What does this mean?
Every document level charge (BG-21) must contain the VAT category code (Document level charge VAT category code, BT-102) so that it can be assigned to the right VAT group. It is missing for at least one charge.
Typical causes
The charge, e.g. shipping costs, was output without tax details.
The tax details exist but are not marked as VAT (TypeCode or TaxScheme not VAT).
How to fix the error
State the VAT category for every charge, e.g. S (standard rate), Z (zero rated), E (exempt), AE (reverse charge); for category S also the rate.
The category must match a group of the VAT breakdown (BG-23).
CII: ram:SpecifiedTradeAllowanceCharge/ram:CategoryTradeTax with ram:TypeCode VAT and ram:CategoryCode, UBL: cac:AllowanceCharge/cac:TaxCategory/cbc:ID with cac:TaxScheme/cbc:ID VAT.
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), select the VAT category in the field "St-Kat." for every entry of type "Zuschlag (BG-21)" (charge) and check the rate in the field "St-Satz %".
Example
Wrong
<ram:SpecifiedTradeAllowanceCharge>
<ram:ChargeIndicator>
<udt:Indicator>true</udt:Indicator>
</ram:ChargeIndicator>
<ram:ActualAmount>9.90</ram:ActualAmount>
<ram:Reason>Shipping costs</ram:Reason>
</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:CategoryTradeTax[upper-case(ram:TypeCode) = 'VAT']/ram:CategoryCode)
EN 16931 (UBL) (UBL)
Context: /ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = true()] | /cn:CreditNote/cac:AllowanceCharge[cbc:ChargeIndicator = true()]
exists(cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID)
Factur-X / ZUGFeRD EN 16931 (CII)
Technical ID in the source: FX-SCH-A-000069
Context: //ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator='true']
(../ram:CategoryTradeTax[upper-case(ram:TypeCode) = 'VAT']/ram:CategoryCode)
Related validation rules
Last updated:
Explanation of the validation rule, not legal or tax advice.