GS1 Digital Link Generator

Build a standards-compliant GS1 Digital Link URI from a GTIN plus optional batch/lot, expiry, and serial attributes — the format behind 2027 Sunrise QR codes.

Runs entirely in your browser — nothing is uploaded.

8, 12, 13, or 14 digits — GTIN-8, UPC-A, EAN-13, or GTIN-14.

Encoded with 3 implied decimal places, per the AI's fixed format.

Defaults to GS1's own resolver. Brands running their own GS1 Digital Link resolver (so scans can route to their own product page, provenance data, or recall notices) use their own domain here instead — the URI structure after the domain is identical either way.

Higher levels tolerate more print damage before a scan fails, but need more modules for the same data — which makes the printed code larger at a given module size.

The width of one module (the smallest square) in the printed code.

Try an example:

What GS1 Sunrise 2027 actually requires

By 31 December 2027, GS1's "Sunrise 2027" initiative requires that retail point-of-sale systems be able to read a GTIN encoded in a 2D barcode — either a QR Code carrying a GS1 Digital Link URI, or a GS1 DataMatrix — alongside the traditional 1D barcode most products already carry. This isn't a replacement for your existing EAN/UPC barcode; it's an addition. Retailers are upgrading scanning infrastructure to read both, and the 2D code unlocks things a 1D barcode physically cannot: batch/lot and expiry data at the point of sale (useful for recalls and freshness), and — because a GS1 Digital Link URI is a real, resolvable web address — a scan can open a product page, sourcing/provenance information, or a recall notice, depending on what the resolver behind that URL serves.

Plain QR vs. GS1 Digital Link QR vs. GS1 DataMatrix

A plain QR code with a URL typed into it is just a link — nothing about its structure is standardized, so no retail scanner or GS1 resolver can reliably extract a GTIN, batch, or expiry from it. A GS1 Digital Link QR code carries a URI built to GS1's exact structural rules: the GTIN in the path as the primary key, key qualifiers (CPV, batch/lot, serial) as path segments in a fixed order, and everything else as query parameters — encoded with the same GS1 FNC1 rules that make GS1-128 and GS1 DataMatrix barcodes machine-readable across any GS1-compliant scanner, not just a phone's camera app.GS1 DataMatrix is a different symbology (denser per unit area, historically favored for small items like medical devices and cosmetics) that can carry the same structured data — this tool generates both from one set of inputs, since the underlying data doesn't change, only how it's optically encoded.

Why the GTIN must be padded to 14 digits

Most people know their product's barcode number in its "native" length — 12 digits for a UPC-A, 13 for an EAN-13. GS1 Digital Link's path always carries a 14-digit GTIN regardless, left-padded with zeros. This isn't a stylistic choice: GTIN-14 is GS1's canonical internal representation precisely because it's long enough to represent every shorter GTIN format without ambiguity, so every system consuming a Digital Link URI can assume one fixed length rather than branching on which "kind" of GTIN it received. Getting this padding wrong — or omitting it — is the single most common mistake in a hand-built Digital Link URI, and it silently breaks resolution rather than producing an obvious error.

Why qualifier order matters

GS1 Digital Link defines exactly one valid order for path qualifiers when more than one is present: CPV (AI 22), then batch/lot (AI 10), then serial number (AI 21). Two systems building a URI from identical underlying data must produce byte-identical URLs for caching, deduplication, and resolver routing to work correctly — if order were left to each implementation's preference, the same physical product could resolve to what looks like two different URLs depending on which system built it. This tool enforces the fixed order regardless of the order you filled the fields in.

Testing with a real scanner before you commit to packaging

A code that looks correct on screen can still fail in the field for reasons that have nothing to do with the underlying data: printed too small for the scanner's optics, too little quiet zone around it, low contrast between the code and its background, or a resolver domain that isn't actually live yet. Before committing to a packaging print run, generate the PDF test sheet below (the same code at several module sizes on one page), print it on the actual stock and printer you intend to use, and scan every size with the actual scanner hardware your retail partner uses — a phone camera app is meaningfully more forgiving than dedicated point-of-sale scanning hardware, and "works on my phone" is not the same claim as "works at the register."

What to hand your packaging supplier

Give your packaging supplier the vector (SVG) output, not the PNG — a raster image scaled up by a print shop's imposition software will blur, and a 2D code with soft edges is exactly what causes intermittent, hard-to-diagnose scan failures after print. Specify the module size in millimeters (not a DPI or pixel count, which depend on how the file gets rasterized downstream) and confirm the minimum module size this tool warns about is respected at the final print size — printers routinely scale artwork to fit a layout, and a 2D code is one of the few page elements where that scaling has a hard physical floor.

Common failure modes

In rough order of how often they actually show up: the GTIN padded incorrectly or copied with a typo (always verify the check digit); a module size below the reliable-scan threshold once the artwork is actually printed (not just viewed on screen); a resolver domain that returns an error or isn't live yet at launch (test the actual URL, not just the barcode); and qualifier data with characters that need percent-encoding (batch/lot codes with spaces or slashes are the most common case) handled inconsistently between systems. This tool handles the encoding correctly by construction; the print-quality and resolver-liveness checks are still yours to do before a packaging run ships.

Primary sources: GS1 Digital Link URI Syntax standardand GS1 US Sunrise 2027.

Frequently asked questions

Does the GTIN need to be exactly 14 digits?

No — enter it in its native length (GTIN-8, GTIN-12/UPC-A, GTIN-13/EAN-13, or GTIN-14) and this tool zero-pads it to 14 digits for the Digital Link path, which is what the standard requires regardless of the GTIN's native length.

Why does qualifier order matter?

GS1 Digital Link defines one fixed path-qualifier order — CPV (22), then batch/lot (10), then serial (21) — so that two systems building the same URI from the same data always produce byte-identical URLs. This tool enforces that order regardless of the order you fill in the fields.

What does "DD=00" mean for the expiry date?

GS1 date AIs are 6 digits (YYMMDD). When a product's shelf life is tracked to the month rather than an exact day, GS1 permits DD=00 to mean "end of the stated month" — this tool has a checkbox for that instead of asking you to guess a day.

Is this the same as a plain QR code with a URL in it?

No. A GS1 Digital Link QR code carries a URI in a specific, standardized structure (GTIN in the path, qualifiers in a fixed order, other attributes as query parameters) with correct GS1 FNC1 encoding, so that any GS1-aware resolver or retail scanner can parse it reliably — not just open it as a web link.

Get the Sunrise 2027 implementation checklist

Occasional emails when we ship something new. Unsubscribe anytime.

Need this inside your own system?

This is the kind of integration work we do — wired into your ERP, MES, or line equipment, not a one-off tool.

See our services →