Peppol BIS Billing 3.0.21 · UBL

PEPPOL-EN16931-CL002: Reason code MUST be according to subset of UNCL 5189 D.16B

Peppol BIS Billing 3.0.21 · UBL

fatalformat

Original rule text

[PEPPOL-EN16931-CL002]-Reason code MUST be according to subset of UNCL 5189 D.16B.

Stored validation assertion

some $code in $UNCL5189
satisfies normalize-space(text()) = $code

PEPPOL-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