Bereik klanten wereldwijd met WhatsApp API
Verbind marketing-, service- en operationele teams met klanten op 's werelds populairste messaging-app.
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({
apiKey: process.env.BIRD_API_KEY!,
});
const msg = await bird.whatsapp.send({
to: "+15551234567",
template: {
slug: "bird_delivery_update",
components: [{ type: "body", parameters: [
{ type: "text", name: "ref", text: "#4821" },
{ type: "text", name: "date", text: "Wednesday" },
] }],
},
});
console.log(msg.id, msg.status);
// → "wam_01krdgeqcxet5s7t44vh8rt9mg", "accepted"5 minuten van npm install tot eerste verzending
Verstuur een WhatsApp-bericht in de taal die u al gebruikt.
SDK's in elke belangrijke runtime. De eerste verzending gaat via een door Bird beheerd template zoals bird_delivery_update, al goedgekeurd door Meta en met automatische afzenderselectie, zodat u een echt bericht ziet aankomen voordat u er zelf een schrijft.
const msg = await bird.whatsapp.send({
to: "+15551234567",
template: {
slug: "bird_otp",
components: [{ type: "body", parameters: [{ type: "text", text: "123456" }] }],
},
});
console.log(msg.id, msg.status);Twijfel je tussen de app en een integratie? Vergelijk de WhatsApp Business-app en het Platform API en volg dan de WhatsApp-verzendgids om het voorbeeld in je applicatie te gebruiken.
Acht dingen die wij regelen tussen u en Meta.
WhatsApp is afgeschermd: een goedgekeurd template, een opted-in ontvanger, een geverifieerd bedrijf. Die drempels veranderen niet. Uw provider bepaalt of ze in uw code zichtbaar zijn of verborgen zitten in een dashboard.
- 01
Officiële Meta Business Solution Provider (BSP)
Directe relatie met Meta sinds het bestaan van de API. Geen doorverkocht transport, geen tussenstation van derden.
- 02
Templatebeheer
Bekijk de catalogus en Meta's beoordeling per taal vanuit de CLI of MCP-tools. Het opstellen en indienen gebeurt in het dashboard.
- 03
Templates in elke taal
Eén slug, meerdere talen. Geef er één op bij het verzenden, of laat de standaardtaal van het template het bepalen.
- 04
Knoppen en carrousels
Link-, snelantwoord-, telefoonnummer- en kopieercode-knoppen, en carrousels met 2-10 kaarten.
- 05
Media en rijke content
Afbeeldingen, video, audio, stickers, documenten en locatie, elk in één verzendveld.
- 06
Tags en metadata bij elke verzending
Tags worden filter- en analysedimensies; metadata komt terug bij elke webhook.
- 07
Webhooks voor inkomende berichten
HMAC-ondertekende events voor inkomende berichten, bezorgbevestigingen en leesbevestigingen.
- 08
3 miljard+ gebruikers via één endpoint
Meer dan drie miljard maandelijkse WhatsApp-gebruikers bereikbaar via één enkele bird.whatsapp.send-aanroep.
Ontdek het WhatsApp-platform
Elke mogelijkheid in detail. Eén API, één set sleutels.
Templates.
Categorieën, goedkeuring per taal en placeholders die bij verzending worden ingevuld.
Verzenden.
Eén contenttype per verzoek, idempotency keys, tags en metadata.
Tweerichtingsverkeer.
Inkomende berichten, het 24-uurs klantenservicevenster en antwoorden.
Nummers.
Door Bird beheerde afzenders, uw eigen nummer meebrengen en zakelijke accounts.
Prijzen.
Eén alles-in-tarief per bericht, op basis van bestemmingsland en categorie.
Veelgestelde vragen.
Elke WhatsApp-vraag op één plek, van eerste verzending tot analytics.
Waarom wij WhatsApp bouwen
Wij waren een van de eerste WhatsApp BSP's. We zijn nog steeds een van de weinigen die mee-ontwikkelen met uw code.
WhatsApp is afgeschermd. U hebt een goedgekeurd template nodig; u hebt een open klantenservicevenster nodig om iets anders te versturen; u hebt een Meta-bedrijfsverificatie nodig. Dat verandert niet, en dat zal het ook niet. Wat wel verandert, is of uw BSP die drempels makkelijker of moeilijker maakt: door ze zichtbaar te maken in uw code, via webhooks waarop u zich kunt abonneren, in foutmeldingen die precies vertellen wat er mis is. Wij kozen het eerste.
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({
apiKey: process.env.BIRD_API_KEY!,
});
const msg = await bird.whatsapp.send({
to: "+15551234567",
template: {
slug: "bird_delivery_update",
components: [{ type: "body", parameters: [
{ type: "text", name: "ref", text: "#4821" },
{ type: "text", name: "date", text: "Wednesday" },
] }],
},
});
console.log(msg.id, msg.status);
// → "wam_01krdgeqcxet5s7t44vh8rt9mg", "accepted"Elke statuswijziging is een webhook.
HMAC-ondertekende payloads, replay-beschermd, idempotent. Dezelfde envelope op elk Bird-kanaal: leer er één, en u kent ze allemaal.
{
"type": "whatsapp.read",
"timestamp": "2026-05-19T15:42:08.114Z",
"data": {
"whatsapp_id": "wam_01krdgeqcxet5s7t44vh8rt9mg",
"workspace_id": "ws_01krdgeqcxet5s7t44vh8rt9mg",
"direction": "outbound",
"from": { "phone_number": "+15557654321" },
"to": { "phone_number": "+15551234567" },
"tags": [{ "name": "campaign", "value": "order-updates" }],
"metadata": { "order_id": "BRD-49217" }
}
}Herhalingsschema: 5s, 5m, 30m, 2u, 5u, daarna tweemaal 10u. Na de laatste poging mislukt de bezorging definitief, en replay herstelt deze vanuit het dashboard of de API.
whatsapp.acceptedGeaccepteerd door de API en in de wachtrij gezet voor verzending naar Meta.whatsapp.sentOvergedragen aan Meta's Cloud API.whatsapp.deliveredMeta meldt dat het bericht op het apparaat van de ontvanger is afgeleverd.whatsapp.readOntvanger heeft het bericht geopend (als leesbevestigingen aan staan).whatsapp.rejectedGeweigerd vóór verzending, en niet in rekening gebracht: redencode in de payload.whatsapp.failedPermanente fout: redencode in de payload.whatsapp.receivedInkomend bericht van een WhatsApp-gebruiker.
Dezelfde klant bereiken via SMS is dezelfde aanroep, één veld verder.
Dezelfde client, dezelfde authenticatie, dezelfde foutstructuur, dezelfde webhook-opbouw. Wat verandert is de payload: WhatsApp bevat een door Meta goedgekeurd template, SMS bevat tekst. Tags en metadata reizen bij beide mee, zodat één set dashboards beide kanalen dekt.
await bird.whatsapp.send({
to: "+15551234567",
template: {
slug: "bird_delivery_update",
language: "en",
components: [{ type: "body", parameters: [
{ type: "text", name: "ref", text: "BRD-49217" },
{ type: "text", name: "date", text: "10 Jul 2026" },
] }],
},
});Een door Bird beheerd template: goedgekeurd door Meta, beschikbaar in 70+ talen, en het kiest automatisch een afzender. Plaatshouderwaarden worden meegegeven als componenten.
SMS
await bird.sms.send({
from: "Bird",
to: "+15551234567",
text: `Your order BRD-49217 has shipped.`,
category: "transactional",
});Hetzelfde werkwoord op het andere kanaal: vrije tekst plus een categorie, zonder templategoedkeuring in de weg.
Één tarief per bericht, inclusief de Meta-kosten.
Prijzen op basis van gebruik. Elk tarief dekt de kosten van Meta en die van ons in één bedrag, en beweegt mee met het bestemmingsland en de berichtcategorie. Geen kosten per gebruiker en niets achter een jaarcontract.
Verstuur je eerste verzoek voordat je code schrijft.
De volledige openbare API is een Postman-collectie, gegenereerd uit dezelfde OpenAPI-specificatie als de SDK's, met een voorbeeldverzoek en -antwoord op elk endpoint. Fork de collectie naar je eigen werkruimte, stel een API-sleutel in en verstuur een live verzoek.
Breng het in de praktijk.
Ga verder met de documentatie, gidsen en voorbeelden voor dit onderwerp. De bronnen zijn in het Engels.