Technical Reference

NDC, GTIN & NDC12 Reference

A complete technical reference covering NDC structure, GTIN architecture, the GS1 Healthcare NDC-to-GTIN embedding mechanism, DSCSA serialization requirements, the FDA NDC12 final rule (March 2026), and the GS1 AI 715 decoupling strategy.

1. NDC Fundamentals

The National Drug Code (NDC) is the FDA's standard unique identifier for drugs marketed in the United States. Established under Section 510 of the Federal Food, Drug, and Cosmetic Act (21 U.S.C. 360), the NDC is required for every drug product intended for commercial distribution.

What the NDC Identifies

The NDC is a three-segment numeric code, where each segment carries distinct meaning:

SegmentNameAssigned ByIdentifies
1stLabeler CodeFDAThe entity responsible for the drug: manufacturer, repacker, relabeler, or private label distributor
2ndProduct CodeLabeler (accepted by FDA)A specific formulation: active ingredient(s), strength, dosage form
3rdPackage CodeLabeler (accepted by FDA)The specific package size and type (e.g., bottle of 100, blister pack of 30)

Coverage

The NDC covers: human prescription drugs, over-the-counter (OTC) drugs, approved and unapproved drugs, repackaged and relabeled drugs, and compounded drugs from 503B outsourcing facilities.

Excluded: animal drugs (separate directory), blood products, drugs not intended for commercial distribution.

The NDC is not an FDA approval indicator. The NDC Directory contains only information submitted by labelers via SPL (Structured Product Labeling). Inclusion does not mean FDA has verified the data or approved the product.

2. NDC10: The Three Configurations

The current FDA-assigned NDC is a 10-digit, 3-segment number. The total digit count across all three segments is always 10, but the number of digits in each segment varies. Per 21 CFR 207.33(b), three valid configurations exist:

ConfigurationLabelerProductPackageTotalExample
4-4-24 digits4 digits2 digits100591-0369-01
5-3-25 digits3 digits2 digits1079903-376-10
5-4-15 digits4 digits1 digit1080425-0302-1
NDCs are always displayed with hyphens between segments on drug labels. The hyphenated form is the only unambiguous representation of a 10-digit NDC because the dash positions reveal the segment boundaries.

3. NDC11: The HIPAA Standard

The 11-digit NDC was not created by FDA. It originated from the HIPAA Administrative Simplification final rule (August 17, 2000 — 65 FR 50312). When HHS adopted the NDC as the standard medical data code set for drugs in electronic transactions, it established a uniform 11-digit format to conform with customary practice used in computer systems.

The 5-4-2 Fixed Format

The HIPAA 11-digit NDC is always 5-4-2: Labeler (5) + Product (4) + Package (2) = 11 digits total.

Zero-Padding Conversion Rules

10-digit ConfigShort SegmentPadding Applied10-digit Example11-digit Result
4-4-2Labeler (4→5)0 prepended to labeler0591-0369-0100591-0369-01
5-3-2Product (3→4)0 prepended to product79903-376-1079903-0376-10
5-4-1Package (1→2)0 prepended to package80425-0302-180425-0302-01

Key properties: exactly one leading zero is added in every case; each 10-digit NDC maps to exactly one 11-digit NDC (bijective); the conversion is deterministic only when you know the segment configuration.

Where NDC11 Is Used

HIPAA electronic claims (EDI 837), CMS/Medicare/Medicaid billing systems, pharmacy benefit managers (PBMs), electronic health records (EHR), RxNorm (NLM's normalized drug naming system), and the NSDE (FDA's Comprehensive NDC SPL Data Elements File).

4. The Ambiguity Problem

When hyphens are removed from a 10-digit NDC, the resulting 10-character digit string is ambiguous. Without knowing the original segment configuration, you cannot determine where the segment boundaries fall.

Concrete Example

The string 0591036901 (10 digits, no hyphens) can be parsed three ways:

ParseConfigLabelerProductPackage11-digit Result
A4-4-2059103690100591036901
B5-3-2059103690105910036901
C5-4-1059103690105910369001
Each parse produces a completely different 11-digit NDC pointing to a different drug product. This is not theoretical — real products exist with NDCs that share the same unhyphenated 10-digit string.

The 6-Digit Labeler Collision (The Breaking Point)

The problem escalates once FDA begins assigning 6-digit labeler codes. A native 11-digit NDC in configuration 6-3-2 would produce the same digit count as the HIPAA 11-digit standard (5-4-2). Without hyphens, these become indistinguishable — identical strings pointing to different drugs. This collision is the primary technical driver for the NDC12 rule.

