The New GS1 Digital Link Standard

There is competition in the 2D barcode world between Data Matrix, QR Code and PDF417.  Which do you like?  Why?  Before you choose, do you know the features and benefits of each so you can make an intelligent choice?  Now that I’ve asked all those questions, I need to take a step back. For meeting the U.S. Drug Supply Chain Security Act (DSCSA), Congress already made the choice for you.  It’s the same in the E.U., the European Commission made the same choice.  They both picked Data Matrix.  You can’t use QR Code or PDF417 or any other kind of barcode or RFID on prescription drug packages in those markets, or you won’t be compliant and your trading partners won’t want to do business with you.  Does that bother you?  It shouldn’t.  The problem is, some countries around the world are flirting with mandating QR-Codes for drugs rather than Data Matrix. 

Let’s take a look at these three types of barcodes, and in the process, we’ll take a closer look at GS1’s new Digital Link Standard.


Each example barcode shown contains the identical data.

I’m not going to say much about PDF417 because I’m not aware of anyone proposing its use for drugs, but it is a 2D barcode symbology (technically, it’s a stacked linear barcode) that, theoretically could compete in this market.  You’ll find it being used by some airlines on boarding passes, and it’s on the back of most driver’s license.  It is not very space efficient and it takes longer to read than the other two symbologies.  It appears that it’s big benefit was that it was readable with some linear barcode readers by panning the beam down the code.  I’ve never seen that done but, if true, then that would make it a transitional symbology, allowing lower cost, older scanners to read more data than can be practically fit into a linear barcode.  I suspect most PDF417 barcodes are now being read using 2D barcode readers (camera-based), which would make them perform almost as well as the other 2D symbologies.


Each example barcode shown contains the identical data.

QR-Codes can hold raw data, but the most common application of the QR Code (Quick Response Code) symbology today is to hold a Uniform Resource Identifier (URI), often in the form of a Uniform Resource Locator (URL)—a web address.  This allows the publisher to send the user’s browser to a specific website, or take some other action.  To enable that particular use, Apple iPhone cameras apparently recognize QR Codes natively and send the encoded data to its browser (that’s what I’m told anyway).  I don’t have any direct experience with iPhones because I live in the alternate universe (I’ve only owned Android phones, although I just tried it and it appears that the native camera app on my Google Pixel 2 does interpret the URI encoded within a QR Code, giving me the option to send it to my browser or not). 

This is a particularly powerful use of barcodes, because URIs are often long and can be filled with incomprehensible character stings.  Scanning the barcode with a mobile phone camera and allowing the content to be sent to the browser eliminates the need to type all those characters exactly.  In fact, maybe this is too powerful.  Never scan a QR Code with your phone unless you trust the source.  I’ve heard urban legends of nefarious URLs encoded in QR Codes that force your browser to install malware.  Again, no personal experience with that, but it’s obvious how easy it could be done.

I’ve heard the claim that the QR Code symbology was designed to be easily readable by a smartphone, but it was apparently invented in 1994 so I don’t think that’s the case.  More than likely, the symbology was discovered to be easily decodable with a smartphone, after-the-fact, but the same would be true of every 2D symbology.  Smartphones contain more powerful features than many 2D barcode readers.

GS1 QR Code barcodes can encode any of the Application Identifiers (AIs) defined in the GS1 General Specifications.


Each example barcode shown contains the identical data.

Data Matrix barcodes have traditionally been used to hold product or item identification data.  Like the GS1 QR Code symbology, GS1 DataMatrix barcodes can encode any of the AIs defined in the GS1 General Specifications.  The GS1 DataMatrix symbology was a GS1 standard before the GS1 QR Code symbology became one.  Because of the similarities in the encoding capabilities between these symbologies, you could argue that there is no technical benefit of one over the other for product identification use cases.  However, because the vast majority of drugs produced in the world must be marked with a Data Matrix, and because there is no advantage to switching, it makes more sense for emerging markets to also align around the Data Matrix rather than the QR Code.  That way multi-national companies only need to deal with one symbology.


More recently, however, companies would like to add URLs to their products so consumers and medical professionals can get more information about the product than can fit on the label.  There is also an effort around the world to move away from printed leaflets, replacing them with URLs encoded within a barcode.  Some countries have toyed with mandating a Data Matrix barcode for drug product identification and track & trace, and a QR Code with the URL to the leaflet information.  The problem is, that would lead to two different barcodes that look similar on each package.  This would lead to confusion over which barcode to scan for a given application:  track & trace, or to find the leaflet information.  For some products, the manufacturer might also want to include a third barcode with a URL for marketing information or for consumer engagement programs. 

