# BR-CO-17 VAT category tax amount must equal taxable amount times rate divided by 100

VAT category tax amount (BT-117) must equal VAT category taxable amount (BT-116) multiplied by VAT category rate (BT-119) divided by 100, rounded to two decimals.

## Problem Description

> **ERROR**: EN 16931 calculation and consistency rule (BR-CO)

> **Where BR-CO-17 is checked**
>
> A validator checks an e-invoice in stages. First the file must be well-formed XML that matches the UBL or CII schema (XSD). Then the EN 16931 business rules run: BR core rules, BR-CO calculations, BR-CL code lists, BR-DEC decimals and VAT-category rules such as BR-S. Next come the national or network rules that BT-24 selects: BR-DE for XRechnung, PEPPOL-EN16931 for Peppol BIS Billing. The report lists every failed rule: one error means reject, warnings alone still mean accept. BR-CO-17: EN 16931 calculation rule, reported in the stage “EN 16931 rules”.

## Context and Significance

The rule is checked once per VAT breakdown row (UBL: cac:TaxSubtotal; CII: ram:ApplicableTradeTax). The EN 16931 validation artefacts used by the KoSIT validator accept a deviation of less than 1.00 (UBL) or up to 1.00 (CII) between BT-117 and the calculated value, so a one-cent difference from a different rounding method does not trigger BR-CO-17. The rule fails when BT-117 was calculated with a different rate or taxable amount, or left at 0.00 although the rate is above zero.

## Solution

Recompute every BT-117 as BT-116 × BT-119 / 100, rounded to two decimals, for each VAT category and rate combination. Calculate the VAT on the category taxable amount; do not add up VAT amounts that were rounded per line. If the difference is large, check whether BT-116 contains all lines, allowances and charges of that category (BR-S-8) and whether BT-119 is the correct rate.

- [Validate XML](/en/xrechnung-validator?source=resource&rule=BR-CO-17)
- [Convert invoice](/en/pdf-to-xrechnung?source=resource&rule=BR-CO-17)

## Valid Examples

- BT-116 = 100.00, BT-119 = 19 → BT-117 = 19.00
- BT-116 = 84.03, BT-119 = 19 → BT-117 = 15.97

## Invalid Examples

- BT-116 = 100.00, BT-119 = 19 but BT-117 = 7.00 (calculated with 7 % instead of 19 %)
- BT-117 left at 0.00 with non-zero BT-116 and BT-119

## Affected Fields

- [BT-117 VAT category tax amount](/resources/xrechnung/bt-117-vat-category-tax-amount)
- [BT-116 VAT category taxable amount](/resources/xrechnung/bt-116-vat-category-taxable-amount)
- [BT-119 VAT category rate](/resources/xrechnung/bt-119-vat-category-rate)

## Related Rules

- [BR-CO-14](/resources/kosit-validator-errors/br-co-14-invoice-total-vat-must-equal-sum-of-vat-categories)
- [BR-S-8](/resources/kosit-validator-errors/br-s-08-standard-rated-taxable-amount-must-match-lines-charges-allowances)
- [BR-S-09](/resources/kosit-validator-errors/br-s-09-standard-rated-vat-amount-calculation)

## Validation Tools

- [Official KoSIT Validator](https://github.com/itplr-kosit/validator): Run the official KoSIT validator with the XRechnung configuration to check EN 16931 and XRechnung rules.
- [Convert PDF to XRechnung](/pdf-to-xrechnung): Find validation errors during conversion and review each correction.

## Related Resources

- [Official Specification](https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/)
- [Test Suite](https://github.com/itplr-kosit/xrechnung-testsuite)
- [All validation errors](/resources/kosit-validator-errors): Overview of the EN 16931, XRechnung and Peppol validation rules explained here.
