Naar de inhoud

Begrip

Wat is een webhook? Een seintje van de ene app aan de andere

Hoe een betaling, formulier of aanvraag meteen in je eigen software landt, zonder dat die elke minuut moet gaan vragen.

Wachtrij op kantoor bij DA Logistics: elke aanvraag van een chauffeur verschijnt meteen, zoals een webhook een bericht doorgeeft
Webhook
Een webhook is een bericht dat een app automatisch naar een webadres van een andere app stuurt zodra er iets gebeurt, zodat die niet telkens hoeft te vragen of er iets nieuw is.
Ook genoemdwebhook-URLHTTP-callbackweb hook

Door , Oprichter en CEO

6 min lezen
Op deze pagina
  1. 01Blijven vragen of het seintje krijgen
  2. 02Een fietsslot van 59 euro, seconde per seconde
  3. 03Mollie en Stripe doen het elk anders
  4. 04De rekening: per betaling, niet per bericht

Blijven vragen of het seintje krijgen

Een webhook draait om wie het gesprek begint. Zonder webhook vraagt je software telkens aan een andere dienst of er iets veranderd is: is die betaling al binnen, is dat formulier al ingevuld? Dat heet polling. Met een webhook meldt de andere dienst het zelf, op het moment dat het gebeurt. Je geeft een keer een webadres op, bijvoorbeeld in het dashboard van je betaalprovider, en vanaf dan komt elk bericht daar binnen als een gewone HTTP-POST.

Bij een gewone API-koppeling vraag jij en antwoordt de andere kant. Bij een webhook vertelt de andere kant, en jij luistert. In de praktijk werken ze samen: het bericht zegt dat er iets is, de API geeft de details.

De naam is van programmeur Jeff Lindsay, die er in mei 2007 over schreef. Zijn vergelijking: op de commandoregel van Unix koppel je sinds 1973 programma's met pipes, de uitvoer van het ene wordt de invoer van het andere. Op het web bestond dat niet; daar moest je zelf blijven kijken. "If you could avoid polling, you probably would", schreef hij. Twee jaar later toonde GitHub hoe het werkt: bij elke wijziging aan je code stuurt het een POST naar het adres dat jij opgeeft. Vandaag werken betaaldiensten, boekhoudpakketten, CRM's en automatiseringstools allemaal zo. Welke soort koppeling past bij jouw pakketten, met webhook of zonder, lees je op koppeling laten maken.

Een uur webshop: twaalf vragen of een bericht

Een uur in een webshop, tussen 14:00 en 15:00

Polling: elke 5 minuten vragen

betaald

12 vragen, 11 keer niets nieuw. De betaling van 14:23 zie je pas om 14:25.

Webhook: de betaaldienst meldt het zelf

14:23

1 bericht, op het moment dat het gebeurt.

Zo verloopt een webhook van Mollie

  1. 01De klant betaaltMet Bancontact, om 14:23.
  2. 02Mollie stuurt een POSTNaar jouw webhook-URL, met alleen het id van de betaling.
  3. 03Jouw server vraagt de status opVia de API van Mollie, met je eigen sleutel. Zo kan niemand een betaling vervalsen.
  4. 04Antwoord 200 OKBinnen 15 seconden. Anders probeert Mollie het opnieuw, tot 10 keer in ongeveer 26 uur.
  5. 05De bestelling staat op betaaldDe bevestigingsmail vertrekt, het magazijn ziet de order.

Polling vraagt telkens of er iets veranderd is. Een webhook draait het om: de andere app laat het weten zodra het gebeurt.

Een fietsslot van 59 euro, seconde per seconde

Stel: een fietsenwinkel verkoopt online en laat klanten betalen via Mollie. Om 14:23 rekent een klant een fietsslot van 59 euro af met Bancontact.

  1. Binnen enkele seconden stuurt Mollie een POST naar de webhook-URL van de webshop. Er staat alleen het id van de betaling in, niet de status.
  2. De webshop vraagt de status zelf op via de API van Mollie, met zijn eigen sleutel. Wie een vals bericht naar het adres stuurt, kan zo geen bestelling op betaald zetten.
  3. De webshop antwoordt met 200 OK, binnen 15 seconden. Lukt dat niet, dan probeert Mollie opnieuw, tot 10 keer, de laatste poging ongeveer 26 uur later.
  4. De bestelling staat op betaald, de bevestigingsmail vertrekt en het magazijn ziet de order.

Zonder webhook vraagt de webshop zelf aan Mollie of er iets veranderd is. Elke vijf minuten, zoals in de figuur, zijn dat 288 vragen per dag en ziet hij de betaling tot vijf minuten te laat. Elke minuut zijn het er 1.440 per dag en ongeveer 43.200 per maand, voor misschien een paar honderd betalingen. GitHub zegt het in zijn documentatie: wie elke resource apart bevraagt, zit snel aan de grens van wat een API toelaat.

Mollie en Stripe doen het elk anders

