GS1 128

GS1-128 Barcode Generator

With Labeljoy you can easily generate GS1-128 barcodes.GS1-128 is an application standard of the GS1 implementation that uses the Code 128 Barcode specification.

GS1-128 uses Application Identifiers to include additional data such as expiration dates, batch number, quantity, weight and many other types of information.

Note: It is beyond the scope of this help file to explore all the details of the GS1-128 symbology specification. For more information please refer to the official web site of the GS1 authority:

GS1 Barcode

How to generate GS1-128 Barcodes

To generate a GS1-128 compliant barcode symbol with Labeljoy, you have to enter the text in a visually readable format. Labeljoy validates the text through its internal GS1-128 validation engine and generates the corresponding icon or displays an error message describing the problem.

For example, by entering the text (00)123456789012345678 Labeljoy will create a GS1-128 barcode symbol that will comply with Application Identifier (00) Serial Shipping Container Code (SSCC-18).

For further information please refer to the guide “Generating GS1-128 Barcodes“.

Modulo 10 check digits:
  • Some AI’s (Application identifiers) require a modulo 10 check digit. When required, Labeljoy will compute the check digit regardless of what was the input.
  • For example, the SSCC-18 code above needs a check digit in the last position which is actually 5 and not 8. In such scenario no error message will be displayed, instead Labeljoy will simply replace the check digit with the correct one.
  • So if you do not know how to calculate the check digit, just enter any number.
FNC1 separators:
  • When two or more AI’s (Application Identifiers) need to be encoded in a single symbol, the GS1-128 specification may require one or more FNC1 separator characters. Labeljoy GS1-128 barcode generator will automatically detect where FNC1 separator characters are needed and will add them accordingly.
  • No extra input is required by Labeljoy to correctly handle FNC1 separators.
  • IMPORTANT: FNC1 separators have no corresponding visually readable text, they are only encoded as a barcode symbol. The interpretation of the FNC1 character may vary depending on the settings of the barcode scanner, although it is often output as ASCII character 29.
  • If you need to create a custom symbol using the FNC1 separator character, please refer to the EAN-128 symbology.

GS1 Barcode Symbols

Text concatenation:
When an GS1-128 barcode element is generated by concatenating fields or counters, the following rules apply:

  • Text length must not exceed 255 characters.
  • The text must take into account the GS1-128 specification.

If a value is found that does not comply with the above rules, the barcode will not be displayed.

GS1-128 Barcode

GS1-128 symbol encoding the text (00)123456789012345678, which corresponds to AI 00 (SSCC-18). Note that the last digit is 5 in the symbol since it is the correct Modulo 10 check digit.

GS1-128 symbol - two Application Identifiers

GS1-128 symbol encoding a concatenation of two Application Identifiers: AI 30 (Quantity Each) and AI 21 (Serial Number). Note that in this case an FNC1 separator character is added right before the start of AI 21 (not visible in the human readable text).

GS1-128 symbol - 3 Application Identifiers

GS1-128 symbol encoding a concatenation of three Application Identifiers: AI 01 (Shipping Container Code) and 2 more like the previous image. Note that in this case no FNC1 separator is needed before the start of AI 30.

  • Labeljoy requires the input of up to 255 characters of alphanumeric text to create the barcode. Enter the text in the text box.
  • The visually readable text can be displayed or hidden below or above the icon , according to the settings specified in the Text combo box.
  • The Check AI sequence check box enforces an additional GS1-128 rule that regulates the concatenation of certain AI’s.
  • For example, when using AI 02 (Number of containers) the symbol should also encode AI 00 (Serial Shipping Container Code) and AI 37 (Number of Units Contained).
  • Also, AI 02 should never be encoded in the same symbol with AI 01 (Shipping Container Code) and 8006 (Component of an Article) since they refer to data considered meaningless when mixed.
  • Keep this check box activated to create GS1-128 symbols that fully comply with the original standard.