Hiring or looking for a job in Digital Health? Check out our Digital Health Jobs board

IFA UDI Hack: Save Money By Using a Health Product Code (HPC)

Sören Hornof

The business of issuing numbers is probably very lucrative. The big issuing companies like GS1 and IFA charge random prices for their codes. And you have to pay them because it’s a legal requirement to have them. There’s a way to save at least a little bit of money with IFA. The prerequisite for this hack to work is that you don’t want to sell your medical device through German pharmacies. If that’s the case, you can actually just assign UDI-DIs yourself without having to buy them from IFA or GS1. How so? - With HPC! That’s short for Health Product Code.

How the Health Product Code saves you money

The Health Product Code (HPC) can be assigned by yourself. That’s huge because

  1. you don’t need to deal with the process of assigning a code in a crappy interface or via an even crappier Excel order form and
  2. you don’t need to pay for it.

For assigning the HPC, you just need a so-called CIN from IFA, that’s the Company Identification Number, sometimes it’s also called IFA Supplier Number. The CIN is provided to you when you register your company with IFA which comes with an annual fee that you need to pay (currently 50€/a, Aug 2023). Once you have that, you can assign UDI-DIs yourself. In comparison: if you’d use the PPN as your UDI-DI, you’d need to pay 6€ (Aug ‘23) for every new UDI-DI that you assign. You usually need a new UDI-DI for every major version update of your software and for every substantial change to your device. With physical products, you need a different UDI-DI for every level of packaging.

What the Health Product Code looks like

The format of the HPC looks like this:

HPC Code Format

A PPN always starts with “11” while the HPC always starts with “13”. You can decide which one of them you use as your UDI-DI.

Make sure not to confuse this number with the Basic UDI-DI. The similarity is that you can assign both yourselves and for both, you need a calculator that calculates a check digit pair. However, the Basic UDI-DI doesn’t have a Packaging Level. Also, for the Basic UDI-DI, you need a Device Group Code (that you assign yourself), while for the UDI-DI, you need a Supplier Part Number (that you also assign yourself). The difference is that the Basic UDI-DI describes the device group (with the same intended use, same risk class, etc.), while the UDI-DI is different for every version or model of the device. So make sure to account for that when coming up with a Device Group Code and a Supplier Part Number (what a strange term for this).

How to generate the HPC

As there’s a check character pair required for every HPC, you need to calculate it. Here you can find the HPC Generator on the IFA website. As input, you just need your CIN (Companys Identification Number) that you get when you register with IFA, your internal reference (Supplier Part Number) and the Packaging Level Index. If you need help with that, feel free to reach out. The MAX18 section is meant for your internal product reference name or number. It makes sense to include the version number of your device in this, at least the major version number. The packaging level number is “0” for the device itself (unpackaged so to say, zero packaging, nada, niente). The first packaging (for the single device) has the packaging level “1” and the following packaging levels are reserved for “multipacks” (e.g. a multipack of 5 devices could have the packaging level “2”, a 30-pack could have “3” etc.). For standalone software, however, you usually would only need the “0”. The check character pair has to be calculated.

How to handle HPCs in your QMS

Always keep records of the UDI-DIs that you assign. Even if those numbers are probably in the records of your Technical Documentation, it makes sense to additionally keep a list of all the UDIs. The HPC serves as the UDI-DI and has to be included in your device label. If you want to (or have to) create a machine-readable UDI, for IFA you would use the DataMatrix code for PPNs. I explain how to create this code with a barcode generator in our video course about UDIs. You need to assign a new HPC whenever you need a new UDI-DI (duh). You can find more information about this in the MDCG guidance 2018-5. There it says that changes to performance, safety, or the interpretation of data and a change to the name, version number, critical warnings, or contra-indications (etc.) require a new UDI-DI.

On a slighty different note: You want to get your medical software certified under MDR but don't know where to start? No worries! That's why we built the Wizard. It's a self-guided video course which helps you create your documentation yourself. No prior knowledge required. You should check it out.

Or, if you're looking for the most awesome (in our opinion) eQMS software to manage your documentation, look no further. We've built Formwork, and it even has a free version!

If you're looking for human help, did you know that we also provide some limited consulting? It's limited because we are not many people. We guide startups from start to finish in their medical device compliance.

Congratulations! You read this far.

Get notified when we post something new.

Sign up for our free newsletter.

Sören Hornof

Hi! I am a Pharmacist with great enthusiasm for technology and innovation. Health has always been my major passion and I strongly believe that medical devices will change the world of care. Therefore, I am very happy to be able to work with progressive startups and contribute to this development.


If you have any questions or would like to share your opinion publicly, feel free to comment below. If you'd like to reach out privately, send us a message.

No QMS on this planet will save you from creating crappy software.