Message Forum




Barcode Printers


Contact Us

Legal Info

Privacy Policy


See Also:    Symbology Index

Quick Link:   Background    Structure    Application Identifier Reference


UCC/EAN-128 was developed to provide a worldwide format and standard for exchanging common data between companies. While other bar codes simply encode data with no respect for what the data represents, UCC/EAN-128 encodes data and encodes what that data represents.

For example, you could encode the weight 20.56 pounds in a Standard 2 of 5 bar code by simply encoding the digits 2056. However, an application reading the bar code would not know whether 2056 is a product code, a price, a time (2056 could be 20:56, which is 8:56PM), a lot number or, in this case, the weight in pounds. Even if it did know it was a weight, the application would not know whether the number represented 2056 pounds or 20.56 pounds--or perhaps the weight was expressed in kilograms.

Of course, a system may implement some kind of internal standard. Perhaps a prefix of "1" before the data (i.e. 12056) would mean the data that followed was a weight in pounds with the last two digits being after the decimal point. However, if this bar code was printed on the product and shipped to a customer, the customer wouldn't have any way to interpret the data unless the customer was informed about the internal standard and implemented it. This would require customizations on each customer's systems, not to mention of downstream systems (what about the customer of your customer?).

As you can see, encoding the data in a bar code is not a problem -- the problem is decoding the bar code afterward. More importantly, the problem is that anyone should be able to decode the bar code with no modifications necessary to their system.

UCC/EAN-128 solves this problem. UCC/EAN-128 has a list of "Application Identifiers" (AI). Each AI tells the system what kind of data will follow and in what format. For example, AI 320 indicates that the data that follows is a net weight in pounds. The next digit indicates the number of digits after the decimal point, followed by 6 digits which express the weight. In our example above, 20.56 pounds would be expressed as AI 3202 (the trailing 2 means there are 2 digits after the decimal point), followed by 002056 which represents the weight right-justified within a 6-digit field. Thus our above example becomes UCC/EAN-128 3202002056. This UCC/EAN-128 could be scanned and successfully interpreted by any UCC/EAN-128-compatible system without modification.

In addition to the advantage of compatibility worldwide between users of UCC/EAN-128, the format has the benefit of being able to be expanded without making existing systems obsolete. If a new Application Identifier is needed, it can simply be added to the standard. Existing applications using existing AI's will not be adversely affected. That is, the 3202 AI still will apply for a weight in pounds with two decimal points of accuracy.

UCC/EAN-128 encodes data using the Code 128 symbology. UCC/EAN-128 isn't, in and of itself, a symbology--rather it is a standard that defines the format of a Code 128 bar code. That is to say, the symbology is Code 128 but the format of the data encoded within the Code 128 bar code conforms to the UCC/EAN-128 standard.

    NOTE: A UCC/EAN-128 can be read by any scanner or program capable of reading a Code 128. However, it's the responsibility of the application to recognize the scanned Code 128 bar code as one conforming to the UCC/EAN-128 standard and interpret it as such.


As mentioned above, a UCC/EAN-128 symbol is, in fact, a Code 128 bar code. The UCC/EAN-128 symbol has the following Code 128 structure:

  1. A Code-128 Start character (A, B, or C).
  2. A Code-128 FNC1 character (character 102).
  3. Application Identifier (from AI table corresponding to data to be encoded).
  4. Data to be encoded (format depends on AI).
  5. A Code-128 checksum character.

Note that, in addition, there must be leading and trailing "white space" in accordance with the Code 128 standard.


The following table is a summary of valid Application Identifiers and the format of the data using that AI. Some AI's include a clickable link which you may click to obtain more detailed information about the AI and/or the format of its data.

Note that some AI numbers contain an 'x' or a 'y' following the AI in the AI column. This means that a single digit must be appended to the AI, the digit having the following meaning:

    x: A single digit indicating the length of the data field y: A single digit indicating the number of decimal points in the data field

All dates are expressed in the format of YYMMDD. Any YY value in the range of 00-50 refers to the years 2000-2050 whereas YY values in the range of 51-99 refer to the years 1951-1999. It is the responsibility of the application to correctly handle the data-conversion/Y2K issue.

