# NDC — National Drug Code

> The NDC registry row: three 10-digit layouts, the 11-digit billing canonicalization, an honest "check": "none", and the GTIN embedding behind the "3" prefix.

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

## Reference
- grammar: 10 digits in three layouts — 4-4-2, 5-3-2, 5-4-1 (labeler–product–package); the layout is data from the labeler code, not guessable from the digits alone.
- check: None — structurally validated only, and the output says so: "check": "none" is an honesty field, not an omission.
- canonical: The 11-digit 5-4-2 form (the billing convention), zero-padded per segment.
- barcode types: The US drug UPC/GTIN embeds the NDC behind the “3” prefix; serialized DSCSA packs carry GS1 DataMatrix with AI 01+21+17+10
- enrichment: openFDA drug/ndc (CC0), updated daily, inside the provenance envelope
- join: GTIN-14/UPC embedding extraction returns separate wrapper-vs-contents verdicts: the GTIN can pass mod-10 while the embedded NDC is the real identity.

## Registry rows (engine artifacts, digest-stated)
### ndc
- grammar: `^\d{4}-\d{4}-\d{2}$|^\d{5}-\d{3}-\d{2}$|^\d{5}-\d{4}-\d{1}$|^\d{5}-\d{4}-\d{2}$|^\d{10,11}$`
- check: none → "none" (FDA NDC has no check digit — honesty field rendered as-is)
- canonical: 11-digit 5-4-2 billing form
- segments: labeler · product · package
- generate: gs1datamatrix
- hand-off: read here · resolved by id.org.ai
- digest: sha256:c4fa97fcfac0ca834c750b6700e3bcf5cba3631f2f906217d9b9360b955108fa

## 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/ndc-no-check-digit/
- https://barcoding.dev/blog/pharma-already-lives-in-2027/
