Skip to main content

Webhooks

Webhooks ermöglichen es VoiceCheap, Ihren Server zu benachrichtigen, sobald etwas passiert, sodass Sie das Polling beenden können GET /v1/translate/{projectId}/status.
Die Zustellung wird einmal versucht. Es gibt keine Wiederholungen; fragen Sie wichtige Ereignisse daher zusätzlich per Polling ab.

Einrichtung

  1. Öffnen Sie die API-Seite in Ihrem VoiceCheap-Konto.
  2. Wählen Sie unter Webhooks die Option Signaturschlüssel erzeugen. Der Schlüssel mit dem Präfix whsec_ wird nur einmal angezeigt; kopieren und speichern Sie ihn auf Ihrem Server.
  3. Geben Sie unter Ziel-URL eine https-URL ein und wählen Sie Speichern.
Das ist alles. Jedes Projekt, das Sie von da an starten, liefert Ereignisse an diesen Endpunkt.
Webhook-URLs müssen HTTPS auf Port 443 verwenden und auf eine öffentliche Netzwerkadresse aufgelöst werden. URLs mit Zugangsdaten oder Fragmenten, private oder reservierte Adressen sowie Weiterleitungen werden abgelehnt. Dies gilt für den Konto-Endpunkt und projektspezifische Überschreibungen.
Verwenden Sie webhooks_get, webhooks_update und webhooks_delete über die Aktions-API oder MCP. webhooks_create_secret ist nur über die REST-Aktions-API verfügbar. Speichern Sie den zurückgegebenen Signaturschlüssel sicher; über MCP kann diese Aktion weder aufgerufen noch abgefragt werden.

Überschreiben des Endpunkts pro Anfrage

POST /v1/translate und POST /v1/projects akzeptieren ein optionales webhookUrl-Feld, das den Konto-Endpunkt nur für dieses Projekt überschreibt. Dies ist praktisch, um Staging-Datenverkehr woanders hinzuleiten: Auch bei POST /v1/projects/{projectId}/dub können Sie mit webhookUrl das Ziel für ein vorhandenes Projekt aktualisieren.
Das Signatur-Geheimnis ist immer das Konto-Geheimnis; nur das Ziel ändert sich.

Ereignisse

Es gibt kein separates Transkriptionsereignis. Die Projekterstellung antwortet, bevor die Transkription abgeschlossen ist. project.created wird erst gesendet, nachdem das Transkript gespeichert wurde. Danach können Sie es mit POST /v1/projects/{projectId}/transcript abrufen.

Nutzlast

Jede Zustellung ist ein POST mit einem JSON-Body:
Die Nutzlast ist absichtlich schlank gehalten. Rufen Sie die REST-API für den Inhalt selbst auf.

Überprüfung der Signatur

Jede Zustellung enthält diese Header: Die Signatur deckt <timestamp>.<raw body> ab, daher ist sie bei jeder Zustellung anders und beweist sowohl, dass die Anfrage von VoiceCheap kam, als auch, dass der Body während der Übertragung nicht verändert wurde.
Überprüfen Sie die Signatur, bevor Sie einer Zustellung vertrauen. Ihr Endpunkt ist eine öffentliche URL, und die Signatur ist das, was ein echtes VoiceCheap-Ereignis von allem anderen unterscheidet, das ihn erreicht.

Antworten

Antworten Sie mit einem beliebigen 2xx-Status zur Bestätigung. Antworten Sie innerhalb von 10 Sekunden — bestätigen Sie zuerst und erledigen Sie die Arbeit danach, anstatt sie vor der Antwort zu verarbeiten. Eine Nicht-2xx-Antwort oder ein Timeout wird als fehlgeschlagene Zustellung aufgezeichnet und wird derzeit nicht erneut versucht.

Rotation des Secrets

Wählen Sie Rotieren auf der API-Seite, um ein neues Secret zu generieren. Das vorherige funktioniert sofort nicht mehr, also stellen Sie das neue Secret auf Ihrem Server bereit, sobald Sie rotieren. Das Löschen des Webhooks entfernt sowohl den Endpunkt als auch das Secret, und die Zustellungen stoppen.