AIAI DescriptionData Structure After AI Code
00Serial Shipping Container Code (SSCC-18)18 digits
01Shipping Contained Code (SSCC-14)14 Digits
02Number of containers contained in another unit (used with AI 37)14 Digits
10Batch Numbers1-20 Alphanumeric
11Production Date6 Digits: YYMMDD
13Packaging Date6 Digits: YYMMDD
15Sell By Date (Quality Control)6 Digits: YYMMDD
17Expiration Date (Safety Control)6 Digits: YYMMDD
20Product Variant2 Digits
21Serial Number1-20 Alphanumeric
22HIBCC Quantity, Date, Batch and Link1-29 Alphanumeric
23xLot Number1-19 Alphanumeric
240Additional Product Identification1-30 Alphanumeric
250Second Serial Number1-30 Alphanumeric
30Quantity Each-
310yProduct Net Weight in Kg6 Digits
311yProduct Length/1st Dimension (Meters)6 Digits
312yProduct Width/Diameter/2nd Dimension (Meters)6 Digits
313yProduct Depth/Thickness/3rd Dimension (Meters)6 Digits
314yProduct Area (Square Meters)6 Digits
315yProduct Volume (Liters)6 Digits
316yProduct Volume (Cubic Meters)6 Digits
320yProduct Net Weight (Pounds)6 Digits
321yProduct Length/1st Dimension (Inches)6 Digits
322yProduct Length/1st Dimension (Feet)6 Digits
323yProduct Length/1st Dimension in (Yards)6 Digits
324yProduct Width/Diamater/2nd Dimension (Inches)6 Digits
325yProduct Width/Diameter/2nd Dimension (Feet)6 Digits
326yProduct Width/Diameter/2nd Dimension (Yards)6 Digits
327yProduct Depth/Thickness/Height/3rd Dimension (Inches)6 Digits
328yProduct Depth/Thickness/Height/3rd Dimension (Feet)6 Digits
329yProduct Depth/Thickness/Height/3rd Dimension (Yards)6 Digits
330yContainer Gross Weight (Kg)6 Digits
331yContainer Length/1st Dimension (Meters)6 Digits
332yContainer Width/Diameter/2nd Dimension (Meters)6 Digits
333yContainer Depth/Thickness/3rd Dimension (Meters)6 Digits
334yContainer Area (Square Meters)6 Digits
335yContainer Gross Volume (Liters)6 Digits
336yContainer Gross Volume (Cubic Meters)6 Digits
340yContainer Gross Weight (Pounds)6 Digits
341yContainer Length/1st Dimension (Inches)6 Digits
342yContainer Length/1st Dimension (Feet)6 Digits
343yContainer Length/1st Dimension in (Yards) 6 Digits
344yContainer Width/Diamater/2nd Dimension (Inches)6 Digits
345yContainer Width/Diameter/2nd Dimension (Feet)6 Digits
346yContainer Width/Diameter/2nd Dimension (Yards)6 Digits
347yContainer Depth/Thickness/Height/3rd Dimension (Inches)6 Digits
348yContainer Depth/Thickness/Height/3rd Dimension (Feet)6 Digits
349yContainer Depth/Thickness/Height/3rd Dimension (Yards)6 Digits
350yProduct Area (Square Inches)6 Digits
351yProduct Area (Square Feet)6 Digits
352yProduct Area (Square Yards)6 Digits
353yContainer Area (Square Inches)6 Digits
354yContainer Area (Square Feet)6 Digits
355yContainer Area (Suqare Yards)6 Digits
356yNet Weight (Troy Ounces)6 Digits
360yProduct Volume (Quarts)6 Digits
361yProduct Volume (Gallons)6 Digits
362yContainer Gross Volume (Quarts)6 Digits
363yContainer Gross Volume (Gallons)6 Digits
364yProduct Volume (Cubic Inches)6 Digits
365yProduct Volume (Cubic Feet)6 Digits
366yProduct Volume (Cubic Yards)6 Digits
367yContainer Gross Volume (Cubic Inches)6 Digits
368yContainer Gross Volume (Cubic Feet)6 Digits
369yContainer Gross Volume (Cubic Yards)6 Digits
37Number of Units Contained (Used with AI 02)1-8 Digits
400Customer Purchase Order Number1-29 Alphanumeric
410Ship To/Deliver To Location Code (EAN13 or DUNS code)13 Digits
411Bill To/Invoice Location Code (EAN13 or DUNS code)13 Digits
412Purchase From Location Code (EAN13 or DUNS code)13 Digits
420Ship To/Deliver To Postal Code (Single Postal Authority)1-9 Alphanumeric
421Ship To/Deliver To Postal Code (Multiple Postal Authority)4-12 Alphanumeric
8001Roll Products - Width/Length/Core Diameter14 Digits
8002Electronic Serial Number (ESN) for Cellular Phone1-20 Alphanumeric
8003UPC/EAN Number and Serial Number of Returnable Asset14 Digit UPC +1-16 Alphanumeric Serial Number
8004UPC/EAN Serial Identification1-30 Alphanumeric
8005Price per Unit of Measure6 Digits
8100Coupon Extended Code: Number System and Offer6 Digits
8101Coupon Extended Code: Number System, Offer, End of Offer10 Digits
8102Coupon Extended Code: Number System preceeded by 02 Digits
90Mutually Agreed Between Trading Partners1-30 Alphanumeric
91Internal Company Codes1-30 Alphanumeric
92Internal Company Codes1-30 Alphanumeric
93Internal Company Codes1-30 Alphanumeric
94Internal Company Codes1-30 Alphanumeric
95Internal Company Carrieres1-30 Alphanumeric
96Internal Company Carrieres1-30 Alphanumeric
97Internal Company Codes1-30 Alphanumeric
98Internal Company Codes1-30 Alphanumeric
99Internal Company Codes1-30 Alphanumeric


