Free GS1-128 barcode generator

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.

Symbology

GS1 application-identifier syntax: (01)09501101530003(17)261231 — parentheses are structural, FNC1 is placed for you.

Input
Options

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.

Related free tools

Same workflow, different code. No sign-up on any of them.

QR Code Generator

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 generator

vCard QR Code Generator

A QR code that adds a contact in one scan — name, company, phone, email. Static, no expiry, no account, exported as PNG or SVG.

Open generator

Bulk QR Code Generator

Turn 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 generator

Bulk Barcode Generator

The 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 generator

Bulk Code 128 Barcode Generator

The 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 generator

UPC Barcode Generator

UPC-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 generator

Barcode & QR Scanner

Read a code back with your camera or from a photo. QR, EAN, UPC, Code 128, and Data Matrix, decoded in your browser.

Open scanner

Code 39 Barcode Generator

The legacy industrial format that old scanner fleets and military specs still require. One code or a batch of 500, validated as you type.

Open generator

EAN-13 Barcode Generator

Retail 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 generator

Data Matrix Generator

ECC-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 generator

PDF417 Barcode Generator

The stacked format on shipping papers and passes. Renders single codes or a CSV batch, readable by laser guns and cameras alike.

Open generator

QR Code & Barcode Repair

Upload 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 tool

GS1-128 — common questions

What comes up between the routing guide and the first accepted shipment.

  • Why does my plain Code 128 barcode get rejected as GS1-128?

    It's missing the leading FNC1 — without it, the receiving system sees a free-form string, not GS1 element data. There's no visual difference, which is why the rejection is confusing. Encode through a GS1-aware generator; here, the FNC1 goes in automatically.

    Do I type the parentheses?

    Yes, in this tool — (01)09501101530003(17)261231. They're standard GS1 notation for where each identifier starts and are never encoded into the bars. The human-readable line under the symbol keeps them, which is exactly how trading partners print it.

    What is an SSCC and how do I make a pallet label?

    The Serial Shipping Container Code — AI (00) plus 18 digits ending in a check digit — identifies one specific pallet or carton. Encode it as (00)095011015300031717. The digits come from your GS1 company prefix; the final one is verified here so a mistyped SSCC fails at your desk, not at the customer's dock.

    Why is my AI rejected as unknown?

    The validator covers the retail and logistics core, not the full registry of several hundred AIs. If your spec sheet names one outside the supported set, generate in the system that owns that spec — encoding an identifier this tool can't validate would just move the failure to the scanner.

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.

up arrow