Pourquoi vérifier les signatures ?
N’importe qui peut envoyer une requête POST à votre endpoint webhook. La signature HMAC-SHA256 garantit que le payload vient bien de DLoopIQ et qu’il n’a pas été modifié en transit.
- Vous configurez un
secret lors de la création du webhook
- DLoopIQ calcule
HMAC-SHA256(payload, secret) pour chaque requête
- Le résultat est envoyé dans le header
x-dloopiq-signature: sha256=<hash>
- Vous recalculez le HMAC côté serveur et comparez
Implémentation
Node.js / Express
Utilisez express.raw() et non express.json() pour parser le body. Le HMAC est calculé sur les bytes bruts — si vous parsez en JSON puis re-sérialisez, la signature ne correspondra plus.
Python / FastAPI
PHP
Tester votre endpoint
Générez une signature de test en local :
Idempotence
En cas de retry (timeout ou 5xx), DLoopIQ peut envoyer le même événement plusieurs fois. Protégez-vous contre les doublons :
Checklist sécurité
- ✅ Vérifier
x-dloopiq-signature sur chaque requête
- ✅ Utiliser
timingSafeEqual / hash_equals (pas ===)
- ✅ Parser le body en raw bytes, pas en JSON avant vérification
- ✅ Répondre 200 avant de traiter (éviter les timeouts)
- ✅ Gérer l’idempotence (même événement reçu 2 fois)
- ✅ Stocker
DLOOPIQ_WEBHOOK_SECRET dans les variables d’environnement