Industry Mitigations (Current)

  1. Always store with hyphens — the hyphenated form is unambiguous
  2. Always convert to 11-digit canonical form — the 5-4-2 format is unambiguous
  3. Use lookup tables — match whole NDC identifiers against the FDA directory rather than parsing segments algorithmically
  4. Never store raw 10-digit without hyphens — this is the only format that is genuinely ambiguous

5. NDC Display Formats and Storage

On Drug Labels (FDA-Regulated)

Per 21 CFR 201.25, the NDC must appear on drug labels as a 10-digit number in one of the three valid configurations, displayed with hyphens between segments. A barcode encoding the NDC must also be present.

In the FDA NDC Directory

FieldFormatExample
ProductNDC2-segment, hyphenated (labeler-product)0591-0369
NDCPackageCode3-segment, hyphenated (labeler-product-package)0591-0369-01

In HIPAA/EDI Claims

11-digit, no hyphens, no spaces: 00591036901

Recommended Storage Strategy

FieldFormatCharsPurpose
NDC_RAWAs received from FDA (hyphenated)varchar(13)Preserves segment boundaries
NDC_DIGITSDigits only, no hyphensvarchar(10)Ambiguous — avoid for matching
NDC115-4-2 zero-padded, no hyphenschar(11)HIPAA canonical form — best for matching
NDC11_DISPLAY5-4-2 zero-padded, with hyphenschar(13)Human-readable 11-digit
NDC126-4-2 zero-padded, no hyphenschar(12)Future-proof (post-2033)
NDC12_DISPLAY6-4-2 zero-padded, with hyphenschar(14)Future human-readable

6. FDA NDC Directory and SPL Submissions

Registration Process

  1. Establishment Registration: Manufacturer/repacker/relabeler registers facility with FDA via SPL XML through the FDA Gateway. Annual renewal required (October 1 – December 31).
  2. Labeler Code Request: New registrant submits SPL type "NDC Labeler Code request" with company name, DUNS number, and contact. FDA reviews and assigns a labeler code (currently always 5 digits, range 10000-99999).
  3. Drug Listing: For each product, labeler submits Drug Listing SPL containing: NDC (product and package codes), proprietary and non-proprietary names, dosage form and route of administration, active ingredients (UNII codes) with strengths, application number (if applicable), start marketing date, DEA schedule, all packaging configurations, and label images.
  4. Ongoing Updates: Drug listings must be updated twice annually (June and December). Repackers include the Source NDC.

What Gets Published

The NDC Directory is updated daily. Products are excluded from the main download if flagged:

  • E — non-compliance
  • U — expired certification
  • I — FDA-inactivated
  • D — discontinued

7. GTIN Fundamentals

The Global Trade Item Number (GTIN) is the GS1 standard identifier for trade items worldwide. All GTIN formats share the same logical structure — they differ only in total digit length. Every GTIN ends with a check digit.

FormatDigitsBarcode SymbologyPrimary Use
GTIN-88EAN-8Very small consumer items
GTIN-1212UPC-AU.S./Canada retail point-of-sale
GTIN-1313EAN-13International retail POS
GTIN-1414ITF-14, GS1-128, GS1 DataMatrixCases, pallets, inner packs, serialized pharma

Normalization Rule

All GTIN formats are stored in databases as 14-digit strings by left-padding with zeros:

  • GTIN-8 → 000000 + 8 digits
  • GTIN-12 → 00 + 12 digits
  • GTIN-13 → 0 + 13 digits
  • GTIN-14 → as-is

This normalization ensures a single field type can hold any GTIN format and enables uniform lookup.

8. GTIN-14 Component Architecture

A GTIN-14 is exactly 14 digits, composed of four logical fields:

[Indicator Digit] [GS1 Company Prefix + Item Reference] [Check Digit]
     1 digit                   12 digits                   1 digit

Critical constraint: GS1 Company Prefix + Item Reference always totals
exactly 12 digits. The split between prefix and reference is variable
(6-10 digit prefix, corresponding 6-2 digit reference), but the total is fixed.

Indicator Digit (Position 1)

ValueMeaning
0Individual saleable unit (single item, bottle, vial)
1-8Grouping levels — inner pack, case, pallet (exact meaning is company-defined)
9Variable measure trade item (sold by weight, volume, etc.)
Position:   1    2  3  4  5  6  7  8  9  10 11 12 13    14
          [IND] [----GS1 Company Prefix----] [--Ref--]  [CD]
                |<--------- 12 digits --------->|

