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.

950600013435 prefix + location reference the company prefix shares its ancestry lane with GTIN; its length varies (GS1 assigns it), so the split comes from the pinned prefix table
2 check this digit exists only to certify the others — mod10 pass

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 pass

The row.

schemegs1.gln
grammar13 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 digitGS1 mod-10, the same right-anchored rail as GTIN-13.
canonical formThe 13-digit form; party grain in EPCIS terms is the PGLN.
symbologiesGS1-128 (AI 410–417 family) where printed at all; GLNs mostly travel in documents, not symbols
enrichmentparty: licensee name and issuing MO from GS1 prefix ranges; address grain where licensed
join ruleThe 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 digestgs1.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.