BR-DEC-20: VAT category tax amount (BT-117) has more than two decimals
Official message
[BR-DEC-20] The allowed maximum number of decimals for the VAT category tax amount (BT-117) is 2.
[BR-DEC-20] The allowed maximum number of decimals for the VAT category tax amount (BT-117) is 2.
[BR-DEC-20] The allowed maximum number of decimals for the VAT category tax amount (BT-117) is 2.
- 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
- BT-117
What does this mean?
The VAT category tax amount (BT-117) may have at most two decimals. In the invoice the amount has more than two decimals.
Typical causes
The total was built from unrounded individual amounts and not rounded to two decimals.
The generating system writes amounts with a fixed number of three or four decimals, e.g. 100.0000; trailing zeros count as well.
How to fix the error
Round the amount to two decimals and write it without further digits, e.g. 100.00 instead of 100.0000.
According to BR-CO-17 the amount is BT-116 × (BT-119 / 100), rounded to two decimals; recalculate the invoice total VAT amount (BT-110) accordingly (BR-CO-14).
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 tax amount per VAT category (BT-117) is calculated from the taxable amount and the rate when the XML is generated, and rounded to two decimals; the value in the field "Steuerbetrag (BT-117)" in section "Steueraufstellung (BG-23)" (VAT breakdown) is not used for this. Generate and validate the invoice again.
Example
Wrong
<ram:ApplicableTradeTax>
<ram:CalculatedAmount>190.0076</ram:CalculatedAmount>
<ram:TypeCode>VAT</ram:TypeCode>
<ram:BasisAmount>1000.00</ram:BasisAmount>
<ram:CategoryCode>S</ram:CategoryCode>
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
Correct
<ram:ApplicableTradeTax>
<ram:CalculatedAmount>190.01</ram:CalculatedAmount>
<ram:TypeCode>VAT</ram:TypeCode>
<ram:BasisAmount>1000.00</ram:BasisAmount>
<ram:CategoryCode>S</ram:CategoryCode>
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
For developers: test expression per syntax
EN 16931 (CII) (CII)
Context: //ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax
string-length(substring-after(ram:CalculatedAmount,'.'))<=2
EN 16931 (UBL) (UBL)
Context: cac:TaxTotal/cac:TaxSubtotal
string-length(substring-after(cbc:TaxAmount,'.'))<=2
Factur-X / ZUGFeRD EN 16931 (CII)
Technical ID in the source: FX-SCH-A-000054
Context: //ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax
string-length(substring-after(ram:CalculatedAmount,'.'))<=2
Related validation rules
- BR-DEC-01: Document level allowance amount (BT-92) has more than two decimals
- BR-DEC-02: Document level allowance base amount (BT-93) has more than two decimals
- BR-DEC-05: Document level charge amount (BT-99) has more than two decimals
- BR-DEC-06: Document level charge base amount (BT-100) has more than two decimals
- BR-DEC-09: Sum of invoice line net amounts (BT-106) has more than two decimals
- BR-DEC-10: Sum of allowances on document level (BT-107) has more than two decimals
Frequently asked questions
Is 100.000 allowed because its value equals 100.00?
No. The check counts the characters after the decimal point, not the numeric value. 100.000 has three decimals and triggers the rule; 100, 100.0 and 100.00 are allowed.
Last updated:
Explanation of the validation rule, not legal or tax advice.