EAN-13, based upon the UPC-A standard, was implemented by the International Article Numbering Association (EAN) in Europe.EAN-13 is a superset of UPC-A.EAN-13 encodes 12 digits of numeric (0 through 9) message data along with a trailing check digit, for a total of 13 digits of barcode data.

An EAN-13 barcode number structure:
1)2 digits he number system. Any number system which starts with the digit 0 is a UPC-A barcode.
2) 5 digits manufacturer code.
3) 5 digits product code .

4) 1 check digit.

EAN-13 checksum digit calculation

EAN-13 must include a checksum digit which is based on a modulo 10 calculation as the following step:

  1. Consider the right-most digit of the message to be in an “odd” position, and assign odd/even to each character moving from right to left.
  2. Sum the digits in all odd positions, and multiply the result by 3.
  3. Sum the digits in all even positions.
  4. Sum the totals calculated in steps 2 and 3.
  5. The check digit is the number which, 10 minus the result of the totals calculated in step 4 modulo 10.

Example: to calculate “123456789012” checksum digit :

Barcode Number 1 2 3 4 5 6 7 8 9 0 1 2
Position Weight 1 3 1 3 1 3 1 3 1 3 1 3
Weighted Sum 1*1=1 2*3=6 3*1=3 4*3=12 5*1=5 6*3=18 7*1=7 8*3=24 9*1=9 0*3=0 1*1=1 2*3=6

Summing up 1+6+3+12+5+18+7+24+9+0+1+6=92
92 modulo 10 is 2,so the checksum digit is 10-2=8.


An EAN-13 barcode has the following physical structure:

  • Left-hand guard bars, or start sentinel, encoded as 101.
  • The second character of the number system code.
  • The five characters of the manufacturer code, encoded as described below.
  • Center guard pattern, encoded as 01010.
  • The five characters of the product code, encoded as right-hand characters.
  • Check digit, encoded as a right-hand character.
  • Right-hand guard bars, or end sentinel, encoded as 101.


UPC-A is a subset of EAN-13; in reality, an UPC-A barcode is an EAN-13 barcode with the first EAN-13 number system digit set to “0”. UPC-A encodes 11 digits of numeric (0 through 9) message data along with a trailing check digit, for a total of 12 digits of barcode data.


UPC-E is a variation of UPC-A which allows for a more compact barcode by eliminating “extra” zeros. Since the resulting UPC-E barcode is about half the size as an UPC-A barcode,
UPC-E is generally used on products with very small packaging where a full UPC-A barcode couldn’t reasonably fit.
UPC-E doesn’t have a check digit encoded explicitly, rather the check digit is encoded in the parity of the other six characters. The check digit that is encoded is the check digit from the original UPC-A barcode.
UPC-E may only be used for the number system 0. It encodes 6 digits.


EAN-8 encodes 7 digits of numeric (0 through 9) message data along with a trailing check digit, for a total of 8digits of barcode data.


The “Bookland” code is an EAN-13 barcode starting with number 978. It encodes 9 digits ISBN number. It must include a check digit .And 5 or 2 digit add-on barcode is optional and can contain the price of the book or periodical.