Zum Inhalt springen

Webhooks für die Zeiterfassung

Unter Systemkonfiguration → Webhooks legen Administratoren Endpunkte an, die bei Ereignissen der Zeiterfassung einen signierten JSON-POST erhalten – zum Beispiel für Buchhaltung, Auswertungen oder eine eigene Integration.

EreignisWann
time_entry.created / updated / deletedZeitbuchung angelegt, geändert (mit Liste der geänderten Felder), gelöscht
timer.started / timer.stoppedTimer gestartet bzw. gestoppt
week.submitted / week.approved / week.rejectedWoche eingereicht, freigegeben, abgelehnt (mit allen Buchungen der Woche)

Pro Webhook wählen Sie die Ereignisse, ob er aktiv ist und ob Stundensätze und Beträge mitgesendet werden (standardmäßig nicht).

{
"event": "time_entry.created",
"occurred_at": "2026-09-24T09:02:44+02:00",
"data": {
"id": 17, "date": "2026-09-22", "minutes": 90, "hours": 1.5,
"description": "Konzept", "billable": true, "approval_status": "draft",
"project": { "id": 1, "name": "Relaunch", "customer": { "id": 1, "name": "Muster GmbH" } },
"task": null, "activity_type": null,
"user": { "id": 3, "name": "Anna Weber", "email": "anna@example.com" },
"rate": 80, "amount": 120
}
}

Header:

HeaderInhalt
X-CRM-EventEreignisname
X-CRM-Deliveryeindeutige Zustellnummer
X-CRM-TimestampUnix-Zeitstempel des Versands
X-CRM-Signaturesha256= + HMAC-SHA256 über timestamp + "." + body mit dem Secret des Webhooks

Prüfen Sie die Signatur auf Empfängerseite und verwerfen Sie Anfragen mit altem Zeitstempel. Das Secret sehen Sie im Webhook-Dialog und können es dort neu erzeugen.

Antwortet der Empfänger nicht mit 2xx, wird die Zustellung bis zu dreimal wiederholt (nach 1, 5 und 15 Minuten). Jeder Versuch steht im Protokoll unter dem Webhook mit Status, Antwortauszug und Zeitpunkt. „Test senden“ verschickt ein test-Ereignis zur Prüfung der Anbindung.