9. GS1 Check Digit Calculation

The GS1 standard uses a Modulo-10 algorithm with alternating weights of 3 and 1. This applies to GTIN-8, GTIN-12, GTIN-13, GTIN-14, SSCC, and all other GS1 key identifiers.

Algorithm Steps

  1. Write out the first 13 digits (positions 1-13)
  2. Assign alternating weights starting with 3 for position 1: 3,1,3,1,3,1,3,1,3,1,3,1,3
  3. Multiply each digit by its weight
  4. Sum all products
  5. Check Digit = (10 - (sum mod 10)) mod 10

Worked Example

GTIN-14 first 13 digits: 0 3 6 1 4 1 4 9 9 9 9 5 1

Sum = 0+3+18+1+12+1+12+9+27+9+27+5+3 = 127

Check digit = (10 − (127 mod 10)) mod 10 = (10 − 7) mod 10 = 3

Full GTIN-14: 03614149999513

Pseudocode

def gs1_check_digit(digits: str) -> int:
    """Calculate GS1 Mod-10 check digit for any GS1 key identifier."""
    total = 0
    for i, d in enumerate(digits):
        weight = 3 if (i % 2 == 0) else 1  # position 1 = index 0 = weight 3
        total += int(d) * weight
    return (10 - (total % 10)) % 10
The weight pattern starts with 3 at position 1 (index 0). Some implementations incorrectly start with weight 1 — this will produce wrong check digits.

10. GS1 Healthcare and the "03" Prefix

GS1 US reserved the GS1 Prefix "03" specifically for U.S. FDA NDC Labeler Code holders. This is the bridge between the FDA's NDC system and GS1's global GTIN system.

FDA Labeler CodeGS1 Company PrefixLength
4-digit (e.g., 0591)03 + 0591 = 0305916-digit GCP
5-digit (e.g., 12345)03 + 12345 = 03123457-digit GCP
The "03" is not part of the NDC. It is the GS1-assigned country/organization prefix that signals: "this GS1 Company Prefix belongs to a U.S. pharmaceutical labeler." A pharmaceutical company with an FDA Labeler Code obtains a corresponding GS1 Company Prefix through GS1 US via the "GS1 Company Prefix — Embedded NDC Labeler Code" product.

11. NDC-to-GTIN Embedding: Current System

This is the critical mechanism by which the pharmaceutical supply chain identifies drugs using GS1 barcodes while maintaining traceability back to the FDA NDC.

The General Formula

GTIN-14 = [Indicator] + "03" + [10-digit NDC] + [Check Digit]
         = [1 digit]  + [2]  + [10 digits]    + [1 digit]
         = 14 digits

Where:
  Indicator   = 0 for unit-of-use, 1-8 for groupings (case, pallet)
  "03"        = GS1 prefix for FDA labelers
  NDC10       = all 10 digits without hyphens, in original segment order
  Check Digit = GS1 Mod-10 calculated over positions 1-13

Concrete Example

Drug: NDC10 0409-4921-34 (4-4-2), indicator digit = 1 (case level)

Positions 1-13: 1 0 3 0 4 0 9 4 9 2 1 3 4
Check digit:   8
GTIN-14:       10304094921348

GTIN-14 for 5-digit Labeler (5-3-2)

Position:   1    2   3    4   5   6   7   8    9  10  11  12  13    14
          [IND] [0] [3]  [L] [L] [L] [L] [L]  [P] [P] [P] [K] [K]  [CD]
           (0)       "03" prefix    5-digit       3-digit    2-digit
                                    labeler       product    package

GTIN-14 for 4-digit Labeler (4-4-2)

Position:   1    2   3    4   5   6   7    8   9  10  11   12  13    14
          [IND] [0] [3]  [L] [L] [L] [L]  [P] [P] [P] [P]  [K] [K]  [CD]
           (0)       "03" prefix   4-digit      4-digit       2-digit
                                   labeler      product       package

12. Extracting NDC from GTIN

From GTIN-14

GTIN-14:  0  0  3  L  L  L  L  L  P  P  P  K  K  CD
          ^  ^  ^                                  ^
          |  |  |                                  |
          |  +--+-- strip "03" prefix              +-- strip check digit
          +-- strip indicator

NDC10 = positions 4-13 (10 digits, no hyphens)

