Een webhook is een automatisch bericht dat een systeem naar een ander systeem stuurt zodra er iets gebeurt. Het ontvangende systeem hoeft dus niet steeds te vragen of er nieuws is: het krijgt een melding zodra het nodig is. Technisch is een webhook een HTTP-verzoek naar een vooraf ingesteld webadres.

Hoe het werkt

Je geeft in systeem A het webadres (de URL) op van systeem B en kiest bij welke gebeurtenis een melding moet volgen. Gebeurt dat, dan stuurt systeem A een verzoek naar die URL, meestal met de gegevens over de gebeurtenis in JSON. Systeem B verwerkt die gegevens en antwoordt dat het is ontvangen.

Dit verschilt van een gewone API-aanvraag, waarbij het ontvangende systeem zelf met vaste tussenpozen vraagt of er iets nieuws is.

Waarvoor wordt het gebruikt

  • Een betaalprovider meldt aan een webshop dat een betaling is gelukt, zodat de bestelling kan worden verwerkt.
  • Een formulier stuurt een nieuwe inzending direct door naar een CRM of mailprogramma.
  • Een CMS laat een website weten dat een pagina is gewijzigd, zodat die opnieuw kan worden opgebouwd.

Webhooks zorgen er zo voor dat systemen vrijwel direct op elkaar reageren, zonder handmatig werk.

Waar je op moet letten

Het ontvangende adres moet bereikbaar zijn en snel antwoorden. Een melding kan mislukken, en sommige systemen sturen hem dan opnieuw. De ontvanger moet dus kunnen omgaan met dubbele berichten.

Omdat iedereen die het webadres kent er een bericht naartoe kan sturen, wordt een webhook meestal beveiligd met een geheime sleutel of handtekening waarmee de ontvanger controleert wie de afzender is.

Wat er in een melding staat

Een webhook-bericht bevat meestal het soort gebeurtenis, het tijdstip en de bijbehorende gegevens. Bij een betaling kan dat bijvoorbeeld het ordernummer en de status zijn. Het ontvangende systeem leest die gegevens uit en voert zelf de vervolgstap uit, zoals het versturen van een bevestiging of het bijwerken van een bestelling.