PEPPOL-EN16931-CL002: Reason code MUST be according to subset of UNCL 5189 D.16B
Peppol BIS Billing 3.0.21 · UBL
Original rule text
[PEPPOL-EN16931-CL002]-Reason code MUST be according to subset of UNCL 5189 D.16B.
some $code in $UNCL5189 satisfies normalize-space(text()) = $codePEPPOL-EN16931-CL002 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 the cac:AllowanceCharge[cbc:ChargeIndicator = 'false']/cbc:AllowanceChargeReasonCode element contains a code from the allowed subset of UNCL 5189 D.16B. The test checks that the normalized text of the element is exactly one of the codes in $UNCL5189 (41, 42, 60, 62, 63, 64, 65, 66, 67, 68, 70, 71, 88, 95, 100, 102, 103, 104, 105). If the element's value is not in this list, the document fails validation.
How to fix
Set cac:AllowanceCharge[cbc:ChargeIndicator = 'false']/cbc:AllowanceChargeReasonCode to one of the allowed codes, for example 41, 42, or 60. Ensure the element contains only the code value (whitespace is ignored). If the code is missing or not in the list, change it to a valid code from the subset.
Guidance on this rule. The original text above is authoritative.
Where to go next
No published Peppol BIS Billing UBL release comparison lists a change to PEPPOL-EN16931-CL002.
Validate an invoice against these rules · All release changes