PEPPOL-EN16931-R040:Discount or surcharge amount doesn't match the calculation
Fix: Invoice Navigator automatically fixes this Invoice compliance issue by updating the relevant XML elements (PEPPOL-EN16931-R040). Upload your invoice to fix this automatically.
A discount or surcharge amount does not match its base amount multiplied by the percentage. When all three values are provided (amount, base amount, and percentage), they must be consistent: amount = base amount × percentage ÷ 100.
Engine Classification
Recalculates the allowance/charge amount as base amount × percentage / 100
Confidence: 90% · Applied automatically in pipeline
What is PEPPOL-EN16931-R040?
PEPPOL-EN16931-R040 is a fatal validation rule defined in the EN 16931 specification. It validates the Amount element in the UBL invoice XML.
When this rule fires, the invoice is rejected by Peppol access points and never reaches the buyer.
Target path: cac:AllowanceCharge/cbc:Amount
Why This Error Matters
Invoice will be rejected by PEPPOL validation. Allowance/charge calculations must be mathematically consistent.
PEPPOL-EN16931-R040 is a hard failure — the invoice must be corrected and re-sent before it can reach the recipient.
Inconsistent discount/surcharge calculations make the invoice totals unreliable. The invoice will be rejected by Peppol validation because the numbers do not add up.
Invoice Navigator can automatically correct this error in your pipeline. The fix is applied with full audit evidence, so your compliance trail remains intact.
Validator Behavior
- ·Causes invoice rejection
- ·Error returned: PEPPOL-EN16931-R040
- ·Specification: EN 16931
How to Fix It
Find the inconsistent discount/surcharge
Check each document-level and line-level allowance or charge. One of them has amount, base amount, and percentage that do not match.
Recalculate
The correct amount = base amount × percentage ÷ 100. For example: base 500 × 10% = 50.
Decide which value is wrong
Usually the amount should be recalculated from the base and percentage. But if the amount is correct, adjust the percentage or base amount instead.
Before / After
<Invoice> <!-- Issue: Allowance/charge amount must equal base amount × percentage/ --> </Invoice>
<Invoice> <!-- Issue resolved per EN 16931 --> </Invoice>
Technical Reference
cac:AllowanceCharge/cbc:AmountCode Example
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>100</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Early payment discount</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="EUR">50.00</cbc:Amount>
</cac:AllowanceCharge>Common Causes
- ·Rounding differences between ERP calculation and EN16931 formula
- ·Percentage changed after amount was calculated
- ·Manual override of discount amount without updating percentage
Seeing this in production? The API handles PEPPOL-EN16931-R040 automatically. See the fix response →
Commonly Seen In
Frequently Asked Questions
Document and line allowances must set ChargeIndicator to false.
Set ChargeIndicator to false for allowances. Invoice Navigator can help identify and fix this issue.
Yes, PEPPOL-EN16931-R040 is a critical error that must be fixed.
Related Errors
Related Content
Last updated: 31 March 2026
Validate your invoice
Drop your XML here to check for PEPPOL-EN16931-R040
Auto-fix PEPPOL-EN16931-R040 in seconds
Upload your invoice and we fix this error automatically. Financial fields are never touched.