Navigation in the article
- About standard
- GS1 Digital Link standard documents
- Creating a GS1 Digital Link and a suitable carrier
- Implementation options
- Selected rules for GS1 DL strings
About standard
GS1 Digital Link (GS1 DL) is a standardized method for encoding GS1 identifiers such as GTIN, GLN, or SSCC in such a way that the resulting identifier performs two functions:
- It contains encoded GS1 data.
- It contains a link to online information.
The first function is similar to other GS1 standards. It defines the rules for stringing GS1 Application Identifiers (GS1 AI) into a GS1 DL string. The role of these rules is to ensure that the data retrieved is always the same as the data entered. The contents of these rules are, for example, the allowed identifiers (GS1 AIs), their order, allowed characters, etc.
The second function is specific to the GS1 DL standard. It defines how the identifier from the first step can be used to create a GS1 Digital Link URI. A GS1 DL URI is a web URI address that contains one or more GS1 AIs together with their values and leads to a web page where this URI is processed by the GS1 DL resolver.
These two functions together create a single identifier, e.g. a barcode, which provides different information depending on who reads it:
- Reading at the POS scanner or other scanning device will retrieve the encoded GS1 data from the carrier, similar to GS1 DataMatrix, GS1 DataBar, or GS1-128 barcodes.
- Reading the barcode via phone will retrieve a URL that can redirect the user to, for example, a product page, recipe page, user manual, and more.
Until 2027 it is recommended to use the GS1 Digital Link QR code in the so-called transitional mode. This means that the 'old' barcode, e.g. EAN-13, should be placed on the label and the new GS1 DL QR should also be placed on the label. The use of dual labelling is recommended to ensure the product identifier is readable on all scanners. GS1, together with experts from the sales and manufacturing industry, has a plan that by 2027 retailers will be able to read 2D barcodes. It is therefore recommended to use dual tagging until 2027 as this is a transition period.
GS1 Digital Link data and URL address:
QR code:
Encoded data:
| (01) GTIN | 08580000000078 |
|---|---|
| (22) Consumer product variant | Var12 |
| (10) Batch/Lot | Sarza01 |
| (21) Serial number | 858 |
| (11) Production date | 240919 |
| (15) Best before date | 280122 |
GS1 Digital Link standard documents
The GS1 Digital Link Standard: URI Syntax document contains rules for creating GS1 DL strings, lists of allowed GS1 AIs, rules for their order, allowed characters, data attributes, examples of created GS1 DL strings. It is the main document defining the GS1 DL data structure. Compliance with the contained rules is necessary to ensure the seamless functionality of the created identifiers.
The GS1-Conformant Resolver Standard document defines how to process a GS1 DL URI to obtain a web address. It contains rules for decompression, validation, attribute processing, data provisioning, redirection and resolution schemes. It is a standard defining a GS1 compliant resolver for the GS1 DL Standard rules. An important note in the standard is that GS1 Digital Links do not have to lead to a GS1-Conformant Resolver, or that they have to be redirected (direct links). Thus, the document contains a standard that is not binding in the sense of using GS1 DL for product labelling. It contains the rules necessary for communication between GS1-Conformant resolvers with each other and with APIs. By reading it, you can get a basic idea of how your resolver may work. The resolver we use on this page (GS1 SK resolver) is not a GS1-Conformant. resolver
The GS1 Digital Link Standard document is the original GS1 DL standard document. It contains chapters that have already been superseded and updated in the previous two documents. The other two chapters have been marked for rework and, according to the GS1 Digital Link Standard: URI Syntax document, will be split into two more documents dealing with compression rules and semantics. Until separate documents are created, those rules will be addressed in this document.
References to these documents should always lead to the current version of the standard. If necessary, you can refer to the general GS1 DL Standard page.
Creating a GS1 Digital Link and a suitable carrier
The GS1 DL URI carrier can be any data carrier into which a web URL can be written. Examples of such carriers include QR code, DataMatrix, Code-128, RFID and NFC tags, and others.
The recommended carrier is a QR code. Its advantages include the fact that it is already well known and used to encode URLs and has good support for reading by mobile devices.
Some products already contain a QR code together with an EAN code. In these cases, the EAN is used to identify the product at checkout and the QR may contain a URL with information for the customer. In these cases, GS1 Digital Link is used to unify barcodes with different roles on the product. A single barcode in GS1 DL format has a product identifier for the checkout and also leads to a URL with information for the customer.
Similarly to other barcodes that allow encoding an alphanumeric string, the same applies to the QR code that the more information we want to encode into it, the larger it will be, i.e. it will contain more data rows and columns. This property can be controlled at the cost of reducing the space available for error correction. The QR code standard specifies 4 levels of QR code defining the approximate % of content reserved for error correction:
- Level L (Low): 7%
- Level M (Medium): 15%
- Level Q (Quartile): 25%
- Level H (High): 30%
Simply put, these levels tell you how much of the QR code can be corrupted in order for the QR code to still be readable. That is, at level L, 7% of the QR code can be torn off or smudged and it will still be readable. At level H, theoretically almost a full third of the QR code can be torn off and still be readable.
You can use any tool of your choice that allows you to generate QR codes to generate a QR code. This is a regular QR code with a text string, not a variant (e.g. GS1 QR). You can also try our Barcode generator tool. Simply select QR code in the barcode type selection, enter your data (e.g. URL address) in the text string field and select Generate selected barcode. The resulting barcode will be in .png and .svg formats. Our generator generates QR codes with a preset error correction level of 'M'.
The GS1 DL standard does not specify a mandatory QR code level for error correction.
Comparison of QR code dimension at different levels of error correction:
Data: HTTPS://ID.GS1SK.ORG/01/08580000000030
Level: L
Level: M
Level: Q
Level: H
Data: HTTPS://ID.GS1SK.ORG/01/08580000000030/10/Lot12?15=260101
Level: L
Level: M
Level: Q
Level: H
Implementation options
The GS1 DL standard has no specified implementation options. In our opinion, the listed options are the two basic ways in which the GS1 DL standard can be used. A QR code with GS1 DL can include:
- Product identifier only.
- Product identifier and other attributes.
If you are preprinting labels or packaging and want to take advantage of the GS1 DL standard, the option of using a product identifier without additional data is suitable for you. Basically, this is a 1:1 replacement with an EAN code, where you replace only the carrier and the information remains the same. For example, if you are using EAN-13 with the identifier '8580000000009' and your website is https://priklad.sk, you can put the string https://priklad.sk/01/08580000000009 in the QR code. The information will not change, the string '8580000000009' is identical to the string '08580000000009' in the QR code. The data is not variable, so the labels can still be preprinted. The character '0' is added at the beginning due to GS1 Application Identifier rules for the product identifier (GTIN 01), which must be 14 characters when used in GS1 strings. This is therefore a 1:1 replacement where the old static code is replaced with a new static code. The benefit of this change is that customers can now read the QR code thus created and get to your website where you can further interact with them. In case you had both EAN and QR code on the product, this way you can merge them into one code and use the saved space differently.
The second option is to store variable data such as batch, weight or expiry date in the QR GS1 DL code. In this case, the barcode cannot be pre-printed, but must be created on the spot, for example after the product has been weighed and the expiry date entered. The disadvantage is therefore the greater difficulty of implementation in production. The advantage is the availability of product information that can be used in the management of your own warehouse (e.g. using the FEFO First Expired First Out method) where you have an accurate overview of the stock, you also have a greater overview of the distribution of the product (e.g. via batch). This information can then be shared on the website with customers, who can then access data such as where the product was manufactured and also be alerted if a product they have scanned has an expired expiry date or a recalled batch. This information can also be processed by the checkout system, which can prevent the sale of expired products, products with a recalled batch, or can automatically apply a discount to a product that is about to expire in a few days.
Selected rules for GS1 DL strings
In the following sections, we have selected some of the rules for GS1 Digital Link that we consider important for understanding the standard.
All rules are described in detail in the GS1 DL standard documents.
Allowed GS1 AIs and their combinations
Only selected GS1 Application Identifiers can be stored in the GS1 DL string. The GS1 Digital Link Standard: URI Syntax document contains lists of allowed GS1 AIs divided into 3 categories for GS1 DL:
- Primary identification keys - Primary identification keys in terms of GS1 DL. Part of the URL path.
- Key qualifiers - Primary key qualifiers. Part of the URL path.
- Data attributes - Part of URL query parameters.
The standard also includes allowed combinations of identifiers. This means that each primary key has specified qualifiers with which it can be used. Data attributes are governed by the combination rules for GS1 AI, and the GS1 DL standard extends these rules, for example, it allows two primary keys to be listed in a single string by listing one as the primary key and the other as a data attribute.
For example, the primary identifier (01) GTIN (Product Identifier) is only allowed 3 key qualifiers: (22) CPV (Consumer Product Variant), (10) Batch/Lot, and (21) Serial Number.
It depends on the order of the URL path elements
The identifiers that are part of the URL path (primary keys and qualifiers) have a fixed order that must be followed for the resulting code to be valid.
Základným pravidlom je, že najskôr sa uvedie primárny identifikátor a až za ním jeho kvalifikátory.
The GTIN primary key qualifiers (01) have the following order:
- (22) CPV
- (10) Batch/Lot
- (21) Serial Number
It is not necessary to use all qualifiers when building a GS1 DL string. The order is valid even if some of the qualifiers are omitted.
It is also possible to add URL path elements before the first primary identification key, e.g. /folder/id/01/08580000000009. That is, if you have a resolver separated by a URL path, e.g. in a subfolder, it is still a valid GS1 DL string. It is important to follow the rule that once you specify the first primary identification key, only allowed GS1 elements are allowed to follow it. Any other elements in the URL path may cause the GS1 DL QR to be invalid and unreadable on POS scanners.
Examples of valid strings:
- 01/08580000000009/22/Var01/10/Lot858/21/125
- 01/08580000000009/22/Var01/21/125
- 01/08580000000009/10/Lot858/21/125
- subfolder/resolver/01/08580000000009/10/Lot858
- path/sub/id/01/08580000000009/21/125
The order of the elements in the URL query string does not matter
Data attributes have no set order and can be sorted as needed.
All the listed combinations are correct:
- 01/08580000000009/10/Lot858?11=240502&15=280502
- 01/08580000000009/10/Lot858?15=280502&11=240502
- 01/08580000000061/10/Ham01?3103=000354&15=280502&11=240502
- 01/08580000000061/10/Ham01?11=240502&3103=000354&15=280502