PEPPOL-EN16931-R040

Where both the base amount and the percentage of an allowance or charge are given, the amount must follow from them exactly: base amount × percentage ÷ 100.

Severity
Error
Applies to
CII, UBL
Rule set
v2026-01-31

Official rule text

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

Why does PEPPOL-EN16931-R040 happen?

The amount comes from pricing, while the base amount and percentage are added afterwards as an explanation. If pricing rounds differently — or the discount was calculated on a different base — the three numbers stop agreeing.

How do you fix PEPPOL-EN16931-R040?

Compute the amount from exactly the two values present in the document: cbc:Amount from cbc:BaseAmount and cbc:MultiplierFactorNumeric in the same cac:AllowanceCharge in UBL, ram:ActualAmount from ram:BasisAmount and ram:CalculationPercent in CII. If you cannot substantiate the percentage, leave both explanatory fields out.

In the XML

A UBL fragment. The CII path is named above — same change, different element names.

Fails
<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:MultiplierFactorNumeric>10</cbc:MultiplierFactorNumeric>
  <cbc:Amount currencyID="EUR">50.00</cbc:Amount>
  <cbc:BaseAmount currencyID="EUR">1000.00</cbc:BaseAmount>
</cac:AllowanceCharge>
Fixed
<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:MultiplierFactorNumeric>10</cbc:MultiplierFactorNumeric>
  <cbc:Amount currencyID="EUR">100.00</cbc:Amount>
  <cbc:BaseAmount currencyID="EUR">1000.00</cbc:BaseAmount>
</cac:AllowanceCharge>

NormAPI provides technical validation, not tax or legal advice.