Webhooks — Developer documentation
Overview
When a company has a webhook URL configured, integeri calls it for selected events via
POST. The request body is JSON with fields event, time, and
data.
Your endpoint should respond with HTTP status 2xx. Failed calls are logged; the triggering action in integeri (e.g. certificate creation) is not rolled back.
Configuration
The webhook URL is set per company in integeri company settings under
Mail addresses → URL webhook (app config webhook, type CI).
If no URL is configured, no webhooks are sent.
Payload format
Every webhook call uses this JSON schema:
{
"event": "<event_name>",
"time": "2026-06-22T14:30:00+02:00",
"data": { }
}
| Field | Type | Description |
|---|---|---|
event | string | Event type (see below) |
time | datetime (ISO 8601) | Time of the event on the integeri server |
data | object | Event-specific payload |
Request headers: Content-Type: application/json, Accept: application/json.
Event types
| Event | Trigger |
|---|---|
certificate_created |
After a certificate PDF was successfully created for a course assignment |
certificate_created
Triggered when a certificate has been created (PDF record stored).
Example
{
"event": "certificate_created",
"time": "2026-06-22T14:30:00+02:00",
"data": {
"user": {
"id": 42,
"fullName": "Max Mustermann"
},
"course": {
"id": 17,
"title": "Annual safety instruction"
},
"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"
}
}
}
Fields in data
| Path | Type | Description |
|---|---|---|
user.id | integer | User ID |
user.fullName | string | User full name |
course.id | integer | Course ID |
course.title | string | Course title |
url.api | string|null | API PDF URL (/api/v1/users/…/course/…) or signed upload URL |
url.web | string|null | Web PDF download URL (same rules as the certificate list) |
url.api and url.web may be null when no download is offered for the
assignment (e.g. pending BKF, group operator training without individual certificate).