[Getting A Barcode]
[UPC Version A]
[UPC Version E]
[UPC Other Versions]
BarCode 1
Universal Product Code (UPC)
and EAN Article Numbering Code (EAN) Page
[EAN 13 & 8]
[EAN 128]
[EAN Addresses]
[Other Resources]

[BarCode 1 Sponsor]
This Page Brought To You By

[BarCode 1]


The Universal Product Code was the first bar code symbology widely adopted. Its birth is usually set at April 3, 1973, when the grocery industry formally established UPC as the standard bar code symbology for product marking. Foreign interest in UPC led to the adoption of the EAN code format, similar to UPC, in December 1976.

2005 Sunrise and the Global Trade Item Number initiatives from the UCC will begin on January 1, 2005. This is the "fourteen digit U.P.C." that everyone is talking about. There are quite a few misconceptions and considerable misinformation about the effect of this change. In a nutshell, if you are a manufacturer of a product that has an existing 8 or 12-digit UPC barcode, don't worry. You do not have to change anything. However, if you are a retailer or wholesaler with scanners, you potentially are affected. You will need to ensure that scanners are able to decode 8, 12, 13 and 14-digit barcodes (most scanners sold for the last 5 years can do this) and that database systems can handle the extra digits. Gregg London was kind enough to share an excellent white paper on the subject. Once January 1, 2005 comes, both EAN and UPC labels should scan properly worldwide.

There are now five versions of UPC and two versions of EAN. The Japanese Article Numbering (JAN) code has a single version identical to one of the EAN versions with the flag characters set to ``49''.

UPC and EAN symbols are fixed in length, can only encode numbers, and are continuous symbologies using four element widths.
UPC & EAN Pictures
UPC version A symbols have 10 digits plus two overhead digits while EAN symbols have 12 digits and one overhead digit. The first overhead digit of a UPC version A symbol is a number related to the type of product while an EAN symbol uses the first two characters to designate the country of the EAN International organization issuing the number. UPC is in fact a subset of the more general EAN code. Scanners equipped to read EAN symbols can read UPC symbols as well. However, UPC scanners will not necessarily read EAN symbols.

The UPC symbology was designed to make it ideal for coding products. UPC can be printed on packages using a variety of printing processes. The format allows the symbol to be scanned with any package orientation. Omnidirectional scanning allows any package orientation provided the symbol faces the scanner. The UPC format can be scanned by hand-held wands and can be printed by equipment in the store. Version A of the symbology has a First Pass Read Rate of 99% using a fixed laser scanner and has a substitution error rate of less than 1 error in 10,000 scanned symbols.

Nominal X dimension is 13 mils. A magnification factor of 0.8 to 2.0 is allowed and, as a result, makes a printable range of X dimension values of 10.4 to 24 mils. In other words, the nominal size of a UPC symbol is 1.469" wide x 1.02" high. The minimum recommended size is 80% of the nominal size or 1.175" wide x .816" high. The maximum recommended size is 200% of the nominal size or 2.938" wide x 2.04" high. Larger UPC's scan better. Smaller UPC's do not scan as well or not at all.

The UPC format can be printed using a variety of printing techniques because it allows for different ink spreading. The amount of ink spreading depends on printing press conditions, amount and viscosity of ink and other factors which are difficult to precisely control. The UPC symbol is decoded by measuring the distance from leading edges to leading edge of bars, trailing edge to trailing edge of bars and leading edge to leading edge of characters. Since relative distances are measured for decoding, uniform ink spread will not affect the symbol's readability. However, excessive ink spread will make the spaces very small to the point that the reader will be unable to resolve them. Since UPC is a continuous code with exacting tolerances, it is more difficult to print on any equipment except printing presses.

How Do I Get A Bar Code Number For My Product?

See the Quick Tour FAQ for the answer.

How Do I Get A List Of All The Product Codes And Their Respective Manufacturers?

See the Quick Tour FAQ for the answer.

Do I Have To Pay To Use Barcodes For Internal Uses Like Inventory?

See the Quick Tour FAQ for the answer.

UPC Version A

UPC version A is the basic version of UPC and is usually the version seen on grocery store items. The symbology is used to encode the 10 digit Universal Product Code. An eleventh digit indicates the type of product, and a twelfth digit is a modulo check digit. The symbol is divided into two halves, each containing 5 digits. The two six-digit patterns are surrounded by left, center and right guard patterns. The left six digits use odd parity encodation while the right six digits use even parity encodation.. The first digit is the UPC number system digit related to the type of product (0 for groceries, 3 for drugs, etc.). The next 5 digits are the UPC manufacturer's code. The first five digits of the right half are the product code. The final digit is the check digit. Although UPC A is continuous, the left and right halves of the symbol can be independently decoded.

A digit is coded as a sequence of two bars and two spaces within a space 7 modules wide. Bar and space widths may be 12, 3, or 4 modules wide. This results in 20 possible bar-space combinations. Ten of these patterns are used for the left odd parity digits and ten are used for the right even parity digits. The left digits always start with a space, while the right digits always start with a bar.

