GS1-128 Barcode Generator

Make a GS1-128 barcode online for free. Add Application Identifiers such as (01) for the GTIN, (17) for the expiry date and (10) for the batch, and GS1's Barcode Syntax Engine checks every value. See where FNC1 goes and what a scanner sends, then download SVG, PNG, PDF or EPS.

Valid

136.1 × 37.2 mm at 300 DPI

Application Identifiers

  1. GTIN: Global Trade Item Number (GTIN). Format N14; predefined length, no FNC1 needed.

  2. USE BY or EXPIRY: Expiration date (YYMMDD). Format N6; predefined length, no FNC1 needed.

  3. BATCH/LOT: Batch or lot number. Format X..20; FNC1 follows it when another AI comes next.

Moving AIs with a predefined length, such as (01) and (17), to the front saves FNC1 separators.

Check GS1 dataPaste and load

Write the group separator as {GS}. Valid data replaces the AI rows.

Symbology and content

The element strings in bracket notation. The brackets are not encoded; the generator adds FNC1 where GS1 requires it: 37 characters.

Size and resolution

Output DPI

300 DPI · Thermal / offset

6 px per module at 300 DPI. Print size: 136.1 × 37.2 mm (5.36 × 1.46 in). PNG, WebP and JPEG: 1650 × 451 px.

Human-readable text

Text size and alignment

Alignment

Text font

FontNew

Label textNew

Font

Alignment

Printed in the file with the barcode, outside the quiet zone, in Helvetica or Courier so it looks the same in every format.

Colors

Contrast 21.0:1; estimated symbol contrast 100%.

Quiet zone (modules)2 · 10 · 2 · 10

Bar width reduction0 mil

Makes each bar thinner by this amount, to make up for ink that spreads on paper. Ask your printer for the value, or leave 0 for laser and thermal printing.

Rotation and backgroundNew0° · Filled

Rotation

In the preview, a checkered pattern shows the transparent areas. Print a transparent barcode only on a white or very light surface: scanners need the light quiet zone around it.

Margin and borderNew0 mm · no border

The margin is blank space outside the quiet zone, for cutting; the border is drawn at the outer edge. Both count in the print size.

Data inspectorNew37 chars
PresetsNew0 saved

