# GS1 Digital Link

> Source: https://docs.barcoder.ai/docs/standards/gs1-digital-link
> research date 2026-06-03 · extracted at 2026-10-03
> Publisher: Barcoder — encyclopedia of QR, barcode and payment-code standards

Specifications:
- [GS1 Digital Link Standard: URI Syntax](https://ref.gs1.org/standards/digital-link/uri-syntax/)
- [GS1-Conformant Resolver Standard](https://ref.gs1.org/standards/resolver/)
- [GS1 Digital Link — GS1 Standards](https://www.gs1.org/standards/gs1-digital-link)
- [GS1 Digital Link — Wikipedia](https://en.wikipedia.org/wiki/GS1_Digital_Link)

# GS1 Digital Link

## Overview

**GS1 Digital Link** is a **data format**, not a symbology. It is a standardised way of expressing GS1 identifiers — Global Trade Item Numbers (GTINs), Global Location Numbers (GLNs), Serial Shipping Container Codes (SSCCs) — together with their associated data (batch/lot, serial number, expiry date, and any other GS1 Application Identifier) as a **web-resolvable HTTP(S) URI** <sup>[1][1], [3][3]</sup>. The same identifier data that has traditionally been carried as a flat GS1 element string (e.g. `(01)09521234543213(10)ABC123`) is instead expressed as a URL such as `https://example.com/01/09521234543213/10/ABC123`, which both a barcode scanner and an ordinary web browser can act on <sup>[1][1], [9][9]</sup>.

Because it is a data format and not a carrier, a GS1 Digital Link URI must be encoded into some symbology. In practice the carrier is almost always a [GS1 QR Code](https://docs.barcoder.ai/docs/standards/gs1-qr-code) (a QR Code holding a Digital Link URI), but the URI syntax can equally be placed in a [GS1 DataMatrix](https://docs.barcoder.ai/docs/standards/gs1-datamatrix) or printed as plain text. The defining idea is the convergence of two previously separate functions into one code: a single scan can serve point-of-sale data (the GTIN) to a retail till **and** open consumer-facing web content (product information, instructions, traceability) in a phone browser <sup>[3][3], [5][5]</sup>.

The standard is split into two parts: the **URI Syntax** standard, which defines how to construct and parse the URIs <sup>[1][1]</sup>, and the **GS1-Conformant Resolver** standard, which defines the web service that receives the URI and redirects the requester to the appropriate content <sup>[2][2]</sup>.

## History

The concept grew out of work on expressing GS1 identifiers as Web URIs, led by Mark Harrison, Phil Archer and others; **version 1.0 was published in August 2018** under the title that became the GS1 Digital Link standard <sup>[4][4]</sup>. **Version 1.1 was released on 19 February 2020**, adding updated GS1 branding and new sections covering CORS (Cross-Origin Resource Sharing) and TLS <sup>[4][4]</sup>. The standard has continued through maintenance releases in the 1.1.x line (e.g. 1.1.0, 1.1.2, 1.1.3), and was subsequently restructured into the separate **URI Syntax** and **GS1-Conformant Resolver** standards published on the GS1 reference site `ref.gs1.org` <sup>[1][1], [2][2]</sup>.

The work drew heavily on web architecture practice — the design rationale references content negotiation and linked-data principles familiar from the W3C — and GS1 published companion guidance such as the *How and Why of GS1 Digital Link* to explain the rationale to implementers <sup>[1][1], [4][4]</sup>.

## Technical specification

**URI structure.** A GS1 Digital Link URI is built from a domain followed by a sequence of `/AI/value` path segments, optionally followed by a query string <sup>[1][1], [5][5]</sup>. The Application Identifier numeric codes become path keys, and their values follow:

```
https://example.com/01/09521234543213/10/ABC123/21/SN-001?17=261231
```

Here `01` is the GTIN (primary key), `10` is the batch/lot number, `21` is the serial number, and `17` (expiry date) is carried as a query parameter <sup>[1][1], [5][5]</sup>.

**Primary keys, key qualifiers, attributes.** The syntax distinguishes three roles for AIs <sup>[1][1], [3][3]</sup>:

- **Primary keys** — the main identifier, e.g. GTIN (`01`), GLN (`414`), SSCC (`00`).
- **Key qualifiers** — values that make the identification more specific and form part of the path: batch/lot (`10`), serial number (`21`), and consumer product variant / CPV (`22`).
- **Attributes** (data attributes) — additional data such as expiry date (`17`), which are placed in the query string rather than the path.

**Mnemonic AI names.** As an alternative to numeric AIs, the standard defines human-readable short names: `gtin` for `01`, `lot` for `10`, `ser` for `21`, `gln` for `414`, and so on <sup>[3][3], [9][9]</sup>. For example the GS1 Digital Link toolkit converts the element string `(01)05412345000013(10)ABC&+123(3103)000189(3923)2172` to:

```
https://id.gs1.org/gtin/05412345000013/lot/ABC%26%2B123?3103=000189&3923=2172
```

— with the GTIN and lot in the path and the remaining AIs as percent-encoded query parameters <sup>[9][9]</sup>.

**Compressed and uncompressed forms.** Digital Link URIs exist in an uncompressed (human-readable) form and a compressed form, in which the AI/value pairs are packed into a compact base64url-style string to keep the resulting barcode small; conformant resolvers can automatically decompress these when resolving the identifier <sup>[7][7]</sup>.

**Resolver model.** A GS1-Conformant Resolver is a web service that receives a Digital Link URI, extracts the identifier (validating, for example, the GTIN check digit using the GS1 Mod-10 weight-(3,1) algorithm), and **redirects** the requester to the correct target resource <sup>[2][2], [5][5]</sup>. The resolver performs content negotiation on the inbound HTTP request — inspecting the `Accept` content type, `Accept-Language`, and a `linkType` parameter — so that a single QR code can route different audiences to different content <sup>[5][5]</sup>. GS1 defines a registry of standard **link types** such as `gs1:pip` (product information page), `gs1:epil` (electronic patient information leaflet), and traceability links, so one printed code can serve consumers, regulators, and supply-chain systems from one identifier <sup>[5][5]</sup>.

## Use cases

- **Convergent consumer engagement + POS.** A single on-pack QR code carrying a Digital Link URI lets a shopper open product information, recipes, allergen data, or sustainability claims in a browser, while the same code yields the GTIN at the checkout — the core promise behind the retail 2D transition (see [GS1 Sunrise 2027](https://docs.barcoder.ai/docs/standards/gs1-sunrise-2027)) <sup>[3][3], [5][5]</sup>.
- **Traceability and recalls.** Because the URI can carry batch/lot and serial, a scan can resolve to batch-specific recall notices or provenance data, making targeted recalls possible at the item level <sup>[5][5]</sup>.
- **Healthcare / regulated information.** Link types such as `gs1:epil` let a medicine pack point to the current digital patient leaflet, kept up to date independently of the printed carton <sup>[5][5]</sup>.
- **Digital twins and dynamic content.** Because resolution happens server-side, the destination behind a printed code can change over a product's life without reprinting the packaging <sup>[2][2], [5][5]</sup>.

## Implementations

- **GS1_DigitalLink_Resolver_CE** — the GS1 DigitalLink Resolver Community Edition, the official free/open-source reference resolver. Version 3.0 features a revised architecture with multi-link support and a unified database; codebase includes Python 3.10 and JavaScript. ~57 stars, active through 2026 <sup>[6][6], [7][7]</sup>.
- **GS1DigitalLinkToolkit.js** — official JavaScript toolkit for translating between GS1 element strings and Digital Link URIs (and back). ~20 stars, active 2026 <sup>[9][9]</sup>.
- **GS1DL-resolver-testsuite** — official conformance test suite for checking a resolver against the Digital Link spec <sup>[6][6]</sup>.

## Comparison

**Digital Link vs a plain GTIN barcode.** A conventional EAN/UPC barcode encodes only the GTIN as digits — it identifies the product but carries no machine-actionable link and no batch/serial granularity. A GS1 Digital Link URI carries the same GTIN *plus* optional key qualifiers (lot, serial, CPV) and attributes (expiry), and — critically — is itself a web address, so the same scan can both feed POS and open web content <sup>[3][3], [5][5]</sup>. The trade-off is size: a URI is far longer than 13 digits, so it needs a 2D carrier ([GS1 QR Code](https://docs.barcoder.ai/docs/standards/gs1-qr-code) or [GS1 DataMatrix](https://docs.barcoder.ai/docs/standards/gs1-datamatrix)) rather than a 1D linear symbol, and benefits from the compressed URI form <sup>[1][1], [7][7]</sup>.

**Digital Link vs GS1 element strings (FNC1 syntax).** Both encode the same AI data model. Element strings (used by [GS1-128](https://docs.barcoder.ai/docs/standards/gs1-128) and [GS1 DataMatrix](https://docs.barcoder.ai/docs/standards/gs1-datamatrix)) are compact and optimized for supply-chain scanners but are opaque to web infrastructure. Digital Link URIs are slightly larger but are natively resolvable by browsers and HTTP services; the two are losslessly interconvertible by toolkits like GS1DigitalLinkToolkit.js <sup>[9][9]</sup>.

## Status

GS1 Digital Link is a published, stable GS1 standard (URI Syntax and Resolver standards in the 1.1.x line) and is the data-format backbone of GS1's global push to migrate retail point-of-sale from 1D to 2D barcodes by the end of 2027 — see [GS1 Sunrise 2027](https://docs.barcoder.ai/docs/standards/gs1-sunrise-2027) <sup>[1][1], [3][3]</sup>. It is one of the two carriers (alongside [GS1 DataMatrix](https://docs.barcoder.ai/docs/standards/gs1-datamatrix)) sanctioned for that transition, in the form of a QR Code carrying GS1 Digital Link URI syntax <sup>[3][3]</sup>.

## Sources

[1]: https://ref.gs1.org/standards/digital-link/uri-syntax/
[2]: https://ref.gs1.org/standards/resolver/
[3]: https://www.gs1.org/standards/gs1-digital-link
[4]: https://en.wikipedia.org/wiki/GS1_Digital_Link
[5]: https://linkode.cl/en/gs1-digital-link/
[6]: https://github.com/gs1/GS1_DigitalLink_Resolver_CE
[7]: https://github.com/gs1/GS1_DigitalLink_Resolver_CE/blob/master/README.md
[9]: https://github.com/gs1/GS1DigitalLinkToolkit.js

[1] [GS1 Digital Link Standard: URI Syntax](https://ref.gs1.org/standards/digital-link/uri-syntax/) — GS1, 2022
[2] [GS1-Conformant Resolver Standard](https://ref.gs1.org/standards/resolver/) — GS1
[3] [GS1 Digital Link](https://www.gs1.org/standards/gs1-digital-link) — GS1
[4] [GS1 Digital Link](https://en.wikipedia.org/wiki/GS1_Digital_Link) — Wikipedia
[5] [GS1 Digital Link: Complete Guide to the Standard (2026)](https://linkode.cl/en/gs1-digital-link/) — Linkode, 2026
[6] [GS1_DigitalLink_Resolver_CE](https://github.com/gs1/GS1_DigitalLink_Resolver_CE) — GS1 / GitHub
[7] [GS1_DigitalLink_Resolver_CE README](https://github.com/gs1/GS1_DigitalLink_Resolver_CE/blob/master/README.md) — GS1 / GitHub
[9] [GS1DigitalLinkToolkit.js](https://github.com/gs1/GS1DigitalLinkToolkit.js) — GS1 / GitHub

## Deployments

_No country reports mention this standard by name._

## Regions / aggregations not mapped to a single country

- Universal
