Skip to main content

Qu’est-ce qu’un webhook ?

Les webhooks sont des notifications HTTP envoyées par CaurisFlux vers votre serveur lorsqu’un événement se produit (paiement réussi, échec, payout complété…).
Les webhooks sont essentiels pour une intégration fiable. Ne vous fiez pas uniquement aux redirections.

Configuration

Via le Dashboard

  1. Allez dans Dashboard > Paramètres > Webhooks
  2. Cliquez sur Ajouter un endpoint
  3. Entrez l’URL de votre endpoint (HTTPS requis en production)
  4. Sélectionnez les événements à recevoir
  5. Copiez le secret de signature

Événements disponibles

Événements de paiement (Collect)

ÉvénementDescription
payment.completedPaiement réussi
payment.failedPaiement échoué
payment.cancelledPaiement annulé
payment.expiredPaiement expiré

Événements de payout (Décaissement)

ÉvénementDescription
payout.completedPayout réussi
payout.failedPayout échoué
payout.cancelledPayout annulé

Événements de remboursement

ÉvénementDescription
refund.completedRemboursement effectué

Structure des webhooks

Headers envoyés

HeaderDescription
X-Cauris-SignatureSignature HMAC pour vérification (format: sha256=xxx)
X-Cauris-TimestampTimestamp Unix de l’envoi
Content-Typeapplication/json

Contenu du webhook

Chaque webhook contient :
  • event : Type d’événement (ex: payment.completed)
  • timestamp : Date/heure de l’événement
  • data : Données de la transaction

Données pour payment.completed

ChampDescription
transactionIdIdentifiant unique de la transaction
statusStatut (completed)
amountMontant
currencyDevise
providerProvider utilisé
providerReferenceRéférence du provider
externalReferenceVotre référence
paidAtDate du paiement
metadataMétadonnées personnalisées

Données pour payout.completed

ChampDescription
payoutIdIdentifiant unique du payout
externalRefVotre référence
statusStatut (completed)
amountMontant
currencyDevise
methodMéthode (mobile_money, bank_transfer)
mobileNumber / bankAccountCoordonnées du bénéficiaire
providerReferenceRéférence du provider
completedAtDate de complétion

Vérification de la signature

Vérifiez toujours la signature des webhooks pour éviter les attaques.
La signature est dans l’en-tête X-Cauris-Signature au format sha256=xxx. Processus de vérification :
  1. Récupérez le payload brut de la requête
  2. Calculez le HMAC-SHA256 avec votre secret webhook
  3. Comparez avec la signature reçue
  4. Rejetez si les signatures ne correspondent pas

Codes d’erreur (failureReason / errorCode)

Erreurs de paiement

CodeDescription
insufficient_fundsSolde insuffisant
user_cancelledAnnulé par l’utilisateur
timeoutDélai expiré
provider_errorErreur du provider
invalid_phoneNuméro invalide

Erreurs de payout

CodeDescription
invalid_recipientBénéficiaire invalide
insufficient_balanceSolde insuffisant (votre compte)
provider_errorErreur du provider
limit_exceededLimite de payout dépassée
account_blockedCompte bénéficiaire bloqué

Bonnes pratiques

1

Répondez rapidement

Retournez un 200 OK immédiatement, puis traitez l’événement en arrière-plan.
2

Gérez l'idempotence

Utilisez transactionId ou payoutId pour éviter de traiter le même événement deux fois.
3

Logguez tout

Conservez les webhooks reçus pour debug et audit.
4

Gérez les retries

CaurisFlux réessaie jusqu’à 5 fois en cas d’échec (1min, 5min, 30min, 2h, 24h).

Tester vos webhooks

Depuis le Dashboard : Webhooks > Envoyer un test Ou utilisez les numéros de test en sandbox pour déclencher des webhooks réels.