Questions? Call us at: (800) 722-6004 or (215) 496-0222

UPC (Universal Product Code) Barcodes

UPC (Universal Product Code) is a numeric symbology used in retail applications. UPC has two variations, an 11 digit UPC Type A barcode and and 6 digit UPC Type E barcode. A check digit is automatically calculated by the barcode generation software in both UPC variations. Each can be appended with a 2 or 5 digit supplemental code.

Note: All of our barcode software can create UPC barcodes (UPC Type A, UPC Type E, and UPC Supplemental) and automatically calculate the check digit for you.

UPC Type A (UPC-A)

UPC-A symbols consist of 11 data digits and one check digit. The first digit is a number system digit that normally represents the type of product being identified. The following 5 digits are a manufacturers code and the next 5 digits are used to identify a specific product. When specifying UPC-A messages, you normally specify 11 digits and let your barcode printing software calculate the 12th check digit for you (All TAL bar code software products automatically calculate check digits for you.)

UPC Type E (UPC-E)

UPC-E is a smaller seven digit UPC symbology for number system 0. It is often used for small retail items. For UPC-E barcodes, you normally specify 6 digits and let your barcode printing software calculate the seventh check digit for you.

UPC Supplemental

Both UPC-A and UPC-E allow for a supplemental two or five digit number to be appended to the main barcode symbol. This supplemental message was designed for use on publications and periodicals. If you enter a supplemental message, it must consist of either two or five numeric digits. The supplemental is simply a small additional barcode that is added onto the right side of a standard UPC symbol.

Differences between UPC Type A and E

UPC-E is also called "zero suppressed UPC" because UPC-E compresses a normal 12 digit UPC-A number into a six digit code by "suppressing" the number system digit, trailing zeros in the manufacturers code and leading zeros in the product identification part of the bar code message. A seventh check digit is encoded into a parity pattern for the six main digits. UPC-E can thus be uncompressed back into a standard UPC-A 12 digit number.

Note: Most bar code readers can be configured to automatically convert 6 digit UPC-E numbers to 12 digit UPC-A numbers before they are transmitted to a host computer.

The main difference between a UPC-A symbol and a UPC-E symbol is the size. Below is a UPC-A bar code on the left and the same data encoded as a UPC-E symbol on the right.

These two bar codes are equivalent.

Converting between UPC-E and UPC-A

To convert UPC-E bar code numbers to UPC-A (or vice Versa) you can use our useful online converter program below.

UPC-E Data 

UPC-A Data   
Check digit  
Download Source Code: [Visual Basic]|[JavaScript]

Converting UPC-A to UPC-E

In the following, the number 0 and each of the letters a,b,c,d and e represent individual digits in the bar code message and the letter X represents the UPC check digit. All TAL Bar code software products can make the conversion for you, so you do not have to think about it.

UPC-A Number Equivalent UPC-E Notes
0ab00000cdeX abcde0X Manufacturer code must have 2 leading digits with 3 trailing zeros and the item number is limited to 3 digits (000 to 999).
0ab10000cdeX abcde1X Manufacturer code must have 3 leading digits ending with "1" and 2 trailing zeros. The item number is limited to 3 digits.
0ab20000cdeX abcde2X Manufacturer code must have 3 leading digits ending with "2" and 2 trailing zeros. The item number is limited to 3 digits.
0abc00000deX abcde3X Manufacturer code must have 3 leading digits and 2 trailing zeros. The item number is limited to 2 digits (00 to 99).
0abcd00000eX abcde4X Manufacturer code must have 4 leading digits with 1 trailing zero and the item number is limited to 1 digit (0 to9).
Manufacturer code has all 5 digits.
The item number is limited to a single digit consisting of either 5,6,7,8 or 9.


"I can't thank you enough. You've solved all of my problems and I am collecting data as you read this, I'm sure. It's nice to know that you guys are as easy to work with as your software is."

Chris Johnson, SR Project Engineer Advanced Medical Optics

"I highly recommend WinWedge for data collection from RS232 devices - especially its ability to easily edit serial data to your requirements. Great Program!"

Jim Bartell Engineer, Cinema Products Corp.

News & Updates