GS1-128 Barcode Generator

Generate GS1-128 (formerly UCC/EAN-128) barcodes that carry Application Identifiers like (01) GTIN, (10) lot and (17) expiry — with FNC1 handled automatically. Download as PNG, SVG or PDF, free and with no signup.

(AI) notation Auto FNC1 PNG · SVG · PDF Nothing uploaded

Barcode settings

#000000
#FFFFFF

Preview

Printing GS1-128 labels for cartons and cases?

The free LabelInn app places your GS1-128 barcode on a full shipping or product label with text, logos and prices, then prints directly to Zebra (ZPL) and TSC (TSPL) thermal printers — including bulk printing from Excel where every row is a new lot or expiry date.

Get LabelInn — Free →

What is a GS1-128 barcode?

A GS1-128 barcode (formerly known as UCC/EAN-128) is a Code 128 barcode that carries standardized supply-chain data using GS1 Application Identifiers (AIs). Instead of holding one free-text value, it packs multiple structured fields into a single symbol — for example a product's (01) GTIN together with its (10) batch/lot number and (17) expiry date. This generator lets you type that data in simple (AI) notation, handles the required FNC1 character for you, and exports a clean barcode as PNG, SVG or PDF. Nothing you type is uploaded — it is generated entirely in your browser.

Need a plain Code 128 or another symbology instead? Use the full barcode generator for all 17+ types, or the dedicated QR code generator.

How (AI) notation and FNC1 work

Application Identifiers are two-to-four digit prefixes that tell a scanner exactly what the following data means. You enter each AI in round brackets, immediately followed by its value, with no spaces:

(01)09501101020917(10)LOT42(17)281231

Reading left to right, that string means: GTIN 09501101020917, lot LOT42, expiry 2028-12-31 (AI 17 uses YYMMDD). You never type the FNC1 character yourself. FNC1 is a non-data function code that (a) marks the symbol as GS1-128 at the very start and (b) acts as a separator after any variable-length AI when another field follows. The generator inserts the leading FNC1 and the separators automatically from your (AI) input, and it enforces the fixed lengths of AIs such as (01) (14 digits) and (17) (6 digits).

Common GS1 Application Identifiers

AIMeaningFormat
(00)SSCC — Serial Shipping Container Code18 digits (fixed)
(01)GTIN — Global Trade Item Number14 digits (fixed)
(10)Batch / lot numberup to 20 chars (variable)
(11)Production dateYYMMDD (fixed)
(17)Expiry / best-before dateYYMMDD (fixed)
(21)Serial numberup to 20 chars (variable)
(30)Variable count of itemsup to 8 digits (variable)
(310n)Net weight, kilograms6 digits + decimal (fixed)
(37)Count of trade items in a logistic unitup to 8 digits (variable)
(400)Customer's purchase order numberup to 30 chars (variable)

Fixed-length AIs need no separator after them; variable-length AIs (like (10), (21) and (400)) are followed by an FNC1 separator whenever another field comes next. The generator applies these rules for you.

When to use GS1-128

For plain retail point-of-sale codes on individual consumer units, an EAN-13 or UPC-A is usually the right choice instead — GS1-128 is designed for the wider supply chain, not the checkout beam.

How to generate a GS1-128 barcode

  1. The tool is already set to GS1-128 — leave the type dropdown as is.
  2. Enter your data in (AI) notation, e.g. (01)09501101020917(17)281231(10)LOT42.
  3. Adjust size, bar height, quiet zone, colors and rotation for your label.
  4. Download as PNG, SVG (vector, scales cleanly for print) or PDF.

Printing GS1-128 to a label printer

You can download the barcode image and drop it into any document, but for real supply-chain labels it is better to build the whole label. The free LabelInn app lets you place a GS1-128 barcode alongside the human-readable AI text, product name, logo and other fields, then prints directly — with no driver hassle — to Zebra (ZPL) and TSC (TSPL) thermal printers over USB, network (TCP 9100) or Bluetooth. Because it can pull data from Excel, each printed label can carry a different lot, serial or expiry date in a single bulk run, which is exactly what GS1-128 was designed for.

Embed this GS1-128 generator on your site

Free to embed — just keep the attribution link. Great for supplier portals, help centers and internal wikis where teams create GS1-128 labels.

<iframe src="https://www.labelinn.com/en/gs1-128-barcode-generator?embed=1" width="100%" height="640" style="border:1px solid #e5e7eb;border-radius:12px" title="Free GS1-128 Barcode Generator by LabelInn" loading="lazy"></iframe> <p>Free <a href="https://www.labelinn.com/en/gs1-128-barcode-generator">GS1-128 barcode generator</a> by LabelInn</p>

Frequently asked questions

What is a GS1-128 barcode generator?

It creates Code 128 barcodes that carry structured GS1 data — like (01) GTIN, (10) lot and (17) expiry — with the required FNC1 character. GS1-128 was formerly called UCC/EAN-128. Everything runs in your browser and exports PNG, SVG or PDF.

How do I enter Application Identifiers like (01), (10) and (17)?

Type each AI in round brackets followed by its value, e.g. (01)09501101020917(10)LOT42(17)281231. The generator reads the notation, adds FNC1 and validates fixed-length AIs.

Do I need to add FNC1 myself?

No. FNC1 marks the symbol as GS1-128 and separates variable-length fields. The generator inserts the leading FNC1 and any separators automatically from your (AI) input.

Is GS1-128 the same as Code 128?

It uses the same Code 128 bar patterns, but GS1-128 is an application standard: it always starts with FNC1 and its data must use GS1 Application Identifiers. Plain Code 128 can hold any free text.

How do I print it to a Zebra or TSC printer?

Download the image, or use the free LabelInn app to place the GS1-128 barcode on a full label and print directly to Zebra (ZPL) and TSC (TSPL) printers — including bulk runs from Excel.

Need other symbologies? Use the full barcode generator (17+ types) or the dedicated QR code generator. Want to build the whole label? Try the label maker, or get the free LabelInn app.