Aller au contenu

Webhooks & callbacks

Les relais ne se contentent pas de recevoir vos appels : ils vous rappellent pour livrer des événements (un ticket créé, un message reçu, une approbation effectuée…). Ces callbacks utilisent la même signature HMAC que vos appels sortants — mais cette fois, c’est vous qui vérifiez.

  1. Un événement se produit côté relais.
  2. Le relais effectue une requête HTTP signée vers une URL de votre backend (configurée au provisioning via callback_url_base).
  3. La requête porte les en-têtes X-Bloonio-Tenant-Id, X-Bloonio-Timestamp et X-Bloonio-Signature, calculés exactement comme dans Authentification (HMAC).
  4. Votre endpoint recalcule la signature avec votre tenant_secret et la compare avant de traiter l’événement.

La recette est l’inverse de l’émission : prenez les octets bruts du corps, calculez sha256_hex(body), reconstruisez "{timestamp}.{body_hash}", signez-la avec votre tenant_secret, puis comparez au header reçu. Le code de Authentification (HMAC) se réutilise tel quel pour la vérification.

  • Idempotence. Un événement peut être livré plus d’une fois. Déduisez une clé idempotente (identifiant d’événement) et ignorez les doublons.
  • Répondez vite. Accusez réception (2xx) rapidement, puis traitez en arrière-plan ; les traitements lents provoquent des relances.
  • Fenêtre temporelle. Appliquez la même tolérance d’horodatage (~30 s) que le relais.
  • Chat Relay — émet une famille d’événements (conversation, message, ticket, escalade, opérateur) vers /api/v1/chat-callbacks/*, et le SDK Python fournit un adaptateur qui monte et vérifie ces routes pour vous. Catalogue complet : Callbacks webhook — Chat Relay.
  • Auth Relay — les résultats d’authentification arrivent surtout sous forme de push vers l’appareil et d’alertes de sécurité, pas de webhooks HTTP classiques. Voir Push & alertes de sécurité.