Peppol BIS Billing 3.0.21 · UBL

GR-R-001-4: When Supplier is Greek, the Invoice Id third segment must be a positive integer

Peppol BIS Billing 3.0.21 · UBL

fatalcountry

Original rule text

[GR-R-001-4]-When Supplier is Greek, the Invoice Id third segment must be a positive integer

Stored validation assertion
string-length(normalize-space($IdSegments[3]))>0 and string(number($IdSegments[3])) != 'NaN' and xs:integer($IdSegments[3]) >= 0

GR-R-001-4 is a fatal rule in the country layer of Peppol BIS Billing 3.0.21 · UBL. An invoice that breaks it is rejected.

What this rule requires

For invoices or credit notes where the supplier country is GR or EL ($isGreekSender), this rule checks cbc:ID. The ID is split on | and the third segment ($IdSegments[3]) must be a non-negative integer: not empty or whitespace-only, numeric, and xs:integer($IdSegments[3]) >= 0. The message says 'positive integer', but the test allows 0; a negative number, non-numeric value, missing third segment, or fewer than three segments fails validation.

How to fix

Set cbc:ID to contain at least three pipe-separated segments, for example seg1|seg2|1, and make the third segment a whole number. To satisfy both the message and the test, use a positive integer (1, 2, ...); the validator will also accept 0 because the test uses >= 0. Ensure the third segment is not empty or only whitespace, and if the existing ID is generated by a system, change it to produce a suitable numeric third segment.

Guidance on this rule. The original text above is authoritative.

Where to go next

GR-R-001-4 changed in 1 published Peppol BIS Billing UBL release comparison:

Validate an invoice against these rules · All release changes