Skip to content

PEPPOL-EN16931-R042: Percentage missing for allowance or charge with base amount

Official message

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

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

[PEPPOL-EN16931-R042] Allowance/charge percentage MUST be provided when allowance/charge base amount 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 percentage MUST be provided when allowance/charge base amount 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 percentage is missing.
The rule originates from Peppol BIS Billing 3.0 and is applied in the XRechnung validation.

Typical causes

The base amount was given for information although the allowance or charge is a fixed amount.
The percentage was only mentioned in the reason text.

How to fix the error

Add the percentage used to calculate the amount from the base amount, or omit the base amount if it is a fixed amount.
CII: ram:SpecifiedTradeAllowanceCharge/ram:CalculationPercent with ram:BasisAmount, UBL: cac:AllowanceCharge/cbc:MultiplierFactorNumeric with cbc:BaseAmount.
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 "%" for an entry with "Grundbetrag" (base amount), or clear "Grundbetrag". For lines the same applies on the tab "Zu-/Abschläge (BG-27/28)" of the line.

Example

Wrong

<ram:SpecifiedTradeAllowanceCharge>
  ...
  <ram:BasisAmount>250.00</ram:BasisAmount>
  <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[not(ram:CalculationPercent) and ram:BasisAmount]

false()

XRechnung (UBL) (UBL)

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

false()

Related validation rules

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