Skip to main content

Webhooks

Webhooks übermitteln Benachrichtigungen in Echtzeit an deine Server-Infrastruktur, sobald sich Daten in etg24 ändern – ganz ohne ressourcenintensives Polling. Einmal eingerichtet, halten Webhooks externe Datenbanken, CRM-Systeme oder Messaging-Dienste kontinuierlich auf dem aktuellen Stand.

Unterstützte Event-Typen abfragen

Der Event-Katalog wächst mit den Fähigkeiten der Plattform. Statt einer statischen Dokumentation kannst du die aktuell aktiven Event-Typen direkt über die API abrufen:

Terminal window
curl -s "https://api.etg24.de/propertymanagement/v2/query/webhooks.eventTypes" \
-H "Authorization: Bearer DEIN_API_KEY"

Webhooks unterstützen Lebenszyklus-Ereignisse (created, updated, deleted) für alle zentralen Entitäten:

  • Liegenschaften und Gebäude (properties.object.*)
  • Einheiten (properties.unit.*)
  • Kontakte (contacts.*)
  • Dokumente (documents.*)

Einrichtung eines Webhooks

Webhooks lassen sich direkt in den Einstellungen der etg24-App oder programmatisch über die API anlegen:

Terminal window
curl -s -X POST "https://api.etg24.de/propertymanagement/v2/command/webhooks.create" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"webhook": {
"name": "CRM Synchronisation",
"url": "https://api.example.com/webhooks/etg24",
"eventTypes": ["contacts.created", "contacts.updated"],
"authorizationHeader": "Bearer geheimer-token-deines-servers"
}
}'

Weitere Endpunkte zum Auflisten, Prüfen und Löschen bestehender Webhooks findest du in der Property Management v2 Referenz.

Struktur des Event-Payloads

Tritt ein abonniertes Ereignis ein, sendet etg24 einen HTTP POST-Request mit dem Header Content-Type: application/json an deine hinterlegte Ziel-URL. Beispielhafter Payload:

{
"id": "evt_01J8K4N5P6Q7R8S9T0UVWXYZ",
"eventType": "properties.unit.updated",
"timestamp": "2026-03-24T14:45:00.000Z",
"tenantId": "ten_01J8K1...",
"data": {
"unitId": "unt_98765432-1234-abcd-ef01-23456789abcd",
"propertyId": "obj_12345678-abcd-1234-5678-abcdef123456",
"unitNumber": "WE 04",
"floor": 2,
"status": "vacant"
}
}

Absicherung und Validierung

Um sicherzustellen, dass eingehende Webhook-Aufrufe tatsächlich von etg24 stammen:

  1. Hinterlege beim Anlegen des Webhooks einen individuellen Token im Feld authorizationHeader.
  2. Dein empfangender Server prüft bei jedem eingehenden Request, ob dieser Header exakt übereinstimmt.
  3. Anfragen ohne gültigen Header weist dein Server mit 401 Unauthorized ab.

Zusammenspiel mit CQRS

Webhooks fügen sich nahtlos in das CQRS-Modell ein:

  • Events bilden die Benachrichtigungsschicht: Sie informieren dein System in Echtzeit über eingetretene Änderungen.
  • Queries und Commands bilden die Handlungsschicht: Nach Empfang eines Events kann dein System bei Bedarf weitere Details per Query nachladen oder Folgeprozesse per Command auslösen.