GS1-128 barcode generator
Supply-chain and logistics labels that need to encode more than an identifier — batch numbers, expiry dates, and quantities in one symbol.
Character set
Full ASCII, structured using GS1 Application Identifiers (batch, expiry, quantity, and more)
Typical use
Supply-chain and logistics labels that need to encode more than an identifier — batch numbers, expiry dates, and quantities in one symbol.
How it compares
GS1-128 is built on Code 128's symbology but adds a structured data format, so a scanner can parse out batch, date, and quantity separately.
No signup · Files stay on your device · PNG download is free
Type a value above to generate a barcode.
Need 100 or 10,000 of these? Try the bulk CSV/Excel generator free.
Try the bulk generator →How to generate a GS1-128 barcode
- Pick GS1-128 from the format dropdown
- Build your value from Application Identifiers in parentheses followed by their data — for example, (01)09521234543213 for a GTIN
- Common AI fields get validated as you type — GTIN check digits, dates, batch numbers — with a specific error the moment something doesn't fit the spec
- Once every field in the summary beneath the barcode checks out, download the PNG
Common GS1-128 use cases
- Supply-chain labels encoding a batch number, expiry date, and quantity in a single symbol
- Logistics units where a scanner needs to parse multiple distinct data fields from one barcode, not just an identifier
- Verifying a GTIN's check digit inside a GS1-128 string before a shipping label goes to print
- Prototyping label layouts that combine several GS1 Application Identifiers before final packaging sign-off
Need more than one? · free preview live
Generate GS1-128 barcodes in bulk
Upload a CSV or Excel file to produce thousands of named GS1-128 barcodes and print-ready labels in one pass. Preview free now — exporting the full batch is a one-time paid unlock. Just have a short list instead of a spreadsheet? Paste a list of values and get every barcode back free, no file needed.
Upload
Add a CSV or Excel file with your product data.
Map
Match columns to barcode value, filename, caption, and price.
Export
Download PNG, SVG, a ZIP archive, or print-ready PDF labels.
Pricing
Free today. Pay once to export bulk batches.
No subscriptions, ever. The free generator, bulk preview, and paid export are all live now.
Free lets you preview the first 20 rows of a spreadsheet. One Batch or Pro exports the complete file.
- Unlimited individual generation
- All available barcode formats
- Free PNG, SVG, and PDF downloads
- Bulk preview: up to 20 spreadsheet rows
- No signup, no watermark
Best for one-time use
- Export one CSV/Excel job, up to 20,000 rows
- PNG and SVG ZIP
- Printable label PDF
- Custom filenames
Doing this once? Choose One Batch.
Best if you'll export more than once
- Unlimited bulk exports, up to 20,000 rows each
- SVG and high-res PNG
- ZIP and print-ready PDF
- Custom filename templates
- Saved local presets
- Works on any of your devices
Expect another batch later? Pro pays for itself after 10 exports.
One-time payment, never a subscription. Your license works on any of your devices — enter your license key to unlock. Any applicable tax is calculated at checkout.
FAQ
GS1-128 barcode questions
Short numeric codes in parentheses — like (01) for GTIN, (10) for batch/lot, or (17) for expiry date — that tell a scanner what kind of data follows. This generator validates the common ones (GTIN with its check digit, dates, batch numbers, and the net-weight family) and tells you specifically what's wrong if a value doesn't match, rather than accepting anything.
The parentheses are this generator's display syntax for marking where one Application Identifier ends and its data begins — they aren't literally encoded as bars. The actual barcode uses a non-printing FNC1 character as the separator, which is why a scan decodes back to the raw digit stream without parentheses.
It's built on Code 128's symbology, but structures the data with GS1 Application Identifiers so a scanner can parse out batch number, expiry date, and quantity as separate fields instead of one undifferentiated string.
No — this generator recognizes the most common ones and validates their format automatically. For an AI it doesn't have specific rules for, it still checks the basic structure and lets it through, since guessing at rules we don't actually have would be worse than being upfront that it's unvalidated.
Create your first GS1-128 barcode in seconds.
Free forever for individual barcodes. Free to preview in bulk, too.