Les webhooks envoient des notifications de paiement en temps réel directement à votre serveur. Mal implémentés, ils peuvent toutefois devenir une faille de sécurité. Voici cinq pratiques essentielles.
1. Vérifiez toujours la signature
Chaque webhook InzoPay comporte un en-tête InzoPay-Signature avec une signature HMAC-SHA256. Vérifiez-la toujours avec le secret de signature de votre point de terminaison avant de traiter l'événement. Consultez notre guide de vérification de la signature.
2. Contrôlez l'horodatage
Vérifiez que l'horodatage du webhook (t=) ne s'écarte pas de plus de 5 minutes de l'heure actuelle. Cela empêche les attaques par rejeu, où un attaquant renvoie un webhook capturé.
3. Répondez 200 rapidement
Traitez les webhooks de façon asynchrone. Renvoyez immédiatement une réponse 200, puis gérez l'événement en arrière-plan. Si votre serveur met plus de 10 secondes, InzoPay considérera l'envoi comme échoué.
4. Gérez les événements en double
À cause des nouvelles tentatives, votre point de terminaison peut recevoir plusieurs fois le même événement. Utilisez l'identifiant de l'événement (event.id) pour assurer l'idempotence — ne retraitez pas un événement déjà traité.
5. N'utilisez que HTTPS
InzoPay n'envoie des webhooks qu'à des points de terminaison HTTPS. N'utilisez jamais HTTP pour vos points de terminaison de webhook en production.