Logistics & GS1

GS1-128

Build a GS1-128 barcode from structured fields — GTIN, batch, expiry, serial — or switch to raw Application Identifier mode.

GS1 application identifiers
Preview

Enter valid data to see the barcode.

Encoding happens entirely in your browser. This tool encodes numbers you already own — it does not issue or register GS1 company prefixes.

Data rules

GS1 Application Identifier element strings

  • Length: 1–48 characters
  • Character set: alphanumeric
  • Check digit: not used
  • Quiet zone: 10 modules

Printing notes

  • GS1-128 is Code 128 with a leading FNC1 character that marks the data as GS1 Application Identifier element strings.
  • Fixed-length AIs need no separator; variable-length AIs are separated by FNC1 when another element follows.
  • Dates use YYMMDD. A day of 00 means 'end of month' in the GS1 specification.

Workflow links

Related barcode formats

What is GS1-128?

GS1-128 is Code 128 carrying GS1-structured data. A leading FNC1 tells the scanner the content is a sequence of Application Identifiers: (01) for GTIN, (10) for batch or lot, (17) for expiry date, (21) for serial number and so on.

Fixed-length AIs run straight into the next field; variable-length AIs must be terminated with an FNC1 separator. Getting that separator wrong is the most common reason a supplier rejects a label.

Frequently asked questions

Is this GS1-128 generator free to use?

Yes. The GS1-128 generator is free, has no signup and adds no watermark. The symbol is encoded in your browser, so the data you type is never uploaded to a server.

What file format should I download for printing GS1-128?

Download SVG for anything that will be printed. SVG is vector, so bar widths and the quiet zone stay exact at any size. PNG is fine for screens and slide decks, but never scale a PNG barcode up — enlarging it blurs the bar edges and scanners start failing.

How do I write dates in a GS1-128 barcode?

Date AIs such as (17) expiry use YYMMDD. When only a month is meaningful, the day is encoded as 00.

Why does my scanner show the brackets around the AIs?

It should not. Brackets are a human-readable convention printed under the symbol; the encoded data contains FNC1 separators instead. If brackets appear in the decoded string, the data was encoded as plain Code 128 rather than GS1-128.

Standards & references

This page follows the published specifications. The bodies that own them: