# Events van Drime Sign ontvangen met webhooks

Krijg een HTTP-melding op je server als een document in Drime Sign wordt verstuurd, bekeken, ondertekend, geweigerd of voltooid.

Bijgewerkt: 2026-10-21  
Bron: https://drime.cloud/nl/support/integrations-and-api/sign-webhooks

Met een webhook roept Drime je server aan telkens als er iets gebeurt met je ondertekeningsverzoeken. Elke oproep is een JSON-`POST`, ondertekend met een secret zodat je server kan controleren dat die van Drime komt.

## Een webhook toevoegen

1. Open **Instellingen** \> **Ontwikkelaars** \> **Webhooks**.

   Vanuit Sign kun je ook op **Voorkeuren** klikken, het tabblad **Webhooks** openen en daarna **Ontwikkelaarsinstellingen openen** kiezen.

2. Klik op **Webhook toevoegen**.

3. Vul bij **Endpoint-URL** het adres in van je server die de oproepen ontvangt.

4. Zet onder **Events** elk event dat je wilt ontvangen op **Aan** en klik daarna op **Webhook maken**.

   **Webhook aangemaakt** bevestigt het.

5. Kopieer nu het secret en klik op **Klaar**.

   **Webhook-secret, kopieer het nu**: het wordt maar één keer getoond. Bewaar het op een veilige plek.

![Het venster voor een nieuwe webhook met de endpoint-URL van een demoserver en de lijst met events van Drime Sign](https://drime.cloud/media/01M5F06YR56KKN1FP1T6WCV3QW/8adc8de810cf-web-sign-webhook-create.png)

## De events

| Event | Verstuurd wanneer |
| --- | --- |
| `envelope.sent` | Een document ter ondertekening wordt verstuurd |
| `envelope.completed` | Alle ondertekenaars hebben ondertekend |
| `envelope.declined` | Een ondertekenaar heeft geweigerd, dus het document is geweigerd |
| `signer.viewed` | Een ondertekenaar heeft het document geopend |
| `signer.signed` | Een ondertekenaar heeft ondertekend |
| `signer.declined` | Een ondertekenaar heeft geweigerd |
| `template.created` | Er wordt een sjabloon gemaakt |

## Wat Drime verstuurt

Elke oproep bevat deze headers:

- `X-Drime-Event`: het event, bijvoorbeeld `envelope.completed`;
- `X-Drime-Delivery`: het nummer van de bezorging;
- `X-Drime-Signature`: `sha256=` gevolgd door de HMAC SHA-256 van de ruwe body, berekend met je secret.

De JSON-body bevat `event_type`, `event_uuid`, `timestamp` en `data`, het betrokken document met zijn ondertekenaars. Het onderdeel **Webhooks** toont een volledig voorbeeld onder **Voorbeeldverzoek & handtekeningverificatie**.

Een bezorging kan meer dan eens aankomen: gebruik `event_uuid` om elk event maar één keer te verwerken.

## De handtekening controleren

Bereken met je secret de HMAC SHA-256 van de ruwe body van het verzoek en vergelijk die met de header `X-Drime-Signature`. Bijvoorbeeld in 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));
}
```

Gebruik de body precies zoals ontvangen, vóór elke JSON-verwerking.

## Testen en de bezorgingen volgen

- **Test versturen** stuurt een test-event: **Test-event in de wachtrij gezet, bekijk het bezorglogboek**.
- **Bezorgingen** toont elke oproep met de status: **Succes**, **In afwachting** of **Mislukt**. **Opnieuw versturen** stuurt een bezorging nog een keer.
- Antwoordt je server niet of met een fout, dan probeert Drime het opnieuw, tot 10 pogingen over ongeveer 34 uur.
- De schakelaar **Aan** / **Uit** pauzeert een webhook zonder hem te verwijderen: **Webhook gepauzeerd** bevestigt het, en **Webhook ingeschakeld** als je hem weer aanzet.

## Het secret wijzigen of de webhook verwijderen

- **Geheim vernieuwen** maakt een nieuw secret. De app waarschuwt: **Het secret vernieuwen? Je huidige secret werkt onmiddellijk niet meer.** Werk je server meteen bij.
- **Verwijderen** verwijdert de webhook: **Deze webhook en de bezorggeschiedenis verwijderen?**

## Als het niet lukt

| Wat je ziet | Wat je doet |
| --- | --- |
| **Voer de endpoint-URL in** | Vul het adres van je server in voordat je de webhook maakt. |
| **Schakel minstens één event in** | Kies minstens één event onder **Events**. |
| Bezorgingen blijven op **Mislukt** | Controleer of je server bereikbaar is vanaf internet en antwoordt met een succescode. Klik daarna op **Opnieuw versturen**. |
| Je server weigert de handtekening | Bereken de HMAC op de ruwe body, niet op verwerkte JSON, en gebruik het huidige secret. Na **Geheim vernieuwen** werkt het oude niet meer. |

## Volgende stappen

- [Een app bouwen of webhooks instellen](https://drime.cloud/nl/support/integrations-and-api/build-an-integration)
- [Een API-token maken](https://drime.cloud/nl/support/integrations-and-api/api-tokens)
- [Wat het auditcertificaat van een ondertekend document bevat](https://drime.cloud/nl/support/sign/audit-trail-and-certificate)
