SpedySpedy Docs

Webhook-Endpunkte

Events abonnieren und Echtzeit-HTTP-Benachrichtigungen empfangen, wenn in deiner Organisation etwas passiert.

Webhook-Endpunkte ermoglichen es dir, HTTP-Callbacks zu empfangen, wenn Events in deiner Organisation auftreten -- zum Beispiel wenn ein Ticket erstellt oder ein Status geandert wird. Du registrierst eine URL, wahlst die Events aus, die du abonnieren mochtest, und Spedy sendet einen signierten POST-Request an deine URL, wenn ein passendes Event ausgelost wird.

Webhook-Endpunkte erfordern ein Pro-Plan-Abonnement.

Unterstuetzte Events

GET /api/v1/webhook-endpoints/events

Gibt die Liste der Event-Typen zurueck, die du abonnieren kannst.

Verfuegbare Events

EventBeschreibung
ticket.createdEin Ticket wurde erstellt
ticket.updatedEin Ticket wurde aktualisiert
ticket.deletedEin Ticket wurde geloescht
ticket.status_changedDer Status eines Tickets wurde geaendert
ticket.assignedEin Ticket wurde zugewiesen oder neu zugewiesen
ticket.comment_addedEin Kommentar wurde zu einem Ticket hinzugefuegt
board.createdEin Board wurde erstellt
board.updatedEin Board wurde aktualisiert

Webhook-Endpunkte auflisten

GET /api/v1/webhook-endpoints

Berechtigung erforderlich: webhooks:view

Gibt alle Webhook-Endpunkte zurueck, die fuer deine Organisation konfiguriert sind.

Beispiel-Response

[
  {
    "id": "wh_abc123",
    "name": "CI/CD Pipeline",
    "url": "https://ci.example.com/hooks/spedy",
    "events": ["ticket.status_changed", "ticket.created"],
    "isActive": true,
    "createdAt": "2025-06-01T10:00:00Z",
    "updatedAt": "2025-06-01T10:00:00Z"
  }
]

Webhook-Endpunkt erstellen

POST /api/v1/webhook-endpoints

Berechtigung erforderlich: webhooks:manage

Erstellt einen neuen Webhook-Endpunkt. Die Antwort enthaelt ein secret-Feld -- speichere es sicher, da es nur einmal zurueckgegeben wird. Verwende das Secret, um die Signatur eingehender Payloads zu verifizieren.

Request Body

FeldTypPflichtBeschreibung
namestringJaAnzeigename (max. 100 Zeichen)
urlstringJaDie HTTPS-URL zum Empfang von Webhook-Payloads
eventsstring[]JaArray von Event-Typen zum Abonnieren

Beispiel-Request

{
  "name": "CI/CD Pipeline",
  "url": "https://ci.example.com/hooks/spedy",
  "events": ["ticket.created", "ticket.status_changed"]
}

Beispiel-Response

{
  "id": "wh_abc123",
  "name": "CI/CD Pipeline",
  "url": "https://ci.example.com/hooks/spedy",
  "events": ["ticket.created", "ticket.status_changed"],
  "isActive": true,
  "secret": "whsec_a1b2c3d4e5...",
  "createdAt": "2025-06-01T10:00:00Z",
  "updatedAt": "2025-06-01T10:00:00Z"
}

Webhook-Endpunkt abrufen

GET /api/v1/webhook-endpoints/{id}

Berechtigung erforderlich: webhooks:view

Gibt Details zu einem bestimmten Webhook-Endpunkt zurueck.

Webhook-Endpunkt aktualisieren

PATCH /api/v1/webhook-endpoints/{id}

Berechtigung erforderlich: webhooks:manage

Aktualisiert den Namen, die URL oder die abonnierten Events eines Webhook-Endpunkts.

Webhook-Endpunkt loeschen

DELETE /api/v1/webhook-endpoints/{id}

Berechtigung erforderlich: webhooks:manage

Gibt 204 No Content zurueck.

Webhook-Endpunkt pingen

POST /api/v1/webhook-endpoints/{id}/ping

Berechtigung erforderlich: webhooks:manage

Sendet einen Test-Ping an die Webhook-URL, um die Erreichbarkeit zu pruefen. Gibt 204 No Content zurueck.

Zustellungen auflisten

GET /api/v1/webhook-endpoints/{id}/deliveries

Berechtigung erforderlich: webhooks:view

Gibt die letzten Zustellversuche fuer einen Webhook-Endpunkt zurueck.

Query-Parameter

ParameterTypPflichtBeschreibung
limitnumberNeinAnzahl der zurueckzugebenden Zustellungen (Standard: 50, max. 200)

Beispiel-Response

[
  {
    "id": "dlv_xyz789",
    "endpointId": "wh_abc123",
    "eventType": "ticket.created",
    "statusCode": 200,
    "success": true,
    "attempt": 1,
    "error": null,
    "createdAt": "2025-06-15T14:30:00Z"
  }
]

Erneut zustellen

POST /api/v1/webhook-endpoints/{id}/deliveries/{deliveryId}/redeliver

Berechtigung erforderlich: webhooks:manage

Sendet eine vorherige Webhook-Zustellung erneut. Gibt 204 No Content zurueck.