Einen Webhook-Endpunkt anlegen
Unter Einstellungen › Organisation › Webhooks eine https-Adresse und die abonnierten Ereignisse eintragen und das Signatur-Secret sicher übernehmen.
4 Minuten LesezeitWebhooksStand: 25.10.2026
Auf dieser Seite
Bevor Sie loslegen
- Für wen
- Wer ein eigenes System an Ereignisse der Plattform anschließen will.
- Voraussetzung
- Ein Paket, das Webhooks enthält (ab Premium); die Rolle Inhaber; eine öffentlich erreichbare https-Adresse, die POST-Anfragen annimmt.
- Ort
- Einstellungen › Organisation › Webhooks — oder die API unter
/v1/webhooks.
Am Ende hat Ihre Organisation einen aktiven Endpunkt, der die gewählten Ereignisse an Ihre https-Adresse bekommt, und Sie haben das Signatur-Secret sicher abgelegt.
Schritte
Im Portal
- Öffnen Sie Einstellungen › Organisation › Webhooks.
- Klicken Sie auf Endpunkt anlegen. Der Dialog Webhook-Endpunkt anlegen öffnet sich.
- Tragen Sie unter Endpunkt-URL die Adresse Ihres Empfängers ein, zum Beispiel
https://example.com/hooks/signage. - Wählen Sie unter Abonnierte Ereignisse im Feld Ereignis suchen … die Ereignistypen. Das Feld filtert den Katalog, jede Wahl legt sich als Chip über das Feld; mindestens ein Ereignis ist nötig.
- Klicken Sie auf Anlegen.
- Der Kasten Signatur-Secret — nur jetzt sichtbar erscheint. Klicken Sie auf Secret kopieren und legen Sie den Wert dort ab, wo Ihr Empfänger ihn liest. Erst dann Verstanden.