From GTIN-12 (UPC-A)

GTIN-12:  0  3  L  L  L  L  L  P  P  P  K  CD
          ^  ^                             ^
          +--+-- strip "03"                +-- strip check digit

NDC = positions 3-11 (9-10 digits depending on config)
GS1 explicitly does not recommend programmatically parsing NDC segments out of a GTIN. The labeler/product/package field lengths are variable (4-4-2 vs 5-3-2 vs 5-4-1), and the GTIN carries no metadata indicating which configuration was used. The correct approach: extract the full 10-digit NDC from the GTIN, then look it up against the FDA NDC Directory to determine the segment boundaries.

13. DSCSA: Serialization and Product Identifier Requirements

The Drug Supply Chain Security Act (Title II of FDASIA, signed November 2013, codified at 21 U.S.C. 360eee et seq.) established a phased U.S. electronic track-and-trace system for prescription drugs.

Product Identifier (PI) — Four Required Elements

ElementDescriptionFormat
NDCNational Drug Code3-segment, hyphenated (human-readable)
Serial NumberUnique per unit within a lotUp to 20 alphanumeric characters
Lot/Batch NumberManufacturing lotUp to 20 alphanumeric characters
Expiration DateProduct expiryYYMMDD

Machine-Readable Format: GS1 2D DataMatrix

GS1 AIFieldFormatExample
(01)GTINFixed 14-digit numeric(01)10303300074376
(21)Serial NumberVariable, up to 20 alphanum(21)A1B2C3D4
(10)Lot NumberVariable, up to 20 alphanum(10)LOT123
(17)Expiration Date6-digit YYMMDD(17)280531

DSCSA Implementation Timeline

PhaseDateRequirement
Manufacturer serializationNovember 2017Affix PI to saleable units
Repackager serializationNovember 2018Affix PI to repackaged units
Trading partner verificationNovember 2019Wholesalers must verify PI
Dispenser verificationNovember 2020Pharmacies must handle serialized product
Full electronic interoperabilityNovember 2024Full EPCIS-based item-level trace
FDA rejected using the GTIN as the sole human-readable identifier because "the GTIN typically contains additional digits and is not in the 3-segment format by which the NDC is defined." Products may carry both a UPC-A linear barcode (for 21 CFR 201.25 compliance) and a 2D DataMatrix (for DSCSA).

14. FDA NDC12 Final Rule

AttributeValue
TitleRevising the National Drug Code Format and Drug Label Barcode Requirements
PublishedMarch 5, 2026
FR Docket2026-04368
CFR Amended21 CFR 207.33
Effective DateMarch 7, 2033
Transition PeriodMarch 7, 2033 – March 6, 2036
Hard DeadlineAfter March 7, 2036, enforcement for noncompliant labeling

The New NDC12 Format: Uniform 6-4-2

SegmentLengthPurpose
Labeler Code6 digitsFDA-assigned
Product Code4 digitsFormulation, strength, dosage form
Package Code2 digitsPackage size and type
Total12 digitsSingle, uniform configuration

Display format with hyphens: LLLLLL-PPPP-KK (e.g., 000591-0369-01)

Why the Change Was Necessary

  1. Labeler code exhaustion: 5-digit labeler codes (range 10000-99999) will be exhausted within ~10-15 years. 6-digit codes provide ~900,000 additional codes.
  2. Format ambiguity elimination: The variable 4-4-2 / 5-3-2 / 5-4-1 configurations make unhyphenated 10-digit NDCs ambiguous. A single 6-4-2 format eliminates all parsing ambiguity.
  3. Collision prevention: With 6-digit labelers, native 11-digit NDCs (e.g., 6-3-2 = 11 digits) would collide with HIPAA 11-digit NDCs (5-4-2 = 11 digits) when hyphens are stripped.
  4. International alignment: A single fixed-length format reduces impedance mismatch between FDA labeling, HIPAA claims, and GS1 supply chain systems.

Conversion of Existing NDCs

Current ConfigLabeler PaddingProduct PaddingPackage PaddingExample (10-digit)Example (12-digit)
4-4-2+2 zerosnonenone0591-0369-01000591-0369-01
5-3-2+1 zero+1 zeronone79903-376-10079903-0376-10
5-4-1+1 zeronone+1 zero80425-0302-1080425-0302-01
FDA characterized this as ministerial reclassification, not new assignment — deliberately to avoid triggering rebate renegotiations, contract amendments, or formulary changes.

