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. 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 Medical Device Barcode Decoder — 2D DataMatrix, GS1-128 & Hospital Scanners Interactive Workbench
Test real-time validation and schema parsing for Medical Device Barcode Decoder — 2D DataMatrix, GS1-128 & Hospital Scanners directly in your browser. Runs in sub-5ms with zero setup.
{
"status": "Click RUN VALIDATION to execute on the Cloudflare edge..."
}
Quick Summary: Decode 2D DataMatrix and linear GS1-128 barcodes scanned at hospital bedsides and surgical supply rooms into structured JSON. 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.
Medical device packaging predominantly employs ISO/IEC 16022 2D DataMatrix with ECC 200 error correction to encode high-density DI and PI data within miniature footprints on surgical implants and instruments.
| Symbology | Standards | Typical Application | Encoding Density |
|---|---|---|---|
| GS1 DataMatrix (ECC 200) | ISO/IEC 16022 | Implants, vials, orthopedic screws, surgical tools | High (up to 3,116 numeric / 2,335 alphanumeric) |
| GS1-128 (Code 128) | ISO/IEC 15417 | Outer cartons, shipper boxes, sterile pouches | Moderate (linear 1D continuous barcode) |
| HIBCC MicroPDF417 / DataMatrix | ANSI/HIBC 2.6 | Diagnostic reagents, dental equipment, laboratory supplies | High (stacked 2D multi-row matrix) |
| ICCBBA ISBT 128 2D Matrix | ICCBBA Standard 001 | Blood bags, tissue graft containers, cellular therapy cryo-tubes | High (deterministic composite segments) |
Parsed JSON Response Model
The edge microservice transforms input payloads into strongly-typed hierarchical JSON envelopes with sub-5ms latency:
{
"symbologyDetected": "GS1_DATAMATRIX_2D",
"rawPayload": "]d201008848380123451726083110LOT7788\u001d21SN991823",
"deviceIdentifier": "00884838012345",
"productionIdentifiers": {
"expirationDate": "2026-08-31",
"lotNumber": "LOT7788",
"serialNumber": "SN991823"
},
"bedsideScanReady": true
}
Copy-Paste Integration Code (6 Languages)
Integrate Medical Device Barcode Decoder — 2D DataMatrix, GS1-128 & Hospital Scanners 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
In raw AIDC scanner output, variable-length GS1 Application Identifiers are delimited by ASCII 29 (GS / \u001d) or the ]d2 symbology identifier prefix. StanzaAPI automatically detects and unescapes GS delimiters.
Yes. Whether handheld scanners output raw string streams with ASCII control characters or human-readable bracketed strings, StanzaAPI normalizes both transparently.
Related Medical Device UDI Barcode & AIDC Engine Formats
Explore sibling specifications and standards in the same developer cluster:
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.
View Format →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 →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.