# Recevoir les événements Drime Sign par webhook

Recevez une notification HTTP sur votre serveur quand un document est envoyé, ouvert, signé, refusé ou finalisé dans Drime Sign, et vérifiez sa source.

Mis à jour : 2026-10-21  
Source : https://drime.cloud/fr/support/integrations-et-api/webhooks-sign

Un webhook fait appeler votre serveur par Drime chaque fois qu'il se passe quelque chose sur vos demandes de signature. Chaque appel est un `POST` JSON, signé avec un secret pour que votre serveur puisse vérifier qu'il vient de Drime.

## Ajouter un webhook

1. Ouvrez **Paramètres** \> **Développeurs** \> **Webhooks**.

   Depuis Sign, vous pouvez aussi cliquer sur **Préférences**, ouvrir l'onglet **Webhooks**, puis **Ouvrir les paramètres Développeurs**.

2. Cliquez sur **Ajouter un webhook**.

3. Dans **URL de l'endpoint**, saisissez l'adresse du serveur qui reçoit les appels.

4. Sous **Événements**, passez chaque événement à recevoir sur **Activé**, puis cliquez sur **Créer le webhook**.

   **Webhook créé** le confirme.

5. Copiez le secret tout de suite, puis cliquez sur **Terminé**.

   **Secret du webhook, copiez-le maintenant** : il n'est affiché qu'une seule fois. Conservez-le en lieu sûr.

![La fenêtre de nouveau webhook avec l'URL de l'endpoint d'un serveur de démonstration et la liste des événements Drime Sign](https://drime.cloud/media/01M5F25RZR4CC39JGFS0KH0H69/e352597fc784-web-sign-webhook-create.png)

## Les événements

| Événement | Envoyé quand |
| --- | --- |
| `envelope.sent` | Un document est envoyé en signature |
| `envelope.completed` | Tous les signataires ont signé |
| `envelope.declined` | Un signataire a refusé, le document est donc refusé |
| `signer.viewed` | Un signataire a ouvert le document |
| `signer.signed` | Un signataire a signé |
| `signer.declined` | Un signataire a refusé |
| `template.created` | Un modèle est créé |

## Ce que Drime envoie

Chaque appel porte ces headers :

- `X-Drime-Event` : l'événement, par exemple `envelope.completed` ;
- `X-Drime-Delivery` : le numéro de la livraison ;
- `X-Drime-Signature` : `sha256=` suivi du HMAC SHA-256 du corps brut, calculé avec votre secret.

Le corps JSON contient `event_type`, `event_uuid`, `timestamp` et `data`, le document concerné avec ses signataires. La section **Webhooks** montre un exemple complet sous **Exemple de requête et vérification de signature**.

Une livraison peut arriver plusieurs fois : utilisez `event_uuid` pour ne traiter chaque événement qu'une fois.

## Vérifier la signature

Calculez le HMAC SHA-256 du corps brut de la requête avec votre secret, puis comparez-le au header `X-Drime-Signature`. Par exemple, en Node.js :

```js
import crypto from 'node:crypto';

function isFromDrime(rawBody, header, secret) {
  const expected = 'sha256=' + crypto.createHmac('sha256', secret).update(rawBody).digest('hex');
  return header.length === expected.length && crypto.timingSafeEqual(Buffer.from(header), Buffer.from(expected));
}
```

Utilisez le corps tel que reçu, avant toute lecture du JSON.

## Tester et suivre les livraisons

- **Envoyer un test** envoie un événement de test : **Événement de test en file d'attente, consultez le journal des livraisons**.
- **Livraisons** liste chaque appel avec son statut : **Succès**, **En attente** ou **En erreur**. **Renvoyer** envoie de nouveau une livraison.
- Si votre serveur ne répond pas ou répond par une erreur, Drime réessaie, jusqu'à 10 tentatives sur environ 34 heures.
- L'interrupteur **Activé** / **Désactivé** met un webhook en pause sans le supprimer : **Webhook en pause** le confirme, et **Webhook activé** quand vous le réactivez.

## Changer le secret ou supprimer le webhook

- **Régénérer le secret** crée un nouveau secret. L'app prévient : **Régénérer le secret ? Votre secret actuel cessera de fonctionner immédiatement.** Mettez votre serveur à jour aussitôt.
- **Supprimer** retire le webhook : **Supprimer ce webhook et son historique de livraisons ?**

## En cas de problème

| Ce que vous voyez | Que faire |
| --- | --- |
| **Saisissez l'URL de l'endpoint** | Saisissez l'adresse de votre serveur avant de créer le webhook. |
| **Activez au moins un événement** | Choisissez au moins un événement sous **Événements**. |
| Les livraisons restent **En erreur** | Vérifiez que votre serveur est joignable depuis internet et répond par un code de succès. Puis cliquez sur **Renvoyer**. |
| Votre serveur refuse la signature | Calculez le HMAC sur le corps brut, pas sur le JSON lu, et utilisez le secret actuel. Après **Régénérer le secret**, l'ancien ne fonctionne plus. |

## Étapes suivantes

- [Créer une application ou connecter des webhooks](https://drime.cloud/fr/support/integrations-et-api/creer-une-integration)
- [Créer un token d'API](https://drime.cloud/fr/support/integrations-et-api/jetons-d-api)
- [Ce que contient le certificat d'audit d'un document signé](https://drime.cloud/fr/support/sign/journal-d-audit-et-certificat)
