EDGE ENGINE Sub-2ms Deterministic V8 Execution • Zero Data Retention Explore API Specs →
Latency: <2ms Edge Availability: 99.99% Standard: EU MDR 2017/745 & IVDR 2017/746 V8 Pure Compute

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.

Official Regulatory Standard & Verification Protocol Authority: FDA AccessGUDID Database & IMDRF ↗

Quick Technical Summary: Validate European Union MDR & IVDR Basic UDI-DI keys and packaging UDI-DI hierarchies for EUDAMED regulatory submission. Implementation conforms to FDA 21 CFR 801.20 / EU MDR 2017/745.

Execution SLA
<2ms Edge (Cloudflare V8)
Governing Norm
EU MDR 2017/745 & IVDR 2017/746
Throughput Limit
512 KB / Payload
Data Privacy
100% In-Memory (Zero Store)

Specification & Structural Breakdown

The European Union EUDAMED database utilizes a two-tier hierarchy: the Basic UDI-DI identifies the device model family on regulatory certificates, while the UDI-DI identifies the specific sellable packaging unit.

LevelKey NameLengthCharacter Rules
Family / ModelBasic UDI-DI (GS1 GSRC)Up to 29 charsCompany prefix + model identifier + 2 check characters
Family / ModelBasic UDI-DI (HIBCC)Up to 29 chars++[LIC][Product Line][Check Characters]
Family / ModelBasic UDI-DI (ICCBBA)Up to 29 chars==[Facility][Class][Category][Check]
Item PackagingUDI-DI14 numeric (GS1)Standard GTIN-14 with Modulo-10 check digit on box barcode
Interactive Edge Validator

Test EU EUDAMED Basic UDI-DI & UDI-DI Validation Architecture Live

Paste raw inputs up to 32KB and inspect deterministic parsed JSON in real-time across 330+ Cloudflare edge locations. Pure compute, zero cold-starts.

Launch Workbench →

Parsed JSON Response Model

The edge microservice transforms input payloads into strongly-typed hierarchical JSON with zero cold starts:

HTTP 200 JSON Payload
{
  "eudamedReadiness": "VALID",
  "basicUdiDi": "008848380DEVICEFAM88",
  "issuingAgency": "GS1",
  "deviceRiskClass": "Class IIb Active Implantable",
  "notifiedBodyConformity": "PASS",
  "udiDiMatched": "00884838012345"
}

Copy-Paste Integration Code

Integrate this validator directly into your application using your production API key:

cURL
curl --request POST \
  --url "https://fda-eu-mdr-medical-device-udi-decoder-gs1-hibcc-iccbba.stanzaapi.com/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"
}'
Node.js (Fetch)
const response = await fetch("https://fda-eu-mdr-medical-device-udi-decoder-gs1-hibcc-iccbba.stanzaapi.com/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);
Python (Requests)
import requests
import json

url = "https://fda-eu-mdr-medical-device-udi-decoder-gs1-hibcc-iccbba.stanzaapi.com/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())
Go
package main

import (
	"bytes"
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	url := "https://fda-eu-mdr-medical-device-udi-decoder-gs1-hibcc-iccbba.stanzaapi.com/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))
}

Frequently Asked Questions & Technical Notes

Is the Basic UDI-DI printed on the product barcode?

No. Under EU MDR rules, the Basic UDI-DI appears exclusively on the EU Declaration of Conformity and technical documentation. Only the packaging UDI-DI is encoded into the barcode.

How are the check characters calculated on GS1 Basic UDI-DI?

GS1 calculates two check characters using a Modulo-89 algorithm over the alphanumeric prefix.

Related Medical Device UDI Barcode & AIDC Engine Formats

Explore sibling specifications and standards in the same developer cluster: