GS1 Digital Link QR Code Generator
Turn your GTIN into the 2D barcode retail is moving to: one QR code that a checkout scanner reads as your product number and a shopper's phone opens as a web page. Build a free static code, or host it on QRKIT and keep changing where the scan lands long after the packaging is printed.
Pattern
Eyes






Three steps
How to Create a GS1 Digital Link QR Code
Choose Static or Hosted
Static: you name a domain you already run, and answering at that address is your job. Hosted: QRKIT answers for you, on qrkit.to or on your own id.yourbrand.com. Either way the identifiers sit in the printed path.
Add Batch, Serial, or Expiry
Optional fields for traceability: batch/lot (AI 10), serial (AI 21), variant (AI 22), and expiry (AI 17). Each is checked against the GS1 character-set and date rules, then placed in the canonical order for you.
Download It Print-Ready
Download a PNG with a free account; SVG and PDF come with any paid plan. The QR encodes your GS1 address directly, so what you print is exactly what scanners read — and hosted codes add a print panel that sizes the symbol in millimetres.
The basics
What Is a GS1 Digital Link QR Code?
GS1 Digital Link is a GS1 standard that packs your product identifiers into an ordinary web address. Instead of a bare barcode number, you get a URL like:
https://id.yourbrand.com/01/09506000134352/10/ABC123?17=270601
The numbered segments are GS1 Application Identifiers: 01 is the GTIN, 10 the batch, 17 the expiry date. Put that URL in a QR code and one symbol serves two audiences at once: a 2D-capable point-of-sale scanner parses the GTIN straight out of the URL path — offline, without visiting any website — while a shopper's phone camera opens the link like any other QR code.
That double duty is why GS1 calls it “one barcode that does it all” — and why it's the format behind the industry's move from 1D barcodes to 2D at checkout.
Why now
Sunrise 2027: Retail Is Switching to 2D Barcodes
GS1's Sunrise 2027 initiative asks retailers worldwide to be able to scan 2D barcodes — QR codes carrying GS1 Digital Link — at the point of sale by the end of 2027. For brands, that changes what a barcode can do:
Sell through checkout
The same QR code rings up at a 2D-ready register, because the GTIN travels inside the URL path.
Talk to shoppers
A phone scan lands on your page: instructions, ingredients, registration, support — you decide, per product.
Trace every batch
Batch, serial, and expiry ride along in the symbol, powering recalls, freshness checks, and item-level traceability.
Own the destination
The link lives on your domain. What the page shows can evolve; the printed identifier never has to change.
During the transition most brands print the Digital Link QR alongside the existing UPC/EAN — scanners that aren't 2D-ready yet keep working, and the ones that are get the richer code.
Application Identifiers
What You Can Encode
GTIN (AI 01)
Your product's Global Trade Item Number — the number under the barcode. Required, padded to 14 digits, and the check digit is validated before anything is generated.
Batch / lot (AI 10)
Optional. Add the batch or lot number when the code goes on packaging that's produced in runs — recalls and traceability depend on it.
Serial number (AI 21)
Optional. Serialize each unit for item-level traceability — the foundation for authenticity checks and, in the EU, Digital Product Passports.
Expiry date (AI 17)
Optional, in YYMMDD form. Carried as a query parameter per the GS1 syntax, so 2D-capable checkouts can block the sale of expired goods.
Know your barcodes
Digital Link QR vs. GS1-128 vs. a Regular QR Code
GS1-128 is the familiar 1D barcode with element strings; a regular QR code carries a link but no structured product data. GS1 Digital Link in a QR code does both jobs. (GS1 DataMatrix, common in pharma, also carries element strings — this page generates the QR form of Digital Link, while our Data Matrix generator produces GS1 DataMatrix. Neither produces GS1-128.)
| Digital Link QR | GS1-128 (1D) | Regular QR | |
|---|---|---|---|
| Carries a web link a phone can open | — | ||
| GTIN readable by retail POS scanners | — | ||
| Batch, serial & expiry in one symbol | — | ||
| Fits GS1's Sunrise 2027 2D transition | — | — |
Need a plain 1D retail barcode instead? Use our free barcode generator.
Two Ways to Publish One, and Why It Matters
A checkout scanner does not follow links. It reads the GTIN out of the address printed in the code, offline. So the one thing a GS1 Digital Link can never be is an ordinary “dynamic” QR code — a short redirect URL in the symbol removes the GTIN entirely. It would still open on a phone, but at a till it is just another web link. Some generators will sell you that anyway; it is not a conformant Digital Link.
What the standard does allow is a resolver: something that answers at the identifier path itself. So there are two honest ways to publish a Digital Link, and QRKIT does both.
Static — free, and you host it
The QR encodes your own address and QRKIT's job ends there. Free on every plan, no scan cap, no expiry, and it keeps scanning whatever happens to your QRKIT account. The catch is the other half of the job: your server has to answer at the /01/ path and send the visitor somewhere useful, and the address is a one-way decision once artwork goes to press.
Hosted — QRKIT answers, you keep editing
QRKIT resolves the identifier path for you, on qrkit.to or on your own id.yourbrand.com. The GTIN stays in the printed path exactly as the standard requires, and the destination behind it stays editable forever. Needs a paid account from Starter up; your own domain from Plus up.
The identifiers themselves are fixed either way. Once a GTIN is printed it cannot be edited, and a deleted one stays reserved so nobody else can register an address your boxes still point at.
One symbol, several answers
Link Types: Different Scanners, Different Destinations
A printed identifier can publish more than one destination. Each is labelled with a link type from the GS1 web vocabulary, and the resolver hands out the one the scanner asked for. A shopper's camera gets your default page; a pharmacy system asking for the patient leaflet gets the leaflet; a retailer's app asking for ingredients gets ingredients. QRKIT offers 60 link types from the GS1 vocabulary (GS1_LINK_TYPES in lib/gs1-parse.ts).
gs1:pip
Product information
The default for a shopper scan — the page you would have linked to anyway.
gs1:instructions
Instructions for use
How to assemble, install, dose or operate it. Frequently the reason the code is on the pack at all.
gs1:allergenInfo
Allergen information
A structured answer for the question a regulator or a retailer's app asks, separate from your marketing page.
gs1:recallStatus
Recall status
Registered automatically when you recall a lot, so systems can check a batch without parsing a notice page.
Software that wants the whole picture can ask for a linkset instead of a redirect and gets every registered link as a JSON document (RFC 9264). You can download that same document for one code or for your whole workspace — it is what you would take with you to another resolver.
After it is printed
Recall One Lot Without Reprinting Anything
Per-lot and per-serial overrides
A batch or serial is not a separate code — it is an override inside the product's record. Point /10/ABC123 at a notice and only that production run moves. Everything else keeps resolving as before, and the whole line still counts as one code.
A recall in two fields
Give the lot and a notice URL and every unit from that run redirects to it. QRKIT also registers a recallStatus link, so software asking the resolver a structured question gets a structured answer instead of having to read your notice page.
Codes never go dark
Packaging outlives subscriptions. GS1 codes are excluded from the downgrade rules that pause ordinary dynamic codes: on downgrade or cancellation they keep resolving to their last saved destination, frozen. And a scan never shows a QRKIT page — no branded interstitial, no free-plan scan cap, on any plan.
Scans record the lot, the serial and the requested link type, so analytics break down by production run as well as by time and place. Frozen codes keep counting scans, but stop reporting the detail until you upgrade again.
Pre-press
Sized for a Till, Not for a Screen
A code read by a fixed imager at a checkout has physical requirements a marketing QR code gets away with ignoring. Hosted codes get a print panel that computes them from the actual symbol instead of a rule of thumb:
- X-dimension 0.396–0.990 mm, target 0.495 mm. Pick the module width and the panel gives you the overall size that follows from your symbol's module count — and warns you outside the range.
- A four-module quiet zone, enforced. Derived from the module count rather than left at a fixed pixel margin, which is what a short Digital Link URI actually needs.
- Error correction M, Q or H. Your choice, Q by default. L is not offered — packaging gets scuffed, folded and frozen.
- No logo, no inversion, no weak contrast. A logo covers modules a till has to read, so it is disabled on GS1 codes; light-on-dark and low-contrast colour pairs are flagged before export.
- Export at an exact millimetre width. The SVG carries real mm units, so it lands in your layout at the size the print brief specifies. PDF export is unchanged and is not sized in millimetres — take the SVG for artwork.
- Companion symbols from the same record. Dual marking is normal during the transition, so the panel also renders the GS1 DataMatrix of the same data, plus the EAN-13 or UPC-A of the same GTIN where the GTIN allows it — EAN-13 needs a consumer-unit GTIN and UPC-A a US or Canadian one, so a case-level or non-US number has no linear form and the panel says so instead of truncating one into existence.
None of this is a print grade. ISO/IEC 15415 grades a physical printed symbol with calibrated hardware and is a service performed on your actual packaging — QRKIT does not do it and does not claim to. These are design-time guard rails. Still scan a real proof, on the real substrate, at the real size.
Put It on Your Own Domain
GS1's own guidance is to publish Digital Links on a host the brand controls rather than a vendor's. Add one CNAME record pointing id.yourbrand.com at cname.qrkit.to, and QRKIT answers there under your name, with TLS issued automatically. Your DNS hosting, website and email are untouched.
The resolver is GS1 Digital Link compatible — it serves a linkset, honours link-type requests, answers cross-origin calls, supports HEAD and OPTIONS, decompresses compressed Digital Link URIs, and publishes a /.well-known/gs1resolver description naming your domain as the resolver root.
How the resolver works, step by step — setup, link types, lot overrides, and what happens to your codes if you downgrade.
Before and After You Generate
Check a link you already have
Inherited a Digital Link from a supplier, or want to confirm what's already on your packaging? The GS1 Digital Link validator decodes every identifier, recomputes the check digit, and flags anything that would fail at a checkout.
Generate one per SKU
A catalogue doesn't belong in a one-at-a-time form. The bulk generator takes a CSV with a row per product — domain, GTIN, batch, serial, expiry — validates every row, and returns all the codes in one download.
