Skip to content

ELIM API — FAQ

Frequently asked integration questions, collected from real KIS integrations. Short answers here; the API Integration Guide is the canonical reference.

Identity & attribution

With which identity does ELIM submit to DEMIS? Does the facility need its own registration or an SMC-B?

The facility needs its own DEMIS registration and receives a certificate (PKCS12 + passphrase) from DEMIS, deposited per site and environment. No SMC-B is needed. The report is cryptographically attributed to the facility; the reporting doctor is carried as report content (name, LANR, contact). → DEMIS registration and certificate

Correlation

Is the reportId identical to the MeldeId I passed in?

Yes — identical value, no re-keying. Always pass your own MeldeId (a missing one is replaced by an uncorrelatable random UUID), and note that a MeldeId is single-use after successful submission. → Report ID

When does a retrievable report come into existence?

Only with the end user's successful submission. Before that, GET /reports/{reportId} returns 404 — expected, not an error. → 404 semantics

Retrieval

Does GET /reports itself consume entries?

No — the list is purely read-only. Only the detail call GET /reports/{reportId} without ?peek=true consumes a report. With ?peek=true you can read as often as you like. A peek parameter on the list call is ignored (harmless, no effect).

How long do unretrieved reports stay available? Can I re-fetch after a 410?

Unretrieved results are kept for 3 days, then a nightly cleanup removes the payload including the RKI receipt (after that: 404). A consumed report (410) is not delivered again — use ?peek=true if you need repeated reads. → Report Retrieval

Embedding & timing

Can my embedding client (browser plugin / KIS container) detect a successful submission?

Yes — success responds with an HTTP 302 redirect to the static, parameterless /elim/hospitalisierungsmeldung/success; failure re-renders the form with HTTP 400 and an unchanged URL. Outcome is reliably distinguishable from the URL alone. → Detecting submission success

What polling cadence is acceptable? How long until the result is retrievable?

Submission to DEMIS is synchronous — the result is retrievable as soon as the user sees the success page. Prefer an event-driven fetch right after the success redirect; as a safety net, once per minute against GET /reports is more than enough. No rate limits currently; timeouts of 10–30 s suffice. → Polling pattern

Corrections & follow-ups

How do I report discharge, transfer, death, intensive care — or correct a submitted report?

Discharge, death and intensive care are fields within the report itself; a transfer field does not exist. There is no correction report with a machine-readable link to the original — a changed situation after submission means a new report with a new MeldeId. → Follow-up and correction reports

Errors

Is there a catalog of failureReason values? How do I see failed submissions via the API?

You don't — by design. The reports API only ever delivers SUCCESS: a retrievable report is a confirmed submission. A failed attempt is shown to the reporting user directly in the form, where it is corrected and retried; until a submission succeeds, the id simply has no report and answers 404. The failureReason field is retired accordingly.

What is coming as machine-readable error catalog: stable RFC 9457 problem details types (application/problem+json) for the API's own error responses — validation errors, unknown report ids, consumed reports — each type URI resolving to a page in this documentation. The ELIM+ API migrates first; ELIM follows.