How do I make a GS1 Digital Link QR code?
To make a GS1 Digital Link QR code, type the GTIN, add a batch or lot, a serial number or a date if the pack has them, and the QR code updates as you type. Download it as PNG or SVG. This free GS1 Digital Link QR code generator puts no watermark on the files and needs no account. What you type is encoded in your browser and is not sent to our servers.
A 25-second video of the steps, without sound. The captions are part of the picture.
- Type or paste the GTIN from the barcode.
- Add a batch or lot if you have one.
- The code updates as you type.
- Download it as PNG or SVG.
- Scan one printed code before you print many.
What is a GS1 Digital Link?
A GS1 Digital Link is a web address (a URI) that carries a product’s GTIN and, if you add them, its batch or lot, serial number and a date, in the order GS1’s standard sets. GS1’s URI syntax standard (2026) says a GTIN-8, GTIN-12 or GTIN-13 is expressed as 14 digits, “with leading zeroes serving as filler digits”. The same standard says a general purpose scanning application, such as a consumer’s mobile device, “can scan a GS1 Digital Link URI and treat it like any other URL”, while GS1’s quick start guide (2024) says a point-of-sale scanner “doesn’t treat the GS1 Digital Link contained in a QR Code on a product as a URL”.
What does a GS1 Digital Link look like?
A GS1 Digital Link looks like this: https://id.gs1.org/01/09506000134352/10/ABC123?17=271231. It is a domain, the 14-digit GTIN after /01/, a batch or lot after /10/ and an expiry date after ?17=. The GTIN in this example is GS1’s demo number, the one the generator above opens with; replace it with your own. The format is the same on any domain, and GS1’s standard says a Digital Link “can be constructed in any domain name” (GS1, 2026).
| Part | Where it goes | In the example |
|---|---|---|
| Domain | At the start: id.gs1.org by default, or your own domain | https://id.gs1.org |
| GTIN | After /01/, written as 14 digits | /01/09506000134352 |
| Batch or lot | After /10/, up to 20 characters | /10/ABC123 |
| Serial number | After /21/, up to 20 characters | not in this example |
| Expiry date | After ?17=, as six digits (YYMMDD) | ?17=271231 |
| Best before date | After ?15=, as six digits (YYMMDD) | not in this example |
Can I make a QR code from my GTIN?
Yes: type a GTIN of 8, 12, 13 or 14 digits, check digit included, and the page makes a QR code from it; spaces typed for reading are ignored. The page writes the GTIN as 14 digits, with zeros in front, as GS1’s standard asks. A wrong check digit is refused and the page says which digit it expected; it never corrects the number for you. It checks the check digit only: it does not check that the GTIN is registered or belongs to you.
Where does a GTIN come from?
A GTIN comes from GS1, which states that it is the only official provider of GS1 GTINs and EAN/UPC barcodes globally (GS1, 2026). This page writes the code for a GTIN you already have. It does not give you a GTIN. The number on the page when it opens is GS1’s example: replace it with yours.
Where do the batch number, serial number and expiry date go?
They go after the GTIN, in GS1’s order: the batch or lot first, then the serial number, both in the path, and the date at the end, after a question mark. Whatever order you fill the fields in, the address follows that order. GS1’s standard puts data attributes such as an expiry date in the query string: they “SHALL be expressed via the URI query string as key=value pairs” (GS1, 2026).
A batch or lot and a serial number take up to 20 characters each: letters A to Z and a to z, digits and the symbols ! " % & ' ( ) * + , - . / : ; < = > ? _ . A space, #, ~, @ or an accented letter is refused and the page names it. Capital and small letters are kept as typed, and symbols such as / and + are written in their encoded form, %2F and %2B, so the address stays in one piece. Leave the serial number empty unless every pack carries its own.
For the date, pick Expiry date or Best before, then the day on the date picker. The page writes it as six digits, YYMMDD, after ?17= for an expiry date or ?15= for a best before date, and accepts years from 2000 to 2099.
Can I use my own domain instead of id.gs1.org?
Yes: under “Use your own domain instead of id.gs1.org” you type your domain, and the address is written on it. GS1’s URI standard says a GS1 Digital Link “can be constructed in any domain name” (GS1, 2026). The code then opens your domain, so your site has to answer that address before you print: this page does not contact your domain to check.
Varnip does not run a resolver and does not host your product page: the code holds the address you see and nothing else. GS1 also says applications “SHALL NOT assume that a URL that follows the syntax defined in this standard will point to a resolver” (GS1, 2026).
Why does my GS1 Digital Link show “Not Found”?
A GS1 Digital Link shows “Not Found” because of the address it holds: in our check on 2026-10-14, GS1’s own example number 09520123456788 answered “Not Found” at id.gs1.org, while GS1’s demo number 09506000134352 sent the visitor to a product page. With your own domain, your site has to answer that address. Bar Code Graphics writes that it sees implementations “with proper GS1 syntax pointing toward static pages with no resolver functionality” (Bar Code Graphics, 2026). To see what your code opens, scan it before you print; to make it open your own site, use your own domain. This page does not contact id.gs1.org or your domain.
Can I make a GS1 Digital Link as a Data Matrix instead of a QR Code?
Yes: pick Data Matrix under Code type and the page writes the same address as a Data Matrix, a square 2D barcode. This GS1 Digital Link Data Matrix generator writes a plain Data Matrix with a blank margin one square wide; its maker loads only when you pick it, and damage protection does not apply to it. GS1 says QR Codes containing a URI “can be read by mobile devices more readily than Data Matrix” and that Data Matrix “may require an app to be read on some devices”, and also that it “may be an ideal choice for product packaging where a QR Code cannot fit” (GS1, 2D barcodes in retail, 2025). To make a Data Matrix from any text or link, not a GTIN, use Varnip’s Data Matrix generator.
Is this the same as a GS1 QR Code?
No: this page makes a standard QR code that holds a GS1 Digital Link address and nothing else, with no short link and no compression. GS1’s General Specifications (2026) say “QR Code is only used by the GS1 system to encode the GS1 Digital Link URI syntax”, and GS1’s URI syntax standard (2026), when it says QR Code, means the widely used QR Code symbology, “excluding the GS1 QR Code”. For retail, GS1’s 2D barcodes in retail guideline (2025) says “GS1 Digital Link URI syntax SHALL use the uncompressed form”. To make a QR code that opens a website, Wi-Fi or contact, use Varnip’s QR code generator.
Can I turn my product’s barcode into a QR code?
Not directly: this page does not read a barcode, so you type the number under the product’s barcode and the page writes a QR code or a Data Matrix for that GTIN. In that sense this GS1 Digital Link barcode generator makes 2D barcodes from a number, not from a picture of a barcode. For the barcode itself (UPC-A, EAN-13, EAN-8), use Varnip’s barcode generator.
Does a QR code replace the barcode on my product?
A QR code does not replace the barcode during the transition GS1 describes: in that phase the trade item carries both the current linear barcode and a 2D code (GS1, 2D barcodes in retail, 2025). GS1 also says all data carriers used for the same application on an item “SHALL encode the same GS1 identifier” (GS1 General Specifications, 2026), so the QR code you make here should hold the same GTIN as the barcode on the pack.
What is Sunrise 2027?
GS1 US says “Sunrise 2027 marks a pivotal shift for the retail industry—a global transition from 1D UPC barcodes to 2D barcodes” and that, while it is “a milestone in the transition to 2D barcodes, it is not necessary to implement all the capabilities of 2D by that date” (GS1 US, 2026). GS1’s own 2D guideline calls its goal “Ambition 2027”: the initial goal is “for retail point-of-sale (POS) scanning to be globally capable of reading and processing the GTIN from both existing linear and 2D barcodes by the end of 2027” (GS1, 2025). This page makes the QR code or Data Matrix for a GTIN; it does not check a code against Sunrise 2027 or any other GS1 program.
What size should the code be on the pack?
The code’s size on the pack follows from the size of one of its squares, and GS1 New Zealand’s table gives one square of a QR Code or Data Matrix with a GS1 Digital Link a minimum of 0.396 mm, a target of 0.495 mm and a maximum of 0.990 mm, with a blank margin of 4 squares around a QR Code and 1 around a Data Matrix (GS1 New Zealand, 2025). Under the code, this page shows the size of one square for the printed size you pick and adds a note when it falls outside that range. The printed sizes are 1.5, 2, 2.5 and 3 cm, and 2 cm is the default and the one we recommend for most packs. At 2 cm every square stays inside that range for the addresses we tested (36, 56 and 99 characters, the QR code at 300 and 600 dpi and the Data Matrix at 600 dpi); a longer address can fall below it, and then the note shows. The note checks the file, not the print.
Where should I put the code on the pack?
GS1 says the whole 2D barcode, quiet zones included, should be placed within a 50 mm (2 inch) radius from the center of the linear barcode (GS1, 2D barcodes in retail, 2025). It also says that when a 2D barcode is the only barcode for the GTIN, it “SHALL display the 14-digit GTIN HRI” (GS1 General Specifications, 2026), the number printed as characters a person can read, while GS1 New Zealand says that beside a linear barcode only the linear one needs it (GS1 New Zealand, 2025). This page adds no number line under the code.
Will a checkout scanner read it?
We have not tested a checkout scanner, so this page cannot tell you. GS1 says a point-of-sale scanner “doesn’t treat the GS1 Digital Link contained in a QR Code on a product as a URL” (GS1 quick start guide, 2024), and that “Not all GS1 Application Identifiers will be enabled across all retailers” (GS1, 2D barcodes in retail, 2025): not every retailer enables every data field. Bar Code Graphics writes about implementations that “work for marketing but fail at point-of-sale” (Bar Code Graphics, 2026). Scan one printed code before you print many.
Can I change where the code points after I print it?
No: this makes a static code, so what you type is stored inside the code itself and can’t be changed after you print it; to change it, make a new one. Scans don’t pass through Varnip and need no account, and the code keeps working as long as what it points to does, which on this page is id.gs1.org or your domain. The page opens with GS1’s demo number, so replace it with your own GTIN before you print. Varnip does not make dynamic codes.
How do I check that my GS1 Digital Link code is right?
Check three things: the GTIN’s check digit, the address shown under the code, and what a printed code opens when you scan it. The page refuses a wrong check digit and says which digit it expected, and the address under the code is exactly the text the file holds. At every published build, our tests check the address against GS1’s own examples (21 that must be written exactly, 12 that must be refused) and read the QR Code and the Data Matrix back with a software decoder, including the files this page downloads in Chromium, Firefox and WebKit. That is a software decoder, not a phone or a scanner: scan one printed code before you print many. This page does not check that a GTIN is registered or belongs to you, does not contact id.gs1.org or your domain, and does not check print quality.
Is this GS1 Digital Link generator free to use online?
Yes: this GS1 Digital Link generator is free to use online, with no sign-up and nothing to install. It runs in the web page, in your browser, and the files carry no watermark. A browser that is too old shows a message and keeps the buttons off.
Is what I type sent to a server?
What you type is encoded in your browser and is not sent to our servers. The GTIN, batch or lot, serial number, date and your domain all count as what you type. Varnip does count how the generators are used, such as which format was downloaded, never what you type.
Varnip is not affiliated with GS1. GS1 is a registered trademark of GS1 AISBL.