GS1 Digital Link builder
Enter a domain and GTIN to get a canonical GS1 Digital Link URI and a live QR code, built entirely in your browser.
Compressed output is switched off for now. For retail packaging, print the uncompressed form this tool produces โ see the print-size guide for the retail-POS guidance. Our resolver reads both forms either way.
Still need a plain 1D barcode for today's packaging alongside this QR? Try the EAN-13 & UPC-A barcode generator.
Download SVGAbout GS1 Digital Link URIs
A GS1 Digital Link is a standard way of encoding GS1 identification keys โ most commonly a GTIN โ as a web URI, so the same barcode a point-of-sale scanner reads for checkout can also be scanned by a shopper's phone and opened as a normal web link. The canonical path always starts with the primary identifier, /01/{gtin14}, zero-padded to 14 digits regardless of whether the product was originally allocated a GTIN-8, UPC-A, EAN-13 or GTIN-14. Optional qualifiers follow in a fixed order defined by the standard โ /22/ for CPV (consumer product variant), then /10/ for lot or batch number, then /21/ for serial number โ because qualifiers narrow the identity of what's being pointed at, and a resolver needs a single unambiguous order to match against.
Data attributes that describe the product rather than identify it โ like expiry date, AI 17, encoded as YYMMDD โ are not part of the path at all. They're appended as query string parameters (?17=271231), because they don't change which real-world thing the link points to, just what's known about it at scan time.
The QR code this tool renders uses error correction level M and a 4-module quiet zone. The quiet zone is GS1's requirement โ the General Specifications call for 4X on all four sides, and it is the clear border a scanner needs to detect the code's edges against surrounding print. The error correction level is our choice, not GS1's: the standard sets an X-dimension and a minimum print-quality grade for codes scanned at retail, but does not specify a level. EC-M gives roughly 15% damage tolerance, a reasonable middle ground for codes printed small on packaging and handled a lot. Both are baked directly into the SVG's viewBox here, not added separately downstream.
Crucially, a point-of-sale scanner never contacts a server to read this code. It parses the URI's path and query string directly, by syntax, to extract the AIs it needs (GTIN, batch, expiry) โ the same way it would read a legacy GS1-128 barcode. The web-resolvable part only matters when a browser or phone camera opens the link; checkout lanes work entirely offline.
A compressed URI re-encodes the same GS1 data using the Digital Link standard's compression scheme (ยง8): the AIs and their values are packed into a short base64url string, so the resulting URI is shorter. Any conformant resolver โ including ours โ reads both forms identically; see our conformance page for exactly what we support. This tool currently produces only the uncompressed form.
Need a Digital Link you can point somewhere new after the code is already printed, plus scan analytics? A static URI like the one above can't be edited after printing โ 2dready.com/register gives you a redirect you control instead.