Webhooks sind HTTP-Callbacks: WTS ruft eine URL bei Ihnen auf wenn ein Ereignis passiert.
Wann sind Webhooks sinnvoll?
- CRM-Integration — neue Rechnung → in Ihrem CRM automatisch anlegen
- Slack-Notifications — VPS-Reboot → Nachricht in Team-Channel
- Monitoring — Ausfall → Ihre Statusseite aktualisieren
- DevOps — Domain läuft ab → Ticket in Jira erstellen
Effizienter als API-Polling ("alle 5 Min schauen was neu ist").
Webhook einrichten
- Mein Konto → API → Webhooks
- Neuer Webhook
- URL eingeben (Ihre öffentlich erreichbare URL)
- Events wählen (was soll triggern?)
- Secret notieren (für Signatur-Verifikation)
- Aktivieren
Verfügbare Events
Rechnungen:
invoice.created— neue Rechnunginvoice.paid— Zahlung eingegangeninvoice.overdue— Zahlung fällig
Dienste:
service.activatedservice.suspendedservice.cancelled
Domains:
domain.registereddomain.expiring_soon— 30 Tage vor Ablaufdomain.expireddomain.transfer_completed
VPS:
vps.rebootedvps.snapshot_completedvps.high_traffic_warning
Sicherheit:
security.new_loginsecurity.password_changedsecurity.suspicious_activity
Payload-Format
Ein Webhook sendet HTTP POST mit JSON-Body:
{
"event": "invoice.created",
"timestamp": "2026-07-21T10:34:03Z",
"data": {
"invoice_id": "RE-2026-1234",
"amount": 15.99,
"currency": "EUR",
"due_date": "2026-08-04"
}
}Signatur verifizieren
Header enthält X-WTS-Signature mit HMAC-SHA256 des Body, signiert mit Ihrem Secret.
PHP-Beispiel:
$signature = $_SERVER['HTTP_X_WTS_SIGNATURE'];
$body = file_get_contents('php://input');
$expected = hash_hmac('sha256', $body, WEBHOOK_SECRET);
if (!hash_equals($expected, $signature)) {
http_response_code(401);
exit;
}
$event = json_decode($body, true);
// Event verarbeitenOhne Signatur-Prüfung könnte jeder Webhooks an Sie schicken — Angriffsvektor.
Antworten
Ihr Endpoint muss innerhalb 10 Sekunden mit HTTP 200 antworten. Sonst gilt der Webhook als fehlgeschlagen.
Bei Fehlschlag wiederholen wir:
- Nach 1 Minute
- Nach 5 Minuten
- Nach 30 Minuten
- Nach 2 Stunden
Nach 4 Fehlschlägen: Webhook deaktiviert, Benachrichtigung per E-Mail.
Testing
Im Portal unter Webhooks → Test können Sie Test-Events an Ihre URL schicken. Praktisch beim Setup.
ngrok für lokale Tests: ngrok http 8000 gibt Ihnen eine öffentliche URL zu Ihrem localhost.
Retry-Verhalten
Bei HTTP 5xx (Server-Fehler): automatischer Retry. Bei HTTP 4xx (Client-Fehler): kein Retry, wir gehen davon aus dass Ihr Endpoint kaputt ist.
Webhook-History
Im Portal sehen Sie für jeden Webhook:
- Letzte 30 Zustellversuche
- Response-Status
- Response-Body (bei Fehler)
- Latenz
Praktisch zum Debugging.
Idempotenz
Wir garantieren keine "genau einmalige" Zustellung — theoretisch kann ein Event doppelt kommen. Ihr Endpoint sollte idempotent sein:
- Event-ID prüfen ob schon verarbeitet
- Bei Doppel-Event: einfach HTTP 200 zurückgeben, nichts machen