ErrorPeppol BIS 3.0Input required

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.

100% local — no upload, no account.

Related rules

← Back to the error library