How many barcodes should be on drug packages?  Clearly, for any drug that might be needed in an emergency, the answer is ‘one’.  If you could encode one or more URLs in a GS1 DataMatrix, that would be great, right?  In fact, GS1 added AI (8200), Extended Packaging URL, at some point in the last 10 years, but the contents of the URL is independent of the other elements encoded in the barcode, which makes it impossible to standardize.  Not only that, but the standard GS1 element string approach to encoding data only works in barcodes.  That is, the logic for decoding GS1 element strings is only built into barcode readers and specific applications.  That doesn’t easily lend itself to internet messaging use cases.


I believe these are the reasons GS1 created the new GS1 Digital Link standard.  It allows all (most?) GS1 data identifiers and data types to be encoded into something new called a GS1 Web URI—one that would be recognized as a fully formed URI by any browser and which would act on it, just like any other URI.  This is a fairly radical departure from encoding data for barcodes using AIs.  Here is an example taken from the new GS1 standard specification:

Traditional GS1 barcode encoding (known as GS1 element strings, or Application Identifier strings):


Equivalent GS1 Web URI encodings:


The hostname “” used in these examples are stand-ins for the product owner’s hostname, but apparently GS1 intends to allow companies to use this value for certain use cases.  The hostname field is referred to as an application “resolver” for the Web URI.  That is, the host that would know the significance of the rest of the contents of the Web URI.  The ‘’ default resolver would make use of GS1’s Global Company Prefix (GCP) database to determine the host to redirect the request to, based on the GTIN (or any other GS1 GCP-based identifier encoded in the URI).  The GS1 Web URI could be used as a URL in a browser, but it is also usable in other applications as a standardized identifier in its own right, representing the specific given product identified, just like the traditional encoding.  In that case, the hostname should be the product owner’s (manufacturer’s, in most cases) domain.

The first usage of the standard that I’m aware of is GS1’s new Lightweight Messaging Standard for Verification of Product Identifiers where the Web URI syntax will be used as the basis of the formatted verification requests submitted to Verification Router Services (VRSs) (see “GS1’s Messaging Standard For Verification Of Product Identifiers”).  The GS1 Web URI would be constructed with the data elements found in the standard DSCSA GS1 DataMatrix barcode read on items and/or homogeneous cases, plus several context setting parameters and then the final URI would become the subject of a simple HTTP/HTTPS GET.  In this application, the VRS response would be made in JavaScript Object Notation (JSON) syntax.


The VRS use of GS1 Web URI is an internet messaging use case.  But the question arises, can Web URIs be encoded into GS1 barcodesCareful!  Perhaps surprisingly, the answer is ‘No’, but there is a subtlety here.  ‘GS1 barcodes’ are barcodes that are encoded with GS1 element strings…only.  There will never be a ‘Web URI Application Identifier’ for setting off a Web URI within a GS1 Barcode (and don’t try to use AI (8200).  That wouldn’t make any sense.  But—pay attention please—the answer to the question, can Web URIs be encoded into barcodes, is ‘Yes’.  And we will likely see this approach increase rapidly over the next few years—particularly for consumer products—due to consumer engagement applications. 

To encode a GS1 Web URI into a Data Matrix barcode, you simply construct the GS1 Web URI string and encode it into the raw, generic symbology by itself.  That doesn’t result in a “GS1 Barcode”.  No GS1 start character, no FNC1 characters…it’s NOT a “GS1 DataMatrix”, it’s just a generic Data Matrix barcode with a GS1 Web URI string encoded.  The same can be done with a QR Code.  Use the generic QR Code symbology, not the “GS1 QR Code” symbology.  Confused?  The table 4-1 from the GS1 Web URI standard specification is very instructive for keeping these concepts straight:

Click on image to enlarge.

Notice that only the first row represents a “GS1 Barcode”.  The next two rows are just “barcodes” that contain a GS1 Web URI string of one type or another.  The last row is just a barcode containing a URI with no GS1 characteristics at all.

Going forward, scanning applications that expect to read GS1 Barcodes will need to be modified to look for, and properly decode barcodes that contain GS1 Web URI syntax.  Don’t wait until your application comes across one arriving on your receiving dock.  I recommend that you implement the conversion routines NOW.  I’m talking to you, wholesale distributors, 3PLs, pharmacies and software vendors who support those companies.  GS1 Web URI is here.  Figure it out now.  I predict that someday soon we will all prefer barcodes that contain GS1 Web URIs, and we will look back on GS1 Barcodes containing GS1 element strings as being archaic…less “standard”.  How long will that take?  Probably less time than you might think.