Barcode Types
Codabar
Codabar is a numeric code with some additional special characters (0..9 and - $ : / . +).
Codabar has no built in check digit and is primarily used for medical purposes.
Code-128
Code 128 Auto can encode the complete ASCII-character set. This is done by switching between all 3 character sets of Code 128:
Code 128A: Includes upper case letters and control characters.
Code 128B: Includes upper and lower case letters.
Code 128C: Specially optimized for numbers.
This code uses an internal check digit that won't be displayed in the text line under the code.
EAN/UCC 128:
The EAN/UCC 128 is a special form of Code 128, mainly used for containers.
Code 25 Industrial
Code 25 is a very simple numeric code which is able to display digits from 0 to 9. The code is primary used in industry and is also known as Code 2 of 5 or Code 25 Industrial. Code 25 has no built in check digit. The code is some years old and it takes up so much space that today it is not often used.
An example for the difference of Code 25 to Code 25 Interleaved: The digits 12345 will be codes. The result as Code 25 Industrial is as follows:
And here the same digits 12345 coded as Code 25 Interleaved:
Code 25 Interleaved
Code 25 Interleaved is a special type of Code 25 that is also a numeric code able to display digits from 0 to 9. The code is also known as Code 2 of 5 Interleaved.It has no built in check digit. The advantage of Code 25 Interleaved is that the code uses self-checking and it is very compact so it does not need much space like the simple Code 25. Code 25 Interleaved is only valid if there is a even number of digits. To display an odd number of digits you have to add a zero to the beginning (123 becomes 0123) or you may use your own check digit.
An example for the difference of Code 25 to Code 25 Interleaved: The digits 12345 will be codes. The result as Code 25 Industrial is as follows:
And here the same digits 12345 coded as Code 25 Interleaved:
Code-39
Code 39 is an alphanumeric code. Each character is built by 9 elements (5 lines and 4 spaces) where 3 are thick and 6 are thin. This allows the self checking of code 39. Code 39 does not require a build-in check digit. The main advantage is the wider character set.
Code 39 is available with and without a check digit. This check digit is calculated according to Modulo 43.
And here is the code if you use the Type "Code 39 Checksum" (#26) width a check digit calculated according to Modulo 43:
Code 39 Extended
Code 39 Extended is an extended version of Code 39 that supports the ASCII character set. So with Code 39 Extended you can also code the 26 lower letters (a-z) and the special characters you have on your keyboard.
The additional characters (e.g. lower case letters) are created using the existing characters of Code 39 by combining two characters each.
Code 39 Extended is also available with a check digit. This check digit is calculated according to Modulo 43. ActiveBarcode offers you both options. IF you create a code using the Text "C39ex" of type "Code 39 Extended" (#10) this barcode will be shown without a check digit:
And here is the code if you use the Type "Code 39 ExtendedChecksum" (#27) width a check digit calculated according to Modulo 43:
Code 93 / Code 93 Extended
Code 93 is an alphanumeric code similar to Code 39 and can encode 48 different characters.
The check digits according to Modulo 47 are not displayed in the plain text line.
Code 93 Extended is based on Code 93 and can encode all 128 ASCII characters. The characters represented by Code 93 are represented in Code 93 Extended as single barcode characters, but all other characters are represented by a control character plus another character. You must take this into account when estimating barcode length.
Data Matrix
One of the best known 2D codes is the Data Matrix code and it consists of 4 main components:
- Data area: This area contains the data in codified form.
- Closed limitation line: This is the corner that is represented in normal alignment to the left and below the data area with an uninterrupted line. Based on this, the code and its alignment is recognized while scanning.
- Open borderline: This is the opposite corner of the "closed limitation line". These lines (above and to the right) consist of alternating black and white dots. These are used to the determination of lines and columns while scanning.
- Quiet zone: This area surrounds the code. This area must be at least so wide as one dot of the code.
The development of the Data Matrix code started in the 80ies. Today there are different development steps, which differ in the error correction. These are name as ECC n. ECC is "Error Checking and Correction Algorithm" and that 'n' stands for a number. Basically there are two versions: ECC 000-140 and ECC 200. The current, most certain and recommended variant is ECC 200 (Reed-Solomon-Error correction). ActiveBarcode uses ECC 200 for the creation of the Data Matrix code. A Data Matrix code will be still readable when up to 25% of itself is covered or damaged.
A Data Matrix Code can encode up to 3116 numbers or up to 2335 characters. Different symbol sizes are used depending on the amount of data to be encoded.
DUN-14
The DUN-14 (Distribution Unit Number) is not really a barcode type. It's a numbering system for shipping containers that uses other barcode symbology. The DUN-14 uses the ITF-14 or the EAN-14 symbol set. Modern installations always use the EAN-14 to encode the DUN-14.
A short comparison of ITF-14 with EAN-14. The number "3071234500001" is coded as EAN-14 first:
And now the same number as ITF-14:
The DUN-14 has the following data encoded:
- The first digits represents the number of units in the container: 1=6 units, 2=10 units, 3=12 units, 4=20 units, 5=24 units. The digits 6,7 and 8 are standing for other numbers of units.
- The next 12 digits are representing the product number. General this the EAN-13 number without the check digit.
- The last digit is the check digit.
EAN-13, GTIN-13
The EAN barcode is primarily used in supermarkets to identify product at the point of sales. The products contain the EAN number or GTIN (Global Trade Item Number) to identify itself.
The standard EAN/GTIN product code has 13 digits. For smaller sized products there is a short version of the EAN/GTIN code the EAN 8
- The first 2 digits of the EAN-13 or GTIN (Global Trade Item Number) code are containing the country of the article. The country is coded with 2 numbers, e.g. the numbers 40, 41, 42 and 43 represent Germany.
- The next 5 digits code the producer of the article.
- The following 5 digits represent the article number which is given by the producer.
- The remaining last digit is the check digit.
Each country has a coding authority (or numbering association) which assigns codes to manufacturers and maintains a central database.
History:In 1977 the EAN code was used by 12 countries (all the countries of the European Community). Today, use of the EAN code has spread to all west European countries, USA, Canada, Australia and Japan. Today the EAN is called GTIN (Global Trade Item Number)
The article registration process in the supermarket has become easy and fast. There is no need to enter all data of the article using a keyboard - you just have to pass the article containing the barcode over a scanner. The scanner reads the barcode and sends the information (the barcode number) to the computer. The computer reads the record for the articles barcode number containing the price and article name. If the barcode is damaged there is also a way to enter the barcode number by hand.
Advantages of using the EAN/GTIN code:
1. It's not required to label all articles with the price. The price is stored in the database and can be accessed via the barcode number. For customers the price is only needed once where the article is stored in the supermarket.
2. It is fast and safe because there is no way to make a mistake.
EAN-14, GTIN-14
The EAN 14 code is used for traded goods. The code is always 14 numeric digits long:
- The first two numbers are the Application Identifier of the EAN-128: (01).
- The first digit is the "Logistic Variant", also named as "Packaging indicator".
- The next 12 digits are representing the product number. General this the EAN-13 number without the check digit.
- The last digit is the check digit.
Today the EAN-14 mostly is created using the EAN-128 symbol set.
EAN-18 / NVE / SSCC-18
The SSCC-18 (Serial Shipping Container Code) is used throughout the supply chain as an identifier for item tracing and internal control. In Germany this code is called EAN 18/NVE (Nummer der Versandeinheit). It is always 18 digits long:
- The first two numbers are the Application Identifier of the EAN-128: (00). You cannot change them. They are part of the code.
- The first digit of the data field is the extension digit. Currently a "3" is standard.
- The next 7 digits is the company prefix.
- The following 9 digits are the serial reference number.
The SSCC-18 / EAN-18 / NVE is displayed using the symbology of EAN-128. The Application Identifier (00) is added automatically and must not be entered by you.
EAN-2 Addon / EAN-5 Addon
EAN 5 and EAN 2 are add-ons for EAN 13 and UPC-A.
The EAN 2 add-on is often used on newspapers and magazines. The EAN 5 add-on is often used for the price of books together with the ISBN code.
Both, the EAN 5 and the EAN 2 add-ons don't have a check digit.
The EAN 5 and EAN 2 add-on codes are only used in addition to EAN 13, EAN 8 and UPC. The EAN 5 and EAN 2 add-ons cannot be read by a scanner if they are used without these codes.
EAN-5 currency indicator for books in English language: The first digit of the EAN-5 is the currency indicator. If it's set to 0 or 1 the price is stated in GBP (£). 5 is US$, 6 is Canadian $, 3 is Australian $ and 4 is New Zealand $. The four following digits represent the price multiplied by 100. For example 50799 means the price for this book is US$ 7.99. If the last four digits are 9999, it means that the price is higher (or equal to) 99.99 in the currency given.
Here are two examples:
Example: A book with ISBN and price code (£ 79.00)
Example: EAN 13 with additional EAN 2
EAN-8, GTIN-8
EAN 8 is the short form of EAN-13. This code is only used if the article is too small for an EAN-13 code. The restrictions for this are very hard. An EAN-8 will only be granted if a EAN-13 will uses more than 25% of the front space of the article.
An EAN-8 always has 8 digits:
- 3 digits prefix
- 4 digits: article identification.
- 1 check digit.
EAN-99
EAN-99 is a special form of EAN-13 which just starts with "99". EAN 99 is used as an in-store coupon. These are coupons which are good only at that particular store and are actually distributed in the store in which they will be honored.
GS1-128, EAN/UCC-128, EAN-128, UCC-128
The GS1-128 is a special form of the Code 128. It's used for goods and palettes in commerce and industry. The name GS1-128 replaces the old name EAN/UCC 128.
There can be coded more than one data field inside one barcode. For example a food palette gets a barcode with the product number (e.g. the EAN 13 number) and additional the weight and the pull date.
To code this different data field inside one barcode the GS1-128 or EAN/UCC-128 codes used the international standard of Application Identifiers (AI). A barcode could look like this:
The numbers inside the brackets are the Application Identifiers (AI) and the data behind are the data for this AI. The brackets are only used for the human readable line of the barcode. There are not coded! The AI "(01)" defines that the product code follows. This product code is always 14 digits long. This length is specified with the AI. This 14 data digits follow directly to the AI. After the product code of 14 digits, the next AI follows. In this example it's the pull date, specified with the AI "(15)". This one is always 6 digits long and must be specified using the mask YYMMTT. In this example the date is 31st December 2005
Example: You want a code containing the Number in parts (AI #30) and the serial number (AI #21):
In this example the "number of parts" is 19 and the serial number is 123456789012. The "number of parts" can be up to 8 digits long. So we code a FNC1 after the 9 to let the scanner know, that the AI is closed here now and a new one follows.
More information about this can be found at Wikipedia:
http://en.wikipedia.org/wiki/EAN-128
EAN-Velocity
EAN-Velocity is a special form of the EAN-8. It always starts with a zero. Six numbers follow and the check digit. This code is internally used by dealers for products that have no EAN-13 or EAN-8 code from the producer. Today this code is mostly unnecessary, as all producers of goods have an EAN code on their products. If you want to code a number with less then 6 digits, the left digits will be filled with a zero.
GS1-Data Matrix
The GS1-DataMatrix is a special form of the DataMatrix. It's used for goods and palettes in commerce and industry.
There can be coded more than one data field inside one barcode. For example a food palette gets a barcode with the product number (e.g. the EAN 13 number) and additional the weight and the pull date.
To code this different data field inside one barcode the GS1-DataMatrix codes use the international standard of Application Identifiers (AI). A barcode could look like this:
The numbers inside the brackets are the Application Identifiers (AI) and the data behind are the data for this AI. The brackets are only used for the human readable line of the barcode. There are not coded! The AI "(01)" defines that the product code follows. This product code is always 14 digits long. This length is specified with the AI. This 14 data digits follow directly to the AI. After the product code of 14 digits, the next AI follows. In this example it's the pull date, specified with the AI "(15)". This one is always 6 digits long and must be specified using the mask YYMMTT. In this example the date is 31st December 2005
Example: You want a code containing the Number in parts (AI #30) and the serial number (AI #21):
In this example the "number of parts" is 19 and the serial number is 123456789012. The "number of parts" can be up to 8 digits long. <FNC1> into the text property as shown in this example:
(30)19<FNC1>(21)123456789012
Note: If your scanner has trouble recognizing the <FNC1>, try using <GS> as the separator instead. Some models incorrectly expect this character.
Identcode (Deutsche Post, DHL)
The Identcode is a numeric code using the numbers 0..9. This code is used by the Deutsche Post AG (DHL). The base of this code is Code 25 Interleaved, but with a different check digit.
Structure of the Identcode: | |
1..2 3..5 6..11 12 |
Mail center (outgoing) Customer code Delivery number Check digit |
ISBN-10
ISBN numbers are the international order numbers for books.
You find more general information to the ISBN code on the ISBN overview page.
The ISBN-10 is a sub type of the ISBN code which was used up to the 12/31/2005.
ISBN-13
ISBN numbers are the international order numbers for books.
You find more general information to the ISBN code on the ISBN overview page.
The ISBN-13 is a sub type of the ISBN code which is used since 01/01/2007.
ISBN-13 Dual
ISBN numbers are the international order numbers for books.
You find more general information to the ISBN code on the ISBN overview page.
The ISBN-13 Dual is a sub type of the ISBN code which was used in the transition period (01.01.2006-31.12.2006) from ISBN-10 to ISBN-13.
ISMN (International Standard Music Number)
The ISMN (Internationally Standard Music Number) is used for marking printed musical publications. It was conceived in 1993 and today it is applied in in 48 regions and countries.
The construction of an ISMN:
An ISMN has always 10 digits. It is built up as follows:
- The ISMN begins with the Prefix M which marks the number as an ISMN.
- The following block marks the publishing company. This ID can be between 3 and 7 digits long.
- The product-ID follows. This ID is between 1 and 5 digits long. Both blocks of the publishing company and the product ID are always 8 digits together. When the publishers ID is 3 digits long, the product ID will always have 5 digits.
- The last place of the ISMN is the check digit. The check digit is computed according to Modulo 10. On this occasion, the prefix M is replaced with the value of 3 for the calculation of the check digit.
An ISMN barcode is created using the EAN-13 symbology with a special prefix. The ISMN prefix M will be encoded as zero. So the ISMN is a special form of the EAN-13 code.
ISSN (International Standard Serial Number)
The ISSN (International Standard Serial Number) serves the short unmistakable identification of sequentially appearing publications, e.g., magazines. The ISSN is nearly similar to the ISBN for books.
The ISSN exists of 8 digits, which are split by a hyphen in two groups of 4 digits. The hyphen itself has no meaning for the code. It only serves as an optical difference to other codes. The first 7 digits display the real ISSN number. The 8th digit is the check number which is computed according to Modulo 11.
An ISSN barcode is created using the EAN-13 symbology with a special prefix. So the ISSN is a special form of the EAN-13 code.
ITF-14 / SCC-14
The ITF-14 barcode is used to create the Shipping Container Symbol. This code is used to mark cartons and palettes that are including goods with an EAN-13 code. One digit is added in front of the EAN-13 code to mark the packing variant.
- The first digit is the "Logistic Variant", also named as "Packaging indicator".
- The next 12 digits are representing the product number. General this the EAN-13 number without the check digit.
- The last digit is the check digit.
The name ITF-14 is a composition of the barcode symbol used: "Interleaved 2 of 5" (Code 25 Interleaved) and the 14 digits: the length of the container symbol. ITF is an abbreviation of "Interleaved Two of Five"
The ITF-14 barcode itself can optionally have a thick solid bar all around the main code. They are called "bearer-bars".
JAN
JAN (Japanese Article Numbering) is another name for the EAN-13 barcode. The first two digits - the country code - must be 45 or 49 (Japan).
Use the EAN-13 barcode type to create a JAN barcode
Leitcode (Deutsche Post, DHL)
The Leitcode is a numeric code using the numbers 0..9. This code is used by the Deutsche Post AG (DHL). The base of this code is Code 25 Interleaved, but with a different check digit.
Structure of the Leitcode: | |
1..5 6..8 9..11 12..13 14 |
ZIP code Street's code number House number Product code Check Digit |
MSI / Plessey
The MSI Plessey barcode has been designed by the Plessey Company, England in 1971. It has been used in libraries and stores.
The code can display only the number 0-9 and has no fixed length. Today this type of code is outdated and is no longer used. Because of this most barcode scanners can not recognize this type of code.
PDF417
The PDF417 is a 2D barcode. It is based on stacked barcodes. The characters are coded in code words. A code word consists of 17 modules, which consist respectively of 4 strokes and 4 spaces.
The PDF417 is a very compact and flexible code with variable length. Up to 1108 bytes can be coded.
Error Correction Level:
PDF417 uses a differently strong error correction. It is used according to the code length. By use of less than 41 code words the Error Correction level 2 is used. From 41 to 160 code words ECL3 is used. From 161 to 320 code words ECL4 is used. From 321 code words ECL5 is used.
Example: PDF417 code with ECL2
Example: PDF417 code with ECL3
Example: PDF417 code with ECL4
Example: PDF417 code with ECL5
PostNet
The PostNet (Postal Numeric Encoding Technique) is a code by the US Post Office. It encodes the zip of the addressee in a machine readable format. This improves the speed of sorting and delivering the mail.
The PostNet barcode is constructed as follows:
- Start character
- Data
- Check digit
- Stop character
The check digit is calculated as follows: First add all digits. The difference of this sum to the next multiple of 10 is the check digit.
The PostNet barcode is used mainly in 3 variants, that differ in the length of the data:
- 5 digits POSTNET barcode: 5 digit long zip code
- ZIP + 4 POSTNET barcodes: 9 digit long zip code
- DPBC POSTNET barcode (Delivery Point barcode): 9 digit long zip code + 2 DPBC digits
The check digit of the PostNet barcode is not displayed in the plain text line.
PZN, PZN8, PZN7
PZN (Pharma-Zentral-Nummer) is a code for medicine identification in Germany and maybe other countries. In Germany it's issued by the Informationsstelle für Arzneispezialitäten GmbH, Beethovenstr. 51-53, Frankfurt am Main, Germany.
The PZN is based on Code39. The last digit is a check digit. It uses the Code39-start sign "*" in combination with "-" as the start sign. The stop sign is the standard code39 stop sign "*". These start and stop signs and the characters "PZN " do not need to be entered in order to produce a PZN because they are a fixed part of the PZN. The characters "PZN" are not coded in the barcode.
PZN7
The original PZN, now PZN7 is no longer awarded from the 01.01.2013. At this point PZN will completely switch to the PZN8. Old PZN7 may be used further for some years. From the 01.01.2020 the PZN7 is then invalidated and only the PZN8 may be used.
PZN8
The PZN8 replaces the old PZN from the 01.01.2013 and offers a larger number range by the additional digit.
QR Code, Quick Response Code
The QR code is a modern square 2D code. The marks in three of the four corners of the matrix provide the orientation. The code is well known by the mobile tagging for cell phones.
Which of the numerous types should I use to create a QR Code?
If you have no special wishes, simply choose the type QR Code. It creates a the smallest QR Code that is possible.
If you want to work with a fixed error correction, please select one of the following 4 types:
- QR Code ECC LEVEL L : 7% of the data can be restored.
- QR Code ECC LEVEL M : 15% of the data can be restored.
- QR Code ECC LEVEL Q : 25% of the data can be restored.
- QR Code ECC LEVEL H : 30% of the data can be restored.
These 4 types use fixed error correction and create the smallest possible code depending on the data to encode.
Alternatively, you can specify the symbol size. Select one of the types with fixed-size for this purpose, e.g. QR Code 45x45. The error correction is selected automatically depending on the amount of data as good as possible.
More information about this can be found at Wikipedia:
http://en.wikipedia.org/wiki/QR_code
RoyalMail (RM4SCC)
The Royal Mail 4 State Customer Code (RM4SCC) was created for automated mail sorting processes. It normally codes the postcode and the house or mailbox number in a machine readable format. The contents of the code may vary in different countries.
UPC-A, GTIN-12, UPC-E
The UPC A code is the standard version of the UPC code and has 12 digits. It is also called UPC 12 and is very similar to the EAN code.
The structure of the UPC A code is as follows:
- The first digit of the UPC A code says what the code contains:
- 0 - normal UPC Code
- 1 - reserved
- 2 - articles where the price varies by the weight: for example meat. The code is produced in the store and attached to the article.
- 3 - National Drug Code (NDC) and National Health Related Items Code (HRI).
- 4 - UPC Code which can be used without format limits
- 5 - coupon
- 6 - normal UPC Code
- 7 - normal UPC Code
- 8 - reserved
- 9 - reserved
- The first 6,7,8,9, or 10 digits are the prefix number. This number is issued by the GS1-US (Global Solutions 1). The amount of digits is determined by how many UPC Numbers are needed, 10, 100, 1000, 10000, or 100,000
- The seventh to eleventh digits show the individual UPC numbers issued by the owner of the prefix.
- The last digit is the check digit.
The UPC E code is a short version with 8 digits, always starting with a zero. The UPC code is a numeric code which is able to display digits from 0-9. Each character consists of two lines and two spaces.