GS1-128 Barcode Font (UCC/EAN)
GS1-128 (UCC/EAN) is a standard developed by the GS1 organization for exchanging data. This standard uses a list of Application Identifiers (AI) for defining the format, structure, and meaning of the data. For example, a Serial Shipping Container Code (SSCC) is identified by the AI 00, followed by 18 digits that comprise a GS1 company prefix and a serial reference. The GS1-128 barcode uses the Code 128 barcode symbology as the underlying barcode symbology and is also commonly known as UCC-128 and EAN-128 barcode.Barcode Font Names and Sizes
GS1-128 (UCC/EAN) uses the Code128 barcode fonts as shown below.- CCode128_S1
- CCode128_S2
- CCode128_S3
- CCode128_S4
- CCode128_S5
- CCode128_S6
- CCode128_S7
GS1-128 (UCC/EAN) Application Identifiers
AI (Application Identifiers) | Data | Data Constraints |
00 | Serial Shipping Container Code (SSCC-18) | 18 digits. |
01 | Global Trade Item Number | 14 digits. |
02 | Goods contained in another Unit | 14 digits. |
10 | Batch or Lot Number | Up to 20 Alphanumeric characters. |
11 | Production Date | YYMMDD |
12 | Due Date | YYMMDD |
13 | Packaging Date | YYMMDD |
15 | Sell By Date | YYMMDD |
17 | Expiration Date | YYMMDD |
20 | Product Variant | 2 digits. |
21 | Serial Number | Up to 20 Alphanumeric characters. |
22 | Health Industry Data | Up to 29 Alphanumeric characters. |
23n | Lot Number | 1 digit for the Length Indicator. And up to 19 digits for the data. |
240 | Additional Product ID assigned by Manufacturer | Up to 30 Alphanumeric characters. |
241 | Customer Part Number | Up to 30 Alphanumeric characters. |
250 | Secondary Serial Number | Up to 30 Alphanumeric characters. |
251 | Reference to Source Entity | Up to 30 Alphanumeric characters. |
30 | Quantity | Up to 8 digits |
310n | Net Weight - Kilograms | 1 digit for Decimal Point Position. And 6 digits for data. |
311n | Length/First Dimension - Meters | 1 digit for Decimal Point Position. And 6 digits for data. |
312n | Width/Diameter/2nd Dimension - Meters | 1 digit for Decimal Point Position. And 6 digits for data. |
313n | Depth/Thickness/Height/3rd Dimension - Meters | 1 digit for Decimal Point Position. And 6 digits for data. |
314n | Area - Square Meters | 1 digit for Decimal Point Position. And 6 digits for data. |
315n | Volume - Litres | 1 digit for Decimal Point Position. And 6 digits for data. |
316n | Volume - Cubic Meters | 1 digit for Decimal Point Position. And 6 digits for data. |
320n | Net Weight - Pounds | 1 digit for Decimal Point Position. And 6 digits for data. |
321n | Length/First Dimension - Inches | 1 digit for Decimal Point Position. And 6 digits for data. |
322n | Length/First Dimension - Feet | 1 digit for Decimal Point Position. And 6 digits for data. |
323n | Length/First Dimension - Yards | 1 digit for Decimal Point Position. And 6 digits for data. |
324n | Width/Diameter/Second Dimension - Inches | 1 digit for Decimal Point Position. And 6 digits for data. |
325n | Width/Diameter/Second Dimension - Feet | 1 digit for Decimal Point Position. And 6 digits for data. |
326n | Width/Diameter/Second Dimension - Yards | 1 digit for Decimal Point Position. And 6 digits for data. |
327n | Depth/Thickness/Third Dimension - Inches | 1 digit for Decimal Point Position. And 6 digits for data. |
328n | Depth/Thickness/Third Dimension - Feet | 1 digit for Decimal Point Position. And 6 digits for data. |
329n | Depth/Thickness/Third Dimension - Yards | 1 digit for Decimal Point Position. And 6 digits for data. |
330n | Gross Weight - Kilograms | 1 digit for Decimal Point Position. And 6 digits for data. |
331n | Length/First Dimension - Meters | 1 digit for Decimal Point Position. And 6 digits for data. |
332n | Width/Diameter/Second Dimension - Meters | 1 digit for Decimal Point Position. And 6 digits for data. |
333n | Depth/Thickness/Height/Third Dimension - Meters | 1 digit for Decimal Point Position. And 6 digits for data. |
334n | Area - Square Meters | 1 digit for Decimal Point Position. And 6 digits for data. |
335n | Volume - Litres | 1 digit for Decimal Point Position. And 6 digits for data. |
336n | Volume - Cubic Meters | 1 digit for Decimal Point Position. And 6 digits for data. |
337n | Kilograms per Square Meters | 1 digit for Decimal Point Position. And 6 digits for data. |
340n | Weight - Pounds | 1 digit for Decimal Point Position. And 6 digits for data. |
341n | Length/First Dimension - Inches | 1 digit for Decimal Point Position. And 6 digits for data. |
342n | Length/First Dimension - Feet | 1 digit for Decimal Point Position. And 6 digits for data. |
343n | Length/First Dimension - Yards | 1 digit for Decimal Point Position. And 6 digits for data. |
344n | Width/Diameter/Second Dimension - Inches | 1 digit for Decimal Point Position. And 6 digits for data. |
345n | Width/Diameter/Second Dimension - Feet | 1 digit for Decimal Point Position. And 6 digits for data. |
346n | Width/Diameter/Second Dimension - Yards | 1 digit for Decimal Point Position. And 6 digits for data. |
347n | Depth/Thickness/Height/Third Dimension - Inches | 1 digit for Decimal Point Position. And 6 digits for data. |
348n | Depth/Thickness/Height/Third Dimension - Feet | 1 digit for Decimal Point Position. And 6 digits for data. |
349n | Depth/Thickness/Height/Third Dimension - Yards | 1 digit for Decimal Point Position. And 6 digits for data. |
350n | Area - Square Inches | 1 digit for Decimal Point Position. And 6 digits for data. |
351n | Area - Square Feet | 1 digit for Decimal Point Position. And 6 digits for data. |
352n | Area - Square Yards | 1 digit for Decimal Point Position. And 6 digits for data. |
353n | Container Area - Square Inches | 1 digit for Decimal Point Position. And 6 digits for data. |
354n | Container Area - Square Feet | 1 digit for Decimal Point Position. And 6 digits for data. |
355n | Container Area - Square Yards | 1 digit for Decimal Point Position. And 6 digits for data. |
356n | Net Weight - Troy ounces | 1 digit for Decimal Point Position. And 6 digits for data. |
357n | Net Volume - Ounces | 1 digit for Decimal Point Position. And 6 digits for data. |
360n | Net Volume - Quarts | 1 digit for Decimal Point Position. And 6 digits for data. |
361n | Net Volume - Gallons | 1 digit for Decimal Point Position. And 6 digits for data. |
362n | Gross Volume - Quarts | 1 digit for Decimal Point Position. And 6 digits for data. |
363n | Gross Volume - Gallons | 1 digit for Decimal Point Position. And 6 digits for data. |
364n | Volume - Cubic Inches | 1 digit for Decimal Point Position. And 6 digits for data. |
365n | Volume - Cubic Feet | 1 digit for Decimal Point Position. And 6 digits for data. |
366n | Volume - Cubic Yards | 1 digit for Decimal Point Position. And 6 digits for data. |
367n | Gross Volume - Cubic Inches | 1 digit for Decimal Point Position. And 6 digits for data. |
368n | Gross Volume - Cubic Feet | 1 digit for Decimal Point Position. And 6 digits for data. |
369n | Gross Volume - Cubic Yards | 1 digit for Decimal Point Position. And 6 digits for data. |
37 | Number of Items Contained | Up to 8 digits. |
400 | Customer's Purchase Order Number | Up to 30 Alphanumeric characters |
401 | Consignment Number | Up to 30 Alphanumeric characters. |
402 | Shipment Identification Number | 17 digits. |
403 | Routing Code | Up to 30 Alphanumeric characters. |
410 | Ship to/Deliver to Location | 13 digits. |
411 | Bill to/Invoice to Location | 13 digits. |
412 | Purchased From Location | 13 digits. |
413 | Ship to/Deliver For Location | 13 digits. |
414 | Identification of a Physical Location | 13 digits. |
415 | Global Location Number | 13 digits. |
420 | Ship to/Deliver to Postal Code within a Single Postal Authority | Up to 9 Alphanumeric characters. |
421 | Ship to/Deliver to Postal Code With Three-Digit ISO Country Code | 3 digits Country Code. And up to 9 Alphanumeric characters. |
422 | Country of Origin of a Trade Item | 3 digits. |
423 | Country of Initial Processing | 3 digits |
424 | Country of Processing | 3 digits |
425 | Country of Disassembly | 3 digits. |
426 | Country Covering Full Process Chain | 3 digits. |
8001 | Roll products - Width, Length, Core Diameter, Direction and Splices | 14 digits. |
8002 | Electronic Serial ID for Cellular Mobile Telephones | Up to 20 Alphanumeric characters. |
8003 | EAN/UCC Returnable Asset Identifier | 14 digits. And up to 16 Alphanumeric characters. |
8004 | Global Individual Asset Identifier | Up to 30 Alphanumeric characters. |
8005 | Price per unit of measure | 6 digits |
8100 | Coupon Extended Code | 6 digits. |
8101 | Coupon Extended Code | 10 digits. |
8102 | Coupon Extended Code | 2 digits. |
90 | Information mutually agreed between Trading Partners | Up to 30 Alphanumeric characters. |
91 | Internal Use by Company | Up to 30 Alphanumeric characters. |
92 | Internal Use by Company | Up to 30 Alphanumeric characters. |
93 | Internal Use by Company | Up to 30 Alphanumeric characters. |
94 | Internal Use by Company | Up to 30 Alphanumeric characters. |
95 | Internal Use by Company | Up to 30 Alphanumeric characters. |
96 | Internal Use by Company | Up to 30 Alphanumeric characters. |
97 | Internal Use by Company | Up to 30 Alphanumeric characters. |
98 | Internal Use by Company | Up to 30 Alphanumeric characters. |
99 | Internal Use by Company | Up to 30 Alphanumeric characters. |
Using the GS1-128 (UCC/EAN) barcode font
It is recommended to use the Encoder or Excel VB macros provided to generate GS1-128 (UCC/EAN) barcodes. There are several steps required for transforming the input data to characters recognized by the barcode font. For example, to encode AI 00 (Serial Shipping Container Code) with the data 123456789012345675Input (Using the Encoder or VB macros):
(00)123456789012345675
The brackets are used to identify the AI(Application Identifier) in the Encoder.
Output:
The last digit '5' is a MOD 10 check digit that can be entered (as shown above) or calculated automatically by ConnectCode Barcode Fonts package. For more information, see the MOD 10 Check Digit subsection.
Concatenating multiple AIs
Input (Using the Encoder or VB macros):
(00)123456789012345675(12)1A
Multiple AIs can be concatenated together as shown above. A total of up to 8 AIs concatenation is supported by ConnectCode.
Output:
GS1-128 compliance
A GS1-128 barcode may contain more than 1 AIs and an FNC1 character is usually used to separate them. The GS1-128 specification further specifies that an FNC1 character is not required following an AI with fixed-length data. However, some early GS1-128 barcodes have adopted the format where an FNC1 character is always used to separate the AIs in the same barcode.ConnectCode supports the different variations through a Strict GS1 128 Compliance option. When this option is enabled, the barcode generated adheres strictly to the UCCEAN/GS1-128 specification. Otherwise, it generates a barcode that always uses the FNC1 character as the separator. If you are new to this barcode, we recommend using the Strict GS1 Compliance option, in compliance strictly to the specification.
Default/Legacy Implementation
The following shows the structure of the GS1-128 (UCCEAN) barcode generated using the default/legacy implementation.GS1-128 (UCCEAN) Barcode (Default Implementation) |
Start Char (Start Markers for Code 128 Subset A/B/C) |
FNC1 Marker (Separator) |
Application Identifier (AI) |
Actual Data Following AI |
FNC1 Marker (Separator) |
Application Identifier (AI) |
Actual Data Following AI |
Check Char |
Stop Char |
Strict GS1 128 Compliance
The following shows the structures of GS1-128 (UCCEAN) barcodes generated using the Strict GS1 128 Compliance mode. This implementation is accepted by organizations that require a stricter implementation. The main differences are1. This mode may create even shorter barcodes because it employs subset C compression whenever the data consists purely of digits.
2. Also, the FNC1 character, a special marker used to separate multiple application identifiers in the barcode, is used only when the particular application identifier is associated with variable data.
Example - Structure of a Fixed-Length Data Application Identifier
GS1-128 / UCCEAN Barcode (Fixed-Length Data) |
Start C Marker |
FNC1 Marker (Separator) |
1st Application Identifier (AI) |
Fixed-Length Data Following 1st AI |
2nd Application Identifier (AI) |
Actual Data Following 2nd AI |
Check Char |
Stop Char |
Example - Structure of a Variable Length Data Application Identifer
GS1-128 / UCCEAN Barcode (Variable Length Data) |
Start C Marker |
FNC1 Marker (Separator) |
1st Application Identifier (AI) |
Variable Length Data Following 1st AI |
FNC1 Marker (Separator) |
2nd Application Identifier (AI) |
Actual Data Following 2nd AI |
Check Char |
Stop Char |
Strict GS1 128 Compliance availability
This option is available in most of the utilities of the barcode fonts package, as shown below. If the option is not provided, Strict GS1 Compliance is assumed.- Font Encoder
- .Net Dynamic Link Libraries/.NET Core
- Microsoft Excel Visual Basic Applications integration
- Crystal Report Formulas
- PowerBuilder/COM
- SQL Server Reporting Services
- Oracle PL/SQL
- Javascript (Angular/React/Polymer)
- WebAssembly