PEPPOL-EN16931-P0101: Credit note type code MUST be set according to the profile
Peppol BIS Billing 3.0.21 · UBL
Original rule text
[PEPPOL-EN16931-P0101]-Credit note type code MUST be set according to the profile.
not($profile = ('01','02')) or (some $code in tokenize('381 396 81 83 532', '\s')
satisfies normalize-space(text()) = $code)PEPPOL-EN16931-P0101 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 applies when the invoice profile is one of the Peppol profiles mapped to '01' or '02': urn:fdc:peppol.eu:2017:poacc:billing:01:1.0, urn:peppol:france:billing:regulated, urn:peppol:france:billing:non-regulated (profile '01'), or urn:peppol:bis:billing_with_response (profile '02'). For those profiles, the cbc:CreditNoteTypeCode element must contain one of the five allowed codes: 381, 396, 81, 83, 532. If the profile is any other value or absent, the rule passes. A fatal error means the invoice is rejected when this condition is not met.
How to fix
Set cbc:CreditNoteTypeCode to one of the allowed values: 381, 396, 81, 83, 532. Ensure the text content matches one of these exactly (surrounding whitespace is ignored). If the profile is intentionally one of the recognized ones, choose the code that corresponds to the credit note type; otherwise check /*/cbc:ProfileID to make sure it is correct.
Guidance on this rule. The original text above is authoritative.
Where to go next
PEPPOL-EN16931-P0101 changed in 1 published Peppol BIS Billing UBL release comparison:
- PEPPOL-EN16931-P0101 in 3.0.20 → 3.0.21: Test expression rewritten
Validate an invoice against these rules · All release changes