Rule PEPPOL-EN16931-R120
The line net amount must match the price times the quantity
On each line, the net amount equals the quantity multiplied by the item net price divided by the price base quantity, plus line charges and minus line allowances, within two cents.
Business term BT-131, with BT-129 quantity, BT-146 item net price and BT-149 price base quantity. Source: Peppol BIS Billing 3.0. Our wording, not the normative text, which is published in the Peppol BIS Billing 3.0 rule list (Peppol 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 item net price on the invoice is the gross price, before the line discount, while the net amount is after it. The rule compares the two and finds the discount missing from one side of the equation. This is by far the most common cause and it looks correct in every viewer.
- The price base quantity is not 1 and was not divided out. A price quoted per hundred or per thousand units, common for components and for consumables, multiplies the expected amount by that factor unless the base quantity travels with it.
- The line carries an allowance or a charge that was applied to the amount but not sent as a line level allowance or charge, so the equation is short by exactly that value.
- The amount is right and the quantity is rounded on the way out, most often a fractional quantity written to two decimals while the amount was computed from the full precision one.
- The unit of measure changed between the price and the quantity, so a price per kilogram meets a quantity in grams.
What to change
- Send the item net price AFTER the line discount, and put the discount in the line allowance as well if you want it visible. The net price field is defined as the price actually charged, not the list price.
- Send the price base quantity whenever the price is not per single unit, and make sure the unit on the base quantity matches the unit on the invoiced quantity.
- Recompute the line amount from the exact values you are about to send, rather than exporting an amount your system calculated from different inputs. If the two disagree, the rule is telling you something true about your data.
- Keep the quantity at the precision you actually used. Rounding the quantity for display and sending the display value is a very common way to break this by a few cents.
- Two cents of slack exist for rounding, so a failure here is almost never a rounding problem. It is a missing discount, a base quantity or a unit mismatch.
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 PEPPOL-EN16931-R120 usually breaks one of these too, because the same mapping gap tends to affect neighbouring fields.
Questions people actually ask
- What does PEPPOL-EN16931-R120 mean?
- On each line, the net amount equals the quantity multiplied by the item net price divided by the price base quantity, plus line charges and minus line allowances, within two cents.
- Which field does PEPPOL-EN16931-R120 apply to?
- BT-131, with BT-129 quantity, BT-146 item net price and BT-149 price base quantity. 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 PEPPOL-EN16931-R120?
- 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.