# UDI — Unique Device Identification

> The UDI registry row: one FDA regime, three issuing agencies' grammars (GS1, HIBCC, ICCBBA), the DI/PI split, and CC0 enrichment with GMDN stripped.

- page: https://barcoding.dev/schemes/udi/
- machine row: https://barcoding.dev/schemes/udi.json
- scheme (dotted registry name): udi.gs1

## Reference
- grammar: One regulatory regime, three issuing agencies, three grammars: GS1 (GTIN-14 as DI, AIs as PI), HIBCC (+$ conventions), ICCBBA (ISBT 128). The FDA UDI formats document is the umbrella grammar.
- check: Per agency: the GS1 form rides the mod-10 rail; structure per issuing agency's published format.
- canonical: DI (device identifier) split from PI (production identifiers — lot, serial, expiry), each typed.
- barcode types: GS1 DataMatrix and GS1-128 dominate; HIBCC and ICCBBA carriers per agency
- enrichment: AccessGUDID / openFDA device (CC0) — GMDN-licensed columns stripped at ingest; the served record is free and clear by construction
- join: The DI is the what of a device event; the PIs decide instance vs lot grain, the same way AI 21/10 do for retail GTINs.

## Registry rows (engine artifacts, digest-stated)
### udi.gs1
- grammar: `^\(?01\)?\d{14}.*`
- check: mod10 → "mod10 pass" (FDA UDI formats (GS1 agency); GS1 GenSpecs 26.0)
- canonical: DI = GTIN-14; PI = the AI-keyed production identifiers
- segments: DI · check · PI
- generate: gs1datamatrix, gs1-128
- hand-off: read here · resolved by id.org.ai
- digest: sha256:440db3e1c3ffcda1e8933b7cebc668e8647dcf334b624f70a21f4b134976d249

## Resolution stance
barcoding.dev detects, parses, verifies, enriches and generates — the codec and the data layer. Resolution — an identifier answered with identity and its linkset of live doors — is ONE capability family-wide, served by the family's identity layer, id.org.ai; vertical estates project the same one capability (vehicles: auto.dev). This registry row is the data that resolution consumes.

## Posts
- https://barcoding.dev/blog/udi-the-fda-multi-scheme-resolver/
- https://barcoding.dev/blog/pharma-already-lives-in-2027/
