On this page
The short answer
BR-DEC-14 fails when cac:LegalMonetaryTotal/cbc:TaxInclusiveAmount has more than two characters after the decimal point. Write the total with VAT as 80.20, not 80.200.
The recorded failure is padding only: 68.50 plus VAT of 11.70 is 80.20, and the third digit is a zero. UBL-DT-01 reports the same element.
What the rule checks
The rule looks at cbc:TaxInclusiveAmount in cac:LegalMonetaryTotal and counts every character after the decimal point, whitespace included; when tried, 80.20 followed by a space failed this rule and UBL-DT-01.
The value is checked by BR-CO-15, not here. When tried, an unrounded 80.204 reported BR-CO-15 at the document root as well, because that rule compares the total exactly with 68.50 + 11.70 rounded to two decimals, which is 80.20. BR-CO-16 did not object, since with a rounding amount present it rounds both sides of its comparison.
The totals either side of this one have rules of their own: the total without VAT is BR-DEC-12, and the amount due is BR-DEC-18.
| Term | Meaning | UBL element |
|---|---|---|
| BT-112 | Invoice total amount with VAT | cac:LegalMonetaryTotal/cbc:TaxInclusiveAmount |
How an integration ends up here
Possible causes, from the shape of the rule rather than from measured usage:
- The total with VAT is computed as net plus VAT at full precision and written without a final rounding.
- VAT is added per line at three or four decimals and the gross total is built from those figures.
- A decimal column with a scale of three is written out at full scale.
How to fix it
- Add the written total without VAT and the written VAT total, both already at two decimals, and round the result.
- Write it to
cac:LegalMonetaryTotal/cbc:TaxInclusiveAmountwith no more than two decimals and nothing around the digits. - Recalculate the amount due from the rounded total with VAT.
Validate your corrected invoice
Before and after
These are fragments, not complete documents. The complete synthetic documents they come from are linked below.
Fragment of the failing invoice: 68.50 plus 11.70 VAT written as 80.200
<cac:TaxTotal>
<cbc:TaxAmount currencyID="GBP">11.70</cbc:TaxAmount>
<!-- VAT breakdowns omitted from this fragment -->
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="GBP">66.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="GBP">68.50</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="GBP">80.200</cbc:TaxInclusiveAmount>
<!-- remaining totals omitted from this fragment -->
</cac:LegalMonetaryTotal>Fragment of the corrected invoice: the total with VAT written as 80.20
<cac:TaxTotal>
<cbc:TaxAmount currencyID="GBP">11.70</cbc:TaxAmount>
<!-- VAT breakdowns omitted from this fragment -->
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="GBP">66.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="GBP">68.50</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="GBP">80.20</cbc:TaxInclusiveAmount>
<!-- remaining totals omitted from this fragment -->
</cac:LegalMonetaryTotal>The failing invoice gives the total with VAT as 80.200 and the corrected invoice as 80.20; the total without VAT, the VAT total and every later figure are identical. Because the value is the same, BR-CO-15 accepts both. The failing document reports BR-DEC-14 at cac:LegalMonetaryTotal and UBL-DT-01 at cbc:TaxInclusiveAmount. UBL-DT-01 applies two decimals to all amount elements except item net prices and allowance amounts inside cac:Price, so the total with VAT, like every other monetary total, cannot fail one without the other.
What the validator reported
- The failing invoice reports BR-DEC-14 and UBL-DT-01. The corrected document passes every layer with no findings.Download the failing XMLDownload the corrected XML
Recorded on phive 12.1.0 / phive-rules-peppol 4.5.6 / Saxon-HE 12.10, the engine behind the free validator, using synthetic data. A recorded result is regression evidence for these documents; it is not a certification.
Where it applies
- Applies to UBL
InvoiceandCreditNote. When tried, a credit note with a total with VAT of80.200reported the same pair. - The count does not depend on the currency the total is in.
- A total with VAT of zero or below is counted in the same way, since a minus sign stands before the decimal point.
Related rules
- UBL-DT-01 reports the total with VAT beside this rule
- BR-CO-15 checks that the total with VAT is the total without VAT plus the VAT total
- BR-DEC-12 applies the same limit to the total without VAT
- BR-DEC-19 applies the same limit to the taxable amount of each VAT breakdown
- Browse every rule in the reference
- Background: Understanding EN 16931 validation errors
Scope and source
Written for Peppol BIS Billing 3.0.21 (May 2026), EN 16931 1.3.16, as applied to UBL 2.1 Invoice and CreditNote documents. Other profiles, syntaxes and releases can define this identifier differently. Guidance version 2026-09-28.1: source checked 2026-09-28, explanation last updated 2026-09-28.
The official definition of BR-DEC-14 carries the normative wording and test. This page is our explanation of it, not a copy.
Guidance does not change the engine verdict. Fixing this finding does not mean the document passes every layer, and validation does not certify legal or tax compliance or transmit a document over Peppol.