The Serial Shipping Container Code is used to identify individual shipping containers. This is used, generally, to establish a number that is unique worldwide to track a specific container.

The 18 digits of the SSCC-18 data have the following format:

  1. Packaging Type (1 character). 0=Case or carton. 1=Pallet (Larger than a case). 2=Container (larger than a pallet). 3=Undefined. 4=Internal company use. 5-8=Reserved. 9=Variable container.
  2. UPC/EAN Manufacturer Number (Variable length). The UPC/EAN code assigned to the manufacturer. This is the same company code used in EAN-8/EAN-13/UPC-A bar codes.
  3. Serial Number (Variable Length). This is a unique serial number assigned by the manufacturer.
  4. Data Check Character (1 Character). This is a check character
    NOTE 1: The Manufactruer Number and Serial Number vary depending on country or numbering authority, but the total length of the two fields together is always 16 digits. Thus if the Manufacturer Number is 8 digits in length, the Serial Number will also be 8 digits in lenth. If the Manufactruer Number is 5 characters in length, the Serial Number must be 11 characters in length.

    NOTE 2: Keep in mind that this is used to establish a unique product/serial number for a container, not a specific product. Generally, a container identified by an SSCC-18 code will contain multiple products. This code only uniquely identifies the container, not the products within.

Note that a packaging type of "9" refers to a "Variable Container." A variable container is one which contains a variable number of products. The actual number and type of products is specified within this record and quantity/measurement information is speicified with AI 01 in conjunction with AI's in the 30-32 range.


The SSCC-14 code is identical to SSCC-18 (see above) except that the total length of the data is 14 digits instead of 18. This means the total length of the Manufactruer Code and Serial Number must always be 12 rather than 16. Since the Manufacturer Code cannot be changed (since it is assigned by a numbering authority) this means that an SSCC-14 code will have a serial number 4 digits shorter in length than an SSCC-18 code.


The data contained in an AI=10 is a batch or lot number. This can be any batch, lot, shift, or location code (or a combination thereof) used by the manufacturer to identify a batch of products.


