Barcode Information
Searching For Barcode Information?
- How Do I Use This Site?
- What are EAN-13 bar codes?
- What are UPC bar codes?
- How is the check digit calculated?
- What is the difference between UPC-A and UPC-E?
- How are the EAN-13/UPC-A/UPC-E barcodes created?
- What about the digits under the barcode?
- UPC Format For Audio/Video Products
- Learn about many different types of barcodes
- Find more information in our BLOG
- Return To The Main Page
How Do I Use This Site?
Enter the 8 or 12 digits found on the barcode of almost any product in the search box at the top of any screen and click the the lookup button. If the bar code doesn't match this format, it may not be an actual UPC code and would not appear in our database. It could be one of many formats. See the images below for examples of both the 8 and 12 digit UPC barcodes.
If you have a barcode scanner, you can simply scan the barcode while the input box is active. Most scanners will convert the scan into keyboard strokes. Often scanners will send a new line character after the barcode which would be the same as clicking the lookup button.
Our program will search through our database and try to locate the product information for you. In some cases we have information relating to the manufacturer and we may even have links to a product or manufacturer web page.
EAN-13 (13 digits)![]() |
UPC-A (12 digits)![]() |
UPC-E (8 digits)![]() |
What are EAN-13 bar codes?
EAN-13 is a superset of UPC. This means that EAN-13 includes all UPC codes and the UPC standard but it includes additional data (one digit) to give product codes for other countries. UPC is intended for USA and Canada. UPC codes are 12 digits. To turn an UPC code into an EAN-13 code all that is needed is to add a zero to the front of the number. The barcode doesn't change. Look at the images above, you will notice that the number on the EAN-13 looks different than the UPC-A number but the actual bars are exactly the same. Only when the first digit of an EAN-13 code is not a zero is the barcode change. We will give you more information on this below.
What are UPC bar codes?
UPC stands for Universal Product Code. These bar codes can be found on just about any product in your kitchen cabinets. They are used to for many things but mainly to help merchants keep track of and identify the products they sell.
A manufacturer first applys to the UCC (Uniform Code Council) for a six-digit manufacturer identification number. An annual fee is paid for the membership in the UCC who not only issues the manufacturer ID numbers, but provides guidelines on how to use it.
You can see the there are two main parts to a UPC symbol. There is the numbers which are
human readable and the barcode which is machine readable. The barcode simply lets the machine
know what the numbers are. It is much easier for a machine to read the lines and decode them than
it would be to teach the machine to read the text numbers.
The numbers are the real UPC code. The digits are divided into 4 parts as follows...
- The first digit is the Number System Character. This digit use to tell us what type of UPC we are looking at. This seems to be less true any more especially. This would only apply to UPC-A codes anyway. EAN13 codes are a different story all together.
0 Standard UPC number (UPC-E always start with zero) 1 Reserved for future use 2 Random-weight items (fruits, vegetables, meats, etc.) 3 Pharmaceuticals 4 In-store marking for retailers (stores make up their own codes) 5 Coupons 6 Standard UPC number 7 Standard UPC number 8 Reserved for future use 9 Reserved for future use
With the expansion of the UPC system, digits 1, 8 and 9 are now being used. Unfortunatly, I have not yet found good information on these yet. I will keep looking - The manufacturer identification number. This is the made up of
the Number System Character and the next 5 digits to uniquely
identify the manufacturer of the product. If you need more information
about connecting the UPC code to the Company information, please take
a look at the Connecting Companies page.
- The product code are the next set of 5 digits. These are assigned
by the manufacturer. Each company can make its own rules about
how it uses these numbers as long as it doesn't use the same
code for more than one product, everything will work fine.
- The last digit is known as the check digit. It is used to verify that the number scans properly. Most scanners will scann in all digits then independantly calculate the check digit and make sure it matches what it scanned in. When the scanned check digit matches the calculated check digit the machine considers it a valid scan and continues. If the two check digits don't match, the scanner will reject the entire number and the barcode needs to be scanned again. Below there is more information on calculating the check digit.
How is the check digit calculated?
When you calculate the check digit you always use the first 11 digits of the 12 digit UPC-A formatted code or the first 12 digits of the EAN-13 formatted code. The UPC-E code must first be in the 12 digit UPC-A format before the check digit can be calculated. So if you are trying to calculate the check digit of a UPC-E code, you must restore the code to the UPC-A format first. Many scanners do this automatically for you if you want. They always do this in order to check the check digit but they don't automatically send the 12 digit version to the computer unless programmed to do so.
For our example, we will use the code shown in the picture above and walk through the process one step at a time. The full 12 digit UPC-A code for the image above is 064200115896. Remember, the last digit is the check digit so when we calculate our own check digit we only use the first 11 digits. When done we will compare it to the scanned digit 6 and make sure they match.
This calculator is available as a download in
spreadsheet format.
If you want to see this as a Visual Basic function,
click here
for a good example.
What is the difference between UPC-A and UPC-E?
Well the short answer is that UPC-A is a 12 digit code and UPC-E is that same code with 4 of the zero digits removed from the middle to save space. These are often used on smaller packages and often on soda cans. This format is also called zero-suppressed format.
The longer answer is a little more complex and I will try to explain it here. All UPC codes can be displayed using the 12 digit UPC-A format. Not all UPC codes can be displayed using the 8 digit UPC-E format. Why? There are 2 basic rules that determine which codes can be in the UPC-E format. First, the UPC code must use a zero as the Number System Character. Next there must be four zero digits grouped together in the middle section of the full UPC-A code. If the full 12 digit UPC-A code fits these two rules, then it can be reduced to an 8 digit UPC-E code using the following rules...
- First take note that UPC-A can only be converted to UPC-E if
the first digit of the UPC-A is a 1 or 0 and there are four
zero digits togetehr in the middle of the entire code.
- If the manufacturer code ends in 000, 100, or 200, the UPC-E
code consists of the first two characters of the manufacturer
code, the last three characters of the product code, followed
by the third character of the manufacturer code. The product
code must be 00000 to 00999.
- If the manufacturer code ends in 00 but does not qualify for
#1 above, the UPC-E code consists of the first three characters
of the manufacturer code, the last two characters of the product
code, followed by the digit "3". The product code must be 00000
to 00099.
- If the manufacturer code ends in 0 but does not quality for #1
or #2 above, the UPC-E code consists of the first four
characters of the manufacturer code, the last character of the
product code, followed by the digit "4". The product code must
be 00000 to 00009.
- If the manufacturer code does not end in zero, the UPC-E code consists of the entire manufacturer code and the last digit of the product code. Note that the last digit of the product code must be in the range of 5 through 9. The product code must be 00005 to 00009.
ORIGINAL UPC-A FORMAT |
EQUIVALENT UPC-E FORMAT |
EXAMPLE UPC-A CODE |
EQUIVALENT UPC-E CODE |
|
0-AB000-00HIJ-X | 0-ABHIJ0-X | 0-12000-00789-7 | 0-127890-7 | |
0-AB100-00HIJ-X | 0-ABHIJ1-X | 0-12100-00789-6 | 0-127891-6 | |
0-AB200-00HIJ-X | 0-ABHIJ2-X | 0-12200-00789-5 | 0-127892-5 | |
0-AB300-000IJ-X | 0-AB3IJ3-X | 0-12300-00089-5 | 0-123893-5 | |
0-AB400-000IJ-X | 0-AB4IJ3-X | 0-12400-00089-4 | 0-124893-4 | |
0-AB500-000IJ-X | 0-AB5IJ3-X | 0-12500-00089-3 | 0-125893-3 | |
0-AB600-000IJ-X | 0-AB6IJ3-X | 0-12600-00089-2 | 0-126893-2 | |
0-AB700-000IJ-X | 0-AB7IJ3-X | 0-12700-00089-1 | 0-127893-1 | |
0-AB800-000IJ-X | 0-AB8IJ3-X | 0-12800-00089-0 | 0-128893-0 | |
0-AB900-000IJ-X | 0-AB9IJ3-X | 0-12900-00089-9 | 0-129893-9 | |
0-ABCD0-0000J-X | 0-ABCDJ4-X | 0-12910-00009-4 | 0-129194-4 | |
0-ABCDE-00005-X | 0-ABCDE5-X | 0-12911-00005-5 | 0-129115-5 | |
0-ABCDE-00006-X | 0-ABCDE6-X | 0-12911-00006-2 | 0-129116-2 | |
0-ABCDE-00007-X | 0-ABCDE7-X | 0-12911-00007-9 | 0-129117-9 | |
0-ABCDE-00008-X | 0-ABCDE8-X | 0-12911-00008-6 | 0-129118-6 | |
0-ABCDE-00009-X | 0-ABCDE9-X | 0-12911-00009-3 | 0-129119-3 |
If you are like me, converting from UPC-A to UPC-E is not really all that important. What you want is to go from UPC-E back to the full 12 digits of UPC-A so you have a uniform code to work with. Well, I have VB functions that will convert either direction for you.
- View the UPC-A to UPC-E function (12 digits to 8 digits)
- View the UPC-E to UPC-A function (8 digits back to 12 digits)
How are the EAN-13/UPC-A/UPC-E barcodes created?
The first step when encoding any of the three barcode types is to determine which parity you are going to use. To do this we need to take the first digit from the EAN-13 number, zero if you are encoding UPC-A or the last digit of a UPC-E number. Use the digit you have come up with as the "Parity Digit" and locate your barcode sequences in the table shown below.




