EDGE ENGINE SUB-2MS DETERMINISTIC V8 EXECUTION • ZERO DATA RETENTION • EXPLORE API SPECS →
FDA 21 CFR 801.20 / EU MDR 2017/745 <2ms Edge Edge Compute

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.

Latency: <2ms Edge Availability: 99.99% Standard: ISO/IEC 16022 & 15418 In-Memory Execution
Interactive Edge Workbench

⚡ 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.

32KB Demo Cap 60 req/min Burst <2ms V8 Compute Zero Data Retention
input.txt 0 B
output.json demo-ready
Status: Ready
{
  "status": "Click RUN VALIDATION to execute on the Cloudflare edge..."
}
Sandbox Quota: Free Tier (50 reqs/mo) • Production keys from $29/mo Get Free Sandbox Key →
Need 512KB+ Payloads, High-Throughput & 99.9% Production SLA?
Direct API keys include pooled monthly quotas, zero cold-starts, and HIPAA BAA eligibility on the Mega tier.
Get Production API Key →
LLM / MCP
Prompt-Ready Specification for AI Agents llms.txt
Structured format rules and schemas optimized for LLM coding agents and Model Context Protocol tooling.
Raw .md
Official Standard & Validation Protocol Authority: FDA AccessGUDID Database & IMDRF ↗

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.

Latency
<2ms Edge
Standard
ISO/IEC 16022 & 15418
Version
Max Payload
512 KB
Privacy
In-Memory (0 bytes stored)

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.

SymbologyStandardsTypical ApplicationEncoding Density
GS1 DataMatrix (ECC 200)ISO/IEC 16022Implants, vials, orthopedic screws, surgical toolsHigh (up to 3,116 numeric / 2,335 alphanumeric)
GS1-128 (Code 128)ISO/IEC 15417Outer cartons, shipper boxes, sterile pouchesModerate (linear 1D continuous barcode)
HIBCC MicroPDF417 / DataMatrixANSI/HIBC 2.6Diagnostic reagents, dental equipment, laboratory suppliesHigh (stacked 2D multi-row matrix)
ICCBBA ISBT 128 2D MatrixICCBBA Standard 001Blood bags, tissue graft containers, cellular therapy cryo-tubesHigh (deterministic composite segments)

Parsed JSON Response Model

The edge microservice transforms input payloads into strongly-typed hierarchical JSON envelopes with sub-5ms latency:

HTTP 200 JSON Response Envelope
{
  "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

What is the Group Separator (FNC1) character in raw 2D DataMatrix scans?

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.

Can this API process scans directly from Zebra or Honeywell hospital handhelds?

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:

Complementary Enterprise APIs

Seamlessly orchestrate data pipelines across adjacent financial, regulatory, and supply-chain protocols:

All Medical Device UDI Barcode & AIDC Engine Formats & Specifications (8) Directory Index ↓
GS1 UDI Barcode Format & AI Parser Guide (GS1-128 & DataMatrix) HIBCC Medical Device Barcode Decoder & Modulo-43 Checksum Spec ICCBBA ISBT 128 Medical Device & Cellular Therapy UDI Spec FDA Global UDI Database (GUDID) Submission & Compliance Spec EU Medical Device Regulation (MDR 2017/745) EUDAMED UDI Spec FDA AccessGUDID Device Identifier (DI) Lookup & Record Verification Medical Device Barcode Decoder — 2D DataMatrix, GS1-128 & Hospital Scanners EU EUDAMED Basic UDI-DI & UDI-DI Validation Architecture