HIPAA Gap

FDA's authority does not extend to HIPAA transaction standards. CMS will need to separately update the 11-digit HIPAA NDC billing standard to accept 12 digits. This requires separate HHS/CMS rulemaking.

Rulemaking History

DateEvent
August 2018FDA public hearing and RFC on future NDC format
July 25, 2022Proposed rule published (FR docket 2022-15414)
November 22, 2022Comment period closed
February 2026Industry groups publicly pressure FDA to finalize
March 5, 2026Final rule published
March 7, 2033Effective date
March 7, 2036End of transition period

15. NDC12 Impact on GTIN Architecture

This is the most technically disruptive aspect of the NDC12 transition.

The Fundamental Problem

Under the current system:
GTIN-14 = [1 indicator] + "03" + [10-digit NDC] + [1 check digit] = 14 digits  ✓

With NDC12:
GTIN-14 = [1 indicator] + "03" + [12-digit NDC] + [1 check digit] = 16 digits  ✗ OVERFLOW
A 12-digit NDC cannot fit in a GTIN-14 under the current embedding scheme. The decades-old practice of deriving a GTIN from an NDC will end for new NDC12 products assigned from 2033 onward.

Two Classes of Products (Post-2033)

ClassGTIN SourceNDC EncodingBarcode Model
LegacyNDC-derived GTIN (embedded via '03' + NDC10)NDC extractable from GTINCurrent AI (01) model
New (NDC12s from 2033+)Separately assigned GTIN (decoupled)NDC carried via AI 715New AI (01) + AI (715) model

For legacy products (existing NDC10s converted to NDC12 via leading zeros), the original GTIN remains valid because the embedded 10-digit NDC hasn't changed — only the FDA's representation of it has gained leading zeros.

16. GS1 Application Identifier (AI) 715

GS1 US developed a new Application Identifier (AI) 715 specifically for carrying a 12-digit NDC as a separate data element alongside the GTIN in GS1 barcodes.

Old vs. New Barcode Model

Old model (current):
  (01) GTIN-14          <-- NDC is embedded inside the GTIN
  (21) Serial
  (10) Lot
  (17) Expiry

New model (post-2033, new NDC12 products):
  (01) GTIN-14          <-- GTIN assigned independently, no NDC embedded
  (715) NDC12           <-- NDC carried as separate data element
  (21) Serial
  (10) Lot
  (17) Expiry

Processing Logic

  1. Read the GTIN from AI (01)
  2. Read the NDC from AI (715) — if present
  3. If AI (715) is absent, extract the NDC from the GTIN using the legacy "03" extraction method
  4. Cross-reference against master data to validate the GTIN/NDC association

Barcode Carrier Capabilities

CarrierAI 715 SupportPost-2033 Viability
UPC-A (linear)No — can only carry 12 digits totalDead end for pharma. Cannot carry AI 715.
GS1-128 (linear)Yes — supports multiple AIsViable but bulky
GS1 DataBarYes — supports multiple AIsViable for small packages
GS1 DataMatrix (2D)Yes — preferred formatRecommended going forward
AI 715 can only be read by camera-based (2D-capable) scanners. Traditional laser scanners cannot read 2D barcodes. This has significant infrastructure implications for hospital pharmacies, retail pharmacies, wholesale distribution centers, and long-term care facilities.

17. DSCSA Impact of NDC12

Impact on Existing Serialized Products

When existing NDCs are converted to NDC12 via leading zeros, the 10-digit NDC embedded in the GTIN does not change. The GTIN itself remains valid. Existing serialized product in the supply chain is not affected by the format change alone.

Impact on New Products (NDC12 Assigned from 2033)

New products assigned 12-digit NDCs from 2033 cannot have their NDC embedded in the GTIN. Their barcodes will use the AI 715 model.

Serialization Platform Requirements

  1. Generate both legacy (NDC-embedded GTIN) and new (GTIN + AI 715) barcode formats
  2. Read/interpret AI 715 in incoming barcode scans
  3. Maintain GTIN-to-NDC association in master data for both paradigms
  4. Verify product identifiers using the correct extraction method based on whether AI 715 is present
  5. Report to FDA using NDC12 format regardless of barcode encoding method

Convergence Benefit

Post-2033, a single 2D DataMatrix encoding AI (01) + AI (715) + AI (21) + AI (10) + AI (17) can satisfy both 21 CFR 201.25 labeling requirements and DSCSA requirements simultaneously, eliminating the need for dual barcodes on pharmaceutical labels.

