PEPPOL-EN16931-R120: Invoice line net amount (BT-131) does not match quantity, price and allowances/charges
Official message
[PEPPOL-EN16931-R120] Invoice line net amount MUST equal (Invoiced quantity * (Item net price/item price base quantity) + Sum of invoice line charge amount - sum of invoice line allowance amount
[PEPPOL-EN16931-R120] Invoice line net amount MUST equal (Invoiced quantity * (Item net price/item price base quantity) + Sum of invoice line charge amount - sum of invoice line allowance amount
- Severity
- Warning Note: this does not make the invoice invalid, but it should be checked.
- Applies to
- XRechnung (CII), XRechnung (UBL)
What does this mean?
Invoice line net amount MUST equal (Invoiced quantity * (Item net price/item price base quantity) + Sum of invoice line charge amount - sum of invoice line allowance amount: BT-131 = quantity (BT-129) × (net price (BT-146) / base quantity (BT-149)) + line charges − line allowances. The amount deviates. The message is a warning.
The rule originates from Peppol BIS Billing 3.0 and is applied in the XRechnung validation. A deviation of 0.02 is tolerated (0.5 if the invoice currency is HUF). If the base quantity is missing or 0, 1 is used (in CII the base quantity of the gross price is tried first); if the quantity is missing, 1 is used as well. Example: 3 × (12.50 / 1) + 2.00 − 1.50 = 38.00.
Typical causes
The net price refers to a base quantity (e.g. per 100 pieces) that is not given as BT-149.
Line allowances or charges were not taken into account in the net amount, or counted twice.
The net amount was calculated from an unrounded or differently rounded price.
How to fix the error
Calculate BT-131 as quantity × net price / base quantity + line charges − line allowances and round to two decimals.
If the price applies to a quantity other than 1, state it as base quantity (BT-149).
Generate and validate the invoice again.
In E-Rechnungsfreund
In the invoice form, the line net amount (BT-131) is calculated when generating the XML from "Menge (BT-129)" (quantity), "Nettopreis (BT-146)" (net price), "Basis-Menge Netto (BT-149)" (base quantity) and the line allowances and charges. Check these fields in the "Experte" view, section "Rechnungspositionen (BG-25)" (invoice lines).
Example
Wrong
<ram:SpecifiedLineTradeAgreement>
<ram:NetPriceProductTradePrice>
<ram:ChargeAmount>12.50</ram:ChargeAmount>
</ram:NetPriceProductTradePrice>
</ram:SpecifiedLineTradeAgreement>
<ram:SpecifiedLineTradeDelivery>
<ram:BilledQuantity unitCode="H87">3</ram:BilledQuantity>
</ram:SpecifiedLineTradeDelivery>
<ram:SpecifiedLineTradeSettlement>
...
<ram:SpecifiedTradeSettlementLineMonetarySummation>
<ram:LineTotalAmount>12.50</ram:LineTotalAmount>
</ram:SpecifiedTradeSettlementLineMonetarySummation>
</ram:SpecifiedLineTradeSettlement>
Correct
<ram:SpecifiedLineTradeAgreement>
<ram:NetPriceProductTradePrice>
<ram:ChargeAmount>12.50</ram:ChargeAmount>
</ram:NetPriceProductTradePrice>
</ram:SpecifiedLineTradeAgreement>
<ram:SpecifiedLineTradeDelivery>
<ram:BilledQuantity unitCode="H87">3</ram:BilledQuantity>
</ram:SpecifiedLineTradeDelivery>
<ram:SpecifiedLineTradeSettlement>
...
<ram:SpecifiedTradeSettlementLineMonetarySummation>
<ram:LineTotalAmount>37.50</ram:LineTotalAmount>
</ram:SpecifiedTradeSettlementLineMonetarySummation>
</ram:SpecifiedLineTradeSettlement>
For developers: test expression per syntax
XRechnung (CII) (CII)
Context: ram:IncludedSupplyChainTradeLineItem
u:slack($lineExtensionAmount, ($quantity * ($priceAmount div $baseQuantity)) + $chargesTotal - $allowancesTotal, $slackValue)
XRechnung (UBL) (UBL)
Context: cac:InvoiceLine | cac:CreditNoteLine
u:slack($lineExtensionAmount, ($quantity * ($priceAmount div $baseQuantity)) + $chargesTotal - $allowancesTotal, $slackValue)
Related validation rules
- PEPPOL-EN16931-R001: Business process type (BT-23) is missing
- PEPPOL-EN16931-R005: VAT accounting currency (BT-6) equals the invoice currency (BT-5)
- PEPPOL-EN16931-R008: The invoice contains empty elements
- PEPPOL-EN16931-R010: Buyer electronic address (BT-49) is missing
- PEPPOL-EN16931-R020: Seller electronic address (BT-34) is missing
- PEPPOL-EN16931-R040: Allowance or charge amount does not match base amount and percentage
Last updated:
Explanation of the validation rule, not legal or tax advice.