# Webhooks

> Wie du einen Webhook anlegst, testest und aktivierst, damit bei bestimmten Änderungen an deinen Daten automatisch eine HTTP-Anfrage an ein anderes System geht, und wer bei Änderungen am Webhook eine E-Mail bekommt.

Ein Webhook schickt eine HTTP-Anfrage an eine Adresse deiner Wahl, sobald sich in i-Planner etwas ändert — zum Beispiel wenn ein Kunde angelegt oder ein Vertrag aktualisiert wird. So erfährt ein anderes System von der Änderung, ohne dass es regelmäßig nachfragen muss.

## Voraussetzungen

- Deine Benutzerrolle braucht Zugriff auf die **Einstellungen** und für den Bereich **Entwickler › Webhooks** mindestens **Nur lesen**. Fehlt der Zugriff, erscheint der Menüpunkt nicht. Mit **Nur lesen** steht in der Liste statt **Bearbeiten** der Eintrag **Ansehen**.
- Zum Anlegen, Ändern, Kopieren, Aktivieren, Deaktivieren, Testen und zum Anzeigen oder Rotieren des Secrets brauchst du **Lesen + Bearbeiten**, zum Löschen **Lesen + Bearbeiten + Löschen**. Eine Person mit Administrator-Rolle vergibt das unter [Benutzerrollen](/organisation/einstellungen/team-und-rollen/benutzerrollen).
- Eine Zieladresse, die von außen erreichbar ist und mit `https://` beginnt.
- Wie viele Webhooks deine Organisation anlegen kann, begrenzt euer Tarif. Deaktivierte Webhooks zählen mit.

## Die Webhook-Übersicht

<img alt="Die Seite Webhooks mit der Zeile 2 Webhooks und dem Plus-Knopf, zwei Webhooks mit rotem Punkt, einer davon mit dem Kennzeichen Letzter Test erfolgreich, und je einem Drei-Punkte-Menü" src="/img/organisation/einstellungen-webhooks-liste.png" width="760">

Unter **Organisation › Einstellungen › Entwickler › Webhooks** stehen alle Webhooks deiner Organisation. Die Zeile über der Liste zeigt, wie viele es sind; rechts daneben legt der **+**-Knopf einen neuen an — sein Hinweistext lautet **Neuer Webhook**. Solange noch kein Webhook angelegt ist, steht dort **0 Webhooks**.

Sobald Webhooks vorhanden sind, steht jeder in einer eigenen Zeile: oben der Name, darunter die Ziel-URL. Die Methode steht nur davor, wenn sie nicht **POST** ist. Die **Beschreibung** erscheint in der Übersicht nicht. Links vor dem Namen sitzt ein farbiger Punkt:

| Punkt | Bedeutung |
|---|---|
| Grün | Aktiv und mit Events verknüpft — der Webhook arbeitet |
| Gelb | Aktiv, aber ohne Events — er wird nie ausgelöst |
| Rot | Inaktiv — auch jeder neu angelegte Webhook, bis du ihn aktivierst |

Rechts steht ein Kennzeichen zum letzten Test: **Letzter Test erfolgreich** oder **Letzter Test Fehler**. Ob ein Webhook aktiv ist, erkennst du nur am Punkt.

Hat deine Organisation so viele Webhooks, wie euer Tarif erlaubt, ist der **+**-Knopf gesperrt. Sein Hinweis **Webhook-Kontingent** lautet dann: *Der Tarif erlaubt maximal \<n> Webhooks. Deaktivierte Webhooks zählen mit. Erst Löschen gibt einen Platz frei. Für weitere ist ein Tarifwechsel nötig.*

## Webhook anlegen

Ein Webhook geht in vier Schritten in Betrieb: anlegen, Events auswählen, testen und aktivieren. Das Anlegen geht so:

