Skip to content

PEPPOL-EN16931-R043-2: ChargeIndicator of the price discount is not true or false (CII)

Official message

[PEPPOL-EN16931-R043-2] Allowance/charge ChargeIndicator value MUST equal 'true' or 'false'

XRechnung (CII) · 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)

What does this mean?

Allowance/charge ChargeIndicator value MUST equal 'true' or 'false'. This variant checks ram:AppliedTradeAllowanceCharge in the gross price of a line, i.e. the item price discount (BT-147). The value is different.
The rule originates from Peppol BIS Billing 3.0 and is applied in the XRechnung validation for CII. According to PEPPOL-EN16931-R044 only false is allowed for a price discount.

Typical causes

The value was given as 1 or 0; XML Schema allows this, this rule does not.
Upper case (TRUE, False) or an empty element.

How to fix the error

State udt:Indicator in the price discount as false, in lower case.
CII: ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge/ram:ChargeIndicator/udt:Indicator.
Generate and validate the invoice again.

Example

Wrong

<ram:GrossPriceProductTradePrice>
  <ram:ChargeAmount>100.00</ram:ChargeAmount>
  <ram:AppliedTradeAllowanceCharge>
    <ram:ChargeIndicator>
      <udt:Indicator>0</udt:Indicator>
    </ram:ChargeIndicator>
    <ram:ActualAmount>10.00</ram:ActualAmount>
  </ram:AppliedTradeAllowanceCharge>
</ram:GrossPriceProductTradePrice>

Correct

<ram:GrossPriceProductTradePrice>
  <ram:ChargeAmount>100.00</ram:ChargeAmount>
  <ram:AppliedTradeAllowanceCharge>
    <ram:ChargeIndicator>
      <udt:Indicator>false</udt:Indicator>
    </ram:ChargeIndicator>
    <ram:ActualAmount>10.00</ram:ActualAmount>
  </ram:AppliedTradeAllowanceCharge>
</ram:GrossPriceProductTradePrice>
For developers: test expression per syntax

XRechnung (CII) (CII)

Context: ram:AppliedTradeAllowanceCharge

normalize-space(ram:ChargeIndicator/udt:Indicator/text()) = 'true' or normalize-space(ram:ChargeIndicator/udt:Indicator/text()) = 'false'

Related validation rules

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