Vue d’ensemble
Les webhooks Finkare vous notifient de chaque événement de recouvrement émis (paiement reçu, dossier payé, lancement, actions de relance, recommandés). Les payloads sont signés via HMAC-SHA256 pour garantir leur authenticité. La livraison est au moins une fois : dédupliquez sur l’identifiant de l’événement.Étape 1 : créer un endpoint
Créez un endpoint HTTPS sur votre serveur qui accepte les requêtes POST. La signature se vérifie sur le corps brut (ne pas re-sérialiser le JSON parsé) :Étape 2 : enregistrer le webhook
secret retourné dans vos variables d’environnement :
Étape 3 : format des payloads
Chaque événement est envoyé avec cette structure :workflow.started, workflow.action_triggered, debtor.contacted, payment.received, debt.paid, lrar.sent, lrar.delivered. Les autres événements de la référence peuvent être souscrits mais ne sont pas encore émis. Les payloads ne contiennent pas de données personnelles du débiteur : identifiants, montants et états seulement.
Headers envoyés
Vérification de signature
En-tête :X-Finkare-Signature: t=<horodatage Unix>,v1=<signature>, où signature = HMAC-SHA256 hexadécimal, avec votre secret whsec_... comme clé, de la chaîne "<t>.<corps brut>". L’horodatage étant signé, refusez toute requête dont t s’écarte de plus de 5 minutes (300 s) de votre horloge : un corps intercepté ne peut pas être rejoué au-delà. Calculez toujours la signature sur le corps brut, avant tout parsing JSON. Finkare stocke votre secret chiffré et ne peut pas vous le renvoyer : en cas de perte, régénérez-le (rotate-secret).
Politique de retry
Après 5 échecs, la livraison passe en
failed (visible dans l’historique) ; le webhook reste actif pour les événements suivants. Une URL qui résout vers une adresse privée ou réservée est refusée sans nouvelle tentative.
Monitoring
Consultez l’historique des deliveries via l’API :Bonnes pratiques
- Répondre vite : acquittez le webhook en < 5s, traitez en async
- Déduplication : utilisez
X-Finkare-Event-Id(ouiddu corps) pour ignorer une re-livraison - Idempotence : votre handler doit supporter les re-livraisons sans effet de bord
- Rotation régulière : faites tourner le secret via
POST /webhooks/:id/rotate-secret - Alerting : surveillez les erreurs 4xx/5xx dans vos logs pour détecter les problèmes rapidement