PEPPOL-EN16931-R040
Allowance/charge amount must equal base amount * percentage/100 if base amount and percentage exists
What does this rule mean?
An allowance/charge amount does not equal base amount × percentage ÷ 100.
When base amount and percentage are given the amount must follow from them — otherwise the three values contradict each other.
Official rule message (standard)
Allowance/charge amount must equal base amount * percentage/100 if base amount and percentage exists
Where the rule applies
Syntax: CII · UBL
The same rule, expressed twice: UBL and CII name the same fields with different paths. Running a CII file against the UBL rules is why you get errors that mean nothing.
UBL
ubl-invoice:Invoice/cac:AllowanceCharge | ubl-invoice:Invoice/cac:InvoiceLine/cac:AllowanceCharge | ubl-creditnote:CreditNote/cac:AllowanceCharge | ubl-creditnote:CreditNote/cac:CreditNoteLine/cac:AllowanceCharge
CII
ram:SpecifiedTradeAllowanceCharge
Technical test
The rule passes when this Schematron expression holds true:
not(ram:CalculationPercent and ram:BasisAmount) or u:slack(if (ram:ActualAmount) then
ram:ActualAmount
else
0, (xs:decimal(ram:BasisAmount) * xs:decimal(ram:CalculationPercent)) div 100, 0.02)How to fix it
A missing or incorrect business entry only you can supply. Add or correct it, then re-check.
Check the base amount, percentage and amount. Amounts are never changed automatically.
Correct the affected entry in your XML, then re-check the invoice. Validation runs locally in your browser — your file never leaves your machine.
Check an e-invoice here
Drop an XML or ZUGFeRD PDF file here. Validation runs locally in your browser against EN 16931 — your file never leaves your machine.