InvoiceValidator.eu

PEPPOL-EN16931-R046

fatalPeppol BIS Billing 3.0profileCIIUBL

Item net price MUST equal (Gross price - Allowance amount) when gross price is provided.

Why it fails

The item net price (BT-146) does not equal the gross price (BT-148) minus the item price discount (BT-147).

How to fix it

Set BT-146 = BT-148 - BT-147. If there is no discount, either omit the gross price or make it equal to the net price.

What the validator checks

CII — context —

not(ram:ChargeAmount) or xs:decimal(../ram:NetPriceProductTradePrice/ram:ChargeAmount) = xs:decimal(ram:ChargeAmount) - u:decimalOrZero(ram:AppliedTradeAllowanceCharge/ram:ActualAmount[1])

UBL — context —

not(cbc:BaseAmount) or xs:decimal(../cbc:PriceAmount) = xs:decimal(cbc:BaseAmount) - xs:decimal(cbc:Amount)

Related rules

Part of PEPPOL-EN16931 — Peppol BIS Billing 3.0.

Check your own invoice against PEPPOL-EN16931-R046

…or paste the XML instead

Nothing is stored, and the whole invoice is checked, not just this rule. A PDF only works if it is Factur-X / ZUGFeRD — a PDF with the invoice XML inside it.

This is a Peppol BIS Billing 3.0 rule: an invoice can be perfectly valid EN 16931 and still be rejected by it.