Le verdict en trois phrases
Un webhook de paiement sans vérification de signature HMAC accepte n'importe quelle requête : un attaquant peut simuler une confirmation. Sans clé d'idempotence, les 15 à 30 % de webhooks livrés en double créent du double-comptage comptable. Trois parades — signature, idempotence, file de rejeu — transforment un point faible en canal fiable.
Les trois menaces et leurs parades
Un webhook est une URL publique : le provider y poste un événement (paiement confirmé, remboursé, échoué). Le danger est triple : falsification, doublon, désordre. Voici comment chaque menace se neutralise.
| Menace | Symptôme | Parade | Paramètre 2026 |
|---|---|---|---|
| Falsification | Faux paiement injecté | Signature HMAC | Fenêtre 5 min |
| Doublon | Commande comptée 2 fois | Clé d'idempotence | TTL 24 h |
| Hors ordre | "Remboursé" avant "payé" | Machine à états | Statut versionné |
| Rejeu réseau | Timeout côté provider | File d'attente + ack | Retry 3-5x |
| Payload gonflé | Déni de service | Limite de taille | 256 Ko max |
La signature HMAC est le socle : le provider signe le corps de la requête avec un secret partagé. Votre serveur recalcule la signature et compare. Si elle ne correspond pas, on rejette avec un 401. La fenêtre de 5 minutes sur l'horodatage bloque le rejeu d'anciens payloads.
Comportement par provider en 2026
Chaque provider signe et re-livre différemment. Adaptez la vérification en conséquence.
| Provider | En-tête de signature | Algo | Rejeu si pas d'ack |
|---|---|---|---|
| Wave | Wave-Signature | HMAC-SHA256 | Oui, backoff |
| Paystack | x-paystack-signature | HMAC-SHA512 | Oui, ~72 h |
| Flutterwave | verif-hash | Hash secret | Oui, jusqu'à 24 h |
| CinetPay | Token + x-token | HMAC | Oui, quelques essais |
| Stripe | Stripe-Signature | HMAC-SHA256 | Oui, jusqu'à 3 j |
Règle d'or : répondez 200 le plus vite possible (ack), puis traitez en asynchrone via une file. Un traitement lourd synchrone provoque des timeouts côté provider et donc des rejeux… donc des doublons. C'est là que la clé d'idempotence entre en jeu : chaque événement porte un identifiant unique ; si vous l'avez déjà traité dans les dernières 24 h, vous l'ignorez.
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
Fatou opère une boutique en ligne à Dakar recevant 900 webhooks Wave par mois. Avant sécurisation, elle observait ~20 % de doublons, soit ~180 événements qui, sans idempotence, gonflaient son chiffre d'affaires déclaré. Sur un panier moyen de 18 000 FCFA, cela représentait jusqu'à 3 240 000 FCFA de CA fantôme potentiel par mois. Avec la clé d'idempotence (TTL 24 h) et la signature HMAC, le double-comptage tombe à 0 et aucun faux paiement ne passe.
FAQ
La signature HMAC suffit-elle à tout sécuriser ? Elle bloque la falsification, mais pas les doublons ni le hors-ordre. Il faut la combiner avec l'idempotence et une machine à états sur le statut de commande pour être complet.
Que se passe-t-il si mon serveur est down au moment du webhook ? Les providers rejouent : Paystack jusqu'à ~72 h, Stripe jusqu'à 3 jours. Tant que vous ne renvoyez pas de 200, l'événement revient. D'où l'importance d'acquitter vite puis traiter en file.
Combien de temps garder la clé d'idempotence ? Un TTL de 24 h couvre la quasi-totalité des rejeux. Au-delà, on peut logguer sans re-traiter. Stocker en cache (Redis) ou en base avec index unique fait l'affaire.
Comment tester un webhook en local ? Utilisez un tunnel (ngrok, Cloudflare Tunnel) et les outils de test du provider qui rejouent des événements signés. Vérifiez la gestion des doublons en renvoyant deux fois le même payload.
Quel budget pour fiabiliser mes webhooks ? En ordre de grandeur 2026, 300 000 à 900 000 FCFA selon le nombre de providers et la complexité de votre file. C'est peu face au risque d'un CA faux ou d'une fraude.
Discutons de votre projet. On sécurise vos webhooks de paiement avec signature, idempotence et file de rejeu. 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.
