Skip to content
UseQR
ESC

Jump to

MOVEOPEN50 places

Spec & internals

GS1 Digital Link in QR codes

GS1 Digital Link packs product identifiers into a web URL, https://example.com/01/{GTIN}/10/{lot}/21/{serial}, so one QR code opens a product page for shoppers and yields the GTIN for point-of-sale scanners. GS1's Sunrise 2027 programme aims to have retail checkouts scanning 2D codes by the end of 2027.

View as MarkdownPaste this page into any AI assistant. It is plain, portable Markdown.

The problem it solves

Products have carried two codes for years: an EAN/UPC barcode for the till, and often a separate QR code for marketing. Two symbols, two bits of packaging real estate, two things to get wrong. GS1 Digital Link collapses them into one: a QR code whose payload is a web URL with the product identifiers embedded in its path.

A shopper's phone treats it as a link and opens a product page. A point-of-sale scanner parses the same string, extracts the GTIN, and rings the item up exactly as if it had read the barcode. One symbol, both audiences.

The URI syntax

Identifiers ride in the URL path as alternating GS1 Application Identifier (AI) codes and values:

https://id.example.com/01/09506000134352/10/ABC123/21/456789
                       │  │              │  │      │  └─ serial number
                       │  │              │  └─ lot value
                       │  │              └─ AI 10 = batch/lot
                       │  └─ GTIN, padded to 14 digits
                       └─ AI 01 = GTIN

The rules that matter:

  • AI 01 (GTIN) is the primary key and comes first, as 14 digits, a 13-digit EAN gains a leading zero.
  • Key qualifiers follow in a fixed order in the path: 22 (consumer product variant), 10 (batch/lot), 21 (serial). Each is optional; you cannot skip the order.
  • Other attributes go in the query string, still keyed by AI: an expiry date is ?17=270331 (AI 17, YYMMDD), a net weight ?3103=000195.
  • The domain is yours (or a resolver service's). https://id.gs1.org/01/09506000134352 and a brand's own domain are both valid Digital Link URIs carrying the same GTIN.

Because the payload is just a URL, any QR generator can produce one, UseQR included; there is no special symbol type. The intelligence is entirely in the string, so verify the rendered code decodes to exactly the URI you constructed, separators and padding intact: a scanner that reads 01/950600… because a leading zero went missing resolves the wrong product. QR here carries no payload-level checksum of its own (see QR checksum and integrity), though the GTIN's final digit is itself a check digit, which catches most single-digit slips.

The 2D sunrise context

This format exists because the retail world is mid-migration. GS1's Sunrise 2027 programme is the industry ambition that retail points of sale worldwide should be able to scan 2D codes: QR with Digital Link, and Data Matrix in some sectors, by the end of 2027. During the transition, most packaging carries both the linear barcode and the 2D code side by side; the linear code goes away only when the tills catch up, and realistically not everywhere at once.

For a brand, the practical takeaways are on the retail-focused page, GS1 Digital Link for retail, including resolver strategy (what the URL serves when a human opens it) and how the same code feeds regulatory pushes like the EU Digital Product Passport. Serialised links (a unique 21 value per unit) also mean generating thousands of distinct codes: a batch job, not a one-off.

FAQ

A standard QR code whose payload is a web URL with GS1 identifiers embedded in the path (GTIN, batch, serial), so the same scan opens a product page on a phone and identifies the product to a retail scanner. The symbol itself is ordinary QR.

What does Sunrise 2027 mean?

It is GS1's global programme for retail checkouts to be capable of scanning 2D barcodes by the end of 2027. It does not abolish the linear barcode on that date; packaging typically carries both during the transition.

Yes. The format lives entirely in the URL string, so any generator that encodes a URL works. The care goes into constructing the URI correctly (14-digit GTIN, AI order, query-string attributes), and verifying the printed code decodes to it exactly.

What is the difference between AI 01, 10 and 21?

They are GS1 Application Identifiers: 01 is the GTIN identifying the product, 10 is the batch or lot, and 21 is the serial number identifying the individual unit. In a Digital Link URI they appear as path segments in that order.

Try it: free, no signup