Digital Link

The GS1 Digital Link resolver: what it is, how it works, and how to set one up

Updated

Mia

By Mia

Writer specializing in GS1 standards and EU product-labeling regulation.

A product pouch with a QR code at the centre, flanked by a checkout scanner icon counting sales and a phone icon counting scans

TL;DR

  • A GS1 Digital Link resolver is the web service behind the domain in a GS1 Digital Link. It reads the identifiers in a scanned address and sends the reader to the right destination: a product page, a recall notice, a manual, or machine-readable data.
  • It answers three kinds of request: a plain scan goes to the default link, a request for a specific link type goes to that link, and a request for the linkset returns every link it holds for the product.
  • Resolvers can be run by brands, GS1 Member Organizations, retailers or solution providers. Because each one is independent and follows the same GS1 standard, any conformant app can use any resolver.

A GS1 Digital Link resolver is a web server that connects a GS1 identifier, such as a product's GTIN, to the information about it online. When a phone scans a GS1 Digital Link QR code, the request goes to the resolver at the code's domain. The resolver checks the address, finds the links stored for that product, batch or item, and redirects to the one that fits the request. That is what lets a single code serve shoppers, business partners and systems, each with something different.

The resolver at a glance

What it isA web server that resolves GS1 identifiers to online resources
InputA GS1 Digital Link URI: domain, primary key, qualifiers and attributes
OutputA redirect to a destination, a list of links, or an error explaining why there is none
Who runs itBrands, GS1 Member Organizations, retailers or solution providers
StandardGS1's specification for conformant resolvers, alongside the GS1 Digital Link URI syntax
ProtocolHTTPS, answering GET, HEAD and OPTIONS requests, with CORS so web apps can query it

The three ways to query a resolver

RequestWhat the resolver doesTypical reader
A plain scan of the addressRedirects to the default link, usually the product pageA shopper's phone
The address with a linkType parameter, such as ?linkType=gs1:recallStatusRedirects to the link of that type, if it has oneAn app or a business partner looking for something specific
The address with linkType=linksetReturns the full list of links it holds for that identifier, in a machine-readable formatSystems and apps that want to discover everything available

Links can also be chosen by language and by context. A shopper in France can be sent to the French page and a shopper in Germany to the German one, from the same code.

What a resolver does with each request

  1. Decompress. If the code carries the compressed form the standard allows for small symbols, the resolver expands it.
  2. Validate. It checks the syntax: a valid GS1 primary key, key qualifiers in the right order, and valid data attributes.
  3. Look up. It finds the links stored for that identifier, at the most specific level it has: item, batch or product.
  4. Choose. It picks the link that matches the request: the default link, the requested link type, or the linkset.
  5. Respond. It returns a redirect, the list of links, or an error with an explanation.
AttributeRequiredExample
Target URLYesThe address of a page about that product, not a homepage or search results
Link typeYesA product information page, gs1:pip
TitleYes"Product information", shown when an app lists the options
Human languageNoen, fr, de
Media typeNotext/html for a page, application/json for data
ContextNoA territory or a use, for routing by market

A target can carry more than one link type when one page serves several roles, for example a product page that also shows allergen information.

How a resolver answers

SituationResponse
A matching link existsA redirect to it (307 Temporary Redirect), with the linkset exposed in the HTTP Link header
The resolver has no information, but another resolver mayA redirect to the alternative resolver (307)
The resolver has no information404 Not Found
The resolver knows why it can't serve the identifier303 See Other, pointing to an explanation
The address is malformedAn error response that says what is wrong

Query string values in the original address, such as the expiry date, are passed on unchanged when the resolver redirects. Each extra redirect adds time for the person scanning, so chains of resolvers should stay short.

  1. Choose the domain. A subdomain of your own, such as id.yourbrand.com, keeps the codes yours whichever provider runs the resolver, and shows shoppers your brand in the address.
  2. Build it or use a provider. Anyone can build a conformant resolver with enough time and engineering. A provider gives you one ready to use. Either way, check that it follows the GS1 resolver standard, so any conformant app can read your codes.
  3. Load your products and their default links. Add each GTIN with its default destination, and add batch or item-level entries where you need different destinations, for example for a recall.
  4. Add link types, languages and context. Give each link its type and title, add language versions, and route by market where the content differs.
  5. Test every path. Check a plain scan, a request for each link type, the linkset, an unknown GTIN and a malformed address, then monitor the scans after launch. The troubleshooting guide covers what to check when a code doesn't open.

Digital Link, the platform behind this site, runs a GS1 conformant resolver for your codes, on its own domain or on your subdomain through a CNAME record. Each product gets a default destination, with versions by language and country, and variants for batches or items. Every link can be changed at any time without reprinting.

Create your first GS1 Digital Link QR code

Frequently asked questions

The web service behind the domain in a GS1 Digital Link. It reads the identifiers in a scanned address, finds the links stored for that product, batch or item, and redirects to the destination that fits the request.

Brands, GS1 Member Organizations, retailers and solution providers can all run one. Each is independent, and because they follow the same GS1 standard, an app can query any of them.

The category of a destination a resolver can offer for a product, such as the product information page, gs1:pip, or the recall status, gs1:recallStatus. An app asks for a link type to get a specific resource instead of the default page.

What is a linkset?

The full list of links a resolver holds for an identifier, returned in a machine-readable format when an app asks for linkType=linkset. It lets systems discover everything available about a product.

Do I need my own resolver?

You need a conformant resolver behind your codes, but not necessarily one you built. Most brands use a provider, and put the codes on their own subdomain so they stay theirs.

Does a checkout use the resolver?

No. A 2D-ready checkout reads the GTIN, batch and expiry date directly from the code, without the internet. Only phones and apps that open the address reach the resolver.

Be a leader in the transition from barcodes to GS1 QR codes