Meta Tech Provider

WhatsApp-webhooks: berichten rechtstreeks naar je server routeren

Een WhatsApp-webhook is een HTTPS-endpoint dat je aanwijst. Meta plaatst er gebeurtenissen op: binnenkomende berichten, leveringsstatussen, kwaliteitswijzigingen en accountupdates. Bij een Coexistence-nummer kun je de bestemming op je eigen server instellen, zodat gesprekken nooit via een provider lopen.

  • Meta plaatst gebeurtenissen rechtstreeks op je URL
  • Jouw endpoint, niet het platform van een provider
  • Eén override per WhatsApp Business Account
Start je gratis proefperiode

7 dagen lang niets betalen. Annuleer op elk moment.

Geen berichtopslagBusiness-app + Cloud APIMCP voor Claude en ChatGPTLive in 2 minuten
1 URL

Wat de volledige integratie is: één HTTPS-bestemming per account.

2 fields

messages en smb_message_echoes, de berichtpad-gebeurtenissen die naar je worden gerouteerd.

hub.challenge

De waarde die Meta verstuurt tijdens de GET-handshake en die je endpoint moet teruggeven.

Wat verstuurt Meta precies naar een webhook?

Gebeurtenissen, ingedeeld in categorieën. Het onderscheid bepaalt je architectuur.

Het berichtpad bevat wat klanten versturen en bij een Coexistence-nummer ook echo's van wat je team vanuit de WhatsApp Business-app verstuurt. Dat zijn de velden messages en smb_message_echoes, waarin de gespreksinhoud staat.

Het operationele pad bevat al het andere: account_update wanneer de verbindingsstatus verandert, phone_number_quality_update wanneer kwaliteit of verwerkingssnelheid wijzigt, account_alerts, account_review_update, business_capability_update en phone_number_name_update. Deze bevatten geen gespreksinhoud en vormen de basis voor monitoring.

Een provider die zichzelf in het berichtpad plaatst, ontvangt de eerste groep. Een provider die dat niet doet, ontvangt die niet.

Hoe verifieert Meta een endpoint?

Met een GET-verzoek voordat Meta iets aflevert. Het mislukken hiervan is de meest voorkomende reden waarom een installatie die klaar lijkt geen bericht ontvangt.

Meta roept je URL aan met hub.mode ingesteld op subscribe, je hub.verify_token en een waarde voor hub.challenge. Je endpoint moet die challenge als onbewerkte antwoordtekst teruggeven, niet verpakt in JSON en zonder toevoegingen. Als dat niet gebeurt, begint Meta nooit met afleveren en meldt geen enkel dashboard dit.

Het endpoint moet ook HTTPS gebruiken. Een endpoint dat stil een 404 teruggeeft, of achter een authenticatielaag staat die Meta afwijst, lijkt tot aan het uitblijven van het eerste bericht identiek aan een werkende installatie.

Kan de bestemming naar je eigen server wijzen?

Ja, en hierin verschillen providers van elkaar.

Meta laat een app bepalen waar een bepaald WhatsApp Business Account zijn webhooks aflevert. Wij stellen die override in op jouw URL, waardoor de gebeurtenissen uit het berichtpad van onze callback naar jou gaan. De operationele gebeurtenissen houden we wel, omdat het dashboard en de waarschuwingen daarop zijn gebaseerd.

Het gevolg is architectonisch en geen beleid dat we publiceren. Gespreksinhoud kan aan onze kant nergens worden opgeslagen, omdat die nooit bij ons wordt afgeleverd. Een account zonder ingestelde override valt terug op onze standaard-callback, waar de verwerker deze gebeurtenissen weggooit zonder ze op te slaan.

Wat gebeurt er met de bestemming wanneer een nummer opnieuw verbinding maakt?

Die wordt verwijderd. Bijna niemand houdt rekening met dit probleem.

De bestemming is geen eigenschap van het telefoonnummer. Het is een override op het app-abonnement van onze app op het WhatsApp Business Account. Wanneer een verbinding wordt verwijderd, door Meta's regel voor veertien dagen inactiviteit of anderszins, wordt de app van dat account verwijderd en verdwijnt de override mee.

Opnieuw verbinden herstelt het versturen en de monitoring. Het herstelt niet de aflevering naar je server en er wordt geen fout gemeld. Het eerste signaal is daarom vaak een klant die zegt dat niemand heeft geantwoord. We passen de override na elke nieuwe verbinding opnieuw toe, omdat dit gebeurde met een echt nummer dat probleemloos opnieuw verbinding maakte en daarna stilviel.

Veelgemaakte fouten

  • JSON teruggeven vanuit de verificatie-GET. Meta wil de onbewerkte waarde van hub.challenge en niets anders.
  • Een tijdelijke of test-URL gebruiken. Meta blijft daar afleveren nadat de tool die de URL genereerde niet meer luistert.
  • Aannemen dat de bestemming een nieuwe verbinding overleeft. Die staat op een app-abonnement en wordt ermee verwijderd.
  • Het endpoint achter authenticatie plaatsen die Meta's verzoek afwijst.
Dit doen met EasyCoexistence

EasyCoexistence stelt de webhook-override in op je endpoint, valideert die vóór de oproep en past hem na elke nieuwe verbinding automatisch opnieuw toe. Vanaf US$ 9 per nummer per maand, dalend naar US$ 2 bij grotere volumes, met de eerste 7 dagen gratis.

Veelgestelde vragen

Gaan mijn berichten via EasyCoexistence?

Nee. De override stuurt gebeurtenissen uit het berichtpad rechtstreeks van Meta naar je endpoint. Gebeurtenissen voor een account zonder override vallen terug op onze callback en worden weggegooid zonder ze op te slaan.

Kan ik de bestemming later wijzigen?

Ja, op elk moment via het dashboard of de MCP-connector. null instellen zet de bestemming terug naar onze standaard.

Wat gebeurt er als mijn server offline is wanneer Meta aflevert?

Meta probeert het een bepaalde tijd opnieuw en stopt daarna. Berichten komen nog steeds aan in de WhatsApp Business-app op de telefoon, zodat het bedrijf niets verliest, ook als de integratie uitvalt.

Is één webhook genoeg voor meerdere nummers?

Ja. Wijs elk nummer naar hetzelfde endpoint en vertak op phone number id in de payload.

Lees verder

Klaar om te beginnen?

Stel WhatsApp Coexistence in enkele minuten in, niet maanden. De app blijft op je telefoon werken.

Start je gratis proefperiode7 dagen lang niets betalen. Annuleer op elk moment.

Geverifieerd op

WhatsApp-webhooks uitgelegd