DSCSA 4-Element 2D DataMatrix Barcode & Matrix Specification
Extract and validate all 4 DSCSA product identifier elements and FNC1 group separators in milliseconds. This specification documents the exact field layout, checksum rules, and validation behavior so your integration matches 21 U.S. Code § 360eee / GS1 EPCIS without reading the source standard.
⚡ Live DSCSA 4-Element 2D DataMatrix Barcode & Matrix Specification Interactive Workbench
Test real-time validation and schema parsing for DSCSA 4-Element 2D DataMatrix Barcode & Matrix Specification directly in your browser. Runs in sub-5ms with zero setup.
{
"status": "Click RUN VALIDATION to execute on the Cloudflare edge..."
}
Quick Summary: Extract and validate all 4 DSCSA product identifier elements and FNC1 group separators in milliseconds. Validates strictly against 21 U.S. Code § 360eee / GS1 EPCIS with sub-5ms in-memory response times.
Specification & Structural Breakdown
Technical Summary: Validates strictly against 21 U.S. Code § 360eee / GS1 EPCIS. Payloads are parsed in memory and return clean, typed JSON in milliseconds with zero data logged.
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.
| AI | Data Element | Format | Length |
|---|---|---|---|
| (01) | GTIN-14 | Numeric with Mod-10 Checksum | 14 digits (Fixed) |
| (21) | Serial Number | Alphanumeric | Up to 20 chars (Variable + FNC1) |
| (17) | Expiration Date | YYMMDD | 6 digits (Fixed) |
| (10) | Batch / Lot | Alphanumeric | Up to 20 chars (Variable + FNC1) |
Parsed JSON Response Model
The edge microservice transforms input payloads into strongly-typed hierarchical JSON envelopes with sub-5ms latency:
{
"elements": {
"gtin": "00301234567896",
"serial": "123456789012",
"expiration": "2026-08-31",
"lot": "LOT99881"
},
"syntaxValid": true,
"fnc1DelimitersPresent": true
}
Copy-Paste Integration Code (6 Languages)
Integrate DSCSA 4-Element 2D DataMatrix Barcode & Matrix Specification directly into your production application with native, zero-dependency code snippets in cURL, Node.js, Python, Go, C#, and a ready-to-paste Claude prompt. Get a free API key → (no credit card required):
curl --request POST \
--url "https://api.stanzaapi.com/pharma-dscsa/api/v1/dscsa/validate-barcode" \
--header "Content-Type: application/json" \
--header "x-api-key: YOUR_API_KEY" \
--data '{
"rawBarcode": "010030123456789621123456789012\u001d1726083110LOT99881"
}'const response = await fetch("https://api.stanzaapi.com/pharma-dscsa/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);import requests
import json
url = "https://api.stanzaapi.com/pharma-dscsa/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())package main
import (
"bytes"
"fmt"
"io"
"net/http"
"os"
)
func main() {
url := "https://api.stanzaapi.com/pharma-dscsa/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))
}using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", Environment.GetEnvironmentVariable("API_KEY") ?? "YOUR_API_KEY");
var json = @"{""rawBarcode"":""010030123456789621123456789012\u001d1726083110LOT99881""}";
var payload = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://api.stanzaapi.com/pharma-dscsa/api/v1/dscsa/validate-barcode", payload);
var content = await response.Content.ReadAsStringAsync();
Console.WriteLine(content);
}
}Integrate the StanzaAPI pharma-dscsa micro-API.
Endpoint: POST https://api.stanzaapi.com/pharma-dscsa/api/v1/dscsa/validate-barcode
Auth header: x-api-key: YOUR_API_KEY
Content-Type: application/json
Request body:
{
"rawBarcode": "010030123456789621123456789012\u001d1726083110LOT99881"
}
Rules:
- Send the request with a 2-second timeout.
- Parse the standard envelope { success, data, meta: { latency_ms, version } }.
- On failure, read { success: false, error, code } and branch on the code.
- Do not retry 4xx responses; surface the error code to the caller.
- Treat invalid-but-well-formed payloads as HTTP 200 with data.valid === false.Frequently Asked Questions & Technical Notes
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:
GS1 Verification Router Service (VRS) Lightweight Messaging Spec
GS1 Verification Router Service (VRS) protocol engine for automated saleable drug returns verification in under 5ms.
View Format →EPCIS 1.2 XML Event Parser & Schema Validator (FDA DSCSA)
High-speed EPCIS 1.2 XML parser extracting ObjectEvents, AggregationEvents, BizStep, ReadPoint, and GLN identifiers into JSON.
View Format →EPCIS 2.0 JSON-LD Supply Chain Event Parser & Validator
Next-generation EPCIS 2.0 JSON-LD parser and schema compliance validator for modern pharmaceutical supply chain architectures.
View Format →FDA 21 CFR 201.25 Barcode Requirement & 2D DataMatrix Spec
Automated compliance validator for US FDA 21 CFR 201.25 drug product barcode labeling regulations.
View Format →DSCSA Section 582 Suspect Product Quarantine & Verification Rules
Automate suspect and illegitimate prescription product quarantine checks, lot-level audits, and regulatory verification.
View Format →Complementary Enterprise APIs
Seamlessly orchestrate data pipelines across adjacent financial, regulatory, and supply-chain protocols:
GS1 2027 Barcode & QR Decoder →
Decode GS1 DataMatrix, Digital Link URIs, and 150+ Application Identifiers.
FDA AccessGUDID & IMDRF UDI Decoder →
Verify FDA and EU MDR medical device serialization, expiration dates, and lot numbers.
Healthcare EDI ANSI X12 →
Map pharmaceutical supply chain track-and-trace events to healthcare EDI transactions.