InvoiceIn
Language: EN

BR-CO-17

EN 16931 · validation rule

EN 16931Error
In a VAT breakdown, VAT amount (BT-117) must equal taxable amount (BT-116) x rate (BT-119) / 100, rounded to two decimals. The sender must recompute cac:TaxSubtotal/cbc:TaxAmount / ram:CalculatedAmount per category and rate; the validator tolerates only the rounding of the final result, not per-line rounding differences.
Field
tax_breakdown[].tax_amount (BT-117)
Rule set
EN 16931
Rule-set version
EN 16931 validation artefacts 1.3.17 · in force since · Rule-set changelog
Who has to fix it
The sender

This is a property of the file you received, so it cannot be corrected on your side without changing the document — ask the supplier to reissue it.

Worked example · UBL

The breakdown says 7 % on 314.86, which is 22.04; a tax amount of 31.49 (10 %) contradicts the rate stated next to it.

Fails this rule
<cac:TaxTotal>
  <cbc:TaxAmount currencyID="EUR">31.49</cbc:TaxAmount>
  <cac:TaxSubtotal>
    <cbc:TaxableAmount currencyID="EUR">314.86</cbc:TaxableAmount>
    <cbc:TaxAmount currencyID="EUR">31.49</cbc:TaxAmount>
    <cac:TaxCategory>
      <cbc:ID>S</cbc:ID>
      <cbc:Percent>7</cbc:Percent>
      <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
    </cac:TaxCategory>
  </cac:TaxSubtotal>
</cac:TaxTotal>
Passes
<cac:TaxTotal>
  <cbc:TaxAmount currencyID="EUR">22.04</cbc:TaxAmount>
  <cac:TaxSubtotal>
    <cbc:TaxableAmount currencyID="EUR">314.86</cbc:TaxableAmount>
    <cbc:TaxAmount currencyID="EUR">22.04</cbc:TaxAmount>
    <cac:TaxCategory>
      <cbc:ID>S</cbc:ID>
      <cbc:Percent>7</cbc:Percent>
      <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
    </cac:TaxCategory>
  </cac:TaxSubtotal>
</cac:TaxTotal>

Check your own invoice

Drop the file that failed. We parse it, run the official rule sets against it and list every finding with a fix — 20 invoices per day, no key, nothing stored.

Open the live demo

Same explanation over the API: GET /v1/rules/BR-CO-17?lang=en