Rule BR-DEC-23
An invoice line net amount may have at most two decimals
The net amount of an invoice line is stated with no more than two decimal places, because it is a money amount and not the calculation behind it.
Business term BT-131, Invoice line net amount. Source: EN 16931. Our wording, not the normative text, which is published in the Peppol BIS Billing 3.0 rule list (EN 16931 rules) and was checked against it on 2026-08-16.
Why it fires on invoices that look fine
Almost nobody hits this rule because they forgot the field exists. They hit it because something between their system and the document dropped it, changed its shape, or filled it with a value that is right somewhere else. These are the causes worth checking first.
- The amount is the unadjusted product of a unit price and a quantity, and one of them has more than two decimals. A price of 0.335 for 7 units gives 2.345, which is arithmetically right and not a money amount.
- Quantities are fractional by nature in the business: hours billed to a quarter minute, kilograms to three decimals, litres, bandwidth. The line total inherits their precision.
- A percentage discount was applied to the line and the result was written straight through, so a ten percent reduction on 33.33 becomes 29.997.
- A binary floating point value was serialised without rounding, so the field arrives as 12.340000000000001 despite every intermediate step looking correct in a debugger.
- A currency conversion happened at line level with the rate applied at full precision.
What to change
- Round the line net amount to two decimals at the moment you write it to the invoice, and let the unit price keep whatever precision it needs. The norm allows more decimals on the unit price than on the amount, precisely so that this is possible.
- Round once, at the end of the line calculation. Rounding each intermediate step accumulates a different error and can make the line totals stop summing to the document total.
- Do the arithmetic in integer minor units, or in a decimal type, rather than in binary floating point. That removes the whole class rather than patching its symptoms.
- If rounding the lines moves the document total, put the difference on the rounding amount field, which exists for exactly this, instead of quietly adjusting a line.
The validator runs in your browser. Nothing is uploaded, and you can confirm that yourself with the network panel open.
Rules you are likely to hit next
A document that breaks BR-DEC-23 usually breaks one of these too, because the same mapping gap tends to affect neighbouring fields.
Questions people actually ask
- What does BR-DEC-23 mean?
- The net amount of an invoice line is stated with no more than two decimal places, because it is a money amount and not the calculation behind it.
- Which field does BR-DEC-23 apply to?
- BT-131, Invoice line net amount. That is the name the semantic model uses, which is what you search for in your own system's mapping when the identifier alone does not tell you which field to look at.
- Does our validator check BR-DEC-23?
- Yes. Paste your invoice data into the free validator and it reports this rule with the value it actually saw, without the document leaving your browser.