Official rule text
[PEPPOL-COMMON-R040] GLN must have a valid format according to GS1 rules.
Why this error occurs
An identifier declared with schemeID 0088 is a GS1 Global Location Number and must be 13 digits with a correct GS1 check digit. The rule checks cbc:EndpointID, cac:PartyIdentification/cbc:ID and cbc:CompanyID with schemeID 0088 (UBL) or ram:URIID, ram:ID and ram:GlobalID with schemeID 0088 (CII) for digits only and a valid checksum. It fails when a DUNS number, an internal customer number or a GTIN is put under scheme 0088, or when the GLN contains spaces or a typo.
How to fix it
Use the real 13-digit GLN assigned by GS1, without spaces or prefixes, e.g. 4012345000009. Verify the check digit (GS1 modulo-10 algorithm) before sending. If the number is not a GLN, change the scheme: 0060 for DUNS, 0192 for a Norwegian organisation number, 9930 for a German VAT ID on EndpointID, or omit schemeID for an internal identifier on cac:PartyIdentification.
Example (valid)
<cbc:EndpointID schemeID="0088">4012345000009</cbc:EndpointID>
What the validator checks
Checked element (context):
UBL
cbc:EndpointID[@schemeID = '0088'] | cac:PartyIdentification/cbc:ID[@schemeID = '0088'] | cbc:CompanyID[@schemeID = '0088']Test (XPath):
matches(normalize-space(), '^[0-9]+$') and u:gln(normalize-space())CII
ram:URIID[@schemeID = '0088'] | ram:ID[@schemeID = '0088'] | ram:GlobalID[@schemeID = '0088']Test (XPath):
matches(normalize-space(), '^[0-9]+$') and u:gln(normalize-space())
Check your invoice
Drop your XML or PDF on the validator and every failed rule is linked to its page here. Free, no account, the file is not stored.
Same check via API:
curl -F file=@invoice.xml https://einvoicechecker.com/v1/validateRelated rules
PEPPOL-COMMON-R041Norwegian organisation number (scheme 0192) has an invalid formatPEPPOL-COMMON-R042Danish organization number (CVR) MUST be stated in the correct formatPEPPOL-COMMON-R043Belgian enterprise number (scheme 0208) has an invalid formatPEPPOL-COMMON-R044Italian IPA code (scheme 0201) has an invalid formatPEPPOL-COMMON-R045Tax Code (Codice Fiscale) must be stated in the correct formatPEPPOL-COMMON-R046Tax Code (Codice Fiscale) must be stated in the correct formatPEPPOL-COMMON-R047Italian VAT Code (Partita Iva) must be stated in the correct formatPEPPOL-COMMON-R049Swedish organisation number (scheme 0007) has an invalid format
Frequently asked questions
What does PEPPOL-COMMON-R040 mean?
PEPPOL-COMMON-R040 is a peppol bis billing 3.0 rule: GLN must have a valid format according to GS1 rules.
Will my invoice be rejected because of PEPPOL-COMMON-R040?
Yes. PEPPOL-COMMON-R040 is flagged "fatal"; validators (KoSIT, Peppol access points, the German ZRE/OZG-RE portals) reject the invoice until it is fixed.
Which formats does PEPPOL-COMMON-R040 apply to?
Invoices and credit notes sent over the Peppol network (UBL) and, because XRechnung embeds the Peppol rule set, every XRechnung as well. Syntax: UBL and CII.
Source: Peppol BIS Billing 3.0.20 (November 2025). Catalogue generated from the official schematron on 2026-10-14.