BR-S-09 VAT amount per rate is wrong
The VAT amount for a rate must be the taxable amount times the rate, rounded to 2 decimals.
What the rule says
The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "Standard rated" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).
The rule's official wording (CEN / KoSIT). The German XRechnung rules are published in German.
Why it happens
The VAT amount for a rate (BT-117) isn't the taxable amount times the rate, rounded to two decimals. Typical when VAT was added up per line instead of calculated per rate.
How to fix it
Calculate VAT once per rate on the summed taxable amount, rounded half up to two decimals.
Applies to
Every EN 16931 e-invoice: XRechnung, ZUGFeRD / Factur-X, Peppol and others.
More about BR-S-09
The VAT for each standard rate must equal the taxable amount times the rate. Unlike most total checks, this one allows a difference of just under one currency unit, so rounding alone never triggers it. If you see BR-S-09, the VAT for that rate is off by a euro or more, which points to a real calculation mistake.
Worked example: taxable amount 100.00 at 19 % must give about 19.00. A common mistake gives 15.97 instead: that's the VAT extracted from 100.00 as if it were a gross amount (100 ÷ 1.19 × 0.19). The fix is to make sure the taxable amount is the net amount and the VAT is calculated on top of it.
The same error appears if the rate field and the actual calculation disagree, for example a breakdown showing 19 % while the amount was calculated at 7 %.
The fields involved
- BT-117 VAT category tax amount
- CII
ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ ram:CalculatedAmount - UBL
cac:TaxTotal/cac:TaxSubtotal/ cbc:TaxAmount - BT-116 VAT category taxable amount
- CII
ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ ram:BasisAmount - UBL
cac:TaxTotal/cac:TaxSubtotal/ cbc:TaxableAmount - BT-119 VAT category rate
- CII
ram:ApplicableTradeTax/ram:RateApplicablePercent - UBL
cac:TaxSubtotal/cac:TaxCategory/ cbc:Percent
Typical situations
- Prices were entered as gross amounts, but the software treats them as net (or the other way round).
- The rate was changed on the invoice, but the VAT amount wasn't recalculated.
- The VAT of a different rate ended up in this entry of the breakdown.
Example
A breakdown entry whose VAT matches its rate (CII):
<ram:ApplicableTradeTax>
<ram:CalculatedAmount>19.00</ram:CalculatedAmount>
<ram:TypeCode>VAT</ram:TypeCode>
<ram:BasisAmount>100.00</ram:BasisAmount>
<ram:CategoryCode>S</ram:CategoryCode>
<ram:RateApplicablePercent>19</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>