Barcode Information

Searching For Barcode Information?

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...

  1. 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

  2. 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.

  3. 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.

  4. 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.

  1. Start with the first 12 digits of an EAN-13 code. If you are calculating the check digit for UPC-A, then put an extra zero as the first digit to get 12 digits not counting the check digit of course.

  2. If you are trying to verify the check digit on an existing code, simply check the digit you calculate against the last digit of the full code. They should match or the entire number is considiered invalid. In this case, the full code would be 0642001158962 making the last digit 2.

  3. Add up the EVEN digits (every other digit) to get a total.
    6 + 2 + 0 + 1 + 8 + 6 = 23

  4. Multiply this number by 3
    23 x 3 = 69

  5. Add all the ODD digits together.
    0 + 4 + 0 + 1 + 5 + 9 = 19

    Now add the results of the last two steps together.
    69 + 19 = 88

  6. Finally, the check digit is the number required to bring the results of the previous step to the next higher multiple of 10.
    88 + 2 = 90

  7. Because 90 is the next number that is a multiple of 10 and you need to add 2 to 88 to get to 90, our check digit is 2 in this case.

  8. For your programmers out there, I would suggest using this formula which makes use of the MODULO function. (depending on the language it is MOD or % or \)
    ((10 - (88 mod 10)) mod 10) = 2
  9. 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.
    Maybe this will be easier to with a visualization.

    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.

    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.

    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
    1 0011001 0110011 1100110
    3 0111101 0100001 1000010
    5 0110001 0111001 1001110
    7 0111011 0010001 1000100
    9 0001011 0010111 1110100

    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 101 
    SPacer 01010 
    StopUPCE 010101 

    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
    101 01100010010111001001100101110011011000110101010111001011100101110010100001010111001101100 101


    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
    101 00011010100011000101100011010001101000110101010111001011100101110010101110010111001000010 101


    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
    101 001110100101110001101010001101000110100111 010101


    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