Definitie: Een webhook is een automatisch bericht dat een applicatie naar een vooraf ingesteld webadres stuurt zodra er een bepaalde gebeurtenis plaatsvindt, zoals een nieuwe bestelling of betaling. De ontvangende applicatie hoeft dus niet steeds zelf te vragen of er iets nieuws is, maar krijgt de gegevens direct toegestuurd.
In het kort
- Een webhook is gebeurtenisgestuurd: er wordt pas iets verstuurd als er iets gebeurt.
- Technisch is het meestal een HTTP POST-verzoek met de gegevens in JSON naar een URL van de ontvanger.
- Bij een gewone API-aanroep vraagt de ontvanger zelf om gegevens (polling); bij een webhook pusht de bron ze. Daarom heet een webhook ook wel een omgekeerde API.
- Webhooks moeten beveiligd worden, bijvoorbeeld met HTTPS en een handtekening, en vragen om foutafhandeling als een bericht niet aankomt.
Wat is een webhook?
Stel dat je wilt weten of er een nieuwe bestelling is binnengekomen. Je kunt elke minuut in de webshop kijken, of de webshop kan je een bericht sturen zodra er een bestelling is. Het tweede is een webhook.
Mailmeteor geeft precies dit voorbeeld: een applicatie ontvangt een HTTP-verzoek zodra een bestelling is geplaatst, zodat er niet constant op nieuwe bestellingen hoeft te worden gecontroleerd. Parseur noemt een Shopify-webshop die bij elke nieuwe bestelling een bericht in Slack laat plaatsen.
Een webhook bestaat altijd uit twee kanten. De verzender is de applicatie waar de gebeurtenis plaatsvindt, zoals een betaalprovider of webshop. De ontvanger is de applicatie die het bericht verwerkt, zoals je CRM, boekhouding of eigen webapplicatie. De ontvanger geeft een webadres op, het endpoint, en de verzender stuurt daar de gegevens naartoe.
Hoe werkt een webhook?
Volgens Parseur en Kontentino verloopt een webhook in vier stappen:
- Gebeurtenis. Er gebeurt iets in de bronapplicatie, bijvoorbeeld een betaling wordt voltooid.
- Payload. De bron stelt een bericht samen met de relevante gegevens, meestal in JSON.
- Verzending. Het bericht gaat als HTTP POST naar de ingestelde webhook-URL.
- Actie. De ontvanger verwerkt de gegevens: een status bijwerken, een taak aanmaken of een e-mail sturen.
De ontvanger laat met een korte bevestiging weten dat het bericht is aangekomen. Komt die bevestiging niet, dan proberen veel diensten het later opnieuw.
Webhook vs API: wat is het verschil?
| API-aanroep | Webhook | |
|---|---|---|
| Wie neemt het initiatief? | De ontvanger vraagt om gegevens | De bron stuurt gegevens zodra er iets gebeurt |
| Werking | Synchroon: vraag en direct antwoord | Asynchroon: bericht bij een gebeurtenis |
| Moment | Wanneer de ontvanger het wil | Wanneer de gebeurtenis plaatsvindt |
| Efficiëntie | Bij vaak controleren veel lege verzoeken | Alleen verkeer als er echt iets is |
| Geschikt voor | Gegevens opvragen, aanmaken of wijzigen | Op de hoogte blijven van gebeurtenissen |
Snipcart beschrijft een API-aanroep als polling: de client vraagt zelf gegevens op bij de server. AppMaster noemt API’s synchroon en door de client geïnitieerd, en webhooks asynchroon en door de bron geactiveerd. In de praktijk werken ze vaak samen: een webhook meldt dat er een nieuwe bestelling is, en via de API haalt de ontvanger daarna de volledige details op.
Voorbeelden van webhooks
- Betalingen. Een betaalprovider meldt dat een betaling is gelukt of mislukt, zodat de bestelling automatisch op betaald gaat.
- Webshops. Een nieuwe bestelling start de verzending of een melding aan het team.
- Formulieren. Een ingevuld websiteformulier komt direct als lead in het CRM.
- E-mail. Een mailprogramma meldt een uitschrijving of een bounce.
- Accountkoppelingen. Snipcart beschrijft hoe Stripe na het koppelen van een account via een webhook het nieuwe account-ID doorgeeft.
- Automatiseringstools. Zapier, Make en n8n kunnen een workflow starten op een inkomende webhook.
Hoe beveilig je een webhook?
Een webhook-URL is een openbaar adres. Iedereen die het kent, kan er in principe iets naartoe sturen. AppMaster noemt deze maatregelen:
- HTTPS, zodat gegevens versleuteld worden verstuurd.
- Een handtekening controleren. Veel diensten ondertekenen elk bericht met een geheime sleutel, zodat de ontvanger kan nagaan of het echt van de verzender komt.
- IP-adressen of API-sleutels controleren als extra toegangscontrole.
Vertrouw de inhoud van een webhook daarnaast niet blind. Bij een betaling is het verstandig om de status via de API van de betaalprovider te bevestigen voordat je een bestelling vrijgeeft.
Waar gaat het mis bij webhooks?
- Berichten komen niet aan. Als de ontvanger even offline is, mist hij de gebeurtenis. AppMaster adviseert foutafhandeling en een retry-mechanisme.
- Dubbele berichten. Door herhaalpogingen kan hetzelfde bericht twee keer binnenkomen. De ontvanger moet dat herkennen, zodat een bestelling niet dubbel wordt verwerkt.
- Volgorde. Berichten komen niet altijd in de juiste volgorde aan.
- Trage verwerking. Bij veel verkeer is volgens AppMaster een wachtrij aan te raden: eerst ontvangen en bevestigen, daarna op de achtergrond verwerken.
- Geen overzicht. Zonder logboek is moeilijk na te gaan wat er is ontvangen en wat er misging.
Voor testen noemt AppMaster tools als RequestBin, waarmee je inkomende verzoeken bekijkt, en Postman.
Wat betekent dit voor jouw project?
Een webhook is technisch eenvoudig, maar het ontwerp eromheen bepaalt of het werkt. Ik kijk analytisch naar het proces: wat komt binnen, wie moet ermee verder en welke informatie heeft die persoon nodig? Een bericht dat automatisch binnenkomt, is pas waardevol als duidelijk is wat er daarna gebeurt en wie het oppakt als iets misgaat. Bij een nieuw idee onderzoek ik eerst of een bestaand pakket, een koppeling of maatwerk het beste past.
Vraag? Welke gegevens typen jullie nu over van het ene systeem naar het andere? Stuur me hoe het nu gaat en wie ermee werkt. Dan kijken we in ongeveer twintig minuten waar een logische eerste stap ligt.
Veelgestelde vragen over webhooks
Wat is een webhook in simpele woorden?
Een webhook is een automatisch bericht van de ene applicatie naar de andere zodra er iets gebeurt, zoals een nieuwe bestelling. De ontvanger hoeft niet zelf steeds te controleren, maar krijgt de gegevens direct toegestuurd.
Wat is het verschil tussen een webhook en een API?
Bij een API vraagt de ontvanger zelf om gegevens wanneer hij die nodig heeft. Bij een webhook stuurt de bron de gegevens automatisch zodra er een gebeurtenis plaatsvindt. Ze worden vaak samen gebruikt.
Zijn webhooks veilig?
Webhooks zijn veilig als ze goed zijn ingericht: verzending via HTTPS, controle van een handtekening of geheime sleutel, en validatie van de inhoud. Zonder die maatregelen kan iedereen die de URL kent gegevens naar de ontvanger sturen.
Verwante termen
API-koppeling · API · REST API · Workflow automatisering · Zapier · Middleware
← Terug naar de kennisbank