BarcodeSheets

GS1-128 Barcode Generator

Pick Application Identifiers and fill in their values — the AI builder composes the correct GS1-128 string and renders it live, free and unlimited.

Unlimited — no caps SVG & print-res PNG free No account 100% in your browser

What GS1-128 encodes

GS1-128 is a structured-data variant of Code 128 built for logistics and supply-chain labels that need to carry more than one piece of information in a single barcode. Instead of one plain string, the data is broken into fields, each tagged with a numeric Application Identifier (AI) in parentheses — (01) for a GTIN, (10) for a batch or lot number, (17) for an expiry date, (21) for a serial number, and more — so a scanner or warehouse system can pull out exactly the fields it needs, unambiguously, regardless of how many are packed into the same symbol. The AI builder above handles this composition for you: pick an AI, type its value, and the correctly-formatted string is generated and rendered automatically.

FNC1: what makes it GS1 data

Every GS1-128 symbol starts with a special non-printing character called FNC1 — it's what tells a scanner "interpret what follows as GS1 Application Identifiers," rather than as arbitrary text the way a plain Code 128 barcode would be read. FNC1 also does double duty inside the barcode: GS1's variable-length fields (like a batch number, which can be anywhere from 1 to 20 characters) use a second FNC1 as a separator, marking exactly where that field ends so the next AI isn't misread as part of it. You never type FNC1 yourself — this tool's Studio inserts it automatically as part of rendering.

Common Application Identifiers

The five AIs this page's builder supports cover the large majority of real-world GS1-128 labels:

  • (01) GTIN-14 — the product's global trade item number, 14 digits including its own check digit.
  • (10) Batch/Lot — up to 20 alphanumeric characters identifying a production batch.
  • (17) Expiry date — in YYMMDD format.
  • (21) Serial number — up to 20 alphanumeric characters identifying one specific unit.
  • (310x) Net weight, kg — a 6-digit value where x (0-5) sets how many of those digits are decimal places; 3102 with value 012345 means 123.45 kg.

GS1's full specification defines dozens more AIs for logistics, dates, and measurements beyond these five.

SSCC and logistics labels

GS1-128's home turf is the shipping label: pallets and cartons moving through a supply chain are almost always labeled with a Serial Shipping Container Code, AI (00), an 18-digit number uniquely identifying that one logistics unit end to end. A real-world pallet label routinely combines an SSCC with a GTIN (01), a batch/lot (10), and a quantity or weight field, all on the same GS1-128 symbol — exactly the kind of multi-field composition the AI builder above is built to make painless. That's the core reason GS1-128 exists as a distinct format: retail point-of-sale scanning wants one simple number, but a warehouse receiving dock needs several structured fields off a single label in one scan.

GS1-128 vs. plain Code 128

Physically, GS1-128 and Code 128 are the same symbology — identical bar patterns, identical checksum. The difference is entirely in convention: GS1-128 always opens with FNC1 and structures its data as Application Identifiers, while plain Code 128 encodes whatever text you give it with no implied meaning. Any scanner that reads Code 128 can decode the bars of a GS1-128 symbol too, but only GS1-aware software correctly parses the AI structure behind those bars. If your data isn't a GS1 field — an internal SKU, a tracking number your own system defines — plain Code 128 (see /code-128) is the simpler, more appropriate choice.

Frequently asked questions

What is an Application Identifier (AI) in a GS1-128 barcode?

A numeric prefix in parentheses — like (01) or (17) — that tags what the field right after it means. (01) always means GTIN, (17) always means expiry date, and so on, so a scanner or ERP system can parse several distinct pieces of data out of one barcode without any ambiguity about which digits mean what.

What's the difference between GS1-128 and Code 128?

Physically, nothing — GS1-128 is Code 128 with a leading FNC1 character marking it as GS1-structured data, and Application Identifier syntax inside. Anything that reads Code 128 can decode the bars, but only GS1-aware software correctly interprets the AI structure. See our Code 128 generator at /code-128 for plain, unstructured text instead.

What is FNC1 in a GS1-128 barcode?

A special non-printing character every GS1-128 symbol starts with, signaling to the scanner "this is GS1 data, parse it as Application Identifiers." It's also used mid-barcode to separate a variable-length field from the next AI, so the scanner knows exactly where one field ends and the next begins. This tool's Studio adds it automatically — you never type it yourself.

What is an SSCC?

A Serial Shipping Container Code — Application Identifier (00) — an 18-digit number that uniquely identifies one logistics unit, like a pallet or shipping carton, for tracking through a supply chain. It's one of the most common reasons GS1-128 shows up on shipping labels, often alongside a GTIN (01) and other logistics AIs on the same label.

Do I need a GS1 license to use GS1-128?

Not to generate a scannable barcode image with this tool — you can encode any AI syntax you type. But the GTINs and other identifiers inside a real GS1-128 label used in an actual supply chain need to come from a licensed GS1 member organization to be globally unique and trusted by trading partners; a self-assigned number works for internal or closed-system use, not for one that has to be recognized outside your own operation.

How do I build a GS1-128 barcode without knowing the AI syntax?

Use the AI builder above: pick an Application Identifier from the dropdown (GTIN, batch/lot, expiry, serial, or net weight), type its value into a plain field, and add as many rows as your label needs. The correct (AI)value string is composed and validated for you — you never have to type a parenthesis or worry about field order by hand.