Le verdict en trois phrases
Un webhook de paiement mal securise est la premiere cause technique de litige : environ 30 % des reclamations "j'ai paye mais la commande n'est pas validee" viennent de la. Quatre garde-fous suffisent : verification de signature HMAC, cle d'idempotence, retry exponentiel et journalisation. Sans idempotence, 1 paiement sur 200 est traite en double, et chaque correction manuelle coute environ 2 000 FCFA de main d'oeuvre.
Les quatre garde-fous techniques
Un webhook, c'est un appel entrant depuis le fournisseur de paiement vers votre serveur. Comme n'importe qui peut tenter d'appeler cette URL, elle doit etre blindee.
| Garde-fou | Role | Reglage recommande |
|---|---|---|
| Signature HMAC | Verifie que l'appel vient bien du fournisseur | Rejeter si signature invalide |
| Cle d'idempotence | Empeche de traiter deux fois le meme paiement | Cle = reference transaction |
| Fenetre de rejeu | Bloque les appels rejoues par un attaquant | 5 minutes max |
| Retry exponentiel | Rattrape les webhooks non recus | 3 tentatives sur 24 h |
| Timeout | Evite de bloquer le fournisseur | 10 s de reponse max |
| Journalisation | Trace pour litiges et audit | Conserver 90 jours |
La signature HMAC est non negociable : sans elle, un tiers pourrait simuler un paiement reussi et declencher une expedition sans avoir paye.
Le cout reel d'un webhook non securise
Un webhook fragile ne coute pas qu'en bugs : il coute en temps, en confiance client et en argent perdu. Voici l'impact sur une boutique moyenne.
| Probleme | Frequence sans garde-fou | Cout unitaire | Impact mensuel (500 cmd) |
|---|---|---|---|
| Paiement double traite | 1 sur 200 | 2 000 FCFA | ~5 000 FCFA |
| Commande payee non validee | 1 sur 100 | perte de vente | ~5 ventes perdues |
| Litige client a traiter | 30 % des litiges | 2 000 FCFA | variable |
| Expedition sans paiement | rare mais grave | valeur produit | risque eleve |
| Reconciliation manuelle | quotidienne | 1 h/jour | ~30 h/mois |
Le poste le plus lourd est souvent le temps de reconciliation manuelle : jusqu'a 30 heures par mois qu'un webhook fiable rend inutiles.
Idempotence: le detail qui evite les doublons
Quand un fournisseur ne recoit pas votre reponse a temps, il renvoie le webhook. Sans cle d'idempotence, votre serveur re-traite le paiement : deuxieme validation, parfois deuxieme expedition. En stockant la reference de transaction comme cle unique, tout appel repete est detecte et ignore proprement. C'est la ligne de code qui evite 90 % des doublons.
Mini cas pratique
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.
Ibrahim, developpeur pour une boutique a Dakar, traite 500 commandes/mois. Avant securisation, il constatait ~2,5 doublons/mois (1 sur 200) a 2 000 FCFA de correction chacun, plus ~1 h/jour de reconciliation manuelle, soit 30 h/mois. Apres avoir ajoute HMAC + idempotence + retry, les doublons tombent a zero et la reconciliation passe a ~2 h/mois grace a la journalisation. Economie : 5 000 FCFA de corrections et 28 h de travail recuperees chaque mois.
FAQ
La signature HMAC, c'est vraiment obligatoire ?
Oui. C'est le seul moyen de prouver qu'un appel vient reellement de Wave ou du fournisseur. Sans elle, un attaquant peut simuler un paiement reussi : le risque est une expedition non payee.
Combien de tentatives de retry prevoir ?
Un schema classique est 3 tentatives sur 24 h avec delais croissants (par ex. 1 min, 15 min, 2 h). Cela rattrape les pannes reseau temporaires sans marteler votre serveur.
Pourquoi une fenetre de rejeu de 5 minutes ?
Elle limite les attaques par rejeu : un webhook intercepte et renvoye plus tard est refuse s'il depasse 5 minutes. Au-dela, on considere l'appel comme suspect.
Que faire si un webhook n'arrive jamais ?
Prevoir une verification active : interroger l'API de statut du paiement apres 10 secondes, puis via une file de reprise. Le webhook ne doit jamais etre l'unique source de verite.
Combien de temps garder les journaux ?
Au moins 90 jours. C'est la fenetre utile pour arbitrer un litige client ou reconstituer un paiement conteste.
Discutons de votre projet. Nous securisons vos webhooks Wave avec signature, idempotence et reprise testees en conditions reelles. 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.