18. Industry Response and Timeline

Key Dates Summary

DateMilestone
March 5, 2026Final rule published
2026–20337-year preparation window (no format change yet)
March 7, 2033NDC12 effective: FDA begins issuing 12-digit NDCs, auto-converts all existing
2033–20363-year transition: 10-digit labels tolerated in commerce
After March 7, 2036Enforcement begins for noncompliant labeling

19. Systems Implications for LSPediA/OneData

Database Schema Considerations

ConcernCurrent StateFuture-Proof Action
NDC field sizing10-11 chars typicalExpand to 12 chars (digits) / 14 chars (with hyphens)
NDC format fieldOptional (segment config)Add NDC_FORMAT enum: 10-DIGIT, 11-DIGIT, 12-DIGIT
GTIN field sizing14 chars (already correct)No change needed
GTIN-NDC derivationAlgorithmic (extract from GTIN)Must support both extraction and AI 715 lookup
NDC12 columnDoes not existAdd NDC12 / NDC12_DISPLAY fields (can be populated now via conversion)

SQL Conversion Logic

-- From NDC11 (5-4-2) to NDC12 (6-4-2): add 1 leading zero to labeler
-- NDC11: LLLLL-PPPP-KK (11 digits)
-- NDC12: 0LLLLL-PPPP-KK (12 digits)
SELECT '0' || NDC11_PACKAGE AS NDC12_PACKAGE,
       '0' || SUBSTR(NDC11_PACKAGE_DISP, 1, 5) || SUBSTR(NDC11_PACKAGE_DISP, 6) AS NDC12_PACKAGE_DISP
FROM NDC_PACKAGE;

-- Note: This simple prepend works because the NDC11 5-4-2 format already has
-- the product and package segments at their target 4-2 lengths.
-- Only the labeler segment needs one more leading zero (5 -> 6).

GTIN Processing Logic (Future)

Input: Barcode scan data
IF AI (715) present:
    NDC12 = AI (715) value
    GTIN = AI (01) value
    # NDC is NOT derived from GTIN
ELSE:
    GTIN = AI (01) value
    NDC10 = extract from GTIN (positions 4-13, strip "03")
    NDC11 = zero-pad to 5-4-2
    NDC12 = zero-pad to 6-4-2

Timeline for System Changes

UrgencyAction
Now (2026)Add NDC12 columns, populate via conversion. No external dependencies.
By 2030Update GTIN processing logic to handle AI 715. Update barcode scanning.
By 2033Full dual-format support operational. FDA begins issuing native NDC12s.
By 2036All active products in 12-digit format. Legacy extraction still needed for historical data.

20. Quick Reference Tables

All NDC Formats at a Glance

FormatConfigTotal DigitsWho Uses ItExample (hyphenated)Example (digits only)
FDA 10-digit4-4-210Drug labels, FDA directory0591-0369-010591036901
FDA 10-digit5-3-210Drug labels, FDA directory79903-376-107990337610
FDA 10-digit5-4-110Drug labels, FDA directory80425-0302-18042503021
HIPAA 11-digit5-4-211Claims, billing, EHR, RxNorm00591-0369-0100591036901
FDA 12-digit (2033+)6-4-212All uses (future)000591-0369-01000591036901

NDC-to-GTIN Mapping

InputOutputMethod
NDC10 → GTIN-14[0] + "03" + [NDC10] + [check]Prefix '03', add indicator + check
GTIN-14 → NDC10Strip pos 1, 2-3, 14Remove indicator, '03', check digit
NDC12 → GTIN-14Not possible via embeddingUse AI 715 (separate field)
GTIN-14 + AI 715 → NDC12Read AI 715 value directlyNo extraction from GTIN needed

GS1 Application Identifiers for Pharma

AIFieldLengthFormat
(01)GTIN14 fixedNumeric
(10)Lot/BatchUp to 20Alphanumeric
(17)Expiration6 fixedYYMMDD
(21)Serial NumberUp to 20Alphanumeric
(715)NDC1212 fixedNumeric (new — post-2033)

Barcode Carrier Capabilities

CarrierGTINSerialNDC12 (AI 715)Scanner Type
UPC-A (linear)GTIN-12 onlyNoNoLaser or camera
GS1-128 (linear)GTIN-14YesYesLaser or camera
GS1 DataBarGTIN-14YesYesCamera preferred
GS1 DataMatrix (2D)GTIN-14YesYesCamera only