EUDAMED submission methods

Common EUDAMED XML validation errors and how to fix them

A EUDAMED XML validation error is a rejection emitted by the EUDAMED data exchange service when an uploaded XML fails one of three sequential validation layers: XSD schema validation, business-rule validation, or Notified Body confirmation. This page catalogues the rejection patterns at each layer and the literal fix for each.

Last reviewed Validated against EUDAMED v3.0.25 Recently updated

An EUDAMED XML validation error is a rejection emitted by the EUDAMED data exchange (DTX) service when an uploaded XML file fails one of three sequential validation layers: XSD schema validation, business-rule validation, or Notified Body confirmation. This page catalogues the common rejection patterns at each layer and pairs each with the literal fix. It assumes you have already signed in, attempted at least one bulk upload, and received either an HTTP error or a per-object error list back. Current EUDAMED platform release: v2.22.0. Current XSD schema version: v3.0.25.

What the layers do

XSD schema validation rejects the whole file when the XML is structurally invalid. Nothing is processed. Fix the file, resubmit.

Business-rule validation runs per object. Valid objects in the same payload are accepted; only the failing objects come back in the response with an error message attached.

Notified Body confirmation is the third layer and applies only to Class III and Class IIb implantable devices. The Basic UDI-DI sits in Submitted status until the NB confirms.

What EUDAMED tells you when your upload fails, and what it doesn’t

The EUDAMED bulk upload service returns a structured response for every submission. The response is downloadable from the Response column in the Upload management table once the upload has finished processing. The EC’s help page on the bulk upload flow describes the model directly: “If the XML payload request contains multiple objects (e.g. a DEVICE.POST with multiple devices), the DTX service will process each object individually and gather the response in one single file related to the initial request.” Some objects come back as SUCCESS and others as ERROR; only the ERROR objects need a resubmit.

What the response gives you is the error code from the EUDAMED Annex 1 code dictionary, the object identifier where the error attaches to a recognisable object, and a short rule violated text. What it does not always give you is an XPath to the failing element. For some rejection classes the EUDAMED side has no element-level location to report; the rejection is at the object level, and finding the specific field involves comparing the failing object against a known-good sample. The mismatch between the structured detail in the response and the diagnostic detail the reader needs is the reason this page exists.

A response row looks like this, conceptually:

ErrorCode: E-I-40000
ObjectId: 0123ABC-BASIC-UDI-DI
RuleViolated: Element could not be mapped to known objects
Location: (not provided)

The fix path differs by which layer fired: at the XSD layer the response is binary (the whole file rejected, no per-object detail); at the business-rule layer the response carries the rule identifier per object; at the NB confirmation layer the device sits in Submitted status with no rejection at all until the NB acts.

The three validation layers

EUDAMED applies three layers in sequence. A payload that fails layer 1 never reaches layer 2; a payload that fails layer 2 never triggers layer 3. The fix path runs in the same order.

LayerWhat it checksWhat rejection looks likePartial-batch processingWho can fix
1. XSD schemaStructural validity of the XML against the published XSD packWhole file rejected, no per-object processing, no per-object detail in the responseNo (file-level rejection)RA data team or IT / engineering, depending on where the XML is generated
2. Business ruleSemantic validity of each object against the EC’s published business rulesPer-object rejection, with rule identifier and short message; valid objects in the same payload are acceptedYesRA data team for content issues; NB coordination for certificate linkage
3. NB confirmationConfirmation by the Notified Body for Class III and Class IIb implantable Basic UDI-DINo explicit rejection; the Basic UDI-DI persists in Submitted status until the NB confirms or refusesn/aNotified Body operations, on the NB-side workflow the manufacturer does not control

Layer 1 validates against the XSD pack the EC publishes at the Technical documentation page; the current version is v3.0.25, mapped to platform release v2.22.0. Layer 2 validates against the business-rule PDFs published next to the XSD. Layer 3 invokes Article 29 of Regulation (EU) 2017/745 for the Notified Body confirmation step on devices in scope for Annex IX or Annex X.

The Playground environment runs the same three layers against a parallel platform version (v3.27.3 at the time of writing). A Playground upload catches most XSD and business-rule failures before they hit Production.

XSD schema validation errors

XSD validation is the first gate. The DTX service loads the relevant XSD from the XSD schemas.zip pack at the Technical documentation page, parses the submitted XML against it, and rejects the whole file when any element violates the schema. The response does not carry a per-object catalog at this layer; it tells you the file failed structural validation and stops. The fix is in the file, not in the data.

A generic XML validator (xmllint, or an XML-aware editor with XSD support) loaded with the EUDAMED XSD pack catches every error in the table below. The pack is the same one the DTX service uses; local results match production behaviour at this layer.

The XSD failure catalog

Error patternRoot causeFixWho can fixPre-export check that would have caught it
Malformed XML, parser cannot read the fileUnescaped character in a text field; unclosed element; encoding declared as UTF-8 but file is Windows-1252Validate and escape special characters (&, <, >, ', "); close every opened element; save as UTF-8 without BOMRA or IT, depending on the generatorRun xmllint against the file before upload; the parser error names the line
Sequence violationChild element appears in an order the schema does not allow under its parentRe-order child elements to match the schema’s sequence definitionRA or IT, where the generator emits the wrong orderXSD validation locally reports sequence violation with the offending element
Missing mandatory elementRequired field omitted (UDI-DI code, risk class, EMDN code, intended purpose)Add the missing field; populate from source dataRA data teamXSD validation reports minOccurs violation with the element name
Invalid data typeText in a numeric field; a date written as 01/03/2026 rather than ISO 8601 2026-03-01Use ISO 8601 (YYYY-MM-DD) for every date field; cast numeric values without quotesRA data teamXSD validation reports the type-mismatch element name
Field length exceededFree-text description longer than the schema’s max-length annotationTrim to the limit defined in the relevant data dictionary; the dictionary lists the cap per fieldRA data teamXSD validation reports maxLength violation
Invalid enumeration valueRisk class entered as the human-readable label (Class IIa) instead of the schema code (IIA); EMDN code from a stale extractUse the schema enumeration code from the relevant enumerations PDF, not the human-readable labelRA data teamXSD validation reports enumeration violation against the element
Incorrect namespace declarationXML emitted against an older XSD namespace; vendor library hardcoded to a previous versionUpdate the namespace declaration to the current XSD version; regenerate from the current schemaIT or vendorXSD validation rejects the file at namespace resolution
XSD version mismatchFile produced against a stale XSD version after EUDAMED has bumped the schemaDownload the current XSD schemas.zip from the Technical documentation page and regenerateIT or vendorThe Technical documentation page lists the current version against the platform release

Worked example: enumeration-value mismatch

The most common XSD failure is the enumeration-value mismatch on the risk class field. Risk class is an enumerated field with codes defined in UDI Devices - enumerations. The human-readable label is Class IIa; the schema code is IIA. Files generated by hand-mapping from a labelling spreadsheet routinely fail this rule.

Invalid:

<Device>
  <UDIDICode>05012345678901</UDIDICode>
  <RiskClass>Class IIa</RiskClass>
  <EMDNCode>W0101010101</EMDNCode>
  <IntendedPurpose>Diagnostic imaging accessory</IntendedPurpose>
</Device>

Valid:

<Device>
  <UDIDICode>05012345678901</UDIDICode>
  <RiskClass>IIA</RiskClass>
  <EMDNCode>W0101010101</EMDNCode>
  <IntendedPurpose>Diagnostic imaging accessory</IntendedPurpose>
</Device>

Only the codes on the published enumeration list pass. A human-readable label, a translation, or a vendor-internal code all fail with the same enumeration violation message.

Business-rule validation rejections

The second layer is semantic. The XML parsed cleanly against the schema; every required element is present, every type is correct, every enumeration code resolves. EUDAMED now checks each object against the published business rules and rejects only the objects that fail. Valid objects in the same payload are accepted and written to the database. The response file lists the failing objects with the rule identifier the EC publishes in the relevant business-rule PDF (EUD Common - business rules, ACT - business rules, CRF - business rules, UDI Devices - business rules). Each rule has a numeric identifier the response cites; the mental model is per-object, not per-file.

Basic UDI-DI rejections

Error patternRoot causeFixWho can fixPre-export check that would have caught it
Duplicate Basic UDI-DIA Basic UDI-DI already registered against the manufacturer SRN is being submitted as an insertUse the update service path (UDI_009), not the insert (UDI_001); the Annex 2 sample set covers bothRA data teamCross-check the source list against the EUDAMED-side already-registered Basic UDI-DI export
Grouping mismatchBasic UDI-DI groups devices with different risk classes, different intended purposes, or different conformity assessment procedures: violates Annex VI part CSplit the group into per-risk-class, per-intended-purpose, per-procedure Basic UDI-DIs and reassign UDI-DIs accordinglyRA data team, with PRRC sign-off on the regroupingThe data dictionary’s grouping section names the rule; verify before bulk-assigning Basic UDI-DI
Conformity-assessment procedure mismatchProcedure declared on the Basic UDI-DI does not qualify under the Annex combination for the device’s risk classRealign the declared procedure with the device’s Annex combination; consult MDCG 2018-1 Rev. 4RA data team and NB coordinationCompare the declared procedure against the certificate’s Annex coverage line by line
Missing parent linkA UDI-DI submitted without a resolvable link back to its parent Basic UDI-DISubmit the Basic UDI-DI first (or update the UDI-DI to reference an existing parent); the UDI-DI cannot exist as an orphanRA data teamThe data model requires Basic UDI-DI before UDI-DI; sequence the upload accordingly
Legislative-framework mismatchA legacy device tagged as Regulation rather than Directive (MDD / AIMDD / IVDD); a new device tagged as legacySet the correct legislative-framework tag; the legacy path uses an EUDAMED-DI rather than a Basic UDI-DIRA data teamThe legacy path is in scope only for devices on extended certificates under Regulation (EU) 2024/1860

UDI-DI, EMDN, certificate, and operator rejections

Error patternRoot causeFixWho can fixPre-export check that would have caught it
UDI-DI length wrongGTIN not padded to 14 digits (GTIN-8 needs 6 leading zeros; GTIN-12 needs 2; GTIN-13 needs 1)Pad to 14 digits in the source data before XML generationRA data team or ITGTIN length check at the source extract
UDI-DI check-digit failureCheck digit recomputed incorrectly during relabelling or transcribed from poor OCRRecompute per the issuing-entity rule (GS1 / HIBCC / IFA / ICCBBA) and regenerateRA data teamA check-digit validator across the source list
Orphan UDI-DIUDI-DI submitted without a resolvable Basic UDI-DI parentSubmit the Basic UDI-DI first, or update the UDI-DI to reference an existing parentRA data teamSequence: Basic UDI-DI then UDI-DI
Obsolete EMDN codeCode from a stale EMDN extract; the EC has pruned the selection list since exportRefresh the EMDN extract against the current EC portal; pick the active leaf-level codeRA data teamRe-pull EMDN within seven days; the EC publishes update notices
Non-leaf EMDN codeA parent (non-terminal) EMDN node selected; only the most granular term validatesRe-select the most specific leaf-level term under the same branchRA data teamThe EMDN portal flags terminal vs non-terminal; pick only terminal
Certificate not in EUDAMED at link timeNB has not yet uploaded the certificate to the Certificates moduleCoordinate with the NB to upload the certificate; resubmit once visibleRA data team and NBVerify every cited certificate number resolves in the EUDAMED-side list
Certificate-device scope mismatchCertificate does not cover the device’s risk class, Annex combination, or intended purposeUse a certificate whose scope covers the device; query the NB if scope is unclearRA data team and NBCompare certificate scope against the device record line by line
Expired certificateCertificate expired or withdrawn before the device record was submittedCite the active certificate; without one the device cannot register under this pathRA data team and NBCheck every cited certificate is in Active status
NB designation scope mismatchNB not designated for the Annex combination declared, per the NANDO databaseSwitch to a properly designated NB, or change the declared procedureRA data team and NBNANDO lookup against the NB SRN before submission
SRN not active for the asserted roleActor record exists but the asserted role (manufacturer, importer, distributor, SPP producer) is not activeVerify the role on the actor record; the Actor module activates roles separately from actor existenceRA data teamPull the actor’s role list before submitting
Product Designer SRN missingA device that requires a Product Designer SRN omits the fieldPopulate the SRN per the data dictionary’s mandatory-field list for the relevant classesRA data teamCross-check the data dictionary against the source data
Non-EU manufacturer without Authorised RepresentativeA non-EU manufacturer submits without a linked EU AR, contrary to Article 11Link the appointed AR’s actor record; the AR must be registered with an active roleRA data team and ARVerify the AR’s actor record before submission

If the business-rule layer is the dominant rejection class on your batch, the upstream source data is the lever. A pre-export validator can run the published rules against the candidate XML and surface the rule identifier on each rejection before the file reaches EUDAMED.

Notified Body confirmation bottlenecks

The third layer applies only to Class III devices and Class IIb implantable devices under Annex IX or Annex X conformity assessment, per Article 29 of Regulation (EU) 2017/745. After the Basic UDI-DI passes the XSD and business-rule layers, it sits in Submitted status until the relevant Notified Body confirms it. Confirmation is an NB-side workflow the manufacturer does not control.

BlockerRoot causeWho can fix
Wrong Annex declared on the manufacturer sideThe submitted Basic UDI-DI declares an Annex combination that does not match the device’s actual conformity assessment routeManufacturer’s RA team, with PRRC sign-off on the revised declaration
NB designation scope does not cover the Annex combinationThe NB cited holds the certificate but is not designated in NANDO for the Annex combination declared on the Basic UDI-DIManufacturer’s RA team and NB; resolved by realignment of either the declaration or the certificate
Certificate not uploaded to the Certificates moduleNB has not yet uploaded the certificate; the device cannot confirm against a certificate the database cannot seeNB operations; manufacturer waits
Basic UDI-DI grouping changed after certificate issuanceDevice regrouping after the certificate was issued leaves the certificate scope no longer covering the new groupingManufacturer’s RA team and NB; resolved by a revised certificate or revised grouping
NB processing backlog ahead of the deadlineNB queue depth exceeds the manufacturer’s planning window in the run-up to 28 November 2026NB operations; mitigated by submitting Basic UDI-DI confirmations early in the run-up window

Submitted status is not a rejection: the device record exists in EUDAMED; what is outstanding is the NB confirmation that moves it to Registered. Readers outside the Class III and Class IIb implantable scope can skip this layer.

Pre-export validation: what to run before you upload

The pattern that scales is to run XSD validation and business-rule validation locally against the published artefacts before any Production upload. The EC publishes both at the Technical documentation page; a Playground upload exercises both layers end-to-end. The fifteen-row checklist below covers the patterns that surface most often in the rejection tables above.

#Pre-export checkLayer addressed
1XSD validated against the current schema (v3.0.25 / platform v2.22.0)XSD
2Every mandatory field populated against the data dictionaryXSD
3All date fields written in ISO 8601 (YYYY-MM-DD)XSD
4UDI-DI padded to the issuing entity’s length spec (14 digits for GS1)Business rule
5Risk class matches the technical file’s classification rationale and the certificate’s coverageBusiness rule
6Conformity-assessment procedure matches the NB certificate’s Annex combinationBusiness rule
7EMDN codes are current (refresh within seven days) and leaf-level terminal termsBusiness rule
8Basic UDI-DI grouping is internally consistent (one risk class, one intended purpose, one CA procedure per group)Business rule
9Device description matches the Declaration of ConformityBusiness rule
10Actor SRN active and role correct (manufacturer, importer, distributor, system or procedure pack producer)Business rule
11Certificates uploaded by the NB to the Certificates module before the device record references themBusiness rule
12Legacy versus Regulation framework tag correct per Regulation (EU) 2024/1860 statusBusiness rule
13Attachments referenced inside the XML are included in the ZIP under the correct FileURI pathXSD and business rule
14No duplicate UDI-DI within the same batchBusiness rule
15Playground upload completed end-to-end against the same payloadAll three

EUDAPrep runs the XSD layer and the business-rule layer against the current published EUDAMED schema and the EC business-rule documents, surfaces failures with the XPath of the failing element where the schema reports a location and with the rule identifier where the business-rule layer reports a rule, and emits bulk-upload-ready XML once both layers pass. The validator is deterministic: schema and rule comparisons, no language-model inference. The PRRC reviews and signs off; the manufacturer uploads through the EC portal.

Frequently asked questions

6 questions
Why did EUDAMED reject my entire XML when only one device had an issue?

Because the rejection was at the XSD schema layer, not the business-rule layer. XSD validation rejects the whole payload when the file is structurally invalid; business-rule validation runs per object, accepts the valid objects, and lists only the failing ones in the response. If a single bad device killed the whole upload, the failure was structural (malformed XML, missing required element, wrong type, invalid enumeration code) rather than semantic. The response file tells you which layer fired.

What does error code E-I-40000 mean?

It is the EUDAMED data exchange error returned when a request XML contains an element the service could not map to any known object. In practice it indicates the file passed structural parsing but referenced something the EUDAMED database does not recognise: an unknown identifier, an obsolete enumeration code, a deprecated tag, or a payload built against the wrong XSD version. The fix is to verify the file against the current XSD (v3.0.25 at the time of writing) and confirm every code value resolves against the current enumeration list. Full code list at the EC's Annex 1 (Error codes).

What XSD schema version does EUDAMED currently validate against?

v3.0.25, mapped to platform release v2.22.0, per the EC EUDAMED Information Centre's Technical documentation page. The EC publishes the operative XSD pack as a single ZIP at that page; the version note on the page reads: "The XSD schemas above version (v 3.0.25) relate to the current platform release (v 2.22.0)." Third-party tools that reference an older schema version need to be updated before they emit a file the production environment will accept.

Is there a EUDAMED XML template I can use as a starting point?

There is no single Excel-named template. The EC publishes XSD schemas, data dictionaries, and worked sample XML files at the Technical documentation page and Annex 2 (XML files index). The samples are the practical starting point: pick the SAMPLE_DTX_UDI_*.xml file that matches your scenario (new MDR device, new IVDR device, legacy device, certificate link, market info) and scaffold from it. The bulk-upload guide covers the asset set in detail.

How many devices can I upload in one XML file?

The EUDAMED bulk upload service does not publish a single fixed object cap on its help page; it states that a payload with multiple objects (for example a DEVICE.POST containing several devices) is processed object-by-object, with valid objects accepted and invalid objects rejected within the same response. Some third-party tools enforce a smaller per-submission limit to keep the response payload manageable. The operational pattern is to keep batches small enough that the failed-objects list is readable on a single screen and that a re-submit of only the failures stays fast.

Can I test my XML before uploading to Production?

Yes. The EC runs a Playground environment alongside Production, accessible from the EUDAMED Information Centre, with its own help portal at eudamed-play-help. The Playground uses a separate platform version (v3.27.3 at the time of writing) and accepts the same XML structure as Production. A Playground upload exercises the XSD layer and the business-rule layer end-to-end without writing to the live database. Run the Playground pass before every Production upload that includes new device structures or a new XSD revision.

Reviewed by Sam Patton, Founder · EUDAPrep
References Primary sources · checked June 2026
  1. EC Information Centre
    EUDAMED Information Centre: Technical documentation
    Canonical asset hub for the XSD schemas, data dictionaries, business-rule PDFs, and worked XML samples that the data exchange service validates against.
    EUDAMED Information Centre ↗
  2. EC Annex 1
    EUDAMED Annex 1 (Error codes)
    Primary-source reference for the EUDAMED data exchange error code dictionary, including the E-I-40000 class.
    Annex 1 (Error codes) ↗
  3. EC Annex 2
    EUDAMED Annex 2 (XML files index)
    The XML sample index mapping actor-domain prefixes (ACT, UDI, CRF, MSU) and use-case numbers to worked positive and negative scenarios.
    Annex 2 (XML files index) ↗
  4. EC Bulk upload
    EUDAMED bulk upload: how the service processes XML payloads
    EC help page describing the bulk upload submission flow, the per-object response model, and the SUCCESS or ERROR status classification per object.
    Bulk upload ↗
  5. EUR-Lex Article 27
    Regulation (EU) 2017/745, Article 27 (UDI system)
    The UDI assignment obligation and the issuing-entity framework that underpins UDI-DI structure and check-digit rules.
    EUR-Lex ↗
  6. EUR-Lex Article 29
    Regulation (EU) 2017/745, Article 29 (Basic UDI-DI confirmation)
    Notified Body confirmation requirement for Basic UDI-DI on Class III and Class IIb implantable devices.
    EUR-Lex ↗
  7. EUR-Lex Article 11
    Regulation (EU) 2017/745, Article 11 (Authorised Representative)
    The Authorised Representative obligation for non-EU manufacturers, surfaced in EUDAMED through the operator role validation.
    EUR-Lex ↗
  8. EUR-Lex Annex VI part C
    Regulation (EU) 2017/745, Annex VI part C (Basic UDI-DI grouping)
    The grouping rules that determine when devices share a Basic UDI-DI and when they cannot.
    EUR-Lex ↗
  9. EUR-Lex Annex IX and X
    Regulation (EU) 2017/745, Annex IX and Annex X (conformity assessment)
    Conformity assessment procedures that trigger Notified Body involvement and shape the certificate linkage validation.
    EUR-Lex ↗
  10. MDCG 2018-1 Rev. 4
    MDCG 2018-1 Rev. 4: Guidance on Basic UDI-DI and changes to UDI-DI
    Coordination Group guidance on Basic UDI-DI assignment and the issuing-entity options EUDAMED accepts.
    MDCG 2018-1 Rev. 4 ↗