Error code BR-CO-17 means: the VAT amount for a VAT rate does not equal the taxable amount × the rate.
What does BR-CO-17 mean?
The validator shows this message (as worded in the official rules):
[BR-CO-17]-VAT category tax amount (BT-117) = VAT category taxable amount (BT-116) x (VAT category rate (BT-119) / 100), rounded to two decimals.
For each VAT rate, the invoice contains a VAT breakdown (TaxSubtotal). The rule checks that the VAT amount (BT-117) equals the taxable amount (BT-116) × the rate (BT-119) / 100. The current rules include a tolerance: in our tests a difference below 1.00 was accepted, and from 1.00 the error appears. Small rounding differences therefore usually do not trigger BR-CO-17.
Common causes
- VAT was calculated and rounded per line and those line amounts were added up. With many lines, the difference grows beyond 1.
- Lines with different rates are combined in one VAT breakdown.
- A document-level allowance or charge is missing from the taxable amount.
- The rate in the breakdown differs from the rate on the lines.
How to fix it as the sender
- Calculate VAT per rate on the total taxable amount and round afterwards. That is what the rule expects.
- Create a separate VAT breakdown for each combination of category and rate.
- Include document-level allowances and charges in the taxable amount of the correct rate.
Received an invoice with this error?
Ask the supplier for a corrected invoice. A wrong VAT amount affects your right to deduct VAT.
Example in the XML
❌ Wrong
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="EUR">300.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">64.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>21</cbc:Percent>
...
<!-- 300.00 x 21% = 63.00 -->
✅ Correct
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="EUR">300.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">63.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>21</cbc:Percent>
...
Both snippets come from a complete test invoice that we checked with our validator: the wrong version gives exactly this message, the correct version no errors at all.
Good to know
BR-CO-17 often comes together with BR-S-09 (VAT amount for the standard category). In our tests both rules failed at the same time.
Check your invoice
Drop your XML into the free validator. You see right away whether this error still occurs, with a link to the explanation for every message.
Official rule
The full rule with its technical test (Schematron) is in the official Peppol documentation:
Related error codes
- BR-CO-15: The total with VAT is not equal to the total without VAT plus the VAT amount.
- BR-S-02: The invoice charges VAT at the standard rate (category S), but the seller VAT number is missing.
Frequently asked questions about BR-CO-17
Why don’t I get BR-CO-17 for a one-cent difference?
The current rules allow a small rounding tolerance. In our tests with the May 2026 release, a difference up to 0.99 was accepted.
Should I calculate VAT per line or per rate?
The rule calculates per rate: taxable amount × rate. Calculate VAT the same way to avoid differences.