GS1 Digital Link explained

A GS1 Digital Link URI is a web address that carries GS1 identifiers. The same QR Code can then open a web page on a phone and give a GS1-aware scanner the GTIN, batch or expiry date it needs.

Structure

https://id.gs1.org/01/09521234543213/10/ABC123?17=251231
└──── domain ────┘└─ primary key ──┘└ qualifier ┘└ attributes ┘
  • Domain: any domain you control, for example your brand’s site. id.gs1.org is GS1’s own resolver. The domain does not change the meaning of the GS1 data.
  • Primary key in the path: the identifier, written as AI and value, e.g. /01/09521234543213 for a GTIN. Other primary keys exist, for example 00 (SSCC) or 414 (GLN).
  • Key qualifiers in the path, after the primary key and in a fixed order. For a GTIN these are 22 (consumer product variant), 10 (batch/lot) and 21 (serial number).
  • Data attributes in the query string, e.g. ?17=251231 for the expiry date or ?3103=000500 for a net weight.

The example above carries the same data as the element string (01)09521234543213(10)ABC123(17)251231.

Rules that are often broken

  • The AI values follow the same rules as in a barcode: the GTIN needs a correct check digit, dates use YYMMDD.
  • Qualifiers belong in the path and in the defined order. /01/…/21/…/10/… is not valid, /01/…/10/…/21/… is.
  • Characters outside the allowed set must be percent-encoded in the URI.
  • Write AIs as digits (/01/). Short names like /gtin/ are rejected by the official GS1 Barcode Syntax Engine, which our parser uses.

In which barcode?

Usually a QR Code, because phone cameras open it as a link. It can also be encoded in a Data Matrix. In both cases it is plain text inside a normal symbol, not the FNC1-based GS1 variant.

Related tools