Documentation

Webhook HTTP

Réception générique d'événements HTTP signés depuis n'importe quel système.

Webhook HTTP

Le canal webhook est l'entrée générique pour brancher tout système qui sait faire un POST HTTP. C'est l'option à choisir quand aucun canal dédié n'existe pour votre source.

Quand l'utiliser

  • Brancher un outil maison (ERP, application métier, gateway de paiement).
  • Recevoir des événements d'une plateforme tierce qui propose des webhooks (Stripe, Shopify, SendGrid…).
  • Déclencher un pipeline depuis un cron externe ou une CI.

Configuration

  1. Administration → Webhooks → Nouvelle entrée.
  2. Choisir le pipeline cible.
  3. betool génère une URL publique (https://platform.betoolia.com/entries/webhook/<id>) et un secret HMAC.

Le secret est utilisé pour signer chaque payload : votre système doit calculer HMAC-SHA256(secret, body) et le passer en header X-Betool-Signature. Les requêtes sans signature valide sont refusées.

Format du payload

Vous envoyez n'importe quel JSON. betool ne contraint pas la structure. Le payload est exposé au pipeline sous webhook.payload (avec ses sous-clés).

Exemple :

curl -X POST https://platform.betoolia.com/entries/webhook/abc123 \
  -H "Content-Type: application/json" \
  -H "X-Betool-Signature: $SIGNATURE" \
  -d '{
    "type": "order.created",
    "order_id": "ord_42",
    "amount_cents": 9900,
    "customer_email": "client@exemple.com"
  }'

Le pipeline peut alors brancher un agent qui lit webhook.payload.customer_email et webhook.payload.amount_cents directement.

Réponse

Par défaut, la réponse HTTP renvoie immédiatement un 202 Accepted (pipeline lancé en arrière-plan). Si vous voulez attendre le résultat du pipeline, configurez le webhook en mode synchrone — la requête bloque jusqu'à la fin du pipeline (timeout 30s).

Sécurité

  • Toujours signer vos requêtes (HMAC).
  • Le secret est régénérable depuis l'admin (rotation).
  • Les payloads sont stockés en clair dans l'historique d'exécutions — n'envoyez pas de données qui devraient être chiffrées en transit uniquement.