Sécurité
Vérification de la signature
Toujours vérifier la signature de chaque webhook avant de le traiter. Ne traitez jamais un webhook sans vérifier son authenticité.HTTPS obligatoire
- Utilisez uniquement HTTPS pour vos endpoints webhook
- Ne configurez jamais une URL HTTP en production
- Utilisez des certificats SSL valides
Secret webhook
- Gardez votre secret webhook sécurisé : Ne le commitez jamais dans votre code
- Utilisez des variables d’environnement pour stocker le secret
- Ne partagez jamais votre secret via des canaux non sécurisés
- Régénérez votre secret si vous suspectez une compromission
Performance
Réponse rapide
Répondez rapidement à votre endpoint webhook (dans les 5 secondes) pour éviter les retries :- Acceptez immédiatement : Retournez un code HTTP 200 dès la réception
- Traitement asynchrone : Traitez le webhook en arrière-plan si nécessaire
- Queue : Utilisez une queue pour les traitements longs
Exemple : Traitement asynchrone
Idempotence
Pourquoi l’idempotence est importante
Les webhooks peuvent être livrés plusieurs fois (lors des retries). Assurez-vous que le traitement d’un webhook est idempotent.Stratégies d’idempotence
- ID d’événement : Utilisez l’ID de l’événement comme clé unique
- Référence de transaction : Utilisez la référence de la transaction
- Base de données : Stockez les événements traités dans une base de données
Exemple : Vérification d’idempotence
Gestion d’erreurs
Codes de statut appropriés
Retournez toujours un code HTTP approprié :- 200-299 : Succès - webhook traité
- 400-499 : Erreur client - ne sera pas réessayé
- 500-599 : Erreur serveur - sera réessayé
Gestion gracieuse des erreurs
- Logging : Enregistrez toutes les erreurs pour le débogage
- Alertes : Configurez des alertes pour les erreurs critiques
- Fallback : Ayez un mécanisme de fallback si le webhook échoue
Logging et monitoring
Logs recommandés
Enregistrez les informations suivantes pour chaque webhook :- Timestamp de réception
- Type d’événement
- ID de l’événement
- Statut de traitement (succès/échec)
- Temps de traitement
Monitoring
Surveillez :- Taux de succès/échec des webhooks
- Temps de réponse moyen
- Nombre de retries
- Erreurs récurrentes
Tests
Endpoint de test
Créez un endpoint de test pour valider votre intégration :Tests locaux
Utilisez des outils comme ngrok ou localtunnel pour tester vos webhooks localement.Checklist d’intégration
- Endpoint HTTPS configuré
- Vérification de signature implémentée
- Secret webhook stocké de manière sécurisée
- Réponse rapide (< 5 secondes)
- Traitement idempotent implémenté
- Gestion d’erreurs robuste
- Logging et monitoring configurés
- Tests effectués
Support
Si vous rencontrez des problèmes avec vos webhooks, contactez le support JEKO à hello@jeko.africa avec :- L’ID de l’événement
- Le timestamp de l’événement
- Les logs de votre endpoint
- Le code de statut retourné