1. Öffne **Organisation › Einstellungen › Entwickler › Webhooks**.
2. Klicke rechts in der Zeile über der Liste auf **+**. Die Seite **Neuer Webhook** öffnet sich.
3. Unter **Stammdaten**:
   - **Aktiv** — das oberste Feld. Bei einem neuen Webhook ist der Schalter aus und gesperrt, bis der Webhook angelegt ist. Einschalten kannst du ihn erst nach einem erfolgreichen Test, siehe Abschnitt **Webhook aktivieren**.
   - **Name** — Pflichtfeld. Er wird in der Übersicht und im Audit-Log angezeigt.
   - **Beschreibung** — optional, wofür der Webhook eingesetzt wird.
4. Fülle unter **HTTP** aus:
   - **Methode** — **POST**, **PUT** oder **PATCH**. Voreingestellt ist **POST**.
   - **URL** — Pflichtfeld. Muss mit `https://` beginnen.
   - **Content-Type** — **application/json** (voreingestellt), **application/x-www-form-urlencoded** oder **text/plain**.
   - **Verzögerung** — Wartezeit vor dem ersten Request, 1 bis 10 Sekunden. Voreingestellt ist 1 Sekunde.
5. Lege im Bereich **Events** fest, bei welchen Änderungen gesendet werden soll. Ohne Events wird der Webhook nie ausgelöst.
6. Sende im Bereich **Webhook testen** einen Test und schalte danach unter **Stammdaten** den Schalter **Aktiv** ein.

Die Seite hat von oben nach unten die Bereiche **Stammdaten**, **HTTP**, **HTTP-Header**, **HTTP-Signatur**, **Quellen**, **Events**, **Erweitert**, **E-Mail-Benachrichtigung** (weitere Empfänger der Sicherheits-Mails) und **Webhook testen**.

Wie überall im Bereich **Organisation** gibt es keinen **Speichern**-Knopf — jede Änderung wird sofort gespeichert (siehe **Organisation › Übersicht**). Auf dieser Seite gilt eine Besonderheit: Angelegt wird der Webhook erst, wenn **Name** und **URL** beide ausgefüllt sind — davor merkt sich die Maske deine Eingaben nur. Der neu angelegte Webhook ist inaktiv.

Würde der neue Webhook das Kontingent eures Tarifs überschreiten, erscheint das Fenster **Tarif-Kontingent erreicht**.

## Events auswählen

Unter **Events** legst du fest, bei welchen Änderungen der Webhook gesendet wird und welche zusätzlichen Daten er enthält.

1. Öffne den Webhook über **Organisation › Einstellungen › Entwickler › Webhooks** und **Bearbeiten**.
2. Klicke im Bereich **Events** auf **+**.
3. Wähle unter **Eventbereich** den Datenbereich aus. Zur Auswahl stehen: Kunden, Kunden-Beziehungen, Schäden, Finanzen, Ziele, Verträge, Vertrags-Personen, Vertrags-Tarife, Produktpartner, Produktpartner – Ansprechpartner, Produktpartner – Portale, Kontaktdaten, Adressen, Bankverbindungen, Nummern, Identitätsdaten, Beruf & Arbeitgeber, Aktivitäten, Dokumente, Kommentare, Follower, Tags und Benutzer.
4. Schalte die Aktionen ein, bei denen gesendet werden soll. Jeder Schalter trägt die Bezeichnung des Bereichs — im Bereich Kunden heißen sie **Kunde anlegen**, **Kunde aktualisieren** und **Kunde löschen**. Anlegen, Aktualisieren und Löschen gibt es in den meisten Bereichen. Abweichend davon haben Kunden-Beziehungen, Vertrags-Tarife, Follower und Tags nur Zuweisen und Entfernen (etwa **Follower zuweisen** und **Follower entfernen**), Vertrags-Personen haben Zuweisen, Aktualisieren und Entfernen, und Kommentare haben nur Anlegen und Löschen.
5. Schalte darunter optional zusätzliche Daten zu, die mitgesendet werden sollen. Ohne diese Schalter geht nur der Basisdatensatz raus.

| Zusatzdaten | In welchen Bereichen | Voreinstellung |
|---|---|---|
| **Feldbeschreibung** — technische Erläuterungen zu den einzelnen Datenfeldern und Auswahllisten | alle | ein |
| **Adressen**, **Kontaktdaten**, **Bankverbindungen**, **Nummern** | Kunden, Produktpartner, Benutzer | aus |
| **Beruf & Arbeitgeber**, **Identitätsdaten** | Kunden, Benutzer | aus |
| **Vertrags-Personen**, **Vertrags-Tarife** | Verträge | aus |

