# Webhooks

In de sectie **Webhooks** van **Instellingen** (`/settings/webhooks`) beheer je de endpoints die Borkol een bericht stuurt wanneer er iets gebeurt in je winkel. Webhooks sturen order-, voorraad- en contentgebeurtenissen naar je storefront of integratie zodra ze plaatsvinden, zodat je de API niet hoeft te pollen. Borkol verstuurt ondertekende JSON via POST naar elk endpoint, voor de gebeurtenissen waarop het is geabonneerd.

Deze pagina behandelt de dashboardkant; de payload-formaten, ondertekeningsdetails en het retry-gedrag vind je in de [Webhooks API-referentie](/nl/api/webhooks/index).

## Een endpoint toevoegen

1. Open **Instellingen** en kies **Webhooks**.
2. Vul in het vak **Endpoint toevoegen** de **Endpoint-URL** in waarop je server luistert (bijvoorbeeld `https://example.com/webhooks/borkol`).
3. Vink minstens één gebeurtenis aan. De knop **Aanmaken** blijft uitgeschakeld totdat je zowel een URL als een gebeurtenis hebt; een hint ernaast vertelt je wat er nog ontbreekt.
4. Klik op **Aanmaken**.

### Gebeurtenissen

Er zijn negen gebeurtenissen om uit te kiezen:

| Gebeurtenis | Wordt verstuurd wanneer |
| --- | --- |
| `order.created` | Een nieuwe bestelling wordt geplaatst. |
| `order.status_changed` | Een bestelling naar een andere status gaat. |
| `stock.adjusted` | Een voorraadniveau wijzigt. |
| `object_record.published` | Een conceptrecord van een type met Publiceren aan wordt gepubliceerd (ook wanneer het voor later is ingepland). |
| `object_record.updated` | Een gepubliceerd record verandert: zijn waarden, adressen of datum **Gepubliceerd op**. |
| `object_record.unpublished` | Een gepubliceerd record wordt weer **Concept**. |
| `object_record.deleted` | Een gepubliceerd record wordt verwijderd. |
| `form.published` | Een nieuwe versie van een formulier wordt gepubliceerd. |
| `form_submission.created` | Een bezoeker verstuurt een van je formulieren. |

## Kopieer het ondertekeningsgeheim: het wordt maar één keer getoond

Direct na het aanmaken verschijnt het ondertekeningsgeheim van het endpoint in een vak met de titel **Kopieer dit ondertekeningsgeheim nu. Wordt maar één keer getoond.** Sla het meteen op je server op:

- Je server verifieert elke aanlevering door de header `X-Borkol-Signature` te vergelijken met een HMAC-SHA256 van de ruwe request-body, berekend met dit geheim. Wijs aanleveringen die niet overeenkomen af.
- Het geheim is nooit meer zichtbaar nadat je de pagina verlaat. Ben je het kwijt, verwijder dan het endpoint en voeg het opnieuw toe om een nieuw geheim te krijgen.

## Een endpoint aan- of uitzetten

Elke endpointrij heeft een schakelaar **Actief** / **Inactief**. Zet hem uit om aanleveringen te pauzeren zonder het endpoint te verwijderen, en weer aan om te hervatten. De schakelaar wordt direct bijgewerkt; mislukt het opslaan, dan springt hij terug en zie je een foutmelding.

## Een testping versturen

Klik op **Test** bij een endpoint om er een ping-aanlevering naartoe te sturen. Je ziet **Ping verstuurd.** als bevestiging. Gebruik dit om te controleren of je server aanleveringen ontvangt en verifieert voordat er echte gebeurtenissen binnenkomen.

## Het aanleveringslog bekijken

Klik op **Aanleveringen** bij een endpoint om het aanleveringslog inline uit te klappen (klik op **Aanleveringen verbergen** om het in te klappen). Elke rij toont:

| Kolom | Beschrijving |
| --- | --- |
| Status | Statusbadge van de aanlevering (zie hieronder). |
| Gebeurtenis | De gebeurtenis die is aangeleverd. |
| Respons | De HTTP-status die je server teruggaf, of een streepje als er geen respons was. |
| Pogingen | Hoeveel aanleverpogingen er zijn gedaan. |
| Datum | Wanneer de aanlevering plaatsvond, met tijd. |

| Status | Betekenis |
| --- | --- |
| `pending` | In de wachtrij of wordt nog opnieuw geprobeerd. |
| `success` | Je server heeft de aanlevering geaccepteerd. |
| `failed` | De aanlevering is gestopt nadat alle pogingen waren verbruikt. |

Een endpoint dat nog nooit iets heeft ontvangen toont **Nog geen aanleveringen.**

## Een endpoint verwijderen

1. Klik op **Verwijderen** in de rij van het endpoint.
2. Een dialoog **Endpoint verwijderen** vraagt om bevestiging: het endpoint ontvangt direct geen gebeurtenissen meer.
3. Klik op **Verwijderen** om te bevestigen.

Bij het verwijderen gaat ook het ondertekeningsgeheim van het endpoint verloren. Wil je aanleveringen alleen pauzeren, gebruik dan de schakelaar **Actief**.
