Dès qu'un lot de classement est terminé, votre serveur reçoit un message JSON signé : identifiant du lot, nombres d'articles et d'erreurs, date de fin et, pour les lots API, l'URL des résultats. Vous n'interrogez plus l'API en boucle : vous récupérez les résultats au bon moment.
Votre système sait quand un lot est prêt et peut prouver que le message vient bien de CrossbordIA.
bulk.completed pour les lots lancés depuis l'application (identifiant, nom du lot, nombre d'articles, erreurs, date de fin) ; bulk.api.completed pour les lots API, avec l'URL des résultats.
Chaque envoi suit le même format : { event, data, timestamp }. L'en-tête X-Webhook-Event indique l'événement.
Envoi immédiat, puis nouvelles tentatives à +1 s et +4 s si votre serveur répond 5xx, ne répond pas en 10 s ou est injoignable. Une réponse 4xx arrête les tentatives.
Chaque URL a son secret (whsec_…), affiché une seule fois. Recalculez le HMAC-SHA256 du corps reçu et comparez-le à l'en-tête X-Webhook-Signature.
Pour chaque tentative : date, événement, numéro de tentative, statut HTTP, latence et résultat. Menu du compte > Webhooks.
Ajoutez plusieurs URL HTTPS, activez ou désactivez chacune séparément ; chacune reçoit les deux événements.
Quelques minutes de configuration, puis une notification à chaque lot terminé.
Menu du compte > Webhooks : saisissez une URL HTTPS. Un secret est généré.
Il ne s'affiche qu'une fois. Utilisez-le côté serveur pour vérifier X-Webhook-Signature.
À chaque lot terminé, votre serveur reçoit un POST JSON {event, data, timestamp}.
Une réponse 2xx confirme la réception. En cas de 5xx ou sans réponse sous 10 s, deux nouvelles tentatives suivent (+1 s, +4 s).