- This chart will be a key part in demonstrating
the encoding of the following three codes... - EAN-13 code 8592920000342
- UPC-A code 049000000443
- UPC-E code 04904403
You may be thinking that the chart above looks similar something you have seen elsewhere but at the same time very different. Most people talk a lot about the ODD or EVEN parity of the first six digits when they are encoded into the barcode. Personally, I find that quite confusing and hard to work with. The above chart still makes use of the ODD/EVEN parity, it is simply represented in a different manner. The 0 digits represent the ODD parity barcodes and the 1 digits represent the EVEN parity barcodes. The 2 digits represent the digits to the right of the center bar on UPC-A and EAN-13 barcodes. UPC-E has no center bar and only encodes 6 digits.
To meke more sense out of the ODD/EVEN parity, I have simply reduced the process into picking your barcode sequence by finding your parity bit as described above and then using the digits 0, 1 or 2 to choose the proper barcode patterns from the table shown below.
It is very important to note that each digit is made up of seven stripes which represent binary 0 or 1. When two of the same digit are next to each other it simply looks like a wider single stripe but it is really multiple binary digits. The graphics below will make this point rather clear.
Digit To Encode | Pattern 0 | Pattern 1 | Pattern 2 |
---|---|---|---|
0 | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1 | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
2 | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
3 | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
4 | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
5 | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
6 | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
7 | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
8 | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
9 | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Now we are almost ready to put the barcode together. There are just a couple special patterns that need to be used. These special patterns tell the scanner what part of the barcode is being processed. EAN-13 and UPC-A have the same configuration: GUARD, 6 digits, SPACER, 6 digits, GUARD. The UPC-E is a little different because it only encodes 6 digits: GUARD, 6 digits, UPCESTOP. The table below demostrates the special bar patterns.
Name | Pattern |
---|---|
Guard | ![]() ![]() ![]() |
SPacer | ![]() ![]() ![]() ![]() ![]() |
StopUPCE | ![]() ![]() ![]() ![]() ![]() ![]() |
Now we have all the parts we need. Lets put together some barcodes so you can see the system in action for real. We will use one of each type of code EAN-13, UPC-A and UPC-E. The UPC-A and UPC-E will be the same code in two different versions.
EAN-13 code 8592920000342
The first digit is 8 so we will use the pattern sequence of 010110222222 to encode the remaining 12 digits into the barcode pattern. The first digit is not encoded. It is implied based on the coding system. In the sample below, the first row shows the numbers to be encoded, the second is the pattern column used to do the encoding and finally the barcode itself. Below the sample is the fully encoded barcode with the digits displayed for humans to read.
5 | 9 | 2 | 9 | 2 | 0 | 0 | 0 | 0 | 3 | 4 | 2 | |||
G | 0 | 1 | 0 | 1 | 1 | 0 | SP | 2 | 2 | 2 | 2 | 2 | 2 | G |
![]() ![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() |

UPC-A code 049000000443
When encoding UPC-A, we always use 0 as our parity digit because UPC-A is the same as EAN-13 with a leading zero. The leading zero is simply not displayed in the UPC-A format. Using 0 as our parity bit our pattern sequence is set to 000000222222 for the encoding process. With UPC-A, all 12 digits are encoded into the barcode pattern. In the sample below, the first row shows the numbers to be encoded, the second is the pattern column used to do the encoding and finally the barcode itself. Below the sample is the fully encoded barcode with the digits displayed for humans to read.
0 | 4 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 4 | 3 | |||
G | 0 | 0 | 0 | 0 | 0 | 0 | SP | 2 | 2 | 2 | 2 | 2 | 2 | G |
![]() ![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() |

UPC-E code 04904403
In order to create a UPC-E code you must first compress the UPC-A code down using the system described above. Once this is done you use the check digit (the last digit) in conjunction with the first digit (always 0 or 1) to determine the pattern sequence. In this case, the check digit is 3 and the first digit is 0 so we end up with a pattern sequence of 110001 for the encoding process. With UPC-E, only the middle 6 digits are are encoded into the barcode pattern. The first digit and the check digit are implied based on the parity. In the sample below, the first row shows the numbers to be encoded, the second is the pattern column used to do the encoding and finally the barcode itself. Below the sample is the fully encoded barcode with the digits displayed for humans to read.
4 | 9 | 0 | 4 | 4 | 0 | ||
G | 1 | 1 | 0 | 0 | 0 | 1 | S |
![]() ![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() |

Hopefully now, you can see that what at first glance appears to be a very complex pattern is really rather easy to create using these basic steps. I would hope that you try this yourself. Take a couple products and work out the barcode pattern. Then compare what you have come up with against what is actually printed on the product.
One little side note to those of you trying to print your own UPC/EAN codes on ink jet printers. They aren't as accurate when it comes to creating these repeating patterns of bars and white space. Often if you print too small the lines will be fussy and scanners will have a hard time reading the barcode. Some times, they won't be able to read them at all. If you are using an ink jet printer, make your barcodes a little bigger to be safe. Lazer printers don't have any problems producing small barcodes. At least not that I have found.
What about the digits under the barcode?
Traditionally, EAN-13 only prints the first digit outside of the barcode, slightly higher than the other digits and then places 6 digits on each side of the seperator. UPC-A places the first and last digits outside of the barcode, slightly higher than the other digits and then places 5 digits on each side of the seperator. UPC-E places the first and last digits outside of the barcode, slightly higher than the other digits and the remaining 6 digits inside of the barcode.
This placement of the digits is simply cosmetic and for human consumption. The scanners can't read these numbers. They only read the bars. You could leave the numbers off all together. It isn't a good idea to print a barcode without any text though because if for any reason the scanner can't read the bars, a human will need to type in the numbers. Most people have a hard time decoding the bars without the numbers being displayed under them.


If you are creating your own barcodes and you don't care about the presentation being in the exact same format as the traditional barcodes, feel free to place the digits under the barcode in sequence. At least that way the human users will be able to read them if they have to type them in manually. Either of the above barcodes will scan in exactly the same. The only difference is that the barcode on the left has a non-standard human readable format. This won't effect the functionality of the barcode in any way.
UPC Format For Audio/Video Products
UPC-12 Structure For Audio/Video | |||||||||||
C | C | C | C | C | C | P | P | P | P | M | D |
The format for Audio/Video products is slightly special. The first 6 digits (C) are still the company code. The next four digits (P) are the product code. The next digit (M) is used to identify the type of media. The last digit (D) is still the check digit.
There doesn't appear to be any way by looking at the code to tell if it is a if the full code is an audio/video code when compaired to other UPC codes. But knowing that the code is an audio/video item, you can use the code to find out what type of media it is.
Digit | Audio Format | Video Format |
1 | 12" LP or Single | 12" Video CDV |
2 | 3" or 5" CD, CD-ROM CDI and VCD | Unassigned |
3 | Unassigned | VHS |
4 | Cassette | Unassigned |
5 | DCC | Beta |
6 | Unassigned | Laserdisk |
7 | 7" Single | Unassigned |
8 | Mini Disc | 8mm Tape |
9 | Music DVD | Video DVD |
0 | Unassigned | Unassigned |