Back to blogCompliance · Industry News

DSCSA serialization explained — what pharma needs in 2026

The FDA's Drug Supply Chain Security Act (DSCSA) has reshaped every pharmaceutical unit package sold in the United States. Here's a no-nonsense explainer of GTIN, serial, lot, expiry, and the GS1 DataMatrix you put on every box.

April 2026· 12 min read

TL;DR: As of November 27, 2024, every prescription-drug unit package sold in the US must carry a GS1 DataMatrix 2D barcode containing four elements: GTIN, serial number, lot, and expiration date. That's DSCSA §582 in one sentence. The rest of this post is the detail you need to actually ship product.

What DSCSA actually requires

The Drug Supply Chain Security Act (DSCSA, passed November 2013) mandates an interoperable, electronic system to trace prescription drugs as they move through the US supply chain. After multiple enforcement-delay stabilization periods, full enforcement began on November 27, 2024 for manufacturers and repackagers, with trading-partner obligations phased through 2027.

Each unit-level drug package must be marked with — and each subsequent trading partner must be able to exchange electronically — these four product identifier data elements:

  • GTIN (Global Trade Item Number) — the 14-digit product identifier with a valid mod-10 check digit
  • Serial number — a unique alphanumeric string per unit (up to 20 chars)
  • Lot number — the batch identifier (up to 20 chars)
  • Expiration date — YYMMDD format

How this is encoded in a GS1 DataMatrix

DSCSA requires a GS1 DataMatrix barcode (or linear GS1-128, though DataMatrix is preferred due to size). Data inside follows GS1 Application Identifier (AI) format — a leading FNC1 control character plus (AI)-prefixed segments.

A real-world encoded string for a bottle of amoxicillin might look like:

(01)00312345678906(17)270930(10)B12-345(21)SN-9876543210

Decoded:

AIElementValue
(01)GTIN-1400312345678906
(17)Expiration date (YYMMDD)270930 → 2027-09-30
(10)Lot / batchB12-345
(21)Serial numberSN-9876543210

The GTIN mod-10 check digit

The GTIN ends in a check digit computed via a specific weighted-modulo-10 algorithm. Bad GTIN check digits are the #1 cause of rejected DSCSA submissions. The algorithm:

  1. Starting from the rightmost position of the first 13 digits (ignoring the check digit itself), multiply by 3, 1, 3, 1 … alternating.
  2. Sum the products.
  3. Subtract the sum mod 10 from 10. If the result is 10, the check digit is 0.

QRMax's free barcode validator computes this for you in the browser — same algorithm as our backend encoder.

Printing requirements

Packaging engineers face three additional realities that academic specs often skip:

  • Print quality grading: GS1 requires ISO/IEC 15415 grade C (1.5) or better on production. For DSCSA, target grade B (2.5) to survive trading-partner scanners and re-prints.
  • Minimum X-dimension: For DataMatrix in the supply chain, 0.254 mm (10 mil) X-dimension is typical; lower than 0.200 mm (7.87 mil) risks scan failure.
  • Human-readable text: The four data elements must also appear in human-readable form below or adjacent to the DataMatrix.

Common mistake

Teams hand-craft the DataMatrix payload string, forget the FNC1 leading character, and end up with codes that look correct but can't be parsed by DSCSA-compliant scanners. Use a certified library or platform — QRMax's encoder handles FNC1 automatically.

EPCIS and ATP messaging

DSCSA isn't just about the barcode — it's also about electronic interoperable exchange of serialization data between trading partners. The standard is EPCIS 1.2 (GS1), with events like commissioning, aggregation, shipping, and receiving. Most 3PL and wholesaler systems consume these events via AS2 or REST APIs.

Additional Trading Partner (ATP) verification requires trading partners to be able to request product identifier information from each other using standardized messages. By Nov 2027, all downstream wholesaler requests must be answered.

What QRMax provides

Our compliance encoder gives you:

  • Validated GTIN check-digit calculation (mod-10)
  • GS1 Application Identifier parsing and emission (including FNC1)
  • DataMatrix rendering via certified ZXing.NET with print-grade export
  • Bulk generation pipeline — tens of thousands of unit codes per minute
  • Archive of all serial numbers emitted for reconciliation
  • Exports to EPCIS 1.2 XML or JSON for upstream systems

Next steps

Learn more about our pharma workflow or talk to our compliance teamabout integrating QRMax into your serialization line.