Anlegen wird erst wählbar, wenn eine Adresse steht und mindestens ein Ereignis als Chip in der Auswahl liegt.
Über die API
$TOKEN ist das Zugriffstoken einer Anmeldung als Inhaber — ein API-Schlüssel kann die Webhook-Rechte nicht tragen (siehe Anmeldung); $SZENERA_API ist die Basis-URL Ihrer Umgebung.
curl -X POST "$SZENERA_API/v1/webhooks" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"url": "https://warenwirtschaft.example.com/hooks/signage",
"events": ["composition.scene.published", "scheduling.playlist.updated", "media-library.asset.ready"]
}'
Die Antwort (Status 201) enthält den Endpunkt und — nur in dieser Antwort — das Secret:
{
"endpoint": {
"id": "whk_01KPR20K40WEBHK00000000001",
"tenantId": "tnt_01KERPXZM0ADERAPTHEKE00001",
"url": "https://warenwirtschaft.example.com/hooks/signage",
"events": ["composition.scene.published", "scheduling.playlist.updated", "media-library.asset.ready"],
"active": true,
"consecutiveFailures": 0,
"lastDeliveryAt": null,
"lastFailureAt": null,
"createdById": "usr_01KFB7QPW0TEAM000000000002",
"createdAt": "2026-04-21T13:00:00.000Z"
},
"secret": "whsec_9tR4mZpQ2xVs7KdHc3JnFb6yWa8EgTu1"
}
Das Secret ist danach nicht mehr abrufbar; geht es verloren, erneuern Sie es (siehe Optionen).
Die Liste events prüft der Server, bevor er den Endpunkt anlegt: Erlaubt sind eine genaue Ereignisart, ein Bereich als composition.* oder * für alles. Ein unbekannter Name ist 422 WebhookEndpoint.EventUnknown und wird in der Antwort genannt — ein Tippfehler soll hier auffallen und nicht als Endpunkt enden, der stumm bleibt. Welche Namen es gibt, liefert GET /v1/webhooks/event-types, siehe Den Ereigniskatalog über die API abrufen.
Optionen
| Aufgabe | Im Portal | Über die API |
|---|---|---|
| Adresse oder Ereignisse ändern | Bearbeiten → Dialog Webhook bearbeiten → Speichern | PATCH /v1/webhooks/{id} mit url und/oder events |
| Endpunkt anhalten oder fortsetzen | Deaktivieren / Aktivieren | PATCH /v1/webhooks/{id} mit {"active": false} bzw. {"active": true} |
| Secret erneuern | Secret rotieren → neuer Kasten Signatur-Secret — nur jetzt sichtbar | POST /v1/webhooks/{id}/rotate-secret → Antwort {"secret": "whsec_…"} |
| Endpunkt entfernen | Löschen → Dialog Webhook-Endpunkt löschen? → Löschen | DELETE /v1/webhooks/{id} → {"deleted": true} |
| Endpunkte auflisten | Liste unter Webhook-Endpunkte | GET /v1/webhooks?limit=50 (Blättern mit cursor) |
Beim Bearbeiten bleibt das Signatur-Geheimnis unverändert. Ein deaktivierter Endpunkt behält Adresse, Ereignisse und Zustell-Historie. Ergänzte Ereignisse und ein wieder eingeschalteter Endpunkt werden bis zu eine Stunde später wirksam; neu angelegte Endpunkte sofort.
Regeln für Adresse und Ereignisse
- Nur https, nur öffentlich. Die Adresse beginnt mit
https://; abgewiesen werdenlocalhost,::1, Namen auf.localsowie127.,10.,192.168.,169.254.und172.16.bis172.31.— Status 422,WebhookEndpoint.UrlInvalid, beim Anlegen wie beim Ändern. - Mindestens ein Ereignis, bekannte Namen. Erlaubt sind ein genauer Ereignistyp, ein Bereich wie
composition.*und*. Ein Tippfehler im Typ wird mit422 WebhookEndpoint.EventUnknownabgewiesen, ebenso ein Typ, der nicht abonnierbar ist. - Das Paket zählt beim Anlegen und beim Erneuern des Secrets. Ohne Webhooks im Paket antwortet das Anlegen mit Status 403,
Billing.FeatureNotEntitled; im Portal sind Endpunkt anlegen und Secret rotieren gesperrt, über die API bleibtPOST /v1/webhooks/{id}/rotate-secretmöglich. Bestehende Endpunkte laufen weiter. - Rechte. Anlegen, Ändern, Erneuern und Löschen brauchen die Rolle Inhaber (
webhook.create,webhook.update,webhook.delete); die Liste sehen Inhaber und Manager (webhook.list).
Ergebnis prüfen
- Der Endpunkt steht in der Liste Webhook-Endpunkte mit Status Aktiv.
- Nach dem nächsten passenden Ereignis zeigt das Zustell-Log eine Zeile mit Status Zugestellt und dem Antwortcode Ihres Servers (etwa „HTTP 200“).
- Ihr Empfänger hat eine Anfrage mit den Kopfzeilen
X-Signature,X-Event-TypeundX-Delivery-Idgesehen.
Wenn etwas nicht klappt
| Symptom | Bedeutung | Lösung |
|---|---|---|
Status 422, WebhookEndpoint.UrlInvalid |
Adresse ist nicht https oder zeigt auf ein privates Netz | Öffentliche https-Adresse verwenden |
Status 403, Billing.FeatureNotEntitled; im Portal sind Endpunkt anlegen und Secret rotieren gesperrt |
Ihr Paket enthält keine Webhooks | Paket wechseln; bestehende Endpunkte lassen sich weiter bearbeiten, abschalten und löschen |
Status 403, Permission.Denied |
Ihr Konto hat nicht die Rolle Inhaber, oder Sie rufen mit einem API-Schlüssel auf | Als Inhaber anmelden; Zugriffstoken einer Anmeldung statt API-Schlüssel |
Status 422, WebhookEndpoint.EventUnknown |
Ein Eintrag in events steht in keiner der drei erlaubten Formen; details.unknownEvents nennt ihn |
Namen gegen den Ereigniskatalog prüfen |
| Endpunkt aktiv, aber nie eine Zustellung | Ereignis tritt nicht ein oder Abonnement noch nicht wirksam | Siehe Wenn keine Zustellung ankommt |