MOD Parameter

The modifier field gives more processing information about the bar code symbol to be generated. For example, it indicates whether a check-digit is to be generated for the bar code symbol.

Table 1 shows the modifier values for each bar code type.

Table 1. Modifier Values by Bar Code Type
Bar Code Type MOD Value
1 – Code 39 (3-of-9 Code), AIM USS-39 X'01' and X'02'
2 – MSI (modified Plessey code) X'01' - X'09'
3 – UPC/CGPC Version A X'00'
5 – UPC/CGPC Version E X'00'
6 – UPC - Two-digit Supplemental X'00' - X'02'
7 – UPC - Five-digit Supplemental X'00' - X'02'
8 – EAN 8 (includes JAN-short) X'00'
9 – EAN 13 (includes JAN-standard) X'00'
10 – Industrial 2-of-5 X'01' and X'02'
11 – Matrix 2-of-5 X'01' and X'02'
12 – Interleaved 2-of-5, AIM USS-I 2/5 X'01' - X'04'
13 – Codabar, 2-of-7, AIM USS-Codabar X'01' and X'02'
17 – Code 128, AIM USS-128 X'02' - X'05'
22 – EAN Two-digit Supplemental X'00' and X'01'
23 – EAN Five-digit Supplemental X'00' and X'01'
24 – POSTNET X'00' - X'04'
26 – RM4SCC X'00' and X'01'
27 – Japan Postal Bar Code X'00' and X'01'
28 – DataMatrix two-dimensional Bar Code X'00'
29 – MaxiCode two-dimensional Bar Code X'00'
30 – PDF417 two-dimensional Bar Code X'00' and X'01'
31 – Australia Postal Bar Code X'01' - X'08'
32 – QR CODE two-dimensional Bar Code X'02'
33 – CODE 93 X'00'
34 – USPS Four-State X'00' - X'03'
35 – Red Tag X'00'
36 – GS1 DataBar X'00' - X'04' and X'11' - X'1B'

The modifier values, by bar code type, are as follows:

Code 39 (3-of-9 Code), AIM USS-39
Code 39 (3-of-9 Code), AIM USS-39
X'01'
Present the bar code without a generated check digit.
X'02'
Generate a check digit and present it with the bar code.
Note: The Code 39 character set contains 43 characters that include numbers, uppercase alphabetics, and some special characters. The Code 39 Specification also provides a method of encoding all 128 ASCII characters by using 2 bar code characters for those ASCII characters that are not in the standard Code 39 character set. This is sometimes referred to as Extended Code 39 and is supported by all BCOCA receivers. In this case, the 2 bar code characters that are used to specify the extended character are shown in the Human-Readable Interpretation and the bar code scanner interprets the 2-character combination bar/space pattern.
MSI (modified Plessey code)
MSI (modified Plessey code)
X'01'
Present the bar code without check digits that are generated by the printer. Specify 3 - 15 digits of input data.
X'02'
Present the bar code with a generated IBM® modulo-10 check digit. This check digit is the second check digit; the first check digit is the last character of the data as defined in the associated FIELD START and LENGTH subcommands. Specify 2 - 14 digits of input data.
X'03'
Present the bar code with two check digits. Both check digits are generated by using the IBM modulo-10 algorithm. Specify 1 - 13 digits of input data.
X'04'
Present the bar code with two check digits. The first check digit is generated by using the NCR modulo-11 algorithm; the second using the IBM modulo-10 algorithm. The first check digit equals the remainder; exception condition EC-0E00 exists if the first check-digit calculation results in a value of 10. Specify 1 - 13 digits of input data.
X'05'
Present the bar code with two check digits. The first check digit is generated by using the IBM modulo-11 algorithm; the second using the IBM modulo-10 algorithm. The first check digit equals the remainder; exception condition EC-0E00 exists if the first check-digit calculation results in a value of 10. Specify 1 - 13 digits of input data.
X'06'
Present the bar code with two check digits. The first check digit is generated by using the NCR modulo-11 algorithm; the second using the IBM modulo-10 algorithm. The first check digit equals 11 minus the remainder; a first check digit value of 10 is assigned the value zero. Specify 1 - 13 digits of input data.
X'07'
Present the bar code with two check digits. The first check digit is generated by using the IBM modulo-11 algorithm; the second using the IBM modulo-10 algorithm. The first check digit equals 11 minus the remainder; a first check digit value of 10 is assigned the value zero. Specify 1 - 13 digits of input data.
X'08'
Present the bar code with two check digits. The first check digit is generated by using the NCR modulo-11 algorithm; the second using the IBM modulo-10 algorithm. The first check digit equals 11 minus the remainder; exception condition EC-0E00 exists if the first check-digit calculation results in a value of 10. Specify 1 - 13 digits of input data.
X'09'
Present the bar code with two check digits. The first check digit is generated by using the IBM modulo-11 algorithm; the second using the IBM modulo-10 algorithm. The first check digit equals 11 minus the remainder; exception condition EC-0E00 exists if the first check-digit calculation results in a value of 10. Specify 1 - 13 digits of input data.
UPC/CGPC—Version A
UPC/CGPC—Version A
X'00'
Present the standard UPC-A bar code with a generated check digit. The data to be encoded consists of 11 digits. The first digit is the number-system digit; the next 10 digits are the article number.

Specify 11 digits of input data. The first digit is the number system character; the remaining digits are information characters.

