Webhooks — Entwicklerdokumentation
Überblick
Wenn für eine Firma eine Webhook-URL hinterlegt ist, ruft integeri diese bei bestimmten
Ereignissen per POST auf. Der Request-Body ist JSON mit den Feldern
event, time und data.
Ihr Endpunkt sollte mit HTTP-Status 2xx antworten. Fehlgeschlagene Aufrufe werden protokolliert; die Auslösung des Ereignisses in integeri (z. B. Zertifikatserstellung) wird dadurch nicht rückgängig gemacht.
Konfiguration
Die Webhook-URL wird pro Firma in den integeri-Firmeneinstellungen unter
Mailadressen → URL-WebHook gesetzt (App-Konfiguration webhook, Typ CI).
Ist keine URL hinterlegt, werden keine Webhooks versendet.
Payload-Format
Jeder Webhook-Aufruf verwendet dieses JSON-Schema:
{
"event": "<event_name>",
"time": "2026-06-22T14:30:00+02:00",
"data": { }
}
| Feld | Typ | Beschreibung |
|---|---|---|
event | string | Eventtyp (siehe unten) |
time | datetime (ISO 8601) | Zeitpunkt des Ereignisses auf dem integeri-Server |
data | object | Event-spezifische Nutzdaten |
Request-Header: Content-Type: application/json, Accept: application/json.
Eventtypen
| Event | Auslöser |
|---|---|
certificate_created |
Nach erfolgreicher Erzeugung eines Zertifikat-PDFs für eine Kurszuweisung |
certificate_created
Wird ausgelöst, sobald ein Zertifikat erstellt wurde (PDF-Datensatz angelegt).
Beispiel
{
"event": "certificate_created",
"time": "2026-06-22T14:30:00+02:00",
"data": {
"user": {
"id": 42,
"fullName": "Max Mustermann"
},
"course": {
"id": 17,
"title": "Jährliche Sicherheitsunterweisung"
},
"url": {
"api": "https://next.integeri.com/api/v1/users/42/123/course/17-de.pdf",
"web": "https://next.integeri.com/de/pdf/user/42/assignment/123/course/17"
}
}
}
Felder in data
| Pfad | Typ | Beschreibung |
|---|---|---|
user.id | integer | Benutzer-ID |
user.fullName | string | Vollständiger Name des Benutzers |
course.id | integer | Kurs-ID |
course.title | string | Kurstitel |
url.api | string|null | API-PDF-URL (/api/v1/users/…/course/…) oder signierte Upload-URL |
url.web | string|null | Web-PDF-Download-URL (gleiche Regeln wie in der Zertifikatsliste) |
url.api und url.web können null sein, wenn für die Zuweisung kein Download
angeboten wird (z. B. ausstehendes BKF, Gruppen-Bediener-Schulung ohne Einzelzertifikat).