Webhooks v1.0

Endpoint Version 1.1
letzte Änderung: 27.10.2025​

Alternativ zum Abruf über die REST-API können Sie Auftragsupdates und Ergebnisse auch via Webhook erhalten.

Dazu benötigen wir lediglich den Endpoint, an den wir die Auftragsupdates übermitteln sollen.

Dabei können Sie zwischen 3 verschiedenen Update-Stufen wählen:

  • Alle updates:
    Sobald sich irgendetwas an ihrem Auftrag ändert, erhalten Sie ein update. Sinnvoll, wenn sie jederzeit den aktuellen Status der Probe abbilden wollen und auch Prozessschritte wie den Probeneingang erfassen wollen
  • Validierte Teilbefunde:
    Sie erhalten immer dann ein Update, wenn ein Teilbefund erstellt und vom Laborarzt validiert wurde. Ideal wenn Sie sobald ein validiertes Teilergebnis vorliegt informiert werden wollen, ohne auf den finalen Analysebericht zu warten
  • Finale Befunde:
    Sie erhalten immer dann ein Update, wenn eine Analyse vollständig abgeschlossen und der Analysebericht vom Laborarzt freigegeben wurde

Optional kann die Übermittlung auch mittels Bearer Token authentifiziert werden.

Der Webhook liefert unabhängig von der Update-Stufe ein JSON im folgenden Format (Beispiel):

				
					[
    {
        "barcode": "OHTEST1",
        "status": "done",
        "registered": "2025-10-02 00:00:00",
        "sample_arrived": "2025-10-02 14:30:00",
        "completed": null,
        "invalid_msg": null,
        "delayed_msg": null,
        "results": [
            {
                "parameter": "TSH",
                "value": 14,
                "unit": "mIU/l",
                "reference": [
                    {
                        "color": "red",
                        "min": null,
                        "max": 0.27
                    },
                    {
                        "color": "green",
                        "min": 0.27,
                        "max": 4.2
                    },
                    {
                        "color": "red",
                        "min": 4.2,
                        "max": null
                    }
                ],
                "comment": null,
                "validated": true,
                "report_id": 7863
            },
            ...,
            {
                "parameter": "HbA1ca",
                "value": 56,
                "unit": "mmol/mol",
                "reference": [
                    {
                        "color": "green",
                        "min": null,
                        "max": 39
                    }
                ],
                "comment": null,
                "validated": true,
                "report_id": 7863
            }
        ],
        "reports": [
            {
                "report_id": 7863,
                "report_pdf": "https://ldb-uploads-central.s3.eu-central-1.amazonaws.com/labclinic-labordatenbankcom/14291_SC2500005333.pdf"
            }
        ],
        "ordered_templates": [
            "155"
        ],
        "ordered_parameters": [],
        "patient_data": {
            "firstname": "Max",
            "lastname": "Mustermann",
            "birthdate": "1998-02-01",
            "gender": "m",
            "height": null,
            "weight": null,
            "street": null,
            "zipcode": null,
            "place": null,
            "country": "DE",
            "phone": null,
            "email": "max@mustermann.io"
        },
        "sample_data": {
            "sample_taken": "2025-10-02 00:00:00",
            "sampletype": "capillary blood"
        },
        "mail_results": false
    }
]
				
			

barcode (string)
Eindeutige Kennung des Analyseauftrags im System

status (string)
Aktueller Verarbeitungsstand der Probe.
Mögliche Werte:
– „in progress“: Auftrag ist in Bearbeitung
– „done“: Auftrag ist abgeschlossen

registered (datetime „yyyy-mm-dd hh:mm:ss“)
Zeitpunkt der Registrierung der Anforderung im Laborsystem

sample_arrived (datetime „yyyy-mm-dd hh:mm:ss“ oder null)
Zeitpunkt, zu dem die Probe physisch im Labor eingetroffen ist

completed (datetime „yyyy-mm-dd hh:mm:ss“ oder null)
Zeitpunkt, zu dem die Analyse vollständig abgeschlossen wurde

invalid_msg (string oder null)
Fehlerbeschreibung, falls der Auftrag nicht ausgewertet werden konnte

delayed_msg (string oder null)
Verzögerungsgrund, falls sich Ergebnisse verzögern

results (object array)
Enthält alle Messergebnisse zu Parametern dieses Auftrags (siehe „result Object“)

reports (object array)
Enthält alle PDF Berichte mit Link und ID (siehe „report Object“)

ordered_templates (integer array)
Eine oder mehrere IDs der angeforderten Untersuchungspakete

ordered_parameters (string array)
Ein oder mehrere Kürzel der angeforderten Parameter

patient_data (object)
Stammdaten des Patienten

patient_data.firstname (string oder null)
Vorname des Patienten

patient_data.lastname (string oder null)
Nachname des Patienten

patient_data.birthdate (date „yyyy-mm-dd“)
Geburtsdatum des Patienten

patient_data.gender („m“ / „f“)
Biologisches Geschlecht des Patienten

patient_data.height (decimal oder null)
Körpergröße des patienten in cm

patient_data.weight (decimal oder null)
Körpergewicht des Patienten in kg

patient_data.street (string oder null)
Straße und Hausnummer des Patienten

patient_data.zipcode (string oder null)
Postleitzahl des Patienten

patient_data.place (string oder null)
Wohnort des Patienten

patient_data.country (string oder null)
Ländercode des Wohnsitzes des Patienten (ISO-Standard, z. B. „DE“)

patient_data.phone (string oder null)
Telefonnummer des Patienten

patient_data.email (string oder null)
Email Adresse des Patienten

sample_data (object)
Stammdaten der Probe

sample_data.sample_taken (date „yyyy-mm-dd hh:mm:ss“)
Zeitpunkt der Probenentnahme

sample_data.sample_type („capillary blood“ / „whole blood“)
Probentyp (unterscheidet zwischen Venösem Blut und Kapillarblut)

„result“ Object:

parameter (string)
Kürzel des Messparameters (z. B. TAG, HbA1c). Paramterkürzel abrufbar über Endpoint „Verfügbare Analysen“.

value (decimal)
Gemessener Wert

unit (string)
Einheit in der gemessen wurde

reference (object array)
Enthält Referenzbereiche unter Berücksichtigung von Alter und Geschlecht mit Farbcodierung.
Hinweis: Die meisten Parameter haben nur einen „grünen“ Referenzbereich. Alle werte außerhalb dieses Bereichs liegen außerhalb der Norm und wären als „rot“ zu klassifizieren. Für einige Ausnahmefälle gibt es auch noch „orangene“ Bereiche, welche bedenklich, aber nicht zwingend pathologisch sind.

comment (string oder null)
Parameterspezifischer Kommentar vom Labor

validated (boolean)
Gibt an, ob der angegebene Wert bereits vom Laborarzt validiert und freigegeben wurde

report_id (int oder null)
ID des PDF-Reports in dem dieses Ergebnis zu finden ist (verweist auf Reports array

„reference“ Object:

color (string)
Beurteilungsfarbe
Mögliche Werte:
– „green“
– „orange“
– „red“

min (decimal oder null)
Untere Grenze des Referenzbereichs

max (decimal oder null)
Obere Grenze des Referenzbereichs

„report“ Object

report_id (int)
Eindeutige ID des reports

report_pdf (string)
Link zum Abruf des PDF-Befunds.
ACHTUNG: Links sind nicht dauerhaft gültig. Wir empfehlen die PDFs abzurufen und auf Ihrer Seite abzuspeichern.