Webhooks
Webhooks deliver real-time notifications to your server infrastructure the moment changes occur in etg24 — eliminating resource-intensive polling. Subscribe once to keep external databases, CRMs, and messaging systems synchronized with your portfolio.
Discovering supported event types
The event catalogue expands dynamically as platform features evolve. Rather than maintaining brittle hardcoded lists, query active event types dynamically via API:
curl -s "https://api.etg24.de/propertymanagement/v2/query/webhooks.eventTypes" \ -H "Authorization: Bearer YOUR_API_KEY"Webhooks cover lifecycle events (created, updated, deleted) across all primary entities:
- Properties (
properties.object.*) - Units (
properties.unit.*) - Contacts (
contacts.*) - Documents (
documents.*)
Configuring a webhook
Webhooks can be registered via the etg24 app settings or programmatically using the command endpoint:
curl -s -X POST "https://api.etg24.de/propertymanagement/v2/command/webhooks.create" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "webhook": { "name": "CRM Sync Listener", "url": "https://api.example.com/webhooks/etg24", "eventTypes": ["contacts.created", "contacts.updated"], "authorizationHeader": "Bearer secret-token-from-your-receiver" } }'To list, inspect, or delete webhooks, refer to the Property Management v2 reference.
Event payload format
When a subscribed event fires, etg24 sends an HTTP POST request to your configured webhook URL with Content-Type: application/json. A typical event 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" }}Security & verification
To verify that inbound webhook requests originate from etg24:
- Provide a custom secret via
authorizationHeaderduring webhook creation. - Validate that every inbound request to your server carries this exact header value before processing the payload.
- Reject any requests missing the required header with an immediate
401 Unauthorized.
Architecture alignment with CQRS
Webhooks integrate seamlessly with our CQRS model:
- Events are the notification layer: They notify your system that a state change happened.
- Queries & Commands are the action layer: Upon receiving an event, your integration can fetch extended context via Queries or trigger downstream updates via Commands.