Jeder Eventbereich darf nur einmal vorkommen; bereits benutzte Bereiche verschwinden aus der Auswahlliste der übrigen Zeilen. Pro Bereich muss mindestens eine Aktion eingeschaltet sein. Fehlt eine Aktion oder kommt ein Bereich doppelt vor, steht unter **Events** in Rot: *Wähle für jeden Eventbereich mindestens eine Aktion und verwende jeden Bereich nur einmal. Diese Änderung ist noch nicht gespeichert.* Beim Speichern lehnt i-Planner einen Bereich ohne Aktion mit dem Hinweis *Wähle für „…" mindestens ein Event aus* ab, eine Zeile ohne Bereich mit *Eventbereich ist erforderlich.*

Beim **Löschen** eines Datensatzes wird der zuvor erfasste Basisdatensatz gesendet.

## Quellen einschränken

Öffne den Webhook über **Organisation › Einstellungen › Entwickler › Webhooks** und **Bearbeiten**. Unter **Quellen** legst du fest, wessen Änderungen der Webhook überhaupt sehen soll. Beide Schalter sind bei einem neuen Webhook eingeschaltet:

| Quelle | Bedeutung |
|---|---|
| **User Interface** | Mitarbeiter haben Daten direkt in der Benutzeroberfläche von i-Planner geändert, zum Beispiel einen Kunden manuell angelegt |
| **REST-API** | Ein externes System oder Skript hat Daten über die REST-API geändert |

Mindestens eine Quelle muss eingeschaltet bleiben. Schaltest du beide aus, erscheint das Fenster **Mindestens eine Quelle erforderlich** mit dem Text *Wähle mindestens eine Quelle aus. Zum Pausieren deaktiviere den Webhook.* Die Änderung wird dann nicht gespeichert. Willst du den Webhook vorübergehend anhalten, nutze den Schalter **Aktiv** oder im Listenmenü **Deaktivieren**.

## Eigene HTTP-Header mitgeben

Unter **HTTP-Header** hinterlegst du feste Header, die jedem Request mitgegeben werden — zum Beispiel ein **Authorization**-Header oder ein API-Schlüssel, den dein Zielsystem erwartet.

1. Öffne den Webhook über **Organisation › Einstellungen › Entwickler › Webhooks** und **Bearbeiten**.
2. Klicke im Bereich **HTTP-Header** auf **+**.
3. Trage **Name** und **Wert** ein. Beide Felder sind Pflicht — eine leere Zeile musst du entweder ausfüllen oder wieder entfernen.

Zum Ändern oder Entfernen eines Headers nutzt du das Menü am rechten Rand der Zeile: **Bearbeiten** oder **Löschen**.

Wenn du die Seite später erneut öffnest, steht bei jedem Header-Wert nur noch `***`. Der echte Wert bleibt gespeichert und wird weiterhin mitgesendet — er wird nur nicht mehr angezeigt. Solange du `***` stehen lässt, bleibt der gespeicherte Wert unverändert.

Änderst du einen Header, gilt der letzte erfolgreiche Test nicht mehr. Vor dem nächsten Aktivieren musst du den Webhook erneut testen, siehe Abschnitt **Webhook aktivieren**.

## Signatur prüfen und Secret verwalten

Jede Auslieferung wird signiert — einen Schalter zum Abschalten gibt es nicht. Die Signatur ist dazu da, dass dein Zielsystem prüfen kann, ob die Anfrage wirklich von i-Planner stammt und unterwegs nicht verändert wurde. Dafür bekommt jeder Request die Header `webhook-id`, `webhook-timestamp` und `webhook-signature` nach dem Standard-Webhooks-Format.

Öffne den Webhook über **Organisation › Einstellungen › Entwickler › Webhooks** und **Bearbeiten**. Im Bereich **HTTP-Signatur** stehen zwei Schaltflächen:

| Schaltfläche | Wirkung |
|---|---|
| **Secret anzeigen** | Zeigt das aktuelle Secret an. Über **Kopieren** landet es in der Zwischenablage, über **Ausblenden** verschwindet es wieder. |
| **Wechseln** | Erzeugt ein neues Secret (Meldung **Secret gewechselt**). Das bisherige bleibt **24 Stunden** gültig. |

Das Secret entsteht automatisch beim ersten Speichern des Webhooks. Behandle es wie ein Passwort.

Während der 24 Stunden nach dem Rotieren trägt jede Auslieferung beide Signaturen — die mit dem neuen und die mit dem alten Secret. So kannst du dein Zielsystem umstellen, ohne dass in der Zwischenzeit Auslieferungen abgewiesen werden. Wann das alte Secret abläuft, steht nach dem Rotieren unter dem angezeigten Secret.

## Wiederholungen und Auto-Deaktivierung

Öffne den Webhook über **Organisation › Einstellungen › Entwickler › Webhooks** und **Bearbeiten**. Der Bereich **Erweitert** steuert, was bei Fehlern passiert:

| Einstellung | Bedeutung | Bereich | Voreinstellung |
|---|---|---|---|
| **Timeout** | Abbruchzeit für den Request | 10 – 60 s | 10 s |
| **Wiederholungen** | Anzahl Wiederholungen bei 5xx oder Netzwerkfehler | 0 – 10 × | 3 × |
| **Retry-Backoff** | Pause zwischen den Versuchen | 0 – 600 s | 60 s |
| **Auto-Deaktivierung** | Nach wie vielen aufeinanderfolgenden Fehlern der Webhook automatisch deaktiviert wird. 0 schaltet die Auto-Deaktivierung aus. | 0 – 10 × | 10 × |

## Webhook testen

1. Öffne den Webhook über **Organisation › Einstellungen › Entwickler › Webhooks** und **Bearbeiten**. Bei einem Webhook, der noch nicht angelegt ist, ist der Test gesperrt.
2. Wähle im Bereich **Webhook testen** unter **Event** aus, was gesendet werden soll — ein eingerichtetes Event oder den **Verbindungstest**.
3. Klicke auf **Test senden**. Während des Sendens steht auf dem Knopf **Sende...**.

<img alt="Der Bereich Webhook testen mit dem Auswahlfeld Event und dem Knopf Test senden" src="/img/organisation/einstellungen-webhook-testen.png" width="673">

Danach erscheint der Bereich **Request / Response** — was i-Planner an die URL gesendet hat und was zurückkam. Unter **Request** steht, was an die URL geschickt wurde — Methode, URL, Header und Body —, unter **Response** die Antwort mit dem Kennzeichen **HTTP \<Status>** und der Laufzeit in Millisekunden. Kam keine Antwort, steht dort *(keine Antwort vom Empfänger)*. Sämtliche Header-Werte des Requests stehen dort als `***` — auch die der Signatur.

Als Erfolg zählt eine Antwort mit Status 200 bis 299. Andernfalls steht dort eine Meldung, etwa *Remote antwortete mit HTTP 500* oder *Timeout nach 10000 ms*. Ist der Test-Aufruf selbst gescheitert, meldet i-Planner **Test fehlgeschlagen**. Das Ergebnis landet zusätzlich als **Letzter Test erfolgreich** beziehungsweise **Letzter Test Fehler** in der Übersicht.

Der Test verändert nichts an deinen Daten: Er sendet einen Beispiel-Datensatz, der als Test gekennzeichnet ist.

## Webhook aktivieren

Aktivieren lässt sich ein Webhook nur, wenn für seine aktuelle URL und HTTP-Konfiguration ein erfolgreicher Test gespeichert ist.

1. Öffne den Webhook über **Organisation › Einstellungen › Entwickler › Webhooks** und **Bearbeiten**.
2. Sende im Bereich **Webhook testen** einen Test, bis das Ergebnis erfolgreich ist.
3. Schalte unter **Stammdaten** den Schalter **Aktiv** ein. Alternativ wählst du in der Liste im **Drei-Punkte-Menü** des Webhooks **Aktivieren**.

