← All e-invoice error codes

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.

Auf Deutsch · En français

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>