HIBCC Barcodes for UDI Labeling

HIBCC Barcodes for UDI Labeling
If you make medical devices, you are sure to be getting organized for complying with the FDA’s Unique Device Identification (UDI) program. Here at ID Technology and Greydon, we have helped a lot of companies get into compliance with the UDI rules.

While a lot of the companies we’ve worked with use the GS1 barcoding standard, there are also many medical device businesses that have adopted the Health Industry Business Communication Council (HIBCC) standard for their product barcoding. The good news for them is that HIBCC is one of the approved Issuing Agencies for UDI.

One of the things I like about HIBCC is the fact the standard is flexible in allowing actual product/catalog numbers to be used as product ID numbers – the GTIN system from GS1 is strictly numeric, so there is often a disconnect here.

This article is about developing HIBCC barcode labels to meet the AIDC part of the UDI rule. The HIBCC barcode concept has a lot of options and is, in my opinion anyway, a lot more complicated than GS1 to format the data.

What is HIBCC

HIBCC is a standards council that was set up in 1983 with the mission to develop a data standard for the healthcare industry.

The resulting data standard is built around the HIBCC Labeler Identification Code (LIC) that identifies each medical product manufacturer and is used as part of the HIBCC barcode – just as the GS1 company prefix is used in GTIN barcodes in the GS1 system.

The LIC is issued by HIBCC and is a four-digit alphanumeric number, the first character always being a letter.

HIBCC Barcodes

In UDI, the data is divided into two parts, the Device Identifier (DI) and Production Identifier (PI). See the ID Technology eBook on UDI for more information on UDI data.

In HIBCC, the Device Identifier is the HIBCC Primary Data and the Production Identifier the Secondary Data.This information can be encoded in three ways:

Two linear barcodes (Code 128 or Code 39), one for each section of data.

One concatenated linear barcode

One concatenated 2D barcodeQR Code or Aztec Code.

Although not covered here, the HIBCC/UDI data can also be encoded using RFID as an alternative to barcoding.

The HIBCC Primary Data Structure

The primary HIBCC barcode consists of the following elements:

a “+” identifier for HIBCC structure

the four character LIC

a 1 to 18 character Product or Catalog Number (PCN)

a one digit Unit of Measure Identifier (U/M)

a one digit Check Digit (C)

PCN – this is an alphanumeric string (often the actual catalog number of the product) that is between 1 and 18 characters in length. Note that (if needed) the PCN should be compressed to remove any special characters and spaces. For example; 55S/33*1 would be 55S331 in the barcode data.

U/M – single digit Unit of Measure ID. This is numeric only and designates the level of packaging. 0 (zero) is for unit of use packaging and the other levels are designated by the manufacturer.

C- check digit for the barcode (usually calculated automatically if using barcode software to design the label).


For a medical device product, packed in Unit of Use packaging with:

LIC = A123
PCN = AWW-W3222
U/M = 0

The encoded data would be:


Where the last 0 is the calculated check digit.

The concatenated data string (without the + and the check digit) is called the HIBCC Universal Product Number and in this example would be:


Here is our example data, encoded as a Code 39 linear barcode:

HIBCC Primary Data

Secondary Data Structure

To enable the HIBCC system to be used in UDI, it is necessary to encode additional data into the barcode, such as expiration dates, serial numbers and lot numbers.

A Note on Dates

The FDA UDI rule states that dates printed onto labels must be in the format, YYYY-MM-DD. This doesn’t apply to dates that are encoded into the barcodes on the label.

The HIBCC states that the following supported date formats can be included in HIBCC barcodes used in UDI applications:


*The FDA’s date format is not included as one of the HIBCC Secondary Data options, but there is a little workaround that allows it to be used.

Formatting the Secondary Data

While GS1 has a well thought out way of formatting barcodes using Application Identifiers, HIBCC data formatting can be very confusing. The good news is that barcode software often makes this job easier, although it is a good idea to have an understanding of the underlying rules as well. There is also a rather nice workaround when it comes to building concatenated 2D barcodes.

For formatting the HIBCC Secondary Data, there are a number of options depending on what data needs to be included in the barcode. let’s have a look at the options.

The Secondary Data can consist of:

“+” – the HIBCC flag.

Quantity – either a 2 or 5 digit field that contains the number of items in the package.

Expiration Date – the product’s expiration date, use one of the formats listed above, for UDI.

Lot/Batch Number – used if the product is produced and managed by lot.

Serial Number – used if the product is produced and managed by serial number

Link Character – the check digit from the Primary Data barcode.

Check Character – the check digit from the secondary barcode.

In addition, Secondary Supplemental Data can be added, after the Secondary Data. This includes:

Serial number when Lot number is used.

Date of Manufacture.

Building the Barcode

Finally, let’s make a barcode. The first character is the + followed by what HIBCC calls the “Quantity/Date/Lot or Serial Number Reference Identifier” – they use the letter R to designate this.

The R data is what tells us what data is included in the rest of the barcode. The choices are:

+ (followed by a number) – Exp Date in Julian Format YYJJJ (no Lot or Serial #)

+$ – Lot Number only (no Exp Date or Serial #)

+$$ – Exp Date MMYY and Lot Number

+$$2 – Exp Date MMDDYY and Lot Number

+$$3 – Exp Date YYMMDD and Lot Number

+$$4 – Exp Date YYMMDDHH and Lot Number

+$$5 – Exp Date YYJJJ and Lot Number

+$$6 – Exp Date YYJJJHH and Lot Number

+$$7 – Lot Number only (no Exp Date or Serial #)

+$$8 –  Qty QQ Exp Date MMYY and Lot Number

+$$82 –  Qty QQ Exp Date MMDDYY and Lot Number

+$$83 –  Qty QQ Exp Date YYMMDD and Lot Number

+$$84 –  Qty QQ Exp Date YYMMDDHH and Lot Number

+$$85 –  Qty QQ Exp Date YYJJJ and Lot Number

+$$86 –  Qty QQ Exp Date YYJJJHH and Lot Number

+$$87 –  Qty QQ and Lot Number

+$$8 –  Qty QQ

+$$9 –  Qty QQQQQ Exp Date MMYY and Lot Number

+$$92 –  Qty QQQQQ Exp Date MMDDYY and Lot Number

+$$93 –  Qty QQQQQ Exp Date YYMMDD and Lot Number

+$$94 –  Qty QQQQQ Exp Date YYMMDDHH and Lot Number

+$$95 –  Qty QQQQQ Exp Date YYJJJ and Lot Number

+$$96 –  Qty QQQQQ Exp Date YYJJJHH and Lot Number

+$$97 –  Qty QQQQQ and Lot Number

+$$9 –  Qty QQQQQ

+$+ – Serial Number

+$$+ – Exp Date MMYY and Serial Number

+$$+2 – Exp Date MMDDYY and Serial Number

+$$+3 – Exp Date YYMMDD and Serial Number

+$$+4 – Exp Date YYMMDDHH and Serial Number

+$$+5 – Exp Date YYJJJ and Serial Number

+$$+6 – Exp Date YYJJJHHH and Serial Number

+$$+7 – Serial Number

Some Examples of Secondary Barcodes

Product Data

Primary Data : +A123AWWW322200

Lot Number: A4452Z2

Exp Date: January 31 2017 (I’d use YYMMDD for the barcode date)

My data would look like this:


and my barcode would be:

HIBCC Secondary Data Barcode

HIBCC Secondary Data

Normally, I’d print both the Primary and Secondary data onto one label to give me my UDI compliant information:

HIBCC UDI Linear Barcodes

Combining the Two Barcodes into One Symbol

It often makes more sense to combine the two barcodes into one and this is easy to do in HIBCC. The two data strings are concatenated, with just a couple of changes; a / (forward slash) character is used as the delimiter between the Primary and Secondary data, the + at the start of the Secondary data is removed along with the check digit from the first barcode and the link character from the second.

Here is the concatenated HIBCC barcode for our example product:

HIBCC UDI Concatenated Barcode

HIBCC UDI Concatenated Barcode

Of course, concatenated UDI barcodes can get to be quite long – I already had to reduce the x-dimension of my Code 39 barcode to get it to fit my label size. The solution for this is to use a 2D barcode format for these concatenated barcodes, as seen here:

HIBCC 2D Barcodes

Each of the three barcodes contains the same data as the concatenated linear barcode. This space saving ability makes them an obvious choice for main UDI applications. Note that HIBCC allows for Datamatrix, Aztec and QR Codes to be used.

Adding Secondary Supplemental Data

As I mentioned earlier, there are some additional pieces of data that can be added to the HIBCC barcodes – adding a serial number, when a lot number is also used and including a date of manufacture. HIBCC provides a quite elegant way of doing this, which also allows for the encoding of Exp Dates in the same format as they need to be printed in text on the label.

This Secondary Supplemental Data is encoded using Data Identifiers (DIs) which function very much like the Application Identifiers used in the GS1 system.

A forward slash (/) character is used at the start of a Secondary Supplemental Data field, followed by the appropriate DI, then the field data.

Serial Number when Lot Number is Used

S is the DI for Serial Number, so if the Serial Number happens to be 1001,  /S1001 is added to the barcode data, followed by the calculated Check Character. The human readable text on the label would look like this:


Date of Manufacture

Date of Manufacture is encoded using the DI 16D and format YYYYMMDD (yes, the same date format the FDA is looking for to be printed on the label).

I could add the Date of Manufacture of March 1st, 2015 to my data like this…

*+A123AWWW32220/$$3170131A4452Z2/16D20150301/S1001.* (Note that in this case, the check digit is calculated as the dot (.) character.

Data Identifiers Make Things Easier

To be honest, I find the HIBCC barcode structure to be way more complicated than GS1, so unless my company was already locked into HIBCC, I’d be using GTINs for my barcoding.

There are however some ways to make things easier – using the Data Identifiers outlined above.

We’ve already mentioned the DI for Serial Number – S
and Manufacture Date – 16D

We can also use the DI for Exp Date – 14D (note that the date needs to be formatted as YYYMMDD in the barcode).

Here’s an example, using the same data as earlier:

Product Data

LIC = A123
PCN = AWW-W322**/2
U/M = 0

Lot Number: A4452Z2

Exp Date: January 31 2017 (I’d use 20170131 for the barcode date)

My data would look like this:


and the resulting Datamatrix barcode:

HIBCC UDI Barcode with LOT and EXP Date

HIBCC UDI Barcode with LOT and EXP Date

Do We Have to Remember All This?

As I mentioned, HIBCC barcoding can get to be rather complicated. There are a couple of things that can make life easier (Thank goodness!).

First, the HIBCC has a barcode configurator on their website. It takes a while to make a barcode, but the configurator allows the user to create both simple and concatenated barcodes in 2D or linear formats:

HIBCC Website Barcode Configurator

Even better, most barcode label creation software packages contain helpful wizards for creating HIBCC barcodes. Here is the one that we use in NiceLabel, for example:

HIBCC Label Wizard Nicelabel

How Can We Help You?

With years of experience of helping medical device companies get into UDI compliance – both HIBCC and GS1 standards – our printing systems and expertise are well known in the industry. Want to get started with improving your medical labeling and printing operations?  Contact us today – 888-438-3242 Option#3 or you can contact me directly at dholliday@idtechnology.com. We’ll get you in touch with the appropriate specialist to get you going!

Finally, be sure to check out our FDA UDI eBook for a lot of useful info on the UDI program generally.

Share Button