# Fonctionnalité Webhook

Lorsqu'un événement se produit sur votre compte iPayMoney vous pouvez, en utilisant les webhooks, vous informer sur leur exécution. À ce jour, vous pouvez utiliser les webhooks afin de notifier à votre système de gestion le statut d'une transaction (la transaction, est-elle un succès ou un échec).

### **Configuration des webhooks** <a href="#configuration-des-webhooks" id="configuration-des-webhooks"></a>

Il vous faudra suivre les étapes ci-après afin de procéder à la configuration de vos webhooks :&#x20;

Cliquez sur le menu "Développeurs".

![](/files/-MlUMbRb5hEilvp7xuuP)

Ensuite, cliquez sur le sous-menu "Webhooks" en dessous du sous-menu "Clés API."

![](/files/-MlUNw_ZsC5gmhbzHFOo)

Cliquez sur le bouton "Ajouter un webhook" en haut à droite.

Dans le formulaire qui apparaît, veuillez inscrire l’URL sur lequel vous désirez être notifié. Vous pouvez entrer n'importe quel URL comme destination pour les événements. Toutefois, il doit s'agir d'une page dédiée sur votre serveur, configurée pour recevoir des événements.

![](/files/-MlUPgivqzeW5cFZcVVr)

Remplissez votre "Secret Hash". C’est votre clé API secrète, elle sera utilisée afin de vérifier la provenance des informations que vous recevez. Copiez-la du sous-menu "Clés API" pour la coller dans le champ à remplir le Secret Hash.

![](/files/-MlUQHjRJd70-s12_Jqg)

{% hint style="danger" %}

**Attention !** Ne partagez surtout pas votre clé secrète.
{% endhint %}

Choisir les événements pour lesquels vous souhaitez être averti. Vous serez averti uniquement des événements spécifiés. Notez qu’il y a seulement deux (2) types d’événements : Succès et Échec.

![](/files/-MlUVKnlWRwBTWlGGsIS)

Enfin, enregistrez votre Webhook en cliquant sur "Enregistrer".

Une fois le Webhook créé, vous pouvez procéder à un test afin de vérifier que iPayMoney contacte bien votre URL.

Voilà ! Désormais, vous serez averti de toute activité sur votre compte iPayMone&#x79;**.**

### **Gérer les webhooks** <a href="#gerer-les-webhooks" id="gerer-les-webhooks"></a>

Après la configuration, il est important de comprendre l’accusé de réception d’un événement après notification d'iPayMoney. Pour ce faire, vous devez avant tout utiliser votre URL afin d'identifier le type d’événement et renvoyer un code statut HTTP 2xx. Tous les codes de réponse en dehors de cette plage, y compris les codes 3xx, indiquent à iPayMoney que vous n'avez pas reçu l'événement.

{% hint style="info" %}

En cas de non réception iPayMoney tente 5 fois de suite (dans un intervalle de 500ms incrémentable) de vous renvoyer les informations.
{% endhint %}

### **Vérification des signatures webhook** <a href="#verification-des-signatures-webhook" id="verification-des-signatures-webhook"></a>

iPayMoney signe les événements webhooks qu’il envoie à vos URL. Il est introduit dans l’en-tête de chaque requête x-iPayMoney-secret une signature. Elle est utilisée afin de vous permettre de vérifier que les événements ont été envoyés par iPayMoney et non par un tiers. Le squelette de la requête est le suivant :

```
{
  "content-length": "114",
  "accept": "application/json",
  "user-agent": "rest-client/2.1.0 (linux-gnu x86_64) ruby/2.7.2p137",
  "secret-hash": "sk_58951rhguiq859905dfn5903gh",
  "content-type": "application/json",
  "accept-encoding": "gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
}
```

{% hint style="info" %}

Toutes les requête x-iPayMoney-secret utilisent le secret hash fourni par votre personne sur le tableau de bord iPayMoney.
{% endhint %}

### **Payloads Response Body**

À chaque notification d'événement iPayMoney envoie un body request au format json ci après :

* Dans le cas d'une transaction échouée:

```
{
  "data": {
    "external_reference": "random-39",
    "reference": "zug596nsydoh",
    "status": "failed",
    "msisdn": "40410000003"
  }
}
```

* Dans le cas d'une transaction réussie:

```
{
  "data": {
    "external_reference": "random-38",
    "reference": "yeweyk6rd7cm",
    "status": "succeeded",
    "msisdn": "40410000001"
  }
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ipaymoney.gitbook.io/ipaymoney/plugin-et-sdk/webhook.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