Left Digits
Odd Parity
S B S B
Right Digit
Even Parity
B S B S
0 3 2 1 1 3 2 1 1
1 2 2 2 1 2 2 2 1
2 2 1 2 2 2 1 2 2
3 1 4 1 1 1 4 1 1
4 1 1 3 2 1 1 3 2
5 1 2 3 1 1 2 3 1
6 1 1 1 4 1 1 1 4
7 1 3 1 2 1 3 1 2
8 1 2 1 3 1 2 1 3
9 3 1 1 2 3 1 1 2

A typical UPC Version A symbol has center guard bars in the center of the symbol which are longer than the other bars. This divides the symbol into a right and left half. This division allows the symbol to scan in any orientation. The moving beam laser bar code reader in grocery stores produces orthogonal scanning beams either in a cross, starburst, or figure-eight. At least one beam will then pass through each half of the symbol, since the symbol's height is at least equal to half of the length of the symbol.

The height of the symbol should be at least half the length of the symbol. Sometimes the symbol's height is shortened to fit into the design of the package. This truncation of symbol height affects the ability to scan the symbol in any orientation, and will generally reduce the First Pass Read Rate.

The Quiet Zone should be 9 modules on the left and right of the symbol.

Version A may include either a 2 digit or a 5 digit supplemental encodation. These extra digits are primarily used on periodicals and books.

More information about Version A is available here.

UPC Version E

UPC version E is the next most common version of UPC. It is a zero suppression version of UPC. It is intended to be used on packaging which would be otherwise too small to use one of the other versions. The code is smaller because it drops out zeros which would otherwise occur in a symbol. For example, the code 59300-00066 would be encoded as 593663. The last digit (3 in the example) indicates the type of compression. Guard bars precede and follow the data (no middle guard bars). The digits are coded following the parity pattern EVEN, EVEN, ODD, ODD, EVEN, ODD. The data is enclosed between two left-hand guard bars and three right-hand guard bars. The six digit number is always preceded by a 0 and followed by the check digit. The way the check digit is computed is by expanding the type E to a type A, then doing the regular check.

More information about Version E along with a converter is available here.

There is a good explanation of Zero Suppression at the Infinity Graphics site with a table that shows how a Version A number may be reduced to Version E if the Numbering System Character is "0".

Other UPC Versions

There are three other versions of UPC. These other versions are not in wide use.

UPC version B is a special version originally developed to handle the National Drug Code and National Health Related Items Code. It allows for 11 digits plus one product type code. This version does not have any modulo check digit.

UPC version C is a special code designed to promote industry-wide compatibility. The code is 12 digits long with a product type digit and a modulo check sum digit.

UPC version D is a variable message length version of UPC. The symbol must contain at least 12 digits. The first digit is a product type code. This is followed by 10 information carrying digits. The twelfth digit is a modulo check sum, and this is followed by a variable number of digits.

There is a good explanation of the UPC Shipping Container Symbol (SCS) at the Infinity Graphics site.

EAN-13 and EAN-8

The EAN Article Numbering System (EAN),the Japanese Article Numbering (JAN) System and the International Article Numbering System (IAN) are identical to UPC except for the number of digits. The Japanese Article Numbering (JAN) System (JAN) codes are the same as the EAN codes, with the flag characters set to ``49''. There are two principal EAN versions.

Standard EAN (sometimes called EAN-13 or DUN-13) has 10 numeric characters, 2 or 3 "flag" characters which are usually a code for the country of the EAN International organization issuing the number , and a check digit. In all other respects, it is identical to UPC version A. JAN is the same as EAN-13. For compatibility with UPC, flags 00, 01, 03, 04, and 06 through 13 are assigned to the United States.

What are the country codes?

