Hier erfahren Sie, wie Ihr System von easy2book erfährt, dass sich etwas getan hat: Webhooks melden jede neue, verschobene oder stornierte Buchung sofort an eine Adresse Ihrer Wahl – ohne dass jemand nachfragen muss.

Was ein Webhook ist

Ohne Webhook müsste ein angebundenes System regelmäßig bei easy2book nachfragen: „Gibt es etwas Neues?“ Das kostet Zeit und liefert Ergebnisse erst verzögert.

Mit einem Webhook drehen wir das um: easy2book meldet sich von selbst. Sobald ein Termin gebucht, geändert, verschoben oder storniert wird oder ein Kunde entsteht, schickt easy2book die Daten dieses Vorgangs an eine Adresse, die Sie hinterlegt haben.

Hinweis: Webhooks gehören wie die Schnittstelle zum Plus-Abo. Die Freischaltung nehmen wir für Sie vor.


Voraussetzungen

  1. Ein Schlüssel mit dem Bereich „Webhooks verwalten“. Diesen Bereich können Sie nur zusammen mit einer IP-Beschränkung speichern – tragen Sie die Adressen Ihres Dienstleisters ein. Das verhindert, dass ein entwendeter Schlüssel von irgendwo anders die Empfangsadresse ändert.
  2. Eine Empfangsadresse mit HTTPS. Interne oder private Adressen sind nicht erlaubt.
  3. Ein laufender Cron. Die Zustellung geschieht zusammen mit den Terminerinnerungen. Wie oft der Cron läuft, bestimmt also, wie schnell Meldungen ankommen.

Einrichten

Webhooks richtet das angebundene System selbst über die Schnittstelle ein. Ein Aufruf genügt:

curl -X POST "https://ihre-adresse.de/api/v1/webhooks" \
     -H "Authorization: Bearer IHR-SCHLUESSEL" \
     -H "Content-Type: application/json" \
     -d '{
           "url": "https://ihr-system.de/eingang/easy2book",
           "events": ["booking.created", "booking.moved", "booking.cancelled"],
           "description": "Terminmeldungen an unser CRM"
         }'

Die Antwort enthält ein Geheimnis (secret). Es wird nur dieses eine Mal angezeigt und dient später der Prüfung, dass eine Meldung wirklich von easy2book stammt.

Je Schlüssel sind bis zu zehn Webhooks möglich. In Ihrer Verwaltung sehen Sie unter REST-API: Schlüssel an jedem Schlüssel, welche Adressen eingetragen sind.

Diese Ereignisse stehen zur Wahl: booking.created, booking.updated, booking.moved, booking.cancelled, customer.created, customer.updated.


Wie eine Meldung aussieht

easy2book schickt die Daten des Vorgangs – im selben Aufbau wie beim Abruf einer einzelnen Buchung:

{
  "id": "6f1c1a1e-…",
  "type": "booking.cancelled",
  "occurred_at": "2026-10-05T09:12:44+02:00",
  "source": "online",
  "data": {
    "id": 527,
    "start": "2026-10-07T10:00:00+02:00",
    "status": "cancelled",
    "customer_id": 149,
    "service_id": 135,
    "employee_id": 39
  }
}

source sagt Ihnen, woher der Vorgang kam: online (Ihre Buchungsseite), backend (jemand in der Verwaltung), api (ein angebundenes System) oder system (automatisch, etwa durch eine Frist).


Beispiel 1: Der KI-Telefonassistent bleibt auf Stand

Eine Praxis nutzt einen KI-Telefonassistenten. Ruft jemand an und sagt einen Termin ab, ist das kein Problem – der Assistent bucht ja selbst. Storniert der Kunde aber online oder eine Mitarbeiterin in der Verwaltung, weiß der Assistent davon zunächst nichts.

  1. Der Anbieter trägt einen Webhook für booking.cancelled und booking.moved ein.
  2. Eine Mitarbeiterin verschiebt einen Termin im Kalender.
  3. easy2book meldet das an den Assistenten, der seine eigene Merkliste aktualisiert.
  4. Ruft der Kunde am nächsten Tag an, nennt der Assistent die richtige Uhrzeit – statt der alten.

Ohne Webhook müsste der Assistent ständig nachfragen oder würde mit veralteten Angaben arbeiten.


Beispiel 2: Neue Kunden landen automatisch im CRM

Ein Dienstleister pflegt seine Kunden in einem eigenen System. Bisher tippte jemand neue Kunden von Hand nach.

  1. Der Webhook wird für customer.created eingetragen.
  2. Bucht jemand online und ist noch nicht bekannt, entsteht in easy2book ein Kunde.
  3. Die Meldung geht an das CRM, das den Eintrag anlegt – mit Name, Kontaktdaten und Kundennummer.
  4. Die Nacharbeit entfällt, und beide Seiten haben denselben Stand.

Dasselbe Muster eignet sich für eine Nachricht ins Team-Chat-Programm bei jeder neuen Buchung oder für eine eigene Auswertung.


Sicher prüfen, ob die Meldung echt ist

Jede Zustellung trägt diese Kopfzeilen:

  • X-E2B-Event – um welches Ereignis es geht
  • X-E2B-Delivery – eindeutig je Zustellversuch
  • X-E2B-Timestamp – Zeitpunkt des Versands
  • X-E2B-Signature – die Unterschrift, gebildet aus Zeitpunkt, Inhalt und Ihrem Geheimnis

Ihr System prüft die Unterschrift, bevor es die Daten übernimmt. In PHP sind das drei Zeilen:

$inhalt    = file_get_contents('php://input');
$zeitpunkt = $_SERVER['HTTP_X_E2B_TIMESTAMP'];
$erwartet  = 'sha256=' . hash_hmac('sha256', $zeitpunkt . '.' . $inhalt, $geheimnis);

if (!hash_equals($erwartet, $_SERVER['HTTP_X_E2B_SIGNATURE'])) {
    http_response_code(401);
    exit;
}

Verwerfen Sie zusätzlich Meldungen, deren Zeitpunkt älter als fünf Minuten ist.

Hinweis: Antworten Sie mit einem Statuscode aus dem 200er-Bereich, sobald Sie die Meldung angenommen haben – und zwar innerhalb von zehn Sekunden. Die eigentliche Verarbeitung erledigen Sie danach.


Wenn etwas schiefgeht

  • Wiederholungen: Kommt keine Antwort im 200er-Bereich, versucht easy2book es erneut – nach 1, 5, 15 und 60 Minuten sowie nach 6 und 24 Stunden.
  • Pause: Nach 20 Fehlschlägen in Folge wird der Webhook angehalten. In Ihrer Verwaltung sehen Sie das am Status und können ihn dort wieder fortsetzen.
  • Doppelte Meldungen sind möglich. Merken Sie sich die id des Ereignisses und verarbeiten Sie jede nur einmal.

Sie behalten die Kontrolle

  • In der Verwaltung sehen Sie an jedem Schlüssel alle Empfangsadressen, den Status, offene und fehlgeschlagene Zustellungen sowie die letzte Zustellung.
  • Dort können Sie einen Webhook anhalten oder löschen – ohne den Anbieter.
  • Sperren Sie den Schlüssel, stoppt die Zustellung sofort, auch für bereits eingetragene Webhooks.

Bitte beachten Sie: Sie senden personenbezogene Daten Ihrer Kunden an den Empfänger. Schließen Sie mit ihm einen Auftragsverarbeitungsvertrag ab, und lassen Sie nur Adressen zu, die Sie kennen.


Geschafft. Sie wissen nun, wofür Webhooks gut sind, wie sie eingerichtet werden und wie Sie jederzeit eingreifen können.

 

Gerne stehen wir Ihnen für weitere Fragen und für die Freischaltung über Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein. oder per Telefon über +49 (0) 3322 85 25 300 zur Verfügung.