Faktura

PEPPOL-EN16931-R040

fatalPeppol BIS Billing 3.0profileCIIUBL

Allowance/charge amount must equal base amount * percentage/100 if base amount and percentage exists

Why it fails

An allowance or charge gives both a base amount and a percentage, but the amount does not equal base x percentage / 100.

How to fix it

Recompute the amount, or drop the base amount and percentage and state only the amount. Peppol checks the arithmetic; EN 16931 alone does not.

What the validator checks

CII — context

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, $slackValue)

UBL — context

not(cbc:MultiplierFactorNumeric and cbc:BaseAmount) or u:slack(if (cbc:Amount) then cbc:Amount else 0, (xs:decimal(cbc:BaseAmount) * xs:decimal(cbc:MultiplierFactorNumeric)) div 100, $slackValue)

Related rules

Part of PEPPOL-EN16931 — Peppol BIS Billing 3.0.

Validate an invoice against this rule →

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