Lots of people have requested the codes. Here is a partial list. Remember, it indicates the country that issued the code, NOT THE COUNTRY OF ORIGIN OF THE PRODUCT. The authoritative list is here.
	000 - 019	USA & Canada
	020 - 029  	reserved for local use (store/warehouse)
	030 - 039   USA & Canada
	040 - 049   reserved for local use (store/warehouse)
	050 - 059   Coupons
	060 - 139   USA & Canada
	200 - 299   reserved for local use (store/warehouse)
	300 - 379 	France
	380  Bulgaria  
   383  Slovenija  
   385  Croatia  
   387  BIH (Bosnia-Herzegovina)  
	400 - 440	Germany
	450 - 459 	Japan
	460 - 469 	Russian Federation
	470 Kyrgyzstan  
	471	Taiwan
	474	Estonia
	475	Latvia
	476 Azerbaijan  
	477	Lithuania
	478 Uzbekistan  
	479	Sri Lanka
	480	Philippines
	481 Belarus  
	482	Ukraine
	484	Moldova
	485	Armenia
	486	Georgia
	487	Kazakhstan
	489	Hong Kong
	490 - 499 	Japan
	500 - 509	UK
	520	Greece
	528	Lebanon
	529	Cyprus
	531	Macedonia
	535	Malta
	539	Ireland
	540 - 549 Belgium & Luxembourg
	560	Portugal
	569	Iceland
	570 - 579 Denmark
	590	Poland
	594	Romania
	599	Hungary
	600-601	South Africa
	608 Bahrain  
	609	Mauritius
	611	Morocco
	613	Algeria
	619	Tunisia
	621 Syria  
	622	Egypt
	624 Libya 
	625	Jordan
	626	Iran
	627 Kuwait 
	628 Saudi Arabia  
   629 Emirates  
 	640 - 649 Finland
	690 - 695 China
	700 - 709 Norway
	729  Israel  
   730 - 739  Sweden  
   740  Guatemala  
   741  El Salvador  
   742  Honduras  
        Nicaragua  
   744  Costa Rica  
   745  Panama  
   746  Republica Dominicana  
   750  Mexico  
   754 - 755  Canada  
   759  Venezuela  
   760 - 769  Schweiz, Suisse, Svizzera  
   770  Colombia  
   773  Uruguay  
   775  Peru  
   777  Bolivia  
   779  Argentina  
   780  Chile  
   784  Paraguay  
   786  Ecuador  
   789 - 790  Brasil    
	800 - 839  Italy    
   840 - 849  Spain    
   850  Cuba  
   858  Slovakia  
   859  Czech  
   860   YU (Serbia & Montenegro)  
   865  Mongolia  
   867  North Korea  
   869  Turkey  
   870 - 879  Netherlands  
   880  South Korea  
   884 Cambodia 
   885  Thailand  
   888  Singapore  
   890  India  
   893  Vietnam  
   899  Indonesia  
   900 - 919  Austria  
   930 - 939  Australia  
   940 - 949  New Zealand  
   950 Head Office  
   955  Malaysia  
   958  Macau  
   977  Serial publications (ISSN)  
   978 - 979  Bookland (ISBN)  
   980  Refund receipts  
   981 - 982  Common Currency Coupons  
   990 - 999  Coupons  

More information about EAN-13 is available here.

EAN-8 has a left-hand guard pattern, four odd parity digits, a center guard pattern, four even parity digits, and a right-hand guard pattern. An EAN-8 bar code has two flag digits, five data digits, and one check digit. There is additional information about EAN-8 here.

Information about Bookland EAN and ISBN numbering of books can be found at BarCode 1's Bookland EAN and ISBN Page.

There is a good explanation of Bookland EAN bar code symbols used by the publishing industry at the Infinity Graphics site. There is also a very good explanation about Bookland EAN Add-On Code, used for storing the price of a book or magazine.

If you need to compute the check digit in Excel, the following formula will work:

10-MOD(MID($A1,2,1)+MID($A1,4,1)+MID($A1,6,1)+MID($A1,8,1)+MID($A1,10,1)+(MID($A1,1,1)+MID($A1,3,1)+MID($A1,5,1)+MID($A1,7,1)+MID($A1,9,1)+MID($A1,11,1))*3,10)

if($B2=10,0,$B2)

This assumes that the UPC data is located in cell A1 and the first formula is in cell B2. You can use the concatenate function to add the check digit as the last digit of the UPC number.

Other UPC And EAN Resources

George J. Laurer is the developer of UPC in 1973 and EAN later. There is a history at his site.

Uniform Code Council (now called GS1-US) has a home page that provides a catalog of information they sell and an electronic version of their newsletter. There is also a step-by-step guide about how to join and get a manufacturer's code to produce barcodes here.

EAN International is is the organization that manages the EAN system worldwide, currently there are national organizations in 92 countries on the 5 continents. (can be slow to access from North America). They have a FAQ with some basic information about EAN. They also have a complete list of the addresses and phone numbers of the local EAN organizations by country. This list also has links to on-line sites of EAN organizations in some countries. There is much more very good information at the EAN site. The site is a must visit for information about EAN.

There is another site which provides product descriptions. It's called the Internet UPC Database, an on-line database for Universal Product Codes (UPC).

There is a new resource for searching EAN barcode numbers at www.ean-search.org. You can search for EAN codes or browse through the database of over 500.000 EANs.

You now can purchase a UPC database from Gregg London.

1-800-Database sells a database of UPC product codes.

Swiss companies and EAN/UPC codes can be looked up at EAN Switzerland.

EAN AUSTRALIA is the Australia trade association that administers EAN. They also have an EAN check digit calculator that runs under Windows. The site also has many manuals available for downloading in Adobe Acrobat format here.

A nice JavaScript that calculates the check digits for EAN and UCC Identification numbers is at the EAN International site.

A abstract from EE students' project on how to build a UPC decoder. There are schematics and a description about how to encode and decode the symbol.

There is a good explanation for children about How UPC Bar Codes Work from Howstuffworks.com

A very good explanation about UPC/EAN-128 Coupon Extended Code for cents-off coupons can be found at the Infinity Graphics site.

Information about using UPC on cents-off coupons can be found here. There is also more information about coupon codes here.

There is a good explanation about coupon codes here.

A white paper about GTIN can be found at the Uniform Code Council site.



Back to the BarCode1 HomePage
Send comments and questions by e-mail to Russ Adams