# Webhooks

Ontvang een bericht op je eigen server zodra er iets verandert in Trelyn.

Een webhook stuurt een `POST`-verzoek naar jouw adres zodra er een gebeurtenis plaatsvindt, bijvoorbeeld als een deal gewonnen wordt.

## Gebeurtenissen

| Gebeurtenis | Wanneer |
| --- | --- |
| `deal.created` | Er is een deal aangemaakt |
| `deal.won` | Een deal is op Gewonnen gezet |
| `contact.updated` | Een contactpersoon is gewijzigd |
| `review.approved` | Een klant heeft een review goedgekeurd |

## Voorbeeld

```json
{
  "id": "evt_31ka",
  "type": "deal.won",
  "created_at": "2026-10-14T09:12:00Z",
  "data": { "id": "deal_7hq2", "name": "Website De Vries", "value": 12500 }
}
```

## Handtekening controleren

Elk verzoek heeft een `Trelyn-Signature`-header. Controleer die met je webhookgeheim voordat je het bericht verwerkt:

```ts
import crypto from "node:crypto";

export function isValid(body: string, signature: string, secret: string) {
  const expected = crypto.createHmac("sha256", secret).update(body).digest("hex");
  return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(signature));
}
```
