Passer au contenu principal
Un point de terminaison webhook est une adresse à laquelle StockShift envoie des événements. Ajoutez-en un dans l’application sous Paramètres > Webhooks, ou avec les opérations sur les points de terminaison webhook de l’API.

Ajouter un point de terminaison

  1. Appuyez sur Nouveau point de terminaison.
  2. Entrez l’URL. Elle doit être en HTTPS et accessible sur Internet. Les adresses privées et locales sont refusées.
  3. Cochez les événements voulus. La liste des événements donne le corps de chacun.
  4. Appuyez sur Ajouter le point de terminaison.
  5. Copiez le secret de signature affiché. Il n’est affiché qu’une fois. Renouveler le secret en crée un nouveau.
Envoyer un ping de test envoie immédiatement un événement webhook.ping pour que vous puissiez vérifier votre point de terminaison.

Ce que reçoit votre point de terminaison

Chaque événement est un POST avec un corps JSON :
Répondez avec n’importe quel 2xx en moins de 10 secondes. StockShift ne suit pas les redirections. Un événement peut arriver plus d’une fois et dans le désordre. Les nouvelles tentatives gardent le même id : enregistrez-le et ignorez les événements que vous avez déjà traités.

Vérifier la signature

Vérifiez l’en-tête StockShift-Signature avant de vous fier au corps. Il ressemble à t=1760000000,v1=5257a8... :
  • t est l’heure Unix à laquelle l’événement a été envoyé.
  • v1 est le HMAC-SHA256 de <t>.<raw body> calculé avec le secret de signature du point de terminaison, en hexadécimal.
Calculez le même HMAC sur le corps brut, exactement tel qu’il est arrivé, comparez-le en temps constant et rejetez tout ce dont le t date de plus de cinq minutes. Chaque SDK offre une fonction utilitaire qui fait tout cela :
Dans une application Laravel, le paquet Laravel ajoute une route qui vérifie la signature et déclenche un événement Laravel pour chaque livraison.

Nouvelles tentatives

Une livraison qui reçoit autre chose qu’un 2xx est retentée après 1, 5, 30, 120, 360 et 720 minutes. Si elle échoue encore, ou si 24 heures s’écoulent, la livraison est marquée comme échouée, le point de terminaison est désactivé et les propriétaires de l’organisation reçoivent un courriel. Les événements qui surviennent pendant qu’un point de terminaison est désactivé ne sont pas envoyés plus tard. La carte Livraisons d’un point de terminaison liste ses 50 dernières livraisons avec leur statut, leur code de réponse, leur durée et leurs tentatives. Réessayer renvoie une livraison échouée une fois de plus. Les livraisons sont conservées 30 jours. Pour mettre un point de terminaison en pause, décochez Activé et appuyez sur Enregistrer le point de terminaison.