Skip to main content

Principe

La confirmation finale d’une transaction est envoyée de façon asynchrone à votre ipn_url.

Exemple IPN – Succès

{
  "transaction_id": "EFB.144358",
  "amount": 1000,
  "benefice": 1000,
  "commission": 0,
  "destination": "0500156008",
  "fee": 0,
  "reponse": "operation succes",
  "error": "",
  "service_id": 14,
  "customer_name": "easytransfert",
  "state": "SUCCESSFUL",
  "custom_data": "order_789",
  "ipn_url": "",
  "provider_id": null,
  "sms_link": 0,
  "created_at": "2022-10-18T02:38:44.000+00:00",
  "updated_at": "2022-10-18T02:38:44.000+00:00",
  "ipn_state": 0
}

Exemple IPN – Échec

{
  "transaction_id": "EFB.144359",
  "amount": 2000,
  "benefice": 2000,
  "commission": 0,
  "destination": "0670123456",
  "fee": 0,
  "reponse": "",
  "error": "Solde insuffisant",
  "service_id": 10,
  "customer_name": "easytransfert",
  "state": "FAILED",
  "custom_data": "order_789",
  "ipn_url": "",
  "provider_id": null,
  "sms_link": 0,
  "created_at": "2022-10-18T02:38:44.000+00:00",
  "updated_at": "2022-10-18T02:38:44.000+00:00",
  "ipn_state": 0
}

Champs du payload IPN

ChampTypeDescription
transaction_idstringIdentifiant unique de la transaction
statestringÉtat de la transaction : SUCCESSFUL ou FAILED
amountnumberMontant de la transaction en FCFA
beneficenumberBénéfice de la transaction
commissionnumberCommission appliquée
destinationstringNuméro du bénéficiaire
feenumberFrais de transaction
reponsestringMessage de succès (si SUCCESSFUL)
errorstringMessage d’erreur (si FAILED)
service_idnumberIdentifiant du service utilisé
customer_namestringNom du client/partenaire
custom_datastringDonnées personnalisées envoyées à l’initiation
ipn_urlstringURL de callback utilisée
provider_idnumber/nullIdentifiant du fournisseur
sms_linknumberIndicateur de lien SMS
created_atstringDate de création (ISO 8601)
updated_atstringDate de mise à jour (ISO 8601)
ipn_statenumberÉtat de l’IPN
hashstringCette valeur vient confirmer que la réponse du webhook provient véritablement de EasyTransfert

États possibles

ÉtatDescription
SUCCESSFULTransaction réussie
FAILEDTransaction échouée

Recommandations

  • Toujours répondre HTTP 200 OK à l’IPN pour confirmer la réception
  • Vérifier l’unicité du transaction_id pour éviter les traitements en double
  • Utiliser custom_data pour faire le lien avec votre système interne
  • Vérifier que la réponse provient de nous véritablement à partir du hash