EU Medical Device Regulation (MDR 2017/745) EUDAMED UDI Spec
Verify Basic UDI-DI and UDI-DI data models for European EUDAMED regulatory compliance. 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 EU Medical Device Regulation (MDR 2017/745) EUDAMED UDI Spec Interactive Workbench
Test real-time validation and schema parsing for EU Medical Device Regulation (MDR 2017/745) EUDAMED UDI Spec directly in your browser. Runs in sub-5ms with zero setup.
{
"status": "Click RUN VALIDATION to execute on the Cloudflare edge..."
}
Quick Summary: Verify Basic UDI-DI and UDI-DI data models for European EUDAMED regulatory compliance. 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.
EU MDR introduces the Basic UDI-DI as the main key in EUDAMED representing device models sharing intended purpose and risk class.
| Identifier | Level | Format | Usage |
|---|---|---|---|
| Basic UDI-DI | Model / Family | GS1 GSRC / HIBCC / ICCBBA code | EU Certificates & Declarations of Conformity |
| UDI-DI | Packaged Item | GTIN-14 / HIBC Primary | Trade item packaging and barcode |
Parsed JSON Response Model
The edge microservice transforms input payloads into strongly-typed hierarchical JSON envelopes with sub-5ms latency:
{
"eudamedValidation": "PASS",
"basicUdiDi": "008848380DEVICEFAM88",
"udiDi": "00884838012345",
"mdrCompliant": true
}
Copy-Paste Integration Code (6 Languages)
Integrate EU Medical Device Regulation (MDR 2017/745) EUDAMED UDI Spec 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
The Basic UDI-DI is purely an administrative regulatory key on certificates, whereas UDI-DI is printed directly on the device package barcode.
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 →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.