UPC/CGPC—Version E
UPC/CGPC—Version E
X'00'
Present a UPC-E bar code symbol. Of the 10 input digits, 6 digits are encoded. The check digit is generated by using all 10 input data digits. The check digit is not encoded; it is only used to assign odd or even parity to the six encoded digits.

Specify 10 digits of input data. Version E suppresses some zeros that can occur in the information characters to produce a shorter symbol. All 10 digits are information characters; the number system character must not be specified (it is assumed to be 0).

UPC—Two-Digit Supplemental
UPC—Two-Digit Supplemental
X'00'
Present a UPC two-digit supplemental bar code symbol. This option assumes that the base UPC Version A or E symbol is presented as a separate bar code object. The bar and space patterns that are used for the two supplemental digits are left-odd or left-even parity, with the parity determined by the digit combination.

Specify 2 digits of input data.

X'01'
The two-digit UPC supplemental bar code symbol is preceded by a UPC Version A, Number System 0, bar code symbol. The bar code object contains both the UPC Version A symbol and the two-digit supplemental symbol. The input data consists of the number system digit, the 10-digit article number, and the two supplement digits, in that order. A check digit is generated for the UPC Version A symbol. The two-digit supplemental bar code is presented after the UPC Version A symbol by using left odd and even parity as determined by the two supplemental digits.

Specify 13 digits of input data.

X'02'
The two-digit UPC supplemental bar code symbol is preceded by a UPC Version E symbol. The bar code object contains both the UPC Version E symbol and the two-digit supplemental symbol. The input data consists of the 10-digit article number and the two supplemental digits. The bar code object processor generates the six-digit UPC Version E symbol and a check digit. The check digit is used to determine the parity pattern of the six-digit Version E symbol. The two-digit supplemental bar code symbol is presented after the Version E symbol by using left odd and even parity as determined by the two digits.

Specify 12 digits of input data.

UPC—Five-Digit Supplemental
UPC—Five-Digit Supplemental
X'00'
Present the UPC five-digit supplemental bar code symbol. This option assumes that the base UPC Version A or E symbol is presented as a separate bar code object. A check digit is generated from the five supplemental digits and is used to assign the left-odd and left-even parity of the five-digit supplemental bar code. The supplemental check digit is not encoded or interpreted.

Specify 5 digits of input data.

X'01'
The five-digit UPC supplemental bar code symbol is preceded by a UPC Version A, Number System 0, bar code symbol. The bar code object contains both the UPC Version A symbol and the five-digit supplemental symbol. The input data consists of the number system digit, the 10-digit article number, and the five supplement digits, in that order. A check digit is generated for the UPC Version A symbol. A second check digit is generated from the five supplement digits. It is used to assign the left odd and even parity of the five-digit supplemental bar code symbol. The supplement check digit is not encoded or interpreted.

Specify 16 digits of input data.

X'02'
The five-digit UPC supplemental bar code symbol is preceded by a UPC Version E symbol. The bar code object contains both the UPC Version E symbol and the five-digit supplemental symbol. The input data consists of the 10-digit article number and the five-digit supplemental data. The bar code object processor generates the six-digit UPC Version E symbol and check digit. The check digit is used to determine the parity pattern of the Version E symbol. The five-digit supplemental bar code symbol is presented after the Version E symbol. A second check digit is calculated for the five-digit supplemental data and is used to assign the left odd and even parity. The supplement check digit is not encoded or interpreted.

Specify 15 digits of input data.

EAN-8 (includes JAN-short)
EAN-8 (includes JAN-short)
X'00'
Present an EAN-8 bar code symbol. The input data consists of 7 digits: two flag digits and five article number digits. All 7 digits are encoded along with a generated check digit.
EAN-13 (includes JAN-standard)
EAN-13 (includes JAN-standard)
X'00'
Present an EAN-13 bar code symbol. The input data consists of 12 digits: two flag digits and 10 article number digits, in that order. The first flag digit is not encoded. The second flag digit, the article number digits, and generated check digit are encoded. The first flag digit is presented in HRI form at the bottom of the left quiet zone. The first flag digit governs the A and B number-set pattern of the bar and space coding of the 6 digits to the left of the symbol center pattern.
Industrial 2-of-5
Industrial 2-of-5
X'01'
Present the bar code without a generated check digit.
X'02'
Generate a check digit and present it with the bar code.
Matrix 2-of-5
Matrix 2-of-5
X'01'
Present the bar code symbol without a generated check digit.
X'02'
Generate a check digit and present it with the bar code.
Interleaved 2-of-5, AIM USS-I 2/5
Interleaved 2-of-5, AIM USS-I 2/5
The Interleaved 2-of-5 symbology requires an even number of digits. The printer adds a leading zero if necessary to meet this requirement.
X'01'
Present the bar code symbol without a check digit.
X'02'
Generate a check digit and present it with the bar code.
Codabar, 2-of-7, AIM USS-Codabar
Codabar, 2-of-7, AIM USS-Codabar
X'01'
Present the bar code without a generated check digit. The input data consists of a start character, digits to be encoded, and a stop character, in that order. Start and stop characters can be A, B, C, or D, and can be used only at the beginning and end of the symbol.
X'02'
Generate a check digit and present it with the bar code. The input data consists of a start character, digits to be encoded, and a stop character, in that order. Start and stop characters can be A, B, C, or D, and can be used only at the beginning and end of the symbol.
Code 128, AIM USS-128 (modifier values X'02' through X'04')