No presets yet. Save the current settings to reuse them.

    Presets stay in this browser. They keep the type, size and style; the data and the logo are not saved.

    Recent barcodesNew0

    The barcodes you download appear here, newest first.

      The last 10 downloads, kept in this browser only.
      GS1-128 · Live previewValid
      GS1-128 barcode encoding (01)09506000134352(17)271231(10)LOT42
      New

      Scaled to fit. Actual size shows the print size on screen.

      Print simulationNew

      Shows how a worn print looks and tests it with the decoder.

      Type
      GS1-128 · 1D
      Print size
      136.1 × 37.2 mm
      Raster
      1650 × 451 px

      Valid GS1 data: 3 element strings, checked with GS1's Barcode Syntax Engine 1.4.1.

      Message with FNC1

      FNC101095060001343521727123110LOT42

      What a scanner sends

      ]C101095060001343521727123110LOT42

      GS1 Digital Link URI

      https://id.gs1.org/01/09506000134352/10/LOT42?17=271231

      A valid structure is not GS1 certification: the GTIN or SSCC must come from your own GS1 Company Prefix, licensed by GS1.

      The check runs on your device with the GS1 Barcode Syntax Engine 1.4.1, © GS1 AISBL, under the Apache License 2.0.

      Download

      Vector drawing, 136.1 × 37.2 mm. Design and label programs place it at its print size.

      More export optionsNewTest sheet · size set · embed code

      Print test sheet (PDF)

      The code at 80%, 100% and 150% with 100 mm and 4 in rulers. Print it at actual size and scan each copy before printing many.

      Size set (ZIP)

      Magnification

      Embed code

      Nothing you type is uploaded.New

      How to Create a GS1-128 Barcode

      Enter each Application Identifier and its value, fix anything the check reports, and download the barcode.

      1. Type an AI number, such as 01 for the GTIN, or pick one from the list.
      2. Enter its value: date AIs offer a date picker, and weights and measures place the decimal point for you.
      3. Add more AIs and read the check under the preview, which names the AI and the rule when something is wrong.
      4. Set the X-dimension and bar height for your label, then download SVG, PNG, WebP, JPEG, PDF or EPS.

      GS1-128 Barcode Format

      A GS1-128 barcode is a Code 128 symbol that starts with FNC1 and holds element strings: an Application Identifier followed by its value, one after another.

      Element Strings and Brackets

      Each element string is an AI of two to four digits followed by its data. GS1 puts the AIs in brackets in the text under the bars, but the brackets are not encoded. The generator reads the same bracketed form, such as (01)09506000134352(10)LOT42.

      GS1-128 barcode for (01)09506000134352(10)LOT42, with the AIs in brackets in the text under the bars.
      (01) 09506000134352 (10) LOT42: the brackets show in the text, not in the bars.

      Where FNC1 Goes

      FNC1 in first position marks the symbol as GS1 data. An AI without a predefined length needs FNC1 after its value when another AI follows, so placing variable-length AIs last saves characters. A scanner sends that FNC1 as the group separator, ASCII 29.

      GS1-128 barcode for (01)09506000134352(10)LOT42(17)271231, where an FNC1 follows the variable-length batch LOT42 because the expiry date comes after it.
      The batch (10) before the date (17) needs an FNC1 after LOT42.

      Size Limits

      GS1 allows at most 48 data characters and a length of 165.10 mm, quiet zones included, for one GS1-128 symbol. The builder warns when the message is longer than 48 characters. Long data fits better in GS1 DataMatrix.

      GS1-128 Application Identifiers

      This selection covers keys, batches, dates, counts, weights and shipping data, with GS1's description and format; the builder accepts all 541 AIs in GS1's list.

      Format: N is a digit; X, Y and Z are characters from GS1's character sets 82, 39 and 64; ".." means up to that many; brackets mark an optional part.

      GS1 Application Identifiers
      AIData titleDescriptionFormatFNC1 after it
      (00)SSCCSerial Shipping Container Code (SSCC)N18No
      (01)GTINGlobal Trade Item Number (GTIN)N14No
      (02)CONTENTGlobal Trade Item Number (GTIN) of contained trade itemsN14No
      (10)BATCH/LOTBatch or lot numberX..20Yes, unless last
      (11)PROD DATEProduction date (YYMMDD)N6No
      (15)BEST BEFORE or BEST BYBest before date (YYMMDD)N6No
      (17)USE BY or EXPIRYExpiration date (YYMMDD)N6No
      (21)SERIALSerial numberX..20Yes, unless last
      (37)COUNTCount of trade items or trade item pieces contained in a logistic unitN..8Yes, unless last
      (3103)NET WEIGHT (kg)Net weight, kilograms (variable measure trade item)N6No
      (400)ORDER NUMBERCustomers purchase order numberX..30Yes, unless last
      (410)SHIP TO LOCShip to / Deliver to Global Location Number (GLN)N13No
      (420)SHIP TO POSTShip to / Deliver to postal code within a single postal authorityX..20Yes, unless last

      Sources: GS1 Barcode Syntax Dictionary, release 2026-01-27, and the GS1 Application Identifiers vocabulary, version 1.2.

      Code 128 vs GS1-128

      GS1-128 is Code 128 with FNC1 in first position and data written as GS1 element strings, so software can split the fields.

      Code 128 and GS1-128 on Barcode.codes
      PropertyCode 128GS1-128
      First charactersStart characterStart character, then FNC1
      DataAny ASCII textGS1 element strings (AI and value)
      Scanner prefixNot GS1 data]C1
      Checks on this siteCharacters onlyAIs, lengths, check digits, dates and AI pairs

      Which One to Use

      Use GS1-128 when the barcode carries GS1 data for trading partners, such as an SSCC or a GTIN with a batch and dates. Use Code 128 for internal labels that only your own systems read.

      GS1-128 Labels and Printing

      For cartons and pallets scanned in general distribution, GS1 sets an X-dimension of 0.495 to 1.016 mm and a bar height of at least 31.75 mm, and the generator starts at those values.

      Test a Printed Label

      Print one label and scan it with the barcode reader or scanner on this site, which list each AI and value they find. This generator draws the barcode only, not the text blocks of a full logistic label.

      Frequently Asked Questions

      What Is a GS1-128 Barcode?

      A GS1-128 barcode is a Code 128 symbol that starts with FNC1 and carries GS1 element strings. GS1 uses it in distribution for data such as the GTIN, batch, dates and the SSCC.

      Why Does the Check Say Required AIs Are Not Satisfied?

      Some AIs are only valid with another one in the same barcode: a batch number (10), for example, needs (01), (02), (03), (8006) or (8026). GS1's syntax dictionary lists these rules, and the message names the AIs that would satisfy it.

      How Do I Enter a Weight Such as 1.5 Kilograms?

      Use AI (3103), net weight in kilograms with three decimal places, and type 1.5 in its amount field: the value becomes 001500. The fourth digit of the AI sets the number of decimal places.

      Which Check Digits Does a GS1-128 Barcode Have?

      Two kinds. Code 128 adds a mod 103 check character that is not shown in the text, and keys such as the GTIN and SSCC end with a GS1 check digit. The builder rejects a wrong GS1 check digit and marks it.

      Can I Check GS1-128 Data From My Scanner?

      Yes. Open Check GS1 data under the Application Identifiers and paste what your scanner sends, writing the group separator as {GS}; the AIs are checked and loaded. The barcode reader on this site also splits a GS1-128 image into AIs.

      Is This GS1-128 Generator Free?

      Yes. There is no account, watermark or download limit. The GTIN or SSCC you encode still has to come from your own GS1 Company Prefix.