UCC/EAN Barcode Font (GS1-128)
UCC EAN is an international barcode format used widely by many different companies. It uses a list of Application Identifiers (AI) for identifying the structure and format of the data in the barcode. For example, AI 00 is used for identifying a 18 digits Serial Shipping Container Code.The UCC/EAN uses the Code 128 barcode font and specifically the Code 128 Auto character set.
Barcode Font Names and Sizes
UCC/EAN uses the Code128 barcode fonts as shown below.- CCode128_S1
- CCode128_S2
- CCode128_S3
- CCode128_S4
- CCode128_S5
- CCode128_S6
- CCode128_S7
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 UCC/EAN barcode font
It is recommended to use the Encoder or VB macros provided to generate UCC/EAN barcodes as 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 123456789012345675
Input (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
UCCEAN (also known as GS1 128 barcode), is a very important barcode used by many logistics, warehouses and manufacturing firms in their daily activities. Each of these companies may implement its own warehouse management systems differently and adopt different UCCEAN barcode scanning algorithms. Some may implement the scanning algorithms very strictly while others may allow flexibility in the barcode as long as it adheres to the general GS1 specifications.
ConnectCode supports the different variations through a Strict GS1 128 Compliance option. When this option is selected, the barcode generated adheres strictly to the UCCEAN / GS1 128 specifications. Otherwise it generates a barcode that can be read by the scanning algorithm of many legacy systems. This gives users a choice to choose the preferred implementation of the UCCEAN barcode as required by different organizations with various scanning devices and systems.
If you are new to this barcode, you may want to use the default implementation and leave the checkbox unchecked. In the event that the default (legacy) implementation does not meet the strict conditions required by some companies, you may want to turn on the Strict GS1 128 Compliance option.
Default/Legacy Implementation
The following shows the structure of the UCCEAN barcode generated using the default / legacy implementation. This implementation is usually accepted by most warehouse and logistics firms.| 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 UCCEAN barcodes generated using the Strict GS1 128 Compliance mode. This implementation is accepted by organizations that require a stricter implementation. The main differences are
1. 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 Identifer
| 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
| 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 from ConnectCode Barcode Fonts version 5.5. It is supported in the following components :- Font Encoder
- .Net Dynamic Link Libraries
- Microsoft Excel Visual Basic Applications integration
- Crystal Report Formulas
