Enter GS1 element strings the way the spec writes them — (01)09501101530003(17)261231(10)LOT1 — and get a compliant symbol: FNC1 placed automatically, application identifiers validated, check digits verified. Single codes or a CSV batch of 500.
GS1 application-identifier syntax: (01)09501101530003(17)261231 — parentheses are structural, FNC1 is placed for you.
0 of 0 codes ready
Add values on the left to see your codes here.
Generated in your browser — nothing is uploaded.
This page usually gets found the day a routing guide arrives. A retail or 3PL trading partner sends labeling requirements, somewhere in them is "carton label must carry a GS1-128 with (01), (17) and (10)", and the plain Code 128 generator you've been using turns out to produce something scanners read but the partner's system rejects.
The difference is invisible to the eye. GS1-128 is Code 128 carrying an FNC1 character in the first position — that's the flag that tells the receiving system "what follows is GS1-structured data, not a free-form string". The payload is then a chain of application identifiers: (01) says the next 14 digits are a GTIN, (17) an expiry date as YYMMDD, (10) a batch number, (00) an SSCC for pallet labels, (21) a serial. Fixed-length fields run together; variable-length ones get another FNC1 as a separator, in positions the spec dictates. Type the element string with parentheses — (01)09501101530003(17)261231(10)LOT1 — and this generator handles both FNC1s; the parentheses themselves are never encoded, they're notation.
Validation here does what the receiving dock would: GTIN and SSCC check digits verified, dates checked as YYMMDD (day 00 is legal — it means end of month), field lengths enforced, and the GS1-128 limit of 48 data characters per symbol applied. The AI table covers the identifiers that do the actual work in retail and logistics — 00, 01, 02, 10, the date family 11–17, 20, 21, 22, 30, 37, trade measures 310x–369x, 240/241/250/251, the 400s, GLNs 410–417, 420, 422, 8005, 8008, 8017/8018, and the internal-use 90–99. An AI outside that set is rejected by name rather than encoded on a guess; the full GS1 registry runs to several hundred identifiers, most of which never appear outside one industry's spec sheet.
Two things this tool doesn't do, said plainly. It doesn't hand out numbers — GTINs and SSCCs come from a GS1 company prefix, which is a membership, and a symbol built on invented digits fails at the first partner that looks it up. And it doesn't replace the partner's label spec: symbol placement, dimensions, and human-readable formatting vary by routing guide, so treat this as the encoder, with the layout rules coming from their document.
Same workflow, different code. No sign-up on any of them.
Create QR codes for links, text, Wi-Fi, email, or phone. Customize colors, add a logo, download PNG or SVG, all in your browser.
Open generatorA QR code that adds a contact in one scan — name, company, phone, email. Static, no expiry, no account, exported as PNG or SVG.
Open generatorTurn a list, CSV, or numbered sequence into up to 500 QR codes at once, then export them as PNGs, a ZIP, or a print-ready Avery sheet.
Open generatorThe same batch workflow for linear barcodes. Paste a list or upload a CSV and render dozens at once as PNGs, a ZIP, or an Avery PDF sheet.
Open generatorThe alphanumeric format most asset tags use. Paste a list, upload a spreadsheet export, or number a sequence — up to 500 Code 128 codes in one run.
Open generatorUPC-A and UPC-E for retail products, plus EAN-13 and EAN-8 for markets outside North America. Check digits computed as you type.
Open generatorRead a code back with your camera or from a photo. QR, EAN, UPC, Code 128, and Data Matrix, decoded in your browser.
Open scannerThe legacy industrial format that old scanner fleets and military specs still require. One code or a batch of 500, validated as you type.
Open generatorRetail EAN-13 with the check digit computed for you — type 12 digits, get 13. Single codes or a CSV batch, verified before they render.
Open generatorECC-200 Data Matrix for part marking and tiny labels — the square code that fits where QR cannot. One code or a batch of 500.
Open generatorThe stacked format on shipping papers and passes. Renders single codes or a CSV batch, readable by laser guns and cameras alike.
Open generatorUpload a photo of a code that won't scan. The tool decodes what survives in the print and rebuilds a clean replacement to reprint.
Open repair toolWhat comes up between the routing guide and the first accepted shipment.
Labels sorted, inventory next? Talk to sales
Element strings render on a local canvas in your browser — payloads never reach a server, and export libraries load only at download time.
GS1-128 marks what ships out; the gear that stays behind usually wears a plain Code 128 or Data Matrix tag. UNIO24's inventory management sits behind both kinds: scan to receive, issue, and count, with stock levels and movement history per item.