Skip to content

Warning

UBL-CR-640: A per-unit discount amount does not belong inside the line price

In short

Warning: worth checking.

UBL-CR-640 means a cac:AllowanceCharge block inside an invoice or credit note line's price contains cbc:PerUnitAmount. Remove that element and keep the price discount amount in its proper field (BT-147).

On this page

What it means

The rule checks every cac:Price/cac:AllowanceCharge on invoice and credit note lines for cbc:PerUnitAmount. The price discount amount (BT-147) and price before the discount (BT-148) are separate fields. This check does not test their calculation.

Why it matters

EN 16931 represents the price discount through BT-147, not an additional PerUnitAmount element.

How to fix it

Remove cbc:PerUnitAmount from cac:AllowanceCharge inside cac:Price in each affected cac:InvoiceLine or cac:CreditNoteLine. If you use a price discount, check that the price before the discount (BT-148) minus the discount amount (BT-147) equals the unit price after the discount (BT-146). These prices exclude VAT. Export the corrected file and recheck it.

Once the file is corrected, check it again for free: Validate an invoice against EN 16931

Or fix the invoice in a form and download the corrected file, for 1 credit: Fix a rejected e-invoice

The rule as published

A UBL invoice should not include the InvoiceLine Item Price AllowanceCharge PerUnitAmount

Where this rule applies

Rule set Version
EN 16931 (UBL) 1.3.17
EN 16931 (UBL credit note) 1.3.17
XRechnung 3.0 (UBL) 3.0.2
XRechnung 3.0 (UBL credit note) 3.0.2
Peppol BIS Billing 3.0 (invoice) 2026.5
Peppol BIS Billing 3.0 (credit note) 2026.5
SI-UBL 2.0 / NLCIUS (invoice) 2.0.3.13
SI-UBL 2.0 / NLCIUS (credit note) 2.0.3.13
France CTC (UBL invoice) 1.4.0-04
France CTC (UBL credit note) 1.4.0-04
CIUS-RO UBL Invoice 1.0.9 1.0.9
CIUS-RO UBL Credit Note 1.0.9 1.0.9
Rule text from phive-rules 4.6.4.

Check your file

Drop your e-invoice to see whether UBL-CR-640 still fails, and which other rules do.

Updated 6 November 2026