PEPPOL-EN16931-CL003: Reason code MUST be according to UNCL 7161 D.16B
Peppol BIS Billing 3.0.21 · UBL
Original rule text
[PEPPOL-EN16931-CL003]-Reason code MUST be according to UNCL 7161 D.16B.
some $code in $UNCL7161
satisfies normalize-space(text()) = $codePEPPOL-EN16931-CL003 is a fatal rule in the format layer of Peppol BIS Billing 3.0.21 · UBL. An invoice that breaks it is rejected.
What this rule requires
The rule requires that for a charge (an AllowanceCharge element with ChargeIndicator 'true'), the AllowanceChargeReasonCode must contain a code that matches one of the values in the UNCL 7161 D.16B list. The validator checks that the text content, after ignoring surrounding whitespace, is exactly one of the listed codes; if it is empty, whitespace-only, or any other value not in the list, the document fails validation because the rule is fatal.
How to fix
Set the value of cac:AllowanceCharge[cbc:ChargeIndicator='true']/cbc:AllowanceChargeReasonCode to a valid code from UNCL 7161 D.16B, for example 'AA', 'AAA', 'AAC', or any other code present in the list. Ensure the code is spelled exactly as listed; leading/trailing spaces are ignored, but no other variation is accepted. If the reason code is generated by a system, configure it to output one of the accepted codes.
Guidance on this rule. The original text above is authoritative.
Where to go next
PEPPOL-EN16931-CL003 changed in 2 published Peppol BIS Billing UBL release comparisons:
- PEPPOL-EN16931-CL003 in 3.0.18 → 3.0.19: Behaviour changed without the rule changing
- PEPPOL-EN16931-CL003 in 3.0.2 → 3.0.10: Behaviour changed without the rule changing
Validate an invoice against these rules · All release changes