Changement de statut des transactions
Les webhooks sont des notifications HTTP POST envoyées à votre URL configurée lorsque le statut d'un paiement entrant ou d'un transfert sortant change sur notre plateforme.
Pour assurer l'intégrité et l'authenticité des données envoyées, le payload de chaque webhook sera signé avec la clé secrète, accessible depuis l'espace développeur.
Le résultat de la signature est placé dans l'entête X-Webhook-Signature de la requête. Se référer à la rubrique ###Comment générer une signature, obtenir des snippet de code. Si la signature fournie dans la requête correspod au résultat de votre sugnature, alors poursuivre le traitement du webhook. Le cas échéant, ignorer le webhook.
Format de l'entête : X-Webhook-Signature: v1:signature
Types d'événements
| Événement | Description |
|---|---|
| payment.created | Paiement créé |
| payment.redirected | Paiement rédirigé vers le portail de paiement |
| payment.cancelled | Paiement annulé par le client |
| payment.pending | Paiement en attente |
| payment.timeout | Paiement expiré sans réponse du client |
| payment.success | Paiement réussi/capturé |
| payment.failed | Paiement échoué |
| payment.refunded | Paiement remboursé |
| payout.success | Transfert sortant exécuté avec succès |
| payout.failed | Transfert sortant échoué ou rejeté |
Versions du payload
La version est portée par votre configuration webhook, accessible depuis l'espace développeur. Seule la structure du champ data change : l'enveloppe (message, eventType, eventId, data, timestamp) et la signature sont identiques dans les deux versions.
| Version | Champ data | Événements reçus |
|---|---|---|
| V1 | données du paiement directement dans data | payment.* uniquement |
| V2 | data.payment pour les paiements, data.payout pour les transferts | payment.* et payout.* |
Les nouvelles configurations sont créées en V2. Les marchands déjà intégrés restent en V1 tant qu'ils n'ont pas demandé la migration : les événements payout.* ne sont donc pas envoyés en V1.
En V2, un seul des deux objets est présent par webhook — data.payment sur un événement payment.*, data.payout sur un événement payout.*. L'autre clé est absente du payload, elle n'est pas envoyée vide.
⚠️ Important : Cette documentation décrit les webhooks envoyés À votre système. Vous devez implémenter cet endpoint côté client pour recevoir nos notifications.
Request
- Base URL: https://sandbox-api.djomy.africa
- URL: https://sandbox-api.djomy.africa/votre-endpoint-webhook
- Auth: none declared. Required headers: X-Webhook-Signature
Headers
Signature HMAC-SHA256 du payload, générée avec la clé secrète du marchand (clientSecret) pour vérifier l'authenticité de la requête
Request body
Example request
{
"message": "Statut du paiement",
"eventType": "payment.success",
"data": {
"payment": {
"transactionId": "123e4567-e89b-12d3-a456-426614174000",
"status": "SUCCESS",
"paidAmount": 100,
"fees": 3,
"paymentMethod": "OM",
"payerIdentifier": "00224626241509",
"currency": "GNF",
"createdAt": "2025-07-13T10:30:00Z"
},
"payout": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"orderId": "123e4567-e89b-12d3-a456-426614174044",
"merchantPayoutReference": "PR001",
"providerReference": "PR001",
"status": "SUCCESS",
"destination": {
"type": "WALLET",
"countryCode": "GN",
"currency": "GNF",
"account": {
"providerCode": "OM",
"accountNumber": "622000000"
}
},
"amount": 150000,
"feesAmount": 2000,
"totalAmountToPay": 170000,
"createdAt": "2025-07-13T10:30:00Z"
}
}
}Response
Webhook traité avec succès
Changes
No recorded changes to this operation across all 1 revision of this API.