Schaltest du **Aktiv** ohne gültigen Test ein, erscheint das Fenster **Webhook zuerst testen**: *Für die aktuelle URL und HTTP-Konfiguration ist kein erfolgreicher Test gespeichert. Teste den Webhook im Bereich „Webhook testen"; danach kannst du ihn aktivieren.* Nach **OK** springt die Seite zum Knopf **Test senden**. Wählst du in der Liste **Aktivieren**, erscheint ein Fenster mit demselben Titel: *Für die aktuelle URL und HTTP-Konfiguration ist kein erfolgreicher Test gespeichert. Öffne den Webhook über „Bearbeiten" und sende im Bereich „Webhook testen" einen erfolgreichen Test. Danach kannst du ihn aktivieren.* Du schließt es mit **Verstanden**.

Der Test gilt nur, solange **URL**, **Methode**, **Content-Type** und **HTTP-Header** unverändert bleiben. Änderst du eines davon, musst du vor dem nächsten Aktivieren erneut erfolgreich testen. Hat jemand die HTTP-Konfiguration geändert, während du aktivierst, meldet i-Planner *Die Webhook-Konfiguration hat sich geändert. Bitte erneut erfolgreich testen.*

Unter dem Schalter **Aktiv** steht, woran du bist. Fehlt ein gültiger Test: *Vor dem Aktivieren musst du die aktuelle URL und HTTP-Konfiguration erfolgreich testen.* Liegt ein gültiger Test vor: *Bereits erfolgreich getestet: Du kannst den Webhook ohne neuen Test aktivieren, solange die HTTP-Konfiguration unverändert ist.* Bei einem aktiven Webhook steht dort *Du kannst den Webhook pausieren und bei unveränderter HTTP-Konfiguration ohne neuen Test wieder aktivieren.*, fehlt der gespeicherte Test *Kein erfolgreicher Test gespeichert: Nach dem Pausieren ist vor der Reaktivierung ein Test nötig.*

## Weitere Empfänger benachrichtigen

Über Änderungen an einem Webhook informiert i-Planner per E-Mail die Person, die sie vorgenommen hat, und alle Inhaber der Organisation. Im Bereich **E-Mail-Benachrichtigung** trägst du zusätzliche Empfänger ein.

1. Öffne den Webhook über **Organisation › Einstellungen › Entwickler › Webhooks** und **Bearbeiten**.
2. Klicke im Bereich **E-Mail-Benachrichtigung** auf **+**.
3. Trage unter **E-Mail-Adresse** die Adresse ein. Sie erhält technische Hinweise zusätzlich zum Inhaber.

Ist noch niemand eingetragen, steht dort *Der Inhaber wird bereits informiert. Noch keine weiteren Empfänger hinterlegt.* Eine Zeile änderst du über **Bearbeiten** und löschst sie über **Entfernen**. Die Liste wird als Ganzes automatisch gespeichert. Doppelte Adressen fasst i-Planner zusammen, Groß- und Kleinschreibung wird angeglichen. Eine ungültige Adresse lehnt i-Planner mit *Bitte eine gültige E-Mail-Adresse eingeben.* ab.

Die Adressen erhalten dieselben Sicherheits-Mails wie die Inhaber: **Webhook angelegt** (auch beim Kopieren), **Webhook aktiviert**, **Webhook deaktiviert**, **Webhook gelöscht** und **Webhook-Ziel geändert**. Jede Mail enthält den Knopf **Webhook prüfen** beziehungsweise nach dem Löschen **Webhooks prüfen**.

## Webhook pausieren, kopieren oder löschen

Öffne **Organisation › Einstellungen › Entwickler › Webhooks** und klicke am rechten Rand der Zeile auf das **Drei-Punkte-Menü**:

