UPS MaxiCode Barcode

Also known as MaxiCode, Maxi Code, UPS barcode, United Parcel Service MaxiCode

Overview
MaxiCode is a fixed-size (approximately 1 inch by 1 inch) 2D matrix barcode symbology which is made up of offset rows of hexagonal modules arranged around a unique finder pattern. MaxiCode was originally created and used by United Parcel Service (UPS) for tracking and managing the shipment of packages.

MaxiCode barcode can encode 256 international characters; values 0-127, in accordance with ANSI X3.4, i.e. all 128 ASCII characters and values 128-255 in accordance with ISO 8859-1 (Latin Alphabet No. 1). Although the capacity of a MaxiCode symbol is not as high as other 2D matrix barcode symbologies, it was primarily designed to encode address data. The maximum data capacity in a single MaxiCode Symbol is 93 alphanumeric characters or 138 numeric characters.

MaxiCode features "Structured Append" which allows files of data to be represented in up to 8 MaxiCode symbols. The original data can be correctly reconstructed regardless of the order in which the symbols are scanned.

MaxiCode symbols are divided into a primary and a secondary message featuring Reed-Solomon error correction. In general, the Primary message normally encodes a postal code, a 3 digit country code and a 3 digit class of service number while the Secondary message normally encodes address data and any other required information. In addition, MaxiCode has modes which are used to define the structuring of the data and error correction within a symbol. The following modes are available:
MaxiCode Modes Description
Mode 0 It is obsolete and superseded by Modes 2 and 3.
Mode 1 It is obsolete and superseded by Mode 4.
Mode 2 & 3 Structured Carrier Message. Modes 2 and 3 are designed for use in the transport industry. They encode the destination address and the class of service as defined by the carrier.
Mode 4 Standard Symbol. It indicates that the symbol employs Enhanced Error Correction (EEC) in the Primary Message and Standard Error Correction (SEC) for the Secondary Message.
Mode 5 Full EEC. It indicates that the symbol employs Enhanced Error Correction (EEC) for both the Primary and Secondary Message.
Mode 6 Reader Programming. It indicates that the symbol encodes a message used to program the reader system and that Standard Error Correction (SEC) is used for the Secondary Message. When a Mode 6 symbol is read no data shall be transmitted.


Special Message Structure when using Mode 2 and 3 (Structured Carrier Message)
MaxiCode Mode 2 and Mode 3 shall be reserved for use as a destination sortation symbol for use by carriers in the transport industry. In these modes, the primary message is always data specific and encodes postal code, country code and service class. The three primary data elements should be supplied in the above order separated by GS (Group Separator - ASCII 29) immediately followed by the secondary message contents. In addition, each data element shall be of the correct type, e.g. postal codes in mode 2 must be all numeric and in mode 3 it must be alphanumeric.

There are two standard message formats when using Mode 2 and Mode 3:


Sample of a MaxiCode barcode

How to create MaxiCode barcodes using Barcode Professional

Note: Please refer to the Class Reference documentation for more information about the properties and methods stated in this document.
In order to get a MaxiCode barcode image, please follow these steps:

Examples of MaxiCode barcode images

Code property = ABC123456789 and MaxiCodeMode property = Mode4 will produce the following barcode image:

Code property = [)>~03001~029961Z00004951~029UPSN~02906X610~029159~0291234567~0291/1~029~029Y~029634 ALPHA DR~029PITTSBURGH~029PA~030~004 and MaxiCodeMode property = Mode2 and MaxiCodeProcessTilde property = True will produce the following barcode image (NOTE: Where ~029 is GS (ASCII 29); ~030 is RS (ASCII 30) and ~004 is EOT (ASCII 4)):

Code property = 524032140~029840~029001~029AIM USA~029634 ALPHA DRIVE~029PITTSBURGH~029PA~004 and MaxiCodeMode property = Mode3 and MaxiCodeProcessTilde property = True will produce the following barcode image (NOTE: Where ~029 is GS (ASCII 29) and ~004 is EOT (ASCII 4)):