These four AI's allow the manufacturer to encode the date a product was produced and packaged and, subsequently, the recommended "Sell By" date and Expiration date. Note that the "Sell By" date refers to the date that the product should be sold by from a quality-control standpoint. The "Expiration Date" refers to the date that product should be used by from a safety standpoint. Thus the "Sell By" date for a carton of milk might be 010510 (May 10th, 2001) and the Expiration Date might be 010517 (May 17th, 2001). This means that the product should be sold by May 10th, but can be safely used by the consumer until May 17th.

    NOTE 1: All dates are expressed in the format of YYMMDD. Any YY value in the range of 00-50 refers to the years 2000-2050 whereas YY values in the range of 51-99 refer to the years 1951-1999. It is the responsibility of the application to correctly handle the data-conversion/Y2K issue.

    NOTE 2: If the system wants to express only year and month, the DD field should be filled with 00.


The Product Variation code AI is used to differentiate a product where such differentiation is necessary, but where the differentiation does not justify an entirely new UPC/EAN number.

For example, a given product may be a basic cellular phone kit. For a brief amount of time, a promotion is instituted whereby the kit includes an additional free battery. The manufacturer wants this product to be recognized and sold by distributors as the same product as always at the same price-thus there is no reason to create a new UPC/EAN code for the product. However, it is desirable to be able to identify which "versions" of the kit include the extra free battery. This is an example of where a Product Variation AI would be used.

The actual variation code must be 2 digits in length, in the range of 00 to 99. The value assigned to the variation code is left to the manufacturer to decide-however, UCC/EAN specifications dictate that any variation code assigned and used by a manufacturer should not be reused for another product variation until at least one year has passed since the code was last used on a previous variation. This avoids the possibility of confusion of product variation codes as old inventory is shipped to distributors and sold to customers.


The Serial Number AI is used to uniquely identify a product. A serial number, combined with a UPC/EAN bar code, uniquely identifies the product for the life of the unit. The value and format of the serial number is left to the manufacturer's discretion.


The Health Industry Business Communications Council (HIBCC) code is used to encode optional quantity, data, lot/batch, and serial numbers using a HIBCC-defined structure. For detailed information about the format of the structure, contact the HIBCC.


This AI is scheduled to be removed from the UCC/EAN-128 standard. It is mentioned here for reference purposes in handling legacy systems. This AI serves essentially the same purpose as AI 10 (Batch/Lot Number). New systems should use AI 10 rather than this AI.

The AI is appended with an additional digit that creates an AI from 230 to 239. The value of the third character in the AI is calculated based on the following formula:

    x = (Length of Lot Number - 1) / 2

The length of the lot number must always be odd. If the lot number has an even number of digits, a 0 must be added to the left-hand side of the lot number to make its length odd. The actual length of the lot number may be from 1 to 19 characters long-as long as the number of characters is odd.

Thus if the lot number were 41345, the total length of the lot number would be 5. (5-1) /2 = 2, so the AI would be 231.

    NOTE: This AI is scheduled to be removed from the UCC/EAN-128 standard. It is mentioned here for reference purposes in handling legacy systems. This AI serves essentially the same purpose as AI 10 (Batch/Lot Number). New systems should use AI 10 rather than this AI.


AI 240 may be used by the manufacturer to assign an additional identification number to the product. This identification number is not necessarily unique to the product. It may be a configuration number, catalog number, or other internal reference number.


AI 250 may be used to attach a secondary serial number to a product by the manufacturer. This value may represent, for example, a serial number of the motherboard within a computer. It's an additional unique serial number associated with the product-probably related to some internal component of the product.

    NOTE: It is the manufacturer's repsonsibility to link the secondary serial number to the UCC/EAN code of the product. Additionally, it is not recommended to use the secondary serial number alone in an external environment since two or more manufacturers may use the same secondary serial number. For example, Cool Computers may assign serial numbers to the motherboards within their computers starting at 1000 and counting up. Meanwhile, Nifty Microwaves may assign serial numbers to the keyboards within their microwave ovens starting at 500 and counting up. Thus, the Secondary Serial Number 1500 may refer to either one of Cool Computer's motherboards or one of Nifty Microwaves' keyboards depending on the context.


