Le verdict en trois phrases
Ne faites jamais confiance a un webhook non signe : n'importe qui peut appeler votre URL et simuler un paiement reussi. La defense repose sur trois piliers : verification de signature HMAC, idempotence (traiter une notification une seule fois) et protection anti-rejeu. Une faille ici peut couter des livraisons non payees a repetition, bien plus que le cout de l'integration correcte.
Les trois piliers de securite
Chaque webhook doit franchir ces controles avant de crediter une commande. Une IP allowlist ajoute une couche, mais ne remplace jamais la signature.
| Controle | Role | Consequence si absent |
|---|---|---|
| Signature HMAC | Authentifier l'emetteur | Faux paiements acceptes |
| Idempotence | Eviter le double traitement | Double crediting |
| Anti-rejeu (timestamp) | Bloquer les envois rejoues | Rejeu d'un paiement |
| IP allowlist | Filtrer les sources | Bruit / attaques |
| Reponse 2xx rapide | Confirmer reception | Retries en boucle |
| Journalisation | Auditer, deboguer | Litige indefendable |
Chiffres, latence et bonnes pratiques
Un webhook bien concu repond vite et traite en asynchrone. L'operateur reessaie si vous ne renvoyez pas un 2xx, d'ou l'importance de l'idempotence pour ne pas crediter deux fois.
| Parametre | Cible 2026 | Note |
|---|---|---|
| Webhooks verifies | 100 % | non negociable |
| Latence de reponse | < 500 ms | sinon retries |
| Fenetre anti-rejeu | 5 min | timestamp |
| Cle secrete rotation | tous les 6-12 mois | securite |
| Tests sandbox avant prod | obligatoires | Wave/OM/Stripe |
| Nb de retries operateur | 3-5 | selon PSP |
En pratique : recevez le payload brut, recalculez le HMAC avec votre cle secrete, comparez en temps constant, verifiez le timestamp, puis cherchez l'identifiant de transaction en base ; s'il existe deja, repondez 200 sans retraiter.
Besoin d'un site web professionnel ?
Kolonell crée des sites web qui attirent des clients, optimisés pour le marché sénégalais. Devis gratuit en 2 minutes.
Mini cas pratique
Modou, developpeur d'une boutique a Thies, avait un endpoint qui creditait toute requete POST. Un pic de 7 fausses notifications en une nuit a declenche 7 preparations de commande non payees, soit environ 210 000 FCFA de marchandise engagee. Apres ajout de la verification HMAC, de l'idempotence par identifiant de transaction et d'une allowlist IP, zero faux credit en 3 mois, et les retries de l'operateur sont gerements absorbes grace a la reponse 200 idempotente.
FAQ
Pourquoi verifier la signature d'un webhook ? Parce que l'URL est publique : sans signature HMAC, n'importe qui peut simuler un paiement valide. La verification garantit que la notification vient bien de Wave, Orange Money ou Stripe.
Qu'est-ce que l'idempotence concretement ? C'est traiter une meme notification une seule fois, meme si l'operateur l'envoie plusieurs fois. On stocke l'identifiant de transaction et on ignore les doublons pour eviter le double-credit.
Comment bloquer le rejeu d'un webhook ? En verifiant un timestamp dans une fenetre courte (5 minutes) et en rejetant tout payload trop ancien, meme si sa signature est valide.
Faut-il tester en sandbox avant la production ? Oui, imperativement. Wave, Orange Money et Stripe fournissent des environnements de test ; validez signature, idempotence et retries avant d'ouvrir les paiements reels.
Une IP allowlist suffit-elle ? Non. Elle filtre le bruit mais les IP peuvent changer ou etre usurpees ; la signature HMAC reste la protection principale.
Discutons de votre projet. Nous securisons vos webhooks de paiement avec signature HMAC, idempotence et anti-rejeu, testes en sandbox avant la prod. WhatsApp +221 77 596 93 33.
Mohamed Bah
Fondateur, Kolonell
Passionné par le digital et l'entrepreneuriat en Afrique, Mohamed accompagne les entreprises sénégalaises dans leur transformation digitale depuis 2020. Fondateur de Kolonell, il croit que chaque PME mérite une présence en ligne professionnelle et accessible.


