Global Location Number.
Thirteen digits naming a party or a location, one mod-10 rail, and the three-layer join — EDI N1 loops, EPCIS party lists, Peppol endpoints.
Thirteen digits naming a place, blown out.
GLNs mostly travel in documents, not on labels — the anatomy is the number's, not a barcode's. Bare, these 13 digits are indistinguishable from a GTIN-13 (one shared mod-10 rail): the AI key — (414) location, (417) party — is what says GLN, so the machine twin below speaks the (414) carrier and the answer speaks gs1.gln.
GLN 950600013435 · check 2
sum 9×1 + 5×3 + 0×1 + 6×3 + 0×1 + 0×3 + 0×1 + 1×3 + 3×1 + 4×3 + 3×1 + 5×3 = 78
check (10 − 78 mod 10) mod 10 = 2 → mod10 passThe row.
| scheme | gs1.gln |
|---|---|
| grammar | 13 digits — GS1 company prefix, location reference, check digit. One number space, two grains: a legal party or a physical/functional location; which grain a given GLN names is data, not grammar. |
| check digit | GS1 mod-10, the same right-anchored rail as GTIN-13. |
| canonical form | The 13-digit form; party grain in EPCIS terms is the PGLN. |
| symbologies | GS1-128 (AI 410–417 family) where printed at all; GLNs mostly travel in documents, not symbols |
| enrichment | party: licensee name and issuing MO from GS1 prefix ranges; address grain where licensed |
| join rule | The three-layer join: EDI N1 loops (N104 qualifier UL) ↔ EPCIS sourceList/destinationList (owning_party, location) ↔ the Peppol endpoint id — one key across all three layers. |
| pinned digest | gs1.gln sha256:8a2ae77f331fc5984d966405852fad3fb9ea079e4415298be928e3ef195216d6 |
| as data | /schemes/gln.json |
In practice.
The GLN is the family's party key: the same value that names the ship-from in an 856's N1 loop appears in the shipping event's source list and in the e-invoice's endpoint id. That three-way identity is what makes a discrepancy check a join instead of a fuzzy match.
On the blog.
-
GLN: the identifier that joins all three layers
The Global Location Number names the party or place in EPCIS source and destination lists, in an X12 856's N1 loop under qualifier UL, and as Peppol endpoint scheme 0088 — one identifier, three wire formats, and the only cross-layer join the record gets for free. Also — verified across the commercial API landscape — almost nobody carries it.
-
The ASN knows everything about the shipment except who shipped it
An EDI 856's HL tree maps cleanly onto EPCIS 2.0 — SSCC MAN values to AggregationEvent parents, LIN GTINs to EPC lists, BSN02 to the desadv reference, N1 GLNs to source and destination — and after the whole join lands, there is still no field on either side of the wire that names the person or agent who performed the handling.
Get an API key.
The local verbs run from npx barcoding.dev today with no key. A key opens the network half of the verb set.