Data Matrix (ECC200) - 2D Barcode

Data Matrix is a two-dimensional matrix barcode, which encodes text or raw data in a pattern of black and white square modules. Usual data size is from a few bytes up to 2 kilobytes. By adding error correction codes (according to the ECC200 standard) the symbols can be read even if they are partially damaged.

Application Areas

Data Matrix is used for encoding large amounts of data, it is mainly used in Europe and in the United States. The dominating application areas are direct part marking and laser marking - both especially in the aerospace, electronic, and automotive industry.

In addition Data Matrix is used for general logistic purposes, document management applications, postal services (Deutsche Post Premiumadress Service or Royal Mail Mailmark™), and medical / health industry related applications (HIBC).


Data Matrix is a 2D barcode symbology with very high data density. Data Matrix symbols are printed in square or sometimes a rectangular pattern. Each dot of a Data Matrix symbol represents a bit. This is in contrast to linear bar-codes, where the information is encoded in the ratio of the bars or spaces to each other. Usually a black dot in a Data Matrix symbol is equivalent with the bit-value 1, but Data Matrix may also be printed white on black.


Data Matrix was developed by the company RVSI Acuity CiMatrix. This company was later acquired by Siemens Energy and Automation, Inc.


Data Matrix is also known under the name ECC200 referring to the error correction standard applied in the latest Data Matrix specification. In connection with mobile marketing the Data Matrix symbology was also named Semacode (but already outdated).

Technical Data

  • Normative standards: The normative standards for the Data Matrix barcode symbology are called ISO/IEC 16022:2000 and ISO/IEC 24720:2006 (ISO International Standard).
  • Data Matrix data capacity: A single Data Matrix symbol can theoretically hold up to 3116 digits, 2335 alphanumeric characters, or 1556 bytes. Due to internal data compression algorithms the exact data capacity depends on the structure of the data to be encoded. The maximum Data Matrix capacity is also influenced by available printing space and the printer resolution.
  • The default character set is Latin-1 or ANSI ASCII (equivalent to ECI 000003).
  • Error correction: Data Matrix offers a built-in error correction method based on Reed-Solomon algorithms. The error correction level is not adjustable by the user but it is possible to restore approximately 25% of unreadable codewords in a Data Matrix symbol without data loss.
  • ECC200: The term ECC200 refers to Data Matrix symbols which are generated according to the latest (and most sophisticated) built-in error correction methods. Older Data Matrix encoding schemes like ECC 000, ECC 050, ECC 080, ECC 100, ECC 140 must not be used for new applications. TEC-IT software only creates ECC 200 Data Matrix symbols.
  • The Data Matrix Rectangular Extension (DMRE) provides additional rectangular formats like 8x48 or 8x64. The current version of TBarCode SDK supports the new DMRE formats as specified in the DIN 16587 and ISO/IEC AWI 21471 standard.
  • Data Matrix supports 'Structured Append'. Up to 16 Data Matrix symbols can be concatenated. If a scanner or decoder supports this feature, it returns the concatenated data content in the correct order.
  • Data Matrix printing quality: To optimize barcode quality a Data Matrix symbol should not be printed with dots smaller than 4 to 5 device pixels.

GS1 DataMatrix (ECC 200)

Because of its technical advantages the GS1 organization considered the DataMatrix 2D barcode symbology for its system.

The so called GS1 or EAN Data Matrix is a standard DataMatrix symbol (ECC 200) with an internal GS1 identifier in the data structure (like the FNC1-Prefix in an GS1-128). The use of Application Identifiers is supported, this is comparable to the linear barcode GS1-128/EAN-128 or GS1 DataBar Expanded, where a code word similar to FNC1 acts as a field separator.

How to create a GS1 Data Matrix in C# .NET (code sample):

TECIT.TBarCode.Barcode code = new TECIT.TBarCode.Barcode();
code.BarcodeType = BarcodeType.GS1DataMatrix;
code.TranslateEscapeSequences = true;
code.Data = @"019901234567001915012345678\F90Abc";
Bitmap myDataMatrix = code.DrawBitmap();

The required barcode settings can be found in our FAQ: How Can I Generate a GS1 DataMatrix?

Data Matrix PPN and NTIN Code

The Pharmacy-Product-Number (PPN) and National Trade Item Number (NTIN) are identification standards developed specifically for the verification of pharmaceutical products. The data structures of the IFA PPN and GS1 NTIN Code are encoded with a Data Matrix ECC200 symbology (ISO/IEC 16022).

The IFA version is using Data Matrix Macro 06 mode, while the GS1 version is based upon Data Matrix with FNC1. A specific range for the cell size and module width has been defined as well – more details see specification Encoding PPN and NTIN Numbers (German) and our FAQ How Can I Generate a Data Matrix PPN Code or a NTIN Code?

Data Matrix Rectangular Extension (DMRE)

Data Matrix includes 24 square formats but only six rectangular formats with a data capacity in the lower range. Specifically small surfaces benefit from rectangular formats; thus resulting in a demand for rectangular versions with higher data volume.

This led to the Data Matrix Rectangular Extension (DMRE), which was adopted by AIM in 2014 and later specified in DIN 16587. The DMRE added 12 new rectangular versions with a higher capacity. In 2017 ISO published a DMRE working draft (ISO/IEC 21471) which added even more rectangular formats but did not adopt all formats from the DIN standard.

Related Standards

Some selected standards, which utilize Data Matrix (ECC200) 2D bar code:

  • ATA Spec 2000 Chapter 9, Automated Identification and Data Capture (AIDC)
  • AIAG B4 - Parts Identification and Tracking
  • GS1 NTIN – National Trade Item Number
  • IFA PPN - Pharmacy Product Number (Specification Version: 2.0 January 2019)
  • MIL-STD 130 - Identification Marking of U.S. Military Property (DOD UID)
  • NASA-STD-6002 Applying Data Matrix Identification Symbols on Aerospace Parts
  • NASA HDBK 6003 Application Of Data Matrix Identification Symbols To Aerospace Parts Using Direct Part Marking Methods/techniques
  • SAE AS9132 Data Matrix Quality Requirements for Parts Marking
  • SEMI T7-0302 - Specification for Back Surface Marking of Double-Side Polished Wafers