Skip to content

PEPPOL-EN16931-R041: Base amount missing for allowance or charge with percentage

Official message

[PEPPOL-EN16931-R041] Allowance/charge base amount MUST be provided when allowance/charge percentage is provided.

XRechnung (CII) · Error · Message language: English · Version: xrechnung-3.0.2-validator-configuration-2026-08-31

[PEPPOL-EN16931-R041] Allowance/charge base amount MUST be provided when allowance/charge percentage is provided.

XRechnung (UBL) · Error · Message language: English · Version: xrechnung-3.0.2-validator-configuration-2026-08-31
Severity
Error The invoice is invalid and may be rejected by the recipient.
Applies to
XRechnung (CII), XRechnung (UBL)

What does this mean?

Allowance/charge base amount MUST be provided when allowance/charge percentage is provided. This applies on document level (BT-93/BT-94, BT-100/BT-101) and on line level (BT-137/BT-138, BT-142/BT-143). The base amount is missing.
The rule originates from Peppol BIS Billing 3.0 and is applied in the XRechnung validation.

Typical causes

Only percentage and amount were given, not the base amount.
The percentage was given for information without the amount being calculated from it.

How to fix the error

Add the base amount the percentage refers to, or omit the percentage.
CII: ram:SpecifiedTradeAllowanceCharge/ram:BasisAmount with ram:CalculationPercent, UBL: cac:AllowanceCharge/cbc:BaseAmount with cbc:MultiplierFactorNumeric.
Generate and validate the invoice again.

In E-Rechnungsfreund

In the invoice form, "Experte" view, section "Zu-/Abschläge auf Dokumentenebene (BG-20/BG-21)" (document level allowances and charges), also fill in "Grundbetrag" (base amount) for an entry with "%", or clear "%". For lines the same applies on the tab "Zu-/Abschläge (BG-27/28)" of the line.

Example

Wrong

<ram:SpecifiedTradeAllowanceCharge>
  ...
  <ram:CalculationPercent>3</ram:CalculationPercent>
  <ram:ActualAmount>7.50</ram:ActualAmount>
  ...
</ram:SpecifiedTradeAllowanceCharge>

Correct

<ram:SpecifiedTradeAllowanceCharge>
  ...
  <ram:CalculationPercent>3</ram:CalculationPercent>
  <ram:BasisAmount>250.00</ram:BasisAmount>
  <ram:ActualAmount>7.50</ram:ActualAmount>
  ...
</ram:SpecifiedTradeAllowanceCharge>
For developers: test expression per syntax

XRechnung (CII) (CII)

Context: ram:SpecifiedTradeAllowanceCharge[ram:CalculationPercent and not(ram:BasisAmount)]

false()

XRechnung (UBL) (UBL)

Context: ubl-invoice:Invoice/cac:AllowanceCharge[cbc:MultiplierFactorNumeric and not(cbc:BaseAmount)] | ubl-invoice:Invoice/cac:InvoiceLine/cac:AllowanceCharge[cbc:MultiplierFactorNumeric and not(cbc:BaseAmount)] | ubl-creditnote:CreditNote/cac:AllowanceCharge[cbc:MultiplierFactorNumeric and not(cbc:BaseAmount)] | ubl-creditnote:CreditNote/cac:CreditNoteLine/cac:AllowanceCharge[cbc:MultiplierFactorNumeric and not(cbc:BaseAmount)]

false()

Related validation rules

Last updated:
Explanation of the validation rule, not legal or tax advice.