GS1 UDI Barcode Format & AI Parser Guide (GS1-128 & DataMatrix)
Parse GS1-128 linear barcodes and 2D DataMatrix medical device UDIs into structured DI/PI attributes in milliseconds. This specification documents the exact field layout, checksum rules, and validation behavior so your integration matches FDA 21 CFR 801.20 / EU MDR 2017/745 without reading the source standard.
⚡ Live GS1 UDI Barcode Format & AI Parser Guide (GS1-128 & DataMatrix) Interactive Workbench
Test real-time validation and schema parsing for GS1 UDI Barcode Format & AI Parser Guide (GS1-128 & DataMatrix) directly in your browser. Runs in sub-5ms with zero setup.
{
"status": "Click RUN VALIDATION to execute on the Cloudflare edge..."
}
Quick Summary: Parse GS1-128 linear barcodes and 2D DataMatrix medical device UDIs into structured DI/PI attributes in milliseconds. Validates strictly against FDA 21 CFR 801.20 / EU MDR 2017/745 with sub-5ms in-memory response times.
Specification & Structural Breakdown
Technical Summary: Validates strictly against FDA 21 CFR 801.20 / EU MDR 2017/745. Payloads are parsed in memory and return clean, typed JSON in milliseconds with zero data logged.
GS1 UDIs utilize Global Trade Item Numbers (GTIN) as the Device Identifier (AI 01) and standardized Application Identifiers for Production Identifiers.
| AI | Data Element | Format | FDA / MDR Role |
|---|---|---|---|
| (01) | GTIN-14 | 14 digits numeric with Mod-10 | Primary UDI-DI |
| (17) | Expiration Date | YYMMDD (6 digits) | UDI-PI Expiration |
| (10) | Batch / Lot | 1-20 alphanumeric characters | UDI-PI Lot Number |
| (21) | Serial Number | 1-20 alphanumeric characters | UDI-PI Serial Number |
| (11) | Manufacturing Date | YYMMDD (6 digits) | UDI-PI Production Date |
Parsed JSON Response Model
The edge microservice transforms input payloads into strongly-typed hierarchical JSON envelopes with sub-5ms latency:
{
"issuingAgency": "GS1",
"di": "00884838012345",
"pi": {
"expirationDate": "2026-08-31",
"lotNumber": "LOT7788",
"serialNumber": "SN991823"
}
}
Copy-Paste Integration Code (6 Languages)
Integrate GS1 UDI Barcode Format & AI Parser Guide (GS1-128 & DataMatrix) 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/udi-decoder/api/v1/udi/decode" \
--header "Content-Type: application/json" \
--header "x-api-key: YOUR_API_KEY" \
--data '{
"udi": "(01)00884838012345(17)260831(10)LOT7788(21)SN991823"
}'const response = await fetch("https://api.stanzaapi.com/udi-decoder/api/v1/udi/decode", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": process.env.API_KEY || "YOUR_API_KEY"
},
body: JSON.stringify({
"udi": "(01)00884838012345(17)260831(10)LOT7788(21)SN991823"
})
});
const data = await response.json();
console.log(data);import requests
import json
url = "https://api.stanzaapi.com/udi-decoder/api/v1/udi/decode"
headers = {
"Content-Type": "application/json",
"x-api-key": "YOUR_API_KEY"
}
payload = {
"udi": "(01)00884838012345(17)260831(10)LOT7788(21)SN991823"
}
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/udi-decoder/api/v1/udi/decode"
payload := []byte(`{"udi":"(01)00884838012345(17)260831(10)LOT7788(21)SN991823"}`)
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 = @"{""udi"":""(01)00884838012345(17)260831(10)LOT7788(21)SN991823""}";
var payload = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://api.stanzaapi.com/udi-decoder/api/v1/udi/decode", payload);
var content = await response.Content.ReadAsStringAsync();
Console.WriteLine(content);
}
}Integrate the StanzaAPI udi-decoder micro-API.
Endpoint: POST https://api.stanzaapi.com/udi-decoder/api/v1/udi/decode
Auth header: x-api-key: YOUR_API_KEY
Content-Type: application/json
Request body:
{
"udi": "(01)00884838012345(17)260831(10)LOT7788(21)SN991823"
}
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
Yes, the Modulo-10 check digit is verified on the GTIN-14 Device Identifier.
Related Medical Device UDI Barcode & AIDC Engine Formats
Explore sibling specifications and standards in the same developer cluster:
HIBCC Medical Device Barcode Decoder & Modulo-43 Checksum Spec
Parse primary and secondary HIBCC medical barcodes with Modulo-43 check character validation.
View Format →ICCBBA ISBT 128 Medical Device & Cellular Therapy UDI Spec
Decode ICCBBA ISBT 128 medical and biologics identifiers for human cells, tissues, and cellular products.
View Format →FDA Global UDI Database (GUDID) Submission & Compliance Spec
Validate medical device UDI records against FDA GUDID data requirements before submitting to the FDA.
View Format →EU Medical Device Regulation (MDR 2017/745) EUDAMED UDI Spec
Verify Basic UDI-DI and UDI-DI data models for European EUDAMED regulatory compliance.
View Format →FDA AccessGUDID Device Identifier (DI) Lookup & Record Verification
Lookup and validate medical device Device Identifiers (UDI-DI) directly against FDA AccessGUDID data dictionary specifications.
View Format →Medical Device Barcode Decoder — 2D DataMatrix, GS1-128 & Hospital Scanners
Decode 2D DataMatrix and linear GS1-128 barcodes scanned at hospital bedsides and surgical supply rooms into structured JSON.
View Format →EU EUDAMED Basic UDI-DI & UDI-DI Validation Architecture
Validate European Union MDR & IVDR Basic UDI-DI keys and packaging UDI-DI hierarchies for EUDAMED regulatory submission.
View Format →Complementary Enterprise APIs
Seamlessly orchestrate data pipelines across adjacent financial, regulatory, and supply-chain protocols:
GS1 2027 Barcode & QR Decoder →
Universal GS1 AI parser supporting GS1-128, DataMatrix, and Digital Link QR formats.
FDA DSCSA Drug Serialization →
Comply with FDA drug supply chain serialization, EPCIS XML, and 2D DataMatrix scanning.
Healthcare EDI ANSI X12 →
Verify healthcare provider claim attachment identifiers and surgical billing records.