Skip to main content

Webhooks

Les webhooks permettent à VoiceCheap de notifier votre serveur dès qu’un événement se produit, afin que vous puissiez arrêter le polling GET /v1/translate/{projectId}/status.
Chaque livraison est tentée une seule fois. Il n’y a pas de nouvel essai ; continuez à interroger le statut pour les événements que vous ne pouvez pas manquer.

Configuration

  1. Ouvrez la page API dans votre compte VoiceCheap.
  2. Dans Webhooks, cliquez sur Générer une clé de signature. La clé commençant par whsec_ ne s’affiche qu’une fois ; copiez-la et conservez-la sur votre serveur.
  3. Saisissez une URL https dans URL de destination, puis cliquez sur Enregistrer.
C’est tout. Chaque projet que vous démarrez à partir de ce moment enverra des événements à ce point de terminaison.
Les URL de webhook doivent utiliser HTTPS sur le port 443 et pointer vers une adresse réseau publique. Les URL contenant des identifiants ou des fragments, les adresses privées ou réservées et les redirections sont refusées. Cette règle s’applique au point de terminaison du compte et aux URL définies pour chaque projet.
Utilisez webhooks_get, webhooks_update et webhooks_delete via l’API d’actions ou le MCP. Utilisez webhooks_create_secret uniquement via l’API d’actions REST. Conservez le secret de signature en lieu sûr dès sa réception ; MCP ne permet ni d’exécuter cette action ni d’en consulter le résultat.

Remplacement du point de terminaison par requête

POST /v1/translate et POST /v1/projects acceptent un champ optionnel webhookUrl qui remplace le point de terminaison du compte pour ce projet uniquement. C’est pratique pour envoyer le trafic de staging ailleurs : Vous pouvez aussi définir webhookUrl sur POST /v1/projects/{projectId}/dub pour modifier la destination d’un projet existant.
Le secret de signature est toujours le secret du compte ; seule la destination change.

Événements

Il n’existe pas d’événement distinct pour la transcription. La création du projet répond avant la fin de la transcription. project.created n’est envoyé qu’après l’enregistrement de la transcription ; vous pouvez alors la récupérer avec POST /v1/projects/{projectId}/transcript.

Charge utile

Chaque livraison est un POST avec un corps JSON :
La charge utile est volontairement légère. Appelez l’API REST pour le contenu lui-même.

Vérification de la signature

Chaque livraison comporte ces en-têtes : La signature couvre <timestamp>.<raw body>, elle est donc différente à chaque livraison et prouve à la fois que la requête provient de VoiceCheap et que le corps n’a pas été modifié en transit.
Vérifiez la signature avant de faire confiance à une livraison. Votre point de terminaison est une URL publique, et la signature est ce qui distingue un véritable événement VoiceCheap de tout autre élément qui l’atteint.

Réponse

Répondez avec n’importe quel statut 2xx pour accuser réception. Répondez dans les 10 secondes — accusez réception d’abord et effectuez le travail ensuite, plutôt que de traiter avant de répondre. Une réponse autre que 2xx ou un délai d’attente est enregistré comme une livraison échouée et, pour l’instant, n’est pas réessayé.

Rotation du secret

Sélectionnez Rotation sur la page API pour générer un nouveau secret. Le précédent cesse de fonctionner immédiatement, alors déployez le nouveau secret sur votre serveur dès que vous effectuez la rotation. La suppression du webhook supprime à la fois le point de terminaison et le secret, et les livraisons s’arrêtent.