GS1 is the standards body behind the barcodes on every consumer product. A GS1 QR code encodes supply-chain data using Application Identifiers (AIs): short numeric prefixes that label each value. (01) is a GTIN (the product identifier), (10) is a batch number, (17) is an expiration date, (21) is a serial. This validator handles the 15 most common AIs.
Element string vs Digital Link
Two encodings are common. The classic GS1 element string is written as (01)09521101530001(10)ABC123(17)260301(21)XYZ987 for humans, with an FNC1 separator (0x1D) used in the machine-readable form. This is what GS1-128 barcodes and traditional GS1 QR codes carry.
The newer GS1 Digital Link puts the data inside a real URL: https://id.gs1.org/01/09521101530001/21/XYZ987?17=260301. A phone scan opens a web page; a supply-chain scanner pulls the AI data out of the URL. Same QR, two audiences.
Who uses GS1 QR codes
In healthcare, DSCSA-compliant prescription drugs in the U.S. require GTIN, batch, expiry, and serial number on every saleable unit. In retail, GS1's Sunrise 2027 initiative is transitioning consumer products from barcodes to QR codes (which means every checkout scanner needs to read both formats). In manufacturing and logistics, SSCC pallet IDs and batch numbers track inventory through warehouses.
Why check-digit validation matters
A GTIN-14 has a check digit calculated from the preceding 13 digits using a modulo-10 algorithm with alternating weights of 3 and 1. It catches the things humans get wrong: data-entry typos, OCR misreads, corrupted scans. A single transposed digit fails the check.