WhatsApp-webhooks
Bird pusht WhatsApp-activiteit naar je endpoint zodra die plaatsvindt, zodat je er niet voor hoeft te pollen. Abonneer je via de Webhooks-pagina of met POST /v1/webhooks. De Webhooks-gids behandelt endpoints, handtekeningverificatie en opnieuw proberen.
Gebeurtenissen waarop je je kunt abonneren
Elke gebeurtenis linkt naar zijn payload.
| Gebeurtenis | Wordt verstuurd wanneer |
|---|---|
whatsapp.accepted | Bird accepteert een uitgaand verzendverzoek |
whatsapp.sent | Bird draagt het bericht over aan het WhatsApp-netwerk |
whatsapp.delivered | WhatsApp bevestigt aflevering op het apparaat van de ontvanger |
whatsapp.read | De ontvanger opent het bericht |
whatsapp.failed | Het bericht kan niet worden afgeleverd |
whatsapp.rejected | Bird weigert het bericht voordat het wordt verzonden |
whatsapp.received | Een contact stuurt je een bericht |
whatsapp.reacted | Een contact voegt een reactie toe, wijzigt of verwijdert deze |
whatsapp_suppression.created | Er wordt een onderdrukking geopend op je werkruimte |
whatsapp.group.join_request_created | Iemand vraagt om lid te worden van een groep |
whatsapp.group.join_request_revoked | Iemand trekt het verzoek om lid te worden van een groep in |
De lijst met gebeurtenistypen is open: er kunnen in de loop van de tijd nieuwe typen worden toegevoegd. Behandel een onbekende waarde als een toekomstige gebeurtenis, niet als een fout.
De gebeurtenisenvelop
Elke WhatsApp-gebeurtenis gebruikt de standaard webhook-envelop: een type, een timestamp en een typespecifiek data-object.
{
"data": {
"direction": "outbound",
"from": { "phone_number": "+13124495569" },
"metadata": { "session_id": "sess_4821" },
"tags": [{ "name": "flow", "value": "login-otp" }],
"to": { "phone_number": "+14155550100" },
"whatsapp_id": "wam_01ky7qbvswf3fvyaw3az90391c",
"workspace_id": "ws_01ky7m235keycbnwyajabe1a6b"
},
"timestamp": "2026-07-23T14:51:39.913Z",
"type": "whatsapp.delivered"
}Velden die elke berichtgebeurtenis bevat
Elke WhatsApp-webhookpayload voor een bericht bevat whatsapp_id, workspace_id, direction, from, to, tags en metadata. De reactie-, onderdrukkings- en groepsgebeurtenissen gaan niet over een bericht en hebben elk hun eigen structuur, beschreven op hun eigen pagina.
- Adressen:
fromentokunnen een E.164-phone_number, een Meta business-scoped user ID inbsuid, of beide bevatten. Een bericht dat is ontvangen van een WhatsApp-gebruiker bevat ook het profiel dat deze publiceert, inusernameendisplay_name. tagsenmetadatazijnnullwanneer het verzendverzoek er geen bevatte.in_reply_to_message_idverschijnt bij elke uitgaande gebeurtenis van een bericht dat als antwoord is verzonden, vanwhatsapp.acceptedtot en metwhatsapp.read,whatsapp.failedofwhatsapp.rejected, en benoemt het bericht waarop wordt geantwoord.
Gebeurtenispayloads bevatten geen kosten. Lees het bericht terug met GET /v1/whatsapp/messages/{message_id} om de kosten te bekijken.
Volgende stappen
- Berichtstatus-webhooks: payloads voor bezorging en mislukte berichten
- Inkomende-bericht-webhooks: de
whatsapp.received-payload - Reactie-webhooks: de
whatsapp.reacted-payload - Webhooks-gids: endpoints, handtekeningen, nieuwe pogingen en de volledige gebeurtenissencatalogus
Gerelateerde bronnen
Ga verder met de documentatie, handleidingen en voorbeelden voor dit onderwerp.