Der Vertrag, auf einer Seite.
Jede Lieferung ist ein signierter Webhook, der seine Aktion benennt. Dieselben Datensätze gibt es über eine dokumentierte REST-API. Diese Seite ist der ganze Vertrag; die OpenAPI-Referenz in Ihrem Workspace hat jedes Feld.
Der Umschlag
Jeder Webhook trägt eine Entität und eine Aktion. Der Datensatz selbst liegt unter data und hat dieselbe Form wie die API-Antwort.
- event
- Was passiert ist: entity.published, entity.unpublished oder entity.test.
- deliveryId
- Stabil je Lieferung. Eine Wiederholung trägt dieselbe Id und denselben Body, damit Empfänger deduplizieren können.
- tenantId
- Ihr Workspace. Jeder Schlüssel und jeder Webhook ist darauf beschränkt.
- entityType
- event, eventVenue oder organization.
- entityId
- Stabil über Veröffentlichungen, Updates und Rückzüge desselben Datensatzes.
- timestamp
- Wann die Lieferung signiert wurde, ISO 8601.
- data
- Der Datensatz zum Zeitpunkt der Lieferung. Bei einem Rückzug ist es der zuletzt veröffentlichte Stand.
X-DataHub-Event: entity.publishedX-DataHub-Delivery-Id: dlv_01J8W4Q7K2M3N4P5X-DataHub-Timestamp: 2026-09-23T14:02:11.418ZX-DataHub-Signature: sha256=9f2c…e41b
{ "event": "entity.published", "deliveryId": "dlv_01J8W4Q7K2M3N4P5", "tenantId": "tnt_7c1e", "entityType": "event", "entityId": "evt_3f9a2c", "timestamp": "2026-09-23T14:02:11.418Z", "data": { "name": "Nils Wogram Root 70", "startDate": "2026-10-03T18:30:00.000Z", "timezone": "Europe/Berlin", "status": "scheduled", "url": "https://example-club.de/tickets/root-70" }}
Die Events
- entity.published
- Ein Datensatz wurde in Ihren Workspace veröffentlicht oder danach geändert. Übernehmen Sie data als aktuellen Stand.
- entity.unpublished
- Der Datensatz wurde zurückgezogen: abgesagt, entfernt oder nicht mehr in Ihrer Abdeckung. Nehmen Sie ihn raus.
- entity.test
- Wird aus dem Workspace gesendet, wenn Sie einen Endpunkt testen. Gleicher Umschlag, test: true, ein Beispiel-Datensatz.
- entity.approved
- Der alte Name für eine Veröffentlichung, erhalten für frühe Integrationen. Behandeln Sie ihn wie entity.published.
Eine Lieferung prüfen
Jede Anfrage trägt Signatur, Zeitstempel, Event-Name und Liefer-Id in Headern. Prüfen Sie, bevor Sie parsen.
- 1Lesen Sie die Header X-DataHub-Timestamp und X-DataHub-Signature.
- 2Berechnen Sie ein HMAC-SHA256 über "<timestamp>.<raw body>" mit Ihrem Webhook-Secret und stellen Sie "sha256=" voran.
- 3Vergleichen Sie es in konstanter Zeit mit dem Signatur-Header.
- 4Lehnen Sie Lieferungen ab, deren Zeitstempel älter als wenige Minuten ist; das Fenster bestimmen Sie.
- 5Antworten Sie erst mit 2xx, wenn Sie die Lieferung gespeichert haben. Alles andere wird wiederholt.
Änderungssemantik
- Eine Änderung an einem veröffentlichten Datensatz wird erneut als entity.published mit dem vollständigen aktuellen Datensatz geliefert. Sie erhalten nie einen Teil-Patch.
- Rückzüge sind explizit. Ein Datensatz, der Ihre Abdeckung verlässt, wird als entity.unpublished geliefert, nie still weggelassen.
- Eltern zuerst. Eine Spielstätte oder ein Veranstalter, von dem ein neues Event abhängt, wird vor dem Event geliefert.
- Lieferungen sind at-least-once. Deduplizieren Sie über deliveryId; eine spätere Lieferung desselben Datensatzes ersetzt eine frühere.
Die API
Eine versionierte REST-API für Events, Spielstätten, Veranstalter und Künstler, mit Schlüsseln je Abnehmer und derselben Datensatzform wie das data-Feld des Webhooks. Die OpenAPI-Referenz liegt in Ihrem Workspace unter Integrationen.
Kunden-Workspace öffnenWiederholungen und Timeouts
Ein Webhook, der nicht innerhalb von zehn Sekunden mit 2xx antwortet, wird mit exponentiellem Backoff wiederholt. Jeder Versuch wird in Ihrem Workspace mit Status, Latenz und einem Auszug der Antwort protokolliert.
Ein pausierter Workspace sammelt Lieferungen und arbeitet sie der Reihe nach ab, wenn er fortgesetzt wird.
Eine Veröffentlichung, die noch in der Warteschlange steht, wenn der Datensatz zurückgezogen wird, wird verworfen. Eine langsame Wiederholung belebt nie ein abgesagtes Event wieder.