A reasonably large number of AI's are dedicated to encoding the weight and size (dimensions) of a product. These values may be expressed either in metric or U.S. measuring systems depending on the AI chosen. When using the U.S. system, you may choose to encode dimensions in a number of units (inches, feet, yards).

The Product AI's are used to encode the specifications of a single product.


Similar to the Product Weight/Dimension AI's, there are a set of Container Weight/Dimension AI's. The same U.S./Metric and unit options apply.

The Container AI's are used to encode the specifications of a container containing additional products.


The Customer Purchase Order AI is used to encode the buyer's purchase order or order number. This can be encoded and attached to a product or container by the seller as a service to the buyer so that they can quickly identify incoming product.


The Ship To/Deliver To AI is used to encode a location code which identifies to where the product or container is to be shipped. The location code is the EAN13 Location Code and must be exactly 13 digits in length.


This AI encodes the location code of the location that should be billed or invoiced. The location code is the EAN13 Location Code and must be exactly 13 digits in length.


This AI encodes the location code of the party that is selling or distributing the product or container. The location code is the EAN13 Location Code and must be exactly 13 digits in length.


This AI encodes the postal code (zip code) of the party that the product or container is to be shipped to. The Postal Code is normally assigned by some government-sanctioned postal authority within the country.

This AI should be used if both the sender and the receiver are under the same postal authority-that is to say, they are within the same country. If the sender and receiver are in two different countries, AI 421 should be used.


This AI encodes the 3-digit ISO country code and postal code (zip code) of the party that the product or container is to be shipped to. This performs the same function as AI 420 but adds the ISO country code so that there is no confusion as to which country the postal code belongs to.

This AI should be used when shipping products or containers across international boundaries.


Rolls of paper, carpets, and similar products are treated as variably measured products. The actual identification of the product is identified with a 01 AI. The 8001 AI provides additional information about a specific roll. The format of the data contained in AI 8001 is as follows:

1-4 Slit width (mm). This is the width of the roll.
5-9 Actual length (m). This is the total length of product on the roll.
10-12 Internal core diameter (mm). This is the diameter of the core (tube) around which the product is wrapped.
13 Winding Direction. This indicates whether the face of the product is out or in around the roll. 0=Face Out, 1=Face in, 9=Unknown or not applicable.
14 Number of splices. This indicates the number of splices on the roll, assuming the number of splices is 8 or less. This digit is 9 if there are 9 or more splices, or the number of splices is unknown.


AI 8002 is used on cellular telephones to encode the phone's unique Electronic Serial Number (ESN). The ESN of each cellular phone should be unique.

The bar code containing this AI is usually printed on the cellular phone itself. It is often visible when the battery of the phone is removed. The same bar code is often printed on the product packaging that the cellular phone was sold in.


AI 8003 is used for the categorization of returnable assets by owners. This may include such objects as pallets, refillable water containers, or any other product that is transferred temporarily to a customer with the expectation that it will be returned.

The structure of an AI data field is:

1 Always the digit "0". This is a filler character.
2-14 The UCC/EAN asset type number. This may identify the type of asset. For example, the type of pallet, container, etc.
15 up to 29 This is a serial number assigned by the owner. It must be unique for the given asset type.


AI 8004 is similar to AI 8003, but only a serial number is encoded. It is the responsibility of the owner/system to tie a serial number to a specific type of asset since that information is not included in the AI. That is to say, serial number 1 may refer to a pallet, serial numbe 2 may refer to a refillable water container, etc. This information must be handled internally by the system-it is not handled by the AI as is the case of AI 8003.


AI 90 is used by mutual consent between trading partners to encode information that can't be encoded using other AI's because no AI exists to properly encode the data.

The format of this AI is left to the discretion of the mutual trading partners.


These AI's are reserved for internal company use. A company may use these AI's as they see fit. Likewise, they may determine the format of the data.

© Copyright 2006, Inc. All Rights Reserved.
Information provided "as-is" without warranty. Please
see details.
Contact us for usage and copy permission.