The 1986 symbology definition for Code 128 defined an algorithm for generating a start character and then changed that algorithm in 1993 to accommodate the UCC/EAN 128 variation of this bar code. Many BCOCA printers implemented the 1986 version (with modifier X'02'), some BCOCA printers changed to use the 1993 algorithm (with modifier X'02'), and some BCOCA printers support both algorithms. When UCC/EAN 128 bar codes are produced for printers that explicitly support UCC/EAN 128, modifier X'03' or modifier X'04' must be specified. For printers that do not explicitly support UCC/EAN 128, specifying modifier X'02' might produce a valid UCC/EAN 128 bar code (see notes in the modifier descriptions).

The data for UCC/EAN 128 bar codes is in the form:
"FNC1, ai, data, m, FNC1, ai, data, m, FNC1, ..., ai, data, m"
FNC1 is the FNC1 function character (X'8F'), ai is an application identifier, data is defined for each registered application identifier, and m is a modulo 10 check digit (calculated with the same check digit algorithm that is used for UPC version A bar codes). Not all application identifiers require a modulo 10 check digit (m). Also, all except the firstFNC1 are field separator characters that appear only when the preceding ai data is of variable length. See UCC/EAN-128 APPLICATION IDENTIFIER STANDARD from the Uniform Code Council, Inc. for a description of application identifiers and the use of FNC1. To build the bar code symbol, the printer must:
  • Produce a start character based on the 1993 algorithm.
  • Bar encode the data, including the FNC1, ai, data, and m check digit.
  • Produce a modulo 103 check digit.
  • Produce a stop character.
Modifier X'02' – Code 128 symbol, with original (1986) start-character algorithm
Code 128, AIM USS-128

Generate a Code 128 symbol with subset A, B, or C to produce the shortest possible bar code from the specified data, by using the start-character algorithm that was published in the original (1986) edition of the Code 128 Symbology Specification. The Code 128 code page (CPGID = 1303, GCSGID = 1454) is used to interpret the bar code symbol data. Generate a check digit and present it with the bar code.

Notes:
  1. Some IPDS printers use the modifier X'03' start-character algorithm even when modifier X'02' is specified. This produces a valid UCC/EAN 128 symbol when valid UCC/EAN 128 data is provided. However, in general, modifier X'02' must not be used to produce UCC/EAN 128 symbols because this value causes other IPDS printers to use the original Code 128 start-symbol algorithm, which generates a Start (Code B) instead of the Start (Code C) that UCC/EAN 128 requires. Some bar code scanners can handle either start character for a UCC/EAN 128 symbol, but others require the Start (Code C) character.
  2. These printers use the UCC/EAN 128 start-character algorithm when modifier X'02' is specified: 4312, 4317, 4324, InfoPrint 20, InfoPrint 21, InfoPrint 32, InfoPrint 40, InfoPrint 45, InfoPrint 70, InfoPrint 2070, InfoPrint 2085, and InfoPrint 2105. Other IPDS printers use the original start-character algorithm when modifier X'02' is specified.
Modifier X'03' – UCC/EAN 128 symbol, without parenthesis in the HRI
Modifier 03 – UCC/EAN 128 symbol, without parenthesis in the HRI

Generate a Code 128 symbol with subset A, B, or C to produce the shortest possible bar code from the specified data, by using the version of the start-character algorithm that was modified for producing UCC/EAN 128 symbols. If the first data character is FNC1 (as is required for a UCC/EAN 128 symbol) and is followed by valid UCC/EAN 128 data, the printer generates a Start (Code C) character. The Code 128 code page (CPGID = 1303, GCSGID = 1454) is used to interpret the bar code symbol data. Generate a check digit and present it with the bar code.

The UCC/EAN 128 data is checked for validity and exception condition EC-1200 exists if one or more of the following conditions are encountered:
  • FNC1 is not the first data character.
  • Invalid application identifier (ai) value encountered.
  • Data for an ai doesn't match the ai definition.
  • Insufficient (or no) data that follows an ai.
  • Too much data for an ai.
  • Invalid use of FNC1 character.
Notes:
  1. UCC/EAN 128 is a variation of Code 128 that begins with an FNC1 character, followed by an Application Identifier and the data to be bar encoded. All of these characters (including the FNC1 character) must be supplied within the Bar Code Symbol Data (BSA). UCC/EAN 128 also requires that the symbol begin in subset C.
  2. For UCC/EAN 128 symbols, the start character, the FNC1 characters, the modulo 103 check digit, and the stop character are not shown in the human readable format.
Modifier X'04' – UCC/EAN 128 symbol, with parenthesis in the HRI
Modifier 04 – UCC/EAN 128 symbol, with parenthesis in the HRI

Generate a Code 128 symbol in the same manner as for modifier X'03', but use parenthesis in the HRI to distinguish each application identifier (ai). The printer inserts the parenthesis in the printed HRI when modifier X'04' is specified; these parentheses are not part of the input data.

EAN Two-Digit Supplemental
EAN Two-Digit Supplemental
X'00'
Present the EAN two-digit supplemental bar code symbol. This option assumes that the base EAN-13 symbol is presented as a separate bar code object. The value of the two digit supplemental data determines their bar and space patterns that are chosen from number sets A and B.

Specify 2 digits of input data.

X'01'
The two-digit supplemental bar code symbol is preceded by a normal EAN-13 bar code symbol. The bar code object contains both the EAN-13 symbol and the two-digit supplemental symbol. The two-digit supplemental bar code is presented after the EAN-13 symbol by using left odd and even parity as determined by the two supplemental digits that are chosen from number sets A and B.

Specify 14 digits of input data.

Note: Used for both books and paperbacks.
EAN Five-Digit Supplemental
EAN Five-Digit Supplemental
X'00'
Present the EAN five-digit supplemental bar code. This option assumes that the base EAN-13 symbol is presented as a separate bar code object. A check digit is calculated from the five supplemental digits. The check digit is also used to assign the bar and space patterns from number sets A and B for the five supplemental digits. The check digit is not encoded or interpreted.

Specify 5 digits of input data.

X'01'
The five-digit supplemental bar code symbol is preceded by a normal EAN-13 bar code symbol. The bar code object contains both the EAN-13 symbol and the five-digit supplemental symbol. A check digit is generated from the five-digit supplemental data. The check digit is used to assign the bar and space patterns from number sets A and B. The check digit is not encoded or interpreted.

Specify 17 digits of input data.

Note: Used for books and paperbacks.
POSTNET and PLANET
POSTNET and PLANET
For all POSTNET modifiers that follow, the BSA HRI flag field and the BSD module width, element height, height multiplier, and wide-to-narrow ratio fields are not applicable to the POSTNET bar code symbology. These fields are ignored because the POSTNET symbology defines specific values for these parameters.
X'00'
Present a POSTNET ZIP Code bar code symbol. The ZIP Code to be encoded is defined as a five-digit, numeric (0 - 9), data variable to the BSA data structure. The POSTNET ZIP Code bar code consists of a leading frame bar, the encoded ZIP Code data, a correction digit, and a trailing frame bar.
X'01'
Present a POSTNET ZIP+4 bar code symbol. The ZIP+4 code to be encoded is defined as a nine-digit, numeric (0 - 9), data variable to the BSA data structure. The POSTNET ZIP+4 bar code consists of a leading frame bar, the encoded ZIP+4 data, a correction digit, and a trailing frame bar.
X'02'
Present a POSTNET Advanced Bar Code (ABC) bar code symbol. The ABC code to be encoded is defined as an 11-digit, numeric (0 - 9), data variable to the BSA data structure. The POSTNET ABC bar code consists of a leading frame bar, the encoded ABC data, a correction digit, and a trailing frame bar.
Note: An 11-digit POSTNET bar code is called a Delivery Point bar code.
X'03'
Present a POSTNET variable-length bar code symbol. The data to be encoded is defined as an n-digit, numeric (0 - 9), data variable to the BSA data structure. The bar code symbol is generated without length checking; the symbol is not guaranteed to be scannable or interpretable. The POSTNET variable-length bar code consists of a leading frame bar, the encoded data, a correction digit, and a trailing frame bar.
X'04'
Present a PLANET Code symbol. The PLANET Code is a reverse topology variation of POSTNET that encodes 11 digits of data; the first 2 digits represent a service code (such as 21 = Origin Confirm and 22 = Destination Confirm) and the next 9 digits identify the mailpiece. A 12th digit is generated by the printer as a check digit. The PLANET Code symbol consists of a leading frame bar, the encoded data, a check digit, and a trailing frame bar.
Royal Mail (RM4SCC and Dutch KIX)
Royal Mail (RM4SCC and Dutch KIX)
A 4-state customer code that is defined by the Royal Mail Postal service of England for use in bar coding postal code information. This symbology is also called the Royal Mail bar code or the 4-State customer code. The symbology (as defined for modifier X'00') is used in the United Kingdom and in Singapore. A variation that is called KIX (KlantenIndeX = customer index, as defined for modifier X'01') is used in the Netherlands.
X'00'
Present a RM4SCC bar code symbol with a generated start bit, checksum character, and stop bit. The start and stop bits identify the beginning and end of the bar code symbol and also the orientation of the symbol.
X'01'
Present a RM4SCC bar code symbol with no start bar, no checksum character, and no stop bar.
Note: Modifier X'01' is also known as Dutch Kix Postal Bar Code. In addition to the characters allowed in Modifier X'00', it allows lowercase alphabetical characters, which are folded to uppercase by the printer.
Japan Postal Bar Code (JPOSTAL)
Japan Postal Bar Code (JPOSTAL)
A complete Japan Postal Bar Code symbol that consists of a set of distinct bars and spaces for each character, followed by a modulo 19 checksum character and enclosed by a unique start character, stop character, and quiet zones.
X'00'
Present a Japan Postal Bar Code symbol with a generated start character, checksum character, and stop character.

The generated bar code symbol consists of a start code, a 7-digit new postal code, a 13-digit address indication number, a check digit, and a stop code. The variable data to be encoded (BSA bytes 5-n) is used as follows:

  1. The first few digits represent the new postal code in either the form nnn-nnnn or the form nnnnnnn; the hyphen, if present, is ignored and the other 7 digits must be numeric. The 7 digits are placed in the new postal code field of the bar code symbol.
  2. If the next digit is a hyphen, it is ignored and is not used in generating the bar code symbol.
  3. The remainder of the BSA data is the address indication number, which can contain numbers, hyphens, and alphabetic characters (A-Z). Each number and each hyphen represents one digit in the bar code symbol; each alphabetic character is represented by a combination of a control code (CC1, CC2, or CC3) and a numerical code, and handled as two digits in the bar code symbol. Thirteen digits of this address indication number data are placed in the address indication number field of the bar code symbol.
    • If fewer than 13more digits are present, the shortage is filled in with the bar code corresponding to control code CC4 up to the thirteenth digit.
    • If more than 13 more digits are present, the first 13 are used and the remainder are ignored, with no exception condition reported. However, if the thirteenth digit is the control code for an alphabetic (A-Z) character, only the control code is included and the numeric part is omitted.
X'01'
Present a Japan Postal Bar Code symbol directly from the bar code data. Each valid character in the BSA data field is converted into a bar/space pattern, with no validity or length checking. The printer does not generate start, stop, or check digits.
To produce a valid bar code symbol, the bar code data must contain a start code, a 7-digit new postal code, a 13-digit address indication number, a valid check digit, and a stop code. The new postal code must consist of 7 numeric digits. The address indication number must consist of 13 characters, which can be numeric, hyphen, or control characters (CC1 through CC8). The following table lists the valid code points for modifier X'01':
Table 2. Valid EBCDIC-based Code Points for Japan Postal Bar Code
Bar Code Character Code Point Numerical Checking Value Bar Code Character Code Point Numerical Checking Value
start X'4C'   0 X'F0' 0
stop X'6E'   1 X'F1' 1
hyphen X'60' 10 2 X'F2' 2
CC1 X'5A' 11 3 X'F3' 3
CC2 X'7F' 12 4 X'F4' 4
CC3 X'7B' 13 5 X'F5' 5
CC4 X'E0' 14 6 X'F6' 6
CC5 X'6C' 15 7 X'F7' 7
CC6 X'50' 16 8 X'F8' 8
CC7 X'7D' 17 9 X'F9' 9
CC8 X'4D' 18      
Notes:
  1. Do not attempt to use the Start and Stop characters in calculating the check digit. You can use the remaining characters to generate check digits; they are the only characters that are valid for check digits. Use the Numeric Checking Values to calculate the check digits.
  2. You supply data generation for mod 1. The check digit is the sum of the digits module 19, which is a remainder of X. The check digit is 19 minus X, converted to hex. If this is done incorrectly, the print server displays message APS830I.

    The hyphen has a hex value of X'60' and a checking digit numerical of 10.

    The following example is a generation of the customer bar code where 154-0023 is the new postal code and 3 - 1 6 - 4 is the address indication number:
    address
       154
       3-16-4, Wakabayshi, Setagaya-ku
    
    New postal code + address indication number:
    
       154-0023-3-16-4 
    Delete hyphens between the third and fourth digits of the new postal code and between the new postal code and address indication number, as follows:
       15400233-16-4
    If the address indication number is shorter than 13 digits, use CC4s to fill the remaining spaces, as in the following example.
       15400233-16-4 CC4 CC4 CC4 CC4 CC4 CC4 CC4
    The first 7 digits are ignored as the postal code and the remaining digits are the address indication number. Remember to count hyphens as digits. In the previous example, the postal code is 1540023 and the address indication number is 3 - 1 6 - 4 plus seven CC4 characters.

    Calculate the check digit (CD), based on the table of correspondence between characters for bar code and checking numerals. See Table 2 for more information about check digits.

    1+5+4+0+0+2+3+3+10+1+6+10+4+14+14+14+14+14+14+14+CD = 147 + CD = integral multiple of 19
    Using the integral multiple of 19, 152 - 147 = 5 for the check digit, based on the table of correspondence between characters for bar code and checking numerals. Five corresponds to checking numerical five.
    For the previous postal code and address indication number, calculate the hex value of the check digit. The following table shows how to convert the data to hex values. Add the check digit (CD), start code (STC), and stop code (SPC), as follows:
    Table 3. Table Shows How to Convert Data to Hex Values.
    Start Code (STC) HEX
    1 F1
    5 F5
    4 F4
    0 F0
    0 F0
    2 F2
    3 F3
    3 F3
    - 60
    1 F1
    6 F6
    - 60
    4 F4
    CC4 E0
    CC4 E0
    CC4 E0
    CC4 E0
    CC4 E0
    CC4 E0
    CC4 E0
    CD(5) F5
    SPC 6E
    Notice that the check digit (CD) equals 5 and is converted to the hex value of F5.
The following are examples of various Japanese postal bar codes.
PAGEDEF SLSRPT;
   PRINTLINE POSITION 2 IN 2 IN;
   FIELD START 1 LENGTH 23
   POSITION CURRENT NEXT
   DIRECTION ACROSS
   BARCODE JAPAN  TYPE JPOSTAL MOD 1;
This bar code used numeric postal codes only. The 7-digit field contains the start, stop, and checksum characters. The printer does not generate start, stop, or checksum characters.
PAGEDEF SLSRPT;
   PRINTLINE POSITION 2 IN 2 IN;
   FIELD START 1 LENGTH 23
   POSITION CURRENT NEXT
   DIRECTION ACROSS
   BARCODE JAPAN  TYPE JPOSTAL MOD 1;
This bar code used alphanumeric postal codes only. The 13-digit field contains start, stop, checksum, and command codes. The printer does not generate start, stop, or checksum characters.
PAGEDEF SLSRPT;
   PRINTLINE POSITION 2 IN 2 IN;
   FIELD START 1 LENGTH 7
   POSITION CURRENT NEXT
   DIRECTION ACROSS
   BARCODE JAPAN  TYPE JPOSTAL MOD 0;
This bar code used numeric postal codes only. This is a 7-digit character field.
PAGEDEF SLSRPT;
   PRINTLINE POSITION 2 IN 2 IN;
   FIELD START 1 LENGTH 13
   POSITION CURRENT NEXT
   DIRECTION ACROSS
   BARCODE JAPAN  TYPE JPOSTAL MOD 0;
This bar code used alphanumeric postal codes only. This is a 13-digit character field.
Data Matrix (2DMATRIX)
Data Matrix (2DMATRIX)
A two-dimensional matrix bar code symbology that is defined as an AIM International Symbology Specification.
X'00'
Present a Data Matrix Bar Code symbol by using Error Checking and Correcting (ECC) algorithm 200.

The bar code data is assumed to start with the default character encodation (ECI 000003 = ISO 8859-1). This is an international Latin 1 code page that is equivalent to the ASCII code page 819. To change to a different character encodation within the data, the ECI protocol as defined in the AIM International Symbology Specification - Data Matrix, must be used. This means that whenever a byte value of X'5C' (an escape code) is encountered in the bar code data, the next six characters must be decimal digits (byte values X'30' - X'39') or the next character must be another X'5C'. When the X'5C' character is followed by six decimal digits, the six decimal digits are interpreted as the ECI number, which changes the interpretation of the characters that follow the decimal digits. When the X'5C' character is followed by another X'5C' character, this is interpreted as one X'5C' character (which is a backslash in the default character encodation); alternatively, the escape-sequence handling flag can be used to treat X'5C' as a normal character.

Since the default character encodation for this bar code is ASCII, the EBCDIC-to-ASCII translation flag can be used when all of the data for the bar code is EBCDIC. If the bar code data contains more than one-character encodation or if the data needs to be encoded within the bar code symbol in a form other than the default character encodation (such as, in EBCDIC), the bar code data must begin in the default encodation, the EBCDIC-to-ASCII translation flag must be set to B'0', and the ECI protocol must be used to switch into the other encodation.

Note: For more information about 2DMATRIX two-dimensional matrix bar codes, see Data Matrix Special-Function Parameters.
MaxiCode (2DMAXI)
MaxiCode (2DMAXI)
A two-dimensional matrix bar code symbology that is defined as an AIM International Symbology Specification.
X'00'
Present a MaxiCode bar code symbol.

The bar code data is assumed to start with the default character encodation (ECI 000003 = ISO 8859-1). This is an international Latin 1 code page that is equivalent to the ASCII code page 819. To change to a different character encodation within the data, the ECI protocol as defined in section 4.15.2 of the AIM International Symbology Specification - MaxiCode, must be used. This means that whenever a byte value of X'5C' (an escape code) is encountered in the bar code data, the next six characters must be decimal digits (byte values X'30' - X'39') or the next character must be another X'5C'. When the X'5C' character is followed by six decimal digits, the six decimal digits are interpreted as the ECI number, which changes the interpretation of the characters that follow the decimal digits. When the X'5C' character is followed by another X'5C' character, this is interpreted as one X'5C' character (which is a backslash in the default character encodation); alternatively, the escape-sequence handling flag can be used to treat X'5C' as a normal character. The X'5C' character is allowed anywhere in the bar code data except for Modes 2 and 3 where it is not allowed in the Primary Message portion of the data.

Since the default character encodation for this bar code is ASCII, the EBCDIC-to-ASCII translation flag can be used when all of the data for the bar code is EBCDIC. If the bar code data contains more than one-character encodation or if the data needs to be encoded within the bar code symbol in a form other than the default character encodation (such as, in EBCDIC), the bar code data must begin in the default encodation, the EBCDIC-to-ASCII translation flag must be set to B'0', and the ECI protocol must be used to switch into the other encodation.

Note: For more information about 2DMAXI two-dimensional matrix bar codes.
2DPDF417
2DPDF417
A two-dimensional matrix bar code symbology that is defined as an AIM International Symbology Specification — PDF417.
X'00'
Present a full PDF417 bar code symbol.
X'01'
Present a truncated PDF417 bar code symbol for use in an environment in which damage to the symbol is unlikely. This version omits the right row indicator and simplifies the stop pattern into a single module width bar.

The bar code data is assumed to start with the default character encodation (GLI 0) as defined in Table 5 of the Uniform Symbology Specification PDF417. To change to another character encodation, the GLI (Global Label Identifier) protocol, as defined in the Uniform Symbology Specification PDF417, must be used. This means that whenever a byte value of X'5C' (an escape code) is encountered in the bar code data, the next three characters must be decimal digits (byte values X'30' - X'39') or the next character must be another X'5C' character. When the X'5C' character is followed by three decimal digits, this is called an escape sequence. When the X'5C' character is followed by another X'5C' character, this is interpreted as one X'5C' character (which is a backslash in the default character encodation); alternatively, the escape-sequence handling flag can be used to treat X'5C' as a normal character.

To identify a new GLI, two or three escape sequences in a row must exist. The first escape sequence must be “\925”, “\926”, or “\927” (as defined by GLI 0). If the first escape sequence is “\925” or “\927”, one other escape sequence must follow that contains a value from “\000” to “\899”. If the first escape sequence is “\926”, two more escape sequences must follow and each escape sequence must contain a value from “\000” to “\899”. For example, to switch to GLI 1 (ISO 8859-1, which is equivalent to ASCII code page 819), the bar code data would contain the character sequence “\927\001”. The “\927” escape sequence is used for GLI values 0 - 899. The “\926” escape sequence is used for GLI values 900 - 810,899. The “\925” escape sequence is used for GLI values 810,900 - 811,799. For more information about how these values are calculated, see section 2.2.6 of the Uniform Symbology Specification PDF417.

In addition to transmitting GLI numbers, the escape sequence is used to transmit other codewords for more purposes. The special codewords are given in Table 8 in Section 2.7 of the Uniform Symbology Specification PDF417. The special codewords “\903” to “\912” and “\914” to “\920” are reserved for future use. The BCOCA receiver accepts these special escape sequences and adds them to the bar code symbol, resuming normal encoding with the character that follows the escape sequence.

The special codeword “\921” instructs the bar code reader to interpret the data that is contained within the symbol for reader initialization or programming. This escape sequence is only allowed at the beginning of the bar code data.

The special codewords “\922”, “\923”, and “\928” are used for coding a Macro PDF417 Control Block as defined in section G.2 of the Uniform Symbology Specification PDF417. These codewords must not be used within the BCOCA data; instead, a Macro PDF417 Control Block can be specified in the special-function parameters. Exception condition EC-2100 exists if one of these escape sequences is found in the bar code data.

Because the default character encodation for this bar code is GLI 0 (an ASCII code page that is similar to IBM code page 437), the EBCDIC-to-ASCII translation flag can be used when all of the data for the bar code is EBCDIC. If the bar code data contains more than one-character encodation, or if the data needs to be encoded within the bar code symbol in a form other than the default character encodation (such as in EBCDIC), the bar code data must begin in the default encodation, the EBCDIC-to-ASCII translation flag must be set to B'0', and the GLI protocol must be used to switch into the other encodation.

Note: For more information about 2DPDF417 two-dimensional matrix bar codes, see PDF417 Special-Function Parameters.
Australia Post Bar Code (APOSTAL)
Australia Post Bar Code (APOSTAL)
A bar code symbology that is defined by Australia Post for use in Australian postal systems. Several formats of this bar code exist, which are identified by the modifier byte as follows:
Modifier Type of bar code Valid bar code data
X'01' Standard Customer Barcode (format code = 11) An 8-digit number that represents the Sorting Code.
X'02' Customer Barcode 2 using Table N (format code = 59) An 8-digit number that represents the Sorting Code followed by up to 8 numeric digits that represent the Customer Information.
X'03' Customer Barcode 2 using Table C (format code = 59) An 8-digit number that represents the Sorting Code followed by up to 5 characters (A - Z, a - z, 0 - 9, space, #) that represent the Customer Information.
X'04' Customer Barcode 2 using proprietary encoding (format code = 59) An 8-digit number that represents the Sorting Code followed by up to 16 numeric digits (0 - 3) that represent the Customer Information. Each of the 16 digits specifies one of the 4 types of bar.
X'05' Customer Barcode 3 using Table N (format code = 62) An 8-digit number that represents the Sorting Code followed by up to 15 numeric digits that represent the Customer Information.
X'06' Customer Barcode 3 using Table C (format code = 62) An 8-digit number that represents the Sorting Code followed by up to 10 characters (A - Z, a - z, 0 - 9, space, #) that represent the Customer Information.
X'07' Customer Barcode 3 using proprietary encoding (format code = 62) An 8-digit number that represents the Sorting Code followed by up to 31 numeric digits (0 - 3) that represent the Customer Information. Each of the 31 digits specify one of the 4 types of bar.
X'08' Reply Paid Barcode (format code = 45) An 8-digit number that represents the Sorting Code.

The proprietary encoding allows the customer to specify the types of bars to be printed directly by using 0 for a full bar, 1 for an ascending bar, 2 for a descending bar and 3 for a timing bar. If the customer does not specify enough Customer Information to fill the field, the printer uses a filler bar to extend pad the field out to the correct number of bars.

The printer encodes the data by using the proper tables, generate the start and stop bars, generate any needed filler bars, and generate the Reed Solomon ECC bars.

Human-readable interpretation (HRI) can be selected with this bar code type. The format control code, Delivery Point Identifier, and customer information field (if any) appear in the HRI, but the ECC does not.

The proprietary encoding allows the customer to specify the types of bars to be printed directly by using 0 for a full bar, 1 for an ascending bar, 2 for a descending bar, and 3 for a timing bar. If the customer does not specify enough Customer Information to fill the field, the printer uses a filler bar to extend pad the field out to the correct number of bars.

The printer encodes the data by using the proper tables, generate the start and stop bars, generate any needed filler bars, and generate the Reed Solomon ECC bars.

Human readable interpretation (HRI) can be selected with this bar code type. The format control code, Delivery Point Identifier, and customer information field (if any) appear in the HRI, but the ECC does not.

QR Code
QR Code
A two-dimensional matrix bar code symbology that is defined as an AIM International Technical Standard.
X'02'
Present a Model 2 QR Code Bar Code symbol as defined in AIM International Symbology Specification — QR Code.

The bar code data is assumed to start with the default character encodation (ECI 000020). This is a single-byte code page that represents the JIS8 and Shift JIS character sets; it is equivalent to the ASCII code page 897. To change to a different character encodation within the data, the ECI protocol as defined in the AIM International "Extended Channel Interpretation (ECI) Assignments", must be used.

Since the default character encodation for this bar code is ASCII, the EBCDIC-to-ASCII translation flag can be used in the following manner:
  • When all of the input data for the bar code is single-byte EBCDIC that uses one of the supported code pages (500, 290, or 1027), set the EBCDIC-to-ASCII translation flag to B'1' and select the correct code page in the conversion parameter.
  • When all of the input data for the bar code is mixed-byte EBCDIC AFP Line Data that uses SO and SI controls (SOSI data), set the EBCDIC-to-ASCII translation flag to B'1' and select the conversion value you want in the conversion parameter.

If the bar code data contains more than one-character encodation or if the data needs to be encoded within the bar code symbol in a form other than the ones that are previously mentioned (such as in an EBCDIC code page that is not supported by the EBCDIC-to-ASCII translation flag), the bar code data must begin in the default encodation, the EBCDIC-to-ASCII translation flag must be set to B'0', and the ECI protocol must be used to switch to the other encodations.

A quiet zone must exist around the symbol that is at least four modules wide on each of the four sides of the symbol.
Note: For more information about QRCODE two-dimensional bar code see QR Code Special-Function Parameters.
Code 93
Code 93
A linear bar code symbology similar to Code 39, but more compact than Code 39. Code 93 bar code symbols are made up of a series of characters each of which is represented by 9 modules that are arranged into 3 bars with their adjacent spaces. The bars and spaces very between 1 module wide and 4 modules wide.
X'00'
Present a Code 93 bar code symbol as defined in AIM International Symbology Specification — Code 93.

The Code 93 character set contains 47 characters, including numeric digits, uppercase alphabetics, four shift characters (a, b, c, and d), and seven special characters. The Code 93 Specification also provides a method of encoding all 128 ASCII characters by using two bar code characters for those ASCII characters that are not in the standard Code 93 character set. This is sometimes referred to as Extended Code 93. In this case, the two bar code characters that are used to specify the extended character are shown in the Human-Readable Interpretation (as a filled box followed by the second character) and the bar code scanner interprets the two-character combination bar/space pattern.

The Human-Readable Interpretation of the Start and Stop characters is represented as an open box and the shift characters (a, b, c, and d) are represented as a filled box.

A quiet zone must precede and follow the symbol that is at least 10 modules wide.

USPS Four-State
USPS Four-State
The USPS Four-State bar code symbology1 limits the symbol size; therefore, BSD element height, height multiplier, and wide-to-narrow ratio fields are not applicable to this symbology and are ignored by BCOCA receivers. The module width field allows for two symbol sizes (small and optimal); the small symbol is approximately 2.575 inches wide and the optimal symbol is approximately 2.9 inches wide.
The input data is all numeric and consists of 5 data fields. The first four fields are fixed length and the 5th field can have one of four lengths; the bar code modifier is used to specify the length of the 5th field. The total length of the input data can be 20, 25, 29, or 31 digits and is defined as follows:
  • Bar code ID (2 digits) - assigned by USPS, the 2nd digit must be 0 - 4. Thus, the valid values are: 00 - 04, 10 - 14, 20 - 24, 30 - 34, 40 - 44, 50 - 54, 60 - 64, 70 - 74, 80 - 84, and 90 - 94.
  • Service Code (3 digits) - assigned by USPS; valid values are 000 - 999.
  • Subscriber ID (6 digits) - assigned by USPS; valid values are 000000 - 999999.
  • Unique ID (9 digits) - assigned by the mailer; valid values are 000000000 - 999999999.
  • Routing ZIP Code (0, 5, 9, or 11 digits) - refer to the modifier for valid values.
USPS Four-State modifier values are defined as follows:
X'00'
Present a USPS Four-State bar code symbol with no Delivery Point ZIP Code. The input data for this bar code symbol must be 20 number digits.
X'01'
Present a USPS Four-State bar code symbol with a 5-digit Delivery Point ZIP Code. The input data for this bar code symbol must be 25 number digits; the valid values for the Delivery Point ZIP Code are 00000 - 99999.
X'02'
Present a USPS Four-State bar code symbol with a 9-digit Delivery Point ZIP Code. The input data for this bar code symbol must be 29 number digits; the valid values for the Delivery Point ZIP Code are 000000000 - 999999999.
X'03'
Present a USPS Four-State bar code symbol with an 11-digit Delivery Point ZIP Code. The input data for this bar code symbol must be 31 number digits; the valid values for the Delivery Point ZIP Code are 00000000000 - 99999999999.

Human-Readable Interpretation (HRI) can be printed with a USPS Four-State symbol, but HRI is not used with all types of special services. See Introducing 4-state Customer Barcode for a description of when HRI is appropriate.

A quiet zone must surround the symbol (all four sides) that is at least 0.04 inches above and below and at least 0.125 inches on both sides of the symbol.

1 The United States Postal Service (USPS) developed this symbology for use in the USPS mailstream and named it the OneCodeSOLUTION Barcode. The bar code is also known as the 4-state Customer Barcode and is abbreviated in several ways: OneCode (4CB), OneCode (4-CB), 4CB, or 4-CB.