AanbiederWat er in het bericht zitHoe je weet dat het echt isBij een fout aan jouw kant
MollieAlleen het id van de betalingJe haalt de status zelf op via de API10 pogingen, laatste na ongeveer 26 uur
StripeHet hele event als JSON, bv. dat een betaling gelukt isHandtekening in de header Stripe-Signature, HMAC met SHA-256Tot drie dagen opnieuw, met oplopende pauzes

Lees daarom altijd de documentatie van de aanbieder voor je bouwt. Los van de aanbieder verschillen polling en een webhook op vijf punten:

VraagPollingWebhook
Wie begintJouw software vraagtDe andere dienst meldt
SnelheidZo traag als je intervalBijna meteen
BelastingVeel lege vragenEen bericht per gebeurtenis
Als jouw server plat ligtJe vraagt later opnieuwDe dienst probeert opnieuw, tot een grens
Kies het voorDiensten zonder webhooks, of een export per nachtBetalingen, formulieren, statuswijzigingen

De rekening: per betaling, niet per bericht

Mollie rekent 0,39 euro per Bancontact-betaling en 1,80 procent plus 0,25 euro voor een Europese consumentenkaart; de webhook zelf is gratis. Op het slot van 59 euro betaal je dus 0,39 euro met Bancontact of 1,31 euro met een kaart. Het werk zit aan jouw kant: een adres dat de berichten over https ontvangt, met een geldig SSL-certificaat, ze controleert en verwerkt.

Kies een automatiseringstool als het bericht alleen iets in een ander pakket moet zetten, zoals een rij in een spreadsheet of een contact in je CRM. Welke tool welk plan vraagt, staat in Make, Zapier of n8n.

Kies een ontvangstadres in je eigen software als het bericht daar iets moet doen: een order aanmaken, een factuur via Peppol klaarzetten, een dossier bijwerken. Dat is een kleine, afgebakende klus naast facturatiesoftware op maat of een klantenportaal.

Heeft een SaaS geen webhooks en geen API, dan blijft soms alleen RPA over, een robot die klikt waar een mens klikte. Wil je een AI-assistent toegang geven tot je systemen, dan gebeurt dat steeds vaker via MCP.

Een ontvangstadres dat niets mist, waar je bouwer op let

  • Het adres draait alleen over https, met een geldig certificaat.
  • Elk bericht wordt gecontroleerd: een handtekening nagerekend, of de status zelf opgehaald bij de aanbieder.
  • De server antwoordt meteen met 200 en doet het werk daarna in een wachtrij, zodat een trage stap geen time-out geeft.
  • Dubbele berichten doen geen kwaad: het id van elk event wordt bewaard en een tweede keer niets opnieuw geboekt.
  • De volgorde maakt niet uit: een betaling die binnenkomt voor de bestelling, wordt toch juist gekoppeld.
  • Elk bericht wordt gelogd, zodat je achteraf ziet wat er binnenkwam en wat misliep.
  • Een controle per nacht via de API vangt op wat tijdens een storing gemist werd.

Wat bouwers en zaakvoerders vaak vragen

Wat is een webhook-URL?

Het webadres in jouw software waar de andere dienst zijn berichten naartoe stuurt, bijvoorbeeld https://jouwshop.be/webhooks/mollie. Je vult het in bij de aanbieder. Behandel het als een deur: alleen over https, en controleer elk bericht dat binnenkomt.

Wat gebeurt er als mijn server offline is?

De meeste aanbieders proberen opnieuw. Mollie doet dat tot 10 keer in ongeveer 26 uur, Stripe tot drie dagen. Ligt je server langer plat, dan mis je berichten; een controle per nacht via de API vangt die op.

Kan iemand een vals bericht sturen?

Iedereen die het adres kent, kan er iets naartoe sturen. Daarom reken je de handtekening na als de aanbieder er een meestuurt, of haal je de status zelf op zoals Mollie vraagt. Vertrouw nooit blind op de inhoud van het bericht.

Heb ik een programmeur nodig?

Niet als het bericht alleen een rij in een spreadsheet of een contact in je CRM moet worden: dat doet een automatiseringstool. Moet het in je eigen software iets boeken, dan wel.

AI automatisatie

Hoe VBS je apps met webhooks koppelt

We koppelen de diensten die je al gebruikt aan je eigen software, met webhooks waar de aanbieder ze heeft en een nachtelijke controle als vangnet. Hetzelfde patroon draait in het platform van DA Logistics: een aanvraag van een chauffeur, voor verlof, een bonnetje of een schade, zet meteen een taak in de juiste van vijf wachtrijen op kantoor, en een maillaag met veertien soorten berichten laat iedereen weten wat er gebeurde. Bekijk AI-automatisatie voor koppelingen tussen pakketten, software op maat als het bericht in je eigen platform moet landen, of plan een gesprek.

Welke twee apps praten bij jou nog via iemands toetsenbord?

Zeg welke diensten je gebruikt. We zoeken uit welke webhooks ze hebben en wat je eigen software ermee kan doen.

Optioneel, als je liever gebeld wordt.

Wat wil je bereiken, en wat staat er al?

We gebruiken je gegevens alleen om je te antwoorden.