National Drug Code

The material below comes from the FDA website, www.fda.gov/cder/ndc/, which ought to be a reliable source.

The National Drug Code (NDC) is a unique 10-digit, 3-segment number assigned to each medication listed under Section 510 of the U.S. Federal Food, Drug, and Cosmetic Act. The number identifies the labeler or vendor, product, and trade package size.


 * The first segment, the labeler code, is assigned by the Food and Drug Administration (FDA). A labeler is any firm that manufactures, repacks or distributes a drug product.
 * The second segment, the product code, identifies a specific strength, dosage form, and formulation for a particular firm.
 * The third segment, the package code identifies package sizes.

Both the product and package codes are assigned by the firm.

The NDC will be in one of the following configurations: 4-4-2, 5-3-2, or 5-4-1.

Each item is barcoded with a Universal Product Code that begins with a 3 (UPC-A) or 03 (EAN-13). The remainder of the numbers are the NDC number, plus the check digit.

An asterisk may appear in either a product code or a package code. It simply acts as a place holder and indicates the configuration of the NDC. Since the NDC is limited to 10 digits, a firm with a 5 digit labeler code must choose between a 3 digit product code and 2 digit package code, or a 4 digit product code and 1 digit package code.

Thus, you have either a 5-4-1 or a 5-3-2 configuration for the three segments of the NDC. Because of a conflict with the HIPAA standard of an 11 digit NDC, many programs will pad the product code or package code segments of the NDC with a leading zero instead of the asterisk. For consistency, other Government agencies may display the NDC in an eleven digit format. For example, the Centers for Medicare and Medicaid Services (CMS) displays the labeler code as 5 digits with leading zeros; the product code as 4 digits with leading zeros; the package size as 2 characters with leading zeros.

Since a zero can be a valid digit in the NDC, this can lead to confusion when trying to reconstitute the NDC back to its FDA standard. Example: 12345-0678-09 (11 digits) could be 12345-678-09 or 12345-0678-9 depending on the firm's configuration. By storing the segments as character data and using the * as place holders we eliminate the confusion. In the example, FDA stores the segments as 12345-*678-09 for a 5-3-2 configuration or 12345-0678-*9 for a 5-4-1 configuration.