| Aktion | Wirkung |
|---|---|
| **Bearbeiten** | Öffnet den Webhook zum Ändern. Ohne Bearbeitungsrecht heißt der Eintrag **Ansehen**. |
| **Kopieren** | Legt eine Kopie mit dem Namen *Kopie von …* an und öffnet sie. URL, Methode, Events, Quellen, Header, die erweiterten Einstellungen und die Adressen unter **E-Mail-Benachrichtigung** werden übernommen, das Signing-Secret wird neu erzeugt. Die Kopie ist immer inaktiv: Teste sie und aktiviere sie dann. Sie zählt gegen das Webhook-Kontingent eures Tarifs. |
| **Deaktivieren** | Erscheint bei einem aktiven Webhook. Der Webhook feuert nicht mehr, bleibt aber erhalten. |
| **Aktivieren** | Erscheint bei einem inaktiven Webhook. Gelingt nur mit gültigem Test, siehe Abschnitt **Webhook aktivieren**. |
| **Löschen** | Entfernt den Webhook endgültig nach der Rückfrage *Webhook „…" wirklich löschen? Es werden keine Daten mehr an diese Adresse übermittelt, und die Liste der bisherigen Zustellungen im Audit-Log geht verloren.* |

Nach der Aktion bestätigt i-Planner mit **Aktiviert**, **Deaktiviert**, **Kopiert** oder **Gelöscht**; misslingt sie, erscheint etwa **Fehler beim Aktivieren**.

Pausieren kannst du auch über den Schalter **Aktiv** unter **Stammdaten**. Hast du an **URL**, **Methode**, **Content-Type** und **HTTP-Header** nichts geändert, schaltest du den Webhook ohne neuen Test wieder ein.

::callout
---
color: amber
icon: i-heroicons-exclamation-triangle
---
**Löschen lässt sich nicht rückgängig machen.** Mit dem Webhook verschwindet auch seine Zustellhistorie im Audit-Log. Erst das Löschen gibt einen Platz im Webhook-Kontingent frei — ein deaktivierter Webhook zählt weiter mit.
::

## Häufige Fragen

### Warum sehe ich den Menüpunkt „Webhooks" nicht?
Deiner Benutzerrolle fehlt der Zugriff auf die **Einstellungen** oder auf den Bereich **Entwickler › Webhooks**. Eine Person mit Administrator-Rolle kann das unter **Organisation › Einstellungen › Team & Rollen › Benutzerrollen** freigeben — **Nur lesen** genügt zum Ansehen, **Lesen + Bearbeiten** zum Anlegen und Ändern.

### Warum lässt sich der Schalter „Aktiv" nicht einschalten?
Ein Webhook lässt sich erst aktivieren, wenn für seine aktuelle **URL** und HTTP-Konfiguration ein erfolgreicher Test gespeichert ist. Bei einem neuen Webhook ist der Schalter außerdem gesperrt, bis **Name** und **URL** ausgefüllt sind und der Webhook angelegt ist. Sende im Bereich **Webhook testen** mit **Test senden** einen Test. Ist er erfolgreich, kannst du **Aktiv** unter **Stammdaten** einschalten.

### Warum muss ich nach einer Änderung der URL erneut testen?
Ein erfolgreicher Test gilt nur für die **URL**, **Methode**, **Content-Type** und **HTTP-Header**, mit denen er gesendet wurde. Änderst du eines davon, ist der Test ungültig, und vor dem nächsten Aktivieren musst du den Webhook unter **Webhook testen** erneut erfolgreich testen.

### Warum kann ich keinen weiteren Webhook anlegen?
Euer Tarif begrenzt die Zahl der Webhooks, und das Kontingent ist ausgeschöpft. Der **+**-Knopf in der Liste ist dann gesperrt, sein Hinweis **Webhook-Kontingent** nennt die Obergrenze. Deaktivierte Webhooks zählen mit, erst Löschen gibt einen Platz frei. Für mehr Webhooks ist ein Tarifwechsel nötig.

### Meine URL wird nicht angenommen.
Drei Gründe kommen infrage:
- Die Adresse beginnt nicht mit `https://`. `http://` reicht nicht.
- Sie zeigt auf eine interne Adresse — `localhost` oder eine private IP-Adresse. Das Ziel muss aus dem Internet erreichbar sein.
- Sie zeigt auf die i-Planner-API selbst (`api.i-planner.app` oder `api.i-planner.de`). Das ist als Endlosschleifen-Schutz gesperrt: Ein Schreibzugriff auf die API würde genau das Event auslösen, das der Webhook abonniert hat.

