EDGE ENGINE Sub-2ms Deterministic V8 Execution • Zero Data Retention Explore API Specs →
Latency: <2ms Edge Availability: 99.99% Standard: DSCSA Section 582 V8 Pure Compute

DSCSA 4-Element 2D DataMatrix Barcode & Matrix Specification

Extract and validate all 4 DSCSA product identifier elements and FNC1 group separators in milliseconds.

Official Regulatory Standard & Verification Protocol Authority: U.S. Food & Drug Administration (FDA) DSCSA ↗

Quick Technical Summary: Extract and validate all 4 DSCSA product identifier elements and FNC1 group separators in milliseconds. Implementation conforms to 21 U.S. Code § 360eee / GS1 EPCIS.

Execution SLA
<2ms Edge (Cloudflare V8)
Governing Norm
DSCSA Section 582
Throughput Limit
512 KB / Payload
Data Privacy
100% In-Memory (Zero Store)

Specification & Structural Breakdown

DSCSA Section 582 mandates that packaging at the unit and case level carry a GS1 2D DataMatrix barcode encoding GTIN, Serial Number, Expiration Date, and Lot Number.

Variable-length Application Identifiers (AI 21 and AI 10) require GS1 FNC1 (<GS> / ASCII 29) group separators when not at the end of the barcode string.

AIData ElementFormatLength
(01)GTIN-14Numeric with Mod-10 Checksum14 digits (Fixed)
(21)Serial NumberAlphanumericUp to 20 chars (Variable + FNC1)
(17)Expiration DateYYMMDD6 digits (Fixed)
(10)Batch / LotAlphanumericUp to 20 chars (Variable + FNC1)
Interactive Edge Validator

Test DSCSA 4-Element 2D DataMatrix Barcode & Matrix Specification Live

Paste raw inputs up to 32KB and inspect deterministic parsed JSON in real-time across 330+ Cloudflare edge locations. Pure compute, zero cold-starts.

Launch Workbench →

Parsed JSON Response Model

The edge microservice transforms input payloads into strongly-typed hierarchical JSON with zero cold starts:

HTTP 200 JSON Payload
{
  "elements": {
    "gtin": "00301234567896",
    "serial": "123456789012",
    "expiration": "2026-08-31",
    "lot": "LOT99881"
  },
  "syntaxValid": true,
  "fnc1DelimitersPresent": true
}

Copy-Paste Integration Code

Integrate this validator directly into your application using your production API key:

cURL
curl --request POST \
  --url "https://fda-dscsa-eu-fmd-drug-serialization-api-21-usc-360eee.stanzaapi.com/api/v1/dscsa/validate-barcode" \
  --header "Content-Type: application/json" \
  --header "x-api-key: YOUR_API_KEY" \
  --data '{
  "rawBarcode": "010030123456789621123456789012\u001d1726083110LOT99881"
}'
Node.js (Fetch)
const response = await fetch("https://fda-dscsa-eu-fmd-drug-serialization-api-21-usc-360eee.stanzaapi.com/api/v1/dscsa/validate-barcode", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.API_KEY || "YOUR_API_KEY"
  },
  body: JSON.stringify({
  "rawBarcode": "010030123456789621123456789012\u001d1726083110LOT99881"
})
});

const data = await response.json();
console.log(data);
Python (Requests)
import requests
import json

url = "https://fda-dscsa-eu-fmd-drug-serialization-api-21-usc-360eee.stanzaapi.com/api/v1/dscsa/validate-barcode"
headers = {
    "Content-Type": "application/json",
    "x-api-key": "YOUR_API_KEY"
}
payload = {
    "rawBarcode": "010030123456789621123456789012\u001d1726083110LOT99881"
}

response = requests.post(url, json=payload, headers=headers)
print(response.json())
Go
package main

import (
	"bytes"
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	url := "https://fda-dscsa-eu-fmd-drug-serialization-api-21-usc-360eee.stanzaapi.com/api/v1/dscsa/validate-barcode"
	payload := []byte(`{"rawBarcode":"010030123456789621123456789012\u001d1726083110LOT99881"}`)

	req, _ := http.NewRequest("POST", url, bytes.NewBuffer(payload))
	req.Header.Add("Content-Type", "application/json")
	req.Header.Add("x-api-key", os.Getenv("API_KEY"))

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}

Frequently Asked Questions & Technical Notes

Why is the FNC1 delimiter critical in 2D DataMatrix barcodes?

Without FNC1 (<GS>) separators, a barcode scanner cannot distinguish where a variable-length serial number ends and the next element begins.

Related FDA DSCSA & EU FMD Prescription Drug Serialization API Formats

Explore sibling specifications and standards in the same developer cluster: