Een webhook is een automatisch bericht dat het ene systeem naar het andere stuurt op het moment dat er iets gebeurt. Waar een API wacht tot jij een vraag stelt, draait een webhook dat om: het bronsysteem neemt zelf contact met je op zodra een gebeurtenis plaatsvindt.
Zie het als een deurbel. Je staat niet om de paar seconden bij de deur te controleren of er iemand is. De bel gaat en laat het je weten. Een webhook is die bel: er komt een nieuwe bestelling binnen, een betaling wordt voltooid, een formulier wordt verstuurd, en je systeem krijgt meteen de bijbehorende gegevens.
Deze aanpak op basis van gebeurtenissen maakt automatisering in realtime praktisch haalbaar. In plaats van elke minuut bij een dienst aan te kloppen met “is er iets nieuws?”, ontvang je simpelweg een klein pakketje data zodra dat er is. Met tools zoals n8n vang je een webhook makkelijk op en zet je een hele reeks acties in gang.
Waar je rekening mee moet houden, is wat er gebeurt als je eindpunt traag is of plat ligt. De meeste afzenders, zoals Stripe of GitHub, proberen een mislukte levering een paar keer opnieuw, maar geven uiteindelijk op, dus een gemist bericht kan stilletjes verdwijnen. Een degelijke opzet antwoordt snel met een 200, doet het zware werk daarna, en kan ermee omgaan dat dezelfde gebeurtenis twee keer binnenkomt zonder het resultaat te verdubbelen.
Ook beveiliging telt mee, want de ontvangende URL is openbaar en iedereen kan proberen er nepberichten naartoe te sturen. Betrouwbare diensten lossen dat op door elk bericht te ondertekenen, zodat je code kan bevestigen dat het echt van hen komt. Diezelfde eigenschap die webhooks krachtig maakt, meteen reageren, is ook waarom een slordige webhook snel schade aanricht. De afzender controleren is dus geen optie maar een must.
Bij TopDevs gebruiken we webhooks om systemen netjes aan elkaar te knopen, zodat je tools direct op gebeurtenissen reageren in plaats van te wachten op vaste controlemomenten.