Fehlt `https://` oder zeigt die Adresse auf die i-Planner-API, meldet die Maske direkt am Feld **URL**: *URL muss mit https:// beginnen und darf nicht auf das iPlanner-API (api.i-planner.app/.de) zeigen — Endlosschleifen-Schutz.* Die Adresse wird dann nicht gespeichert. Lehnt i-Planner eine API-Adresse erst beim Speichern ab, erscheint stattdessen das Fenster **URL nicht erlaubt**.

### Der Punkt vor meinem Webhook ist gelb — was bedeutet das?
Ein gelber Punkt heißt: Der Webhook ist aktiv, hat aber keine Events eingerichtet und wird deshalb nie ausgelöst. Öffne den Webhook über **Organisation › Einstellungen › Entwickler › Webhooks** und **Bearbeiten**; lege dann im Bereich **Events** mindestens einen Eventbereich mit einer Aktion an.

### Mein Webhook feuert nicht.
Prüfe der Reihe nach:
1. **Aktiv** — ein roter Punkt in der Liste unter **Organisation › Einstellungen › Entwickler › Webhooks** heißt inaktiv. Ein neuer Webhook bleibt inaktiv, bis du ihn nach einem erfolgreichen Test unter **Stammdaten** mit **Aktiv** einschaltest.
2. **Events** — ohne eingerichteten Eventbereich passiert nichts. In der Liste erkennst du das am gelben Punkt.
3. **Quellen** — ist nur **REST-API** eingeschaltet, lösen Änderungen aus der Oberfläche nichts aus, und umgekehrt.
4. Sende einen Test (**Webhook testen › Test senden**), um zu sehen, ob die Adresse überhaupt antwortet.

### Warum wurde mein Webhook plötzlich inaktiv?
Entweder hat die **Auto-Deaktivierung** gegriffen: Nach der eingestellten Zahl aufeinanderfolgender Fehler schaltet i-Planner den Webhook selbst ab — du findest die Einstellung unter **Erweitert**, mit 0 schaltest du sie aus. Oder jemand hat ihn über **Deaktivieren** oder den Schalter **Aktiv** pausiert; das meldet i-Planner mit der E-Mail **Webhook deaktiviert** an die Inhaber und die Adressen unter **E-Mail-Benachrichtigung**.

### Warum steht bei meinen Header-Werten nur `***`?
Header-Werte werden beim Laden der Seite grundsätzlich ausgeblendet, weil sie Zugangsdaten enthalten können. Der gespeicherte Wert ist unverändert vorhanden und wird weiterhin mitgesendet. Lässt du `***` stehen, bleibt er erhalten; erst wenn du das Feld überschreibst, ersetzt der neue Wert den alten.

### Wie prüft mein Zielsystem, dass die Anfrage wirklich von i-Planner kommt?
Über die Signatur. Jeder Request trägt die Header `webhook-id`, `webhook-timestamp` und `webhook-signature` im Standard-Webhooks-Format. Dein System prüft die Signatur gegen das Secret, das du beim Webhook unter **Organisation › Einstellungen › Entwickler › Webhooks** über **Bearbeiten** und **HTTP-Signatur › Secret anzeigen** abholst.

### Ich habe das Signing-Secret verloren.
Öffne den Webhook über **Organisation › Einstellungen › Entwickler › Webhooks** und **Bearbeiten**. Klicke unter **HTTP-Signatur** auf **Secret anzeigen**: Das aktuelle Signing-Secret wird erneut angezeigt und lässt sich mit **Kopieren** übernehmen. Dafür braucht deine Benutzerrolle **Lesen + Bearbeiten**.

### Wie tausche ich das Secret aus, ohne dass Auslieferungen ausfallen?
Öffne den Webhook über **Organisation › Einstellungen › Entwickler › Webhooks** und **Bearbeiten**, dann klicke unter **HTTP-Signatur** auf **Wechseln**. Das neue Secret gilt sofort, das bisherige bleibt 24 Stunden lang gültig. In diesem Zeitraum wird jede Auslieferung mit beiden Secrets signiert, sodass du dein Zielsystem in Ruhe umstellen kannst.

### Warum kann ich als Methode kein GET oder DELETE auswählen?
Weil die Signatur den Inhalt des Requests unterschreibt. GET und DELETE haben keinen Body, den man unterschreiben könnte. Zur Auswahl stehen deshalb nur **POST**, **PUT** und **PATCH**.

### Wo sehe ich, ob eine Auslieferung angekommen ist?
Unter **Organisation › Audit-Log** im Protokoll **Webhooks**. Dort steht jede ausgehende Zustellung mit **Zeitpunkt**, **Trigger**, **Methode**, **Ziel**, **Status**, **Versuch**, **Dauer** und **Request-ID**. Über den Filter **Status** schränkst du die Liste auf **Erfolg** oder **Fehlgeschlagen** ein. Manuelle Tests stehen dort nicht — deren Ergebnis siehst du nur auf der Webhook-Seite selbst. Wie lange die Zustellungen aufbewahrt werden, stellst du unter **Organisation › Einstellungen › Organisation › Audit-Log** ein.

### Mein Test bekommt eine Weiterleitung (301/302) zurück.
Weiterleitungen werden bewusst nicht verfolgt — nur die eingetragene Adresse wird geprüft und angesprochen. Trage die endgültige Ziel-URL direkt unter **HTTP › URL** ein.

### Kann ich denselben Eventbereich zweimal anlegen?
Nein. Jeder Eventbereich darf pro Webhook nur einmal vorkommen; bereits benutzte Bereiche stehen in den übrigen Zeilen nicht mehr zur Auswahl. Brauchst du unterschiedliche Zusatzdaten für denselben Bereich, lege über **Kopieren** einen zweiten Webhook an.

### Ein Webhook wird nicht mehr gebraucht — deaktivieren oder löschen?
Bei einem Webhook ist **Deaktivieren** fast immer der bequemere Weg: Der Eintrag bleibt unverändert stehen — mit Zieladresse, Events, Headern und Signing-Secret — und feuert nur nicht mehr. Wieder einschalten kannst du ihn im **Drei-Punkte-Menü** mit **Aktivieren** oder unter **Stammdaten** mit dem Schalter **Aktiv**. Hast du an URL, Methode, Content-Type und Headern nichts geändert, brauchst du dafür keinen neuen Test, und in deinem Zielsystem musst du nichts anfassen. **Löschen** entfernt den Webhook endgültig und nimmt seine bisherigen Auslieferungen mit — im Audit-Log ist die Zustellhistorie danach weg und nicht wiederherstellbar. Dafür gibt erst das Löschen einen Platz im Webhook-Kontingent eures Tarifs frei. Kurz: Solange du die Zustellhistorie noch brauchst oder den Webhook später wieder anschalten willst, deaktiviere ihn.

### Warum bekommt jemand eine E-Mail, wenn ich einen Webhook anlege oder die Ziel-URL ändere?
Weil über einen Webhook Daten deiner Organisation nach außen gehen. Beim Anlegen, Kopieren, Aktivieren, Deaktivieren und Löschen und bei einer geänderten Ziel-URL schickt i-Planner eine Sicherheits-Mail, etwa **Webhook angelegt** oder **Webhook-Ziel geändert** mit dem alten und dem neuen Ziel. Sie geht an dich, an alle Inhaber der Organisation und an die Adressen, die beim Webhook unter **E-Mail-Benachrichtigung** eingetragen sind. Mehrere Änderungen der Ziel-URL kurz hintereinander fasst i-Planner in einer Mail zusammen.

### Wer hat einen Webhook angelegt oder geändert?
Jedes Anlegen, Ändern, Kopieren, Deaktivieren, Löschen und jedes Rotieren des Secrets wird protokolliert. Nachlesen kannst du es unter **Organisation › Audit-Log** im Protokoll **Einstellungen**; in der Spalte **Bereich** steht dann **Webhooks**. Die ausgehenden Zustellungen selbst stehen nicht dort, sondern im eigenen Protokoll **Webhooks**.
