ISBT-128 | ICCBBA Unique Device Identification (UDI)

Barcode Information Tutorials & FAQs at

ISBT-128 is a technical specification developed by the ICCBBA. All IDAutomation Code 128 and Data Matrix products support generation of ISBT barcode symbols.

ISO 7064 Modulo 37-2 Check Character K

The ISBT specification requires that some barcode symbols that show the human readable interpretation (HRI) below the barcode symbol include a (K) check character. This HRI text is also referred to as “data content text” and “eye-readable text” in the specification. The (K) check character is based on the ISO 7064 modulo 37-2 calculation and it is not encoded in the barcode; it is used to verify accurate data entry when the barcode cannot be read. Therefore, the data encoded within the barcode symbol and the HRI will be slightly different. The calculation for check character K is based on the donor 13 character string, which excludes the leading = symbol and optional flag characters. IDAutomation provides the ~k?? option (where ?? is the number of digits preceding ~ to include in the calculation) in some products to easily calculate the check character K. For example:

Data Encoded: =P00020601906300
HRI Text Encoded: P000206019063~k13
Result:ISO 7064 Modulo 37-2 Check Character K Example

If it is desired to split the HRI for easier data entry and add flag characters, custom formulas would need to be created for each section as shown in the Crystal Reports ISBT Example, or the HRI source code provided by IDAutomation would need to be modified.

IDAutomation Code 128, Data Matrix and QR Code products supporting the ~k?? HRI option include:

ICCBBA Unique Device Identification (UDI)

ICCBBA UDI barcodes are used to identify human cells, tissues and cellular and tissue-based products as approved on by the FDA. ISBT 128 UDI begins with the non-printable characters of the Data Identifier for Compound Message, 2 Digit Number Indicator for the data structure to follow and a 3 Digit code indicated the sequence of the data structures. The compound message for this barcode would begin with =+06000.

 Data DelimitersIdentifierData TypeHR Field SizeDB Field SizeExample Data
 =+Compound MessageNot Printable06000
 =/Device Identifier (DI)Alphanumeric1816A9999XYZ100T0944
 =,Serial NumberAlphanumeric86000025
 =Distinct ID Code
Donation ID Number
 =>Expiration DateNumeric86 (YYYJJJ)014032
 =}Manufacturing DateNumeric86 (YYYJJJ)013032
 &,1MPHO Lot Number Alphanumeric2118000000000000XYZ123

The following barcodes are created with Code 128:

Barcode Label Software ICCBBA UDI


The following barcode is created with Data Matrix:

Data Matrix ICCBBA UDI

Blood Bag Labels:
 Data DelimitersIdentifierData TypeHR Field SizeDB Field SizeExample Data
 =)Device Identifier (DI) for blood containers (bags)Alphanumeric12101TE123456A
 &)Lot Number for Blood Containers


The following barcode is created with GS1-128:

Blood Bag Barcodes

ICCBBA UDI Barcode Label Example

ICCBBA UDI Label Example