PEPPOL-EN16931-R043

The indicator saying whether this is a charge or an allowance must be exactly true or false — lower case, with no alternatives.

Severity
Error
Applies to
UBL
Rule set
v2026-01-31

Official rule text

Allowance/charge ChargeIndicator value MUST equal 'true' or 'false'

Why does PEPPOL-EN16931-R043 happen?

Serialisers write booleans differently: 1 and 0 out of many databases, True out of Python, TRUE out of some templates. Each is unambiguous to a human and wrong for the schema.

How do you fix PEPPOL-EN16931-R043?

Write the value as the literal string true or false in cbc:ChargeIndicator in UBL. Do not rely on your boolean type's default serialisation; emit the two literals explicitly.

In the XML

A UBL fragment — the rule applies to that syntax only.

Fails
<cac:AllowanceCharge>
  <cbc:ChargeIndicator>0</cbc:ChargeIndicator>
  <cbc:Amount currencyID="EUR">50.00</cbc:Amount>
</cac:AllowanceCharge>
Fixed
<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:Amount currencyID="EUR">50.00</cbc:Amount>
</cac:AllowanceCharge>

NormAPI provides technical validation, not tax or legal advice.