← All articles

How to Lay Out a UDI Label: DI, PI, AIDC Barcode and HRI Text for FDA and EU MDR, with GS1 Examples

Updated 2026-09-19 · ParityLabel editorial

Regulators describe the UDI in terms of databases and deadlines. The person laying out the label needs something more concrete: which fields, in which order, encoded how, printed how big. This guide is that layer. It uses GS1 examples because GS1 is the most common issuing agency, and notes where HIBCC or ICCBBA differ; the choice of agency is covered in a separate article.

Key points

  • UDI = DI + PI. DI identifies the labeller, model and packaging level; PI carries expiry, lot, serial and manufacturing date — whichever appear on the label.
  • Both AIDC (barcode) and HRI (readable text) are required in the US and the EU. The EU relaxes to AIDC-only under severe space limits, except for devices used outside healthcare facilities.
  • GS1 encoding: (01) GTIN-14, (17) expiry YYMMDD, (10) lot, (21) serial, (11) manufacturing date. Fixed-length AIs first; variable-length AIs last or separated by FNC1.
  • FDA 21 CFR 801.18: dates printed on the label must read YYYY-MM-DD, even though the barcode holds YYMMDD.
  • GS1 DataMatrix for units (X 0.255–0.615 mm), GS1-128 for cases (X 0.170–0.495 mm); verify to ISO/IEC 15415 / 15416 grade 1.5 (C) minimum.

1. What the two halves contain

PartGS1 elementExampleWhere it comes from
DI — device identifierGTIN-14 in AI (01)(01)00812345678901Assigned by you from your GS1 Company Prefix; one per model per packaging level; registered in GUDID / EUDAMED
PI — expiryAI (17), YYMMDD(17)270526Only if an expiry date appears on the label
PI — lot / batchAI (10), up to 20 characters(10)LOT42Only if lot control is used
PI — serialAI (21), up to 20 characters(21)SN1001Only if serialised
PI — manufacturing dateAI (11), YYMMDD(11)250601Only if the manufacturing date appears on the label

The rule for PIs is simple: if the information is on the label, it goes in the UDI; if the device has no expiry date, no (17). What you do not put on the label: the EU Basic UDI-DI (a grouping key that lives only in EUDAMED and the declaration of conformity) and the FDA GUDID record itself. Those are database objects.

2. Encoding order and the FNC1 rule

GS1 application identifiers come in two kinds. Fixed-length AIs — (01) always 14 digits, (11) and (17) always 6 — need no terminator. Variable-length AIs — (10) lot, (21) serial — must either be the last element in the symbol or be followed by an FNC1 separator character so the scanner knows where the field ends. The safe layout is therefore:

(01)00812345678901 (17)270526 (10)LOT42 (21)SN1001

Fixed AIs first, one variable AI last. If you need both lot and serial, the generator inserts FNC1 after the lot automatically; you never type it. In HRI the parentheses and spaces are for the reader and are not encoded. The UDI generator builds the element string, inserts FNC1 where needed, renders GS1 DataMatrix or GS1-128 and prints the HRI beneath it.

HIBCC and ICCBBA differ in syntax, not in principle. HIBC primary data starts with + and carries the labeler ID and product code; the secondary data string carries lot, serial and dates with its own flags. ICCBBA (ISBT 128) uses data identifiers such as = and &. The layout rules below — AIDC plus HRI, dates readable, grade 1.5 — apply to all of them.

3. FDA and EU: the same UDI, two sets of label rules

RuleFDA (21 CFR Part 801, Subpart B)EU MDR (Annex VI Part C)
Both AIDC and HRI on the labelRequired (801.40(a))Required (4.7); AIDC-only allowed where space is significantly constrained (4.8), but devices for use outside healthcare facilities must keep the HRI
Date format on the labelYYYY-MM-DD, e.g. 2027-05-26 (801.18) — applies to expiry, manufacturing and any other dateNo mandated format; ISO 8601 YYYY-MM-DD is the common choice and matches the FDA label
Which packaging levelsEvery level intended for sale or use; shipping containers exemptEvery level; shipping containers exempt (4.6)
Direct markingReusable devices reprocessed before each use: UDI on the device itself (801.45)Reusable devices: direct marking required (4.10), with the 2027 deadline for reusable Class I devices
DatabaseGUDID: DI record per model/packaging levelEUDAMED: Basic UDI-DI plus UDI-DI records
Issuing agenciesGS1, HIBCC, ICCBBAGS1, HIBCC, ICCBBA, IFA

The date rule trips up more labels than anything else. The barcode holds (17)270526, the HRI repeats (17)270526 — and the FDA additionally expects the expiry to appear on the label in plain words as 2027-05-26 with an hourglass symbol or "Use by". Print both: the HRI string under the barcode, and the human date in the symbols block where clinicians look for it.

4. Choosing and sizing the symbol

GS1 DataMatrixGS1-128
Use it forUnit of use, small sales packs, direct markingShipping cases, outer cartons, anywhere laser scanners are used
X-dimension (healthcare items not scanned in general distribution)0.255 mm min · 0.300 target · 0.615 max0.170 mm min · 0.250 target · 0.495 max
HeightSquare; typical 8–14 mm for DI + expiry + lotAt least 13 mm bars; 32 mm on cases in general distribution
Quiet zone1 module all round10X left and right
Print qualityISO/IEC 15415, grade 1.5 (C) minimumISO/IEC 15416, grade 1.5 (C) minimum
Thermal printingModule = whole dots: 300 dpi → 3 dots = 0.254 mm, 4 dots = 0.339 mmX = 2 or 3 dots at 300 dpi; avoid 203 dpi below 0.25 mm

Verification is not optional for healthcare symbols: a DataMatrix that reads on your phone can still fail grade 1.5 on modulation or axial non-uniformity because a module was 2.7 dots instead of 3. Set the module size to a whole number of printer dots, print vector output, and grade a sample. What pushes a symbol below grade is covered in the EU UDI print-quality article.

5. A worked label

Sterile single-use catheter, sales pack of one, lot-controlled, two-year shelf life, sold in the US and EU:

Two DIs, two GUDID records, two EUDAMED UDI-DI records — one for the sales pack and one for the case — both pointing to the same model.

Build the UDI element string and barcode

Enter GTIN, expiry, lot and serial; the tool orders the AIs, inserts FNC1, renders GS1 DataMatrix or GS1-128 at a whole-dot module size and prints the HRI beneath. Open the tool →

References

Frequently asked questions

What is the difference between DI and PI on a UDI label?

The DI (device identifier) is the fixed part — the GTIN under GS1, or the equivalent from HIBCC, ICCBBA or IFA — that identifies the labeller and the device model and packaging level. The PI (production identifier) is the variable part: expiry date, lot or batch, serial number and manufacturing date, whichever appear on the label. Together they form the UDI; the DI alone is what you register in GUDID or EUDAMED.

Does a UDI label need both a barcode and readable text?

Yes in both the US and the EU. FDA 21 CFR 801.40 requires the UDI in easily readable plain text and in an AIDC form. EU MDR Annex VI Part C requires AIDC and HRI; only where space is genuinely too limited may the label carry AIDC alone, and devices intended for use outside healthcare facilities (home use) must carry the HRI even if the AIDC has to be dropped.

How do I write the HRI for a GS1 UDI?

Write each application identifier in parentheses followed by its data, in the same order as the barcode: (01)00812345678901(17)270526(10)LOT42(21)SN1001. The parentheses and any spaces are for humans only and are not encoded. FDA additionally requires any date on the label to appear as YYYY-MM-DD (21 CFR 801.18), so the expiry is also printed as 2027-05-26 next to the HRI.

Should I use GS1 DataMatrix or GS1-128 for UDI?

GS1 DataMatrix for unit-of-use and small packaging: it holds the full DI + PI in a few millimetres and reads on 2D imagers, with X-dimension 0.255–0.615 mm (0.300 target). GS1-128 for shipping cases and where warehouse laser scanners are used: X 0.170–0.495 mm (0.250 target), bar height at least 13 mm. Both must reach ISO/IEC 15415 or 15416 grade 1.5 (C) for healthcare.

Does every packaging level need its own UDI?

Yes. Each level — unit of use, sales pack, inner carton, shipping case — gets its own DI, registered separately, and its own label with AIDC and HRI. Under GS1 that usually means different indicator digits in the GTIN-14 for higher levels. Shipping containers used only for logistics are exempt from the UDI, but a case that is also a sellable unit is not.