# Authentification des Webhooks

La fonction **d’authentification des webhooks** garantit une communication sécurisée entre **Agency Handy** et des systèmes externes. En configurant cette sécurité, vous vous assurez que **seuls les points de terminaison autorisés** reçoivent les données envoyées par les webhooks.

***

#### 🎯 Avantages

* **Sécurité** : Protégez les données sensibles contre les accès non autorisés.
* **Fiabilité** : Assurez-vous que les données sont transmises uniquement à des destinataires autorisés.
* **Conformité** : Respectez les normes de sécurité et de conformité pour les transmissions de données.

***

#### 🛠 Étapes pour mettre en place la vérification

Nous vous **recommandons fortement** de **vérifier tous les webhooks** que vous recevez sur vos endpoints.

***

#### ✅ Vérifier un Webhook

**Méthode :**

`POST /api/v1/webhooks/verify-signature`

**En-têtes (obligatoires) :**

```
pgsqlCopyContent-Type: application/json
```

**Corps de la requête (obligatoire) :**

| Champ     | Type   | Description                                        |
| --------- | ------ | -------------------------------------------------- |
| webhookId | string | Identifiant du webhook (disponible après création) |
| signature | string | Signature du webhook (dans l’en-tête `x-ah-sig`)   |
| secret    | string | Secret du webhook (généré lors de la création)     |
| payload   | object | Contenu de la requête webhook                      |

***

#### 🔍 Où trouver ces informations ?

* **webhookId** : Affiché après la création du webhook.
* **signature** : Récupérable dans l’en-tête HTTP nommé `x-ah-sig`.
* **secret** : Visible dans la barre latérale, après avoir créé un webhook.
* **payload** : Contenu JSON envoyé dans la requête entrante du webhook.

***

#### ✅ Réponses attendues :

* `200` – Vérification réussie
* `403` – Échec de la vérification

**Réponse JSON** :

```json
jsonCopy{
  "verification_status": "SUCCESS"
}
```

***

#### 💻 Exemple en JavaScript (via `fetch`) :

```javascript
javascriptCopyconst url = 'https://api.agencyhandy.com/api/v1/webhooks/verify-signature';

const postData = {
  webhookId: 'votre_webhook_id',
  signature: 'votre_signature',
  secret: 'votre_secret_webhook',
  payload: {}, // Votre contenu ici
};

try {
  const response = await fetch(url, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify(postData),
  });

  const data = await response.json();
  console.log('Succès :', data);
} catch (error) {
  console.error('Erreur :', error);
}
```

***

#### 📌 Notes Importantes

* **Gestion des tokens** : Gardez le token secret et pensez à le changer régulièrement.
* **Sécurisation du endpoint** : Votre URL de réception doit être en HTTPS et capable de vérifier les signatures.
* **Surveillance** : Contrôlez fréquemment l’activité des webhooks pour détecter toute tentative suspecte.
* **Documentation** : Tenez un registre des tokens d’authentification et des endpoints associés pour faciliter les vérifications ou les dépannages.
