A GS1 barcode is more than a number: it is a string of data elements, each introduced by an Application Identifier (AI), such as 01 for the GTIN, 10 for the batch or lot, 17 for the expiry date and 21 for the serial number. This decoder reads a label image or PDF (QR, DataMatrix, GS1-128 and Code 128 are searched), or text you paste, splits it into its elements and explains each one, with the check digits verified.
It also reads GS1 Digital Link addresses, the web-address form of the same data (for example https://id.gs1.org/01/09506000134352/10/ABC123?17=261231). Everything is decoded in your browser; the image is not uploaded.
Loading the tool…
Overview
About GS1 Barcode & Digital Link Decoder
Input. An image or a PDF page with a barcode, or text in one of three forms: the human-readable form (01)09506000134352(10)ABC123(17)261231, a raw element string where variable-length elements are separated by the group separator (shown as GS, <GS> or {GS}), or a Digital Link web address. For images the tool tries QR codes with a light-weight reader first and uses the zxing-cpp engine (served from this site as WebAssembly) for DataMatrix, GS1-128, Code 128 and DataBar. The symbology identifier the scanner reports (for example ]d2 for GS1 DataMatrix, ]C1 for GS1-128, ]Q3 for GS1 QR code) is shown.
What is explained. Each element gets its AI, its meaning (GTIN, SSCC, batch or lot, expiry, best-before, serial number, count, net weight with the decimal position, GLN, price, country code, internal information and many more), its value in a readable form (dates as 2026-12-31, measures with the decimal point placed), and notes. The table covers a fixed list of Application Identifiers from the GS1 General Specifications; an identifier that is not in the list is reported as unknown instead of being guessed.
Checks. Check digits (modulo 10) are verified for GTIN-8/12/13/14, SSCC, GLN, GSIN, GSRN, ITIP and the key part of GDTI, GCN and GRAI; fixed lengths and numeric fields are verified; dates must be real (day 00 means the last day of the month); the order of key qualifiers in a Digital Link (for a GTIN: consumer product variant, batch, serial) is compared with the standard. A GS1 Digital Link written in the uncompressed form (release 1.7.0, ratified August 2026) is parsed; compressed Digital Link URIs are recognised and not decoded.
Why the separator matters. In an element string, variable-length elements must be followed by the group separator unless they are last. If a scanner removed the separators, the first variable element swallows everything after it. The decoder warns when it sees this pattern.
Compatibility
Supported Formats
Images (PNG, JPEG, WebP up to 30 MB) and PDF (up to 50 MB, first 40 pages) containing QR, DataMatrix, Code 128 / GS1-128 or DataBar barcodes; pasted element strings, bracketed HRI text and uncompressed GS1 Digital Link addresses. Not decoded: compressed Digital Link URIs, EAN/UPC retail codes without AIs (they carry only a GTIN) and barcodes damaged beyond what the reader engine can read.
Guide
How to Use GS1 Barcode & Digital Link Decoder
- Drop a picture or PDF of the label, or paste the text from a scanner or the Digital Link address.
- Read the table: each Application Identifier, its meaning, the value in readable form and any problem.
- Copy a single value, or the whole code in the bracketed form.
- If a barcode is not found, try a sharper or larger picture, or paste the scanner's text.
Highlights
Features
- QR, DataMatrix and GS1-128 Image and PDF input, with the symbology identifier shown.
- Every element explained AI, meaning, readable value, notes and problems.
- Check digits and formats Modulo 10 for the common keys, lengths, numeric fields and real dates.
- Digital Link parsing Key, qualifiers in order and query parameters from an uncompressed address.
- Stays in your browser No upload; the decoder runs from this site.
Applications
Use Cases
- Checking what batch and expiry a pharmaceutical or food label carries
- Verifying the GTIN check digit of a product code
- Understanding the contents of a logistics label (SSCC, GTIN, quantity)
- Testing that a printer or software writes a correct GS1 DataMatrix or Digital Link
- Learning what each Application Identifier on a barcode means
Good to Know
Limitations
The Application Identifier table is a fixed list taken from the GS1 General Specifications; an identifier added in a newer release is shown as unknown. Not every barcode variant, printing defect or scanner configuration is supported, and the reader engine can miss a code or read a damaged one wrongly, so a code that does not decode is not necessarily invalid.
A correct check digit shows that the number is internally consistent, not that a product or code is genuine, registered or safe. Date century handling is simplified (years are read as 2000-2099). The tool does not look anything up online.
This tool runs entirely in your browser — your file is never uploaded to our servers. See our Privacy Policy for full details.
Support
Frequently Asked Questions
Is my label image uploaded?
No. The image is decoded in your browser. The barcode engine and its WebAssembly file are served from this website, not from a third party.
What is an Application Identifier?
A two- to four-digit prefix that says what the following data means, such as 01 for the GTIN, 10 for the batch, 17 for the expiry date and 21 for the serial number.
What is the group separator and why does the decoder warn about it?
Variable-length elements in a GS1 element string end with the ASCII group separator (FNC1) unless they are last. If the separator is missing, the first variable-length element appears to run to the end, so the data after it is misread.
Can it read a GS1 Digital Link QR code?
Yes: the QR code is decoded and, if it contains an uncompressed Digital Link address, split into the GTIN, qualifiers and query parameters. Compressed Digital Link addresses are recognised but not decoded.
Why is the expiry date shown with day 00?
In GS1 date fields day 00 means the last day of the month. The tool shows the real last day and says so.
Does a valid check digit mean the product is genuine?
No. It means the number is internally consistent. It says nothing about whether the code was issued to that product or manufacturer.
Keep Going
Related Tools
- Image Cropper Keep one rectangle of a JPG, PNG or WebP. Drag a selection or type exact X, Y, width and height in pixels.
- PDF to JPG Turn the first page of a PDF into a JPG at 150 DPI. Only page 1 is converted, and there is no resolution setting.
- Image DPI Changer Change the DPI label of a JPEG or PNG without resampling: pixel size and image data stay exactly as they are. See before and after and the print size in mm and inches. In your browser.
- EPC QR / GiroCode Reader GiroCode lesen: read the EPC QR code on an invoice image or PDF and see IBAN, beneficiary, amount, purpose and reference with an IBAN check and copy buttons. In your browser.