WhatsApp Business API bez zbędnej biurokracji BSP.
Oficjalny dostawca rozwiązań Meta Business od momentu powstania API. Zatwierdzanie szablonów, okna sesji, multimedia, wiadomości interaktywne — wszystko obsłużone. Ponad dwa miliardy aktywnych użytkowników WhatsApp miesięcznie, dostępnych z jednego endpointu, który wygląda jak każdy inny kanał Bird.
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
const { data, error } = await bird.whatsapp.send({
to: "+15005550009",
template: "order_shipped",
locale: "en_US",
variables: {
customer_name: "Ada",
order_id: "BRD-49217",
tracking_url: "https://track.bird.dev/49217",
eta: "Thursday, May 21",
},
}).safe();
if (error) throw error;
console.log(data.id);
// → "wa_msg_8nB91Yk3p..."
5 minut od npm install do pierwszej wysyłki
Wyślij wiadomość WhatsApp w języku, którego już używasz.
SDK dla każdego popularnego środowiska uruchomieniowego. Pierwsza wiadomość trafia do autoryzowanego odbiorcy testowego (+15005550009) z wcześniej zatwierdzonym szablonem, dzięki czemu możesz uruchomić test CI, zanim zgłosisz swój pierwszy szablon do zatwierdzenia.
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
const { data, error } = await bird.whatsapp.send({
to: "+15005550009",
template: "hello_world",
locale: "en_US",
}).safe();Dziesięć rzeczy, które BSP przed Tobą ukrywa. My nie.
WhatsApp jest kontrolowany przez Meta. Wybór BSP to kwestia tego, czy ograniczenia pojawiają się w Twoim kodzie, czy są ukryte w dashboardzie. My wybraliśmy kod.
- 01
Oficjalny dostawca rozwiązań biznesowych Meta (BSP)
Bezpośrednia relacja z Meta od momentu powstania API. Bez pośredników, bez dodatkowych przeskoków.
- 02
Zarządzanie szablonami
Wysyłaj szablony, śledź status zatwierdzenia i otrzymuj webhook w momencie, gdy Meta zatwierdzi lub odrzuci.
- 03
Świadomość okna sesji
SDK informuje Cię przed wysyłką, czy dozwolona jest wiadomość dowolna, czy wymagany jest szablon.
- 04
Wiadomości interaktywne
Przyciski, listy, karty produktów i WhatsApp Flows — deklarowane w tym samym payloadzie.
- 05
Multimedia i treści rozszerzone
Obrazy, wideo, dokumenty, lokalizacja, kontakty, podglądy linków, reakcje i odpowiedzi.
- 06
WhatsApp Flows
Wieloetapowe formularze w aplikacji z walidacją po stronie backendu, definiowane jako JSON, wykonywane przez Meta.
- 07
Reklamy Click-to-WhatsApp
Integracja z Meta Ads Manager — kliknięcia w reklamę trafiają do konwersacji, na którą możesz odpowiedzieć.
- 08
Fallback między kanałami
Dodaj fallback: "sms" do dowolnego wysłania. Po wygaśnięciu sesji wiadomość automatycznie kierowana jest przez SMS.
- 09
Webhooki wiadomości przychodzących
Zdarzenia podpisane HMAC dla wiadomości przychodzących, potwierdzeń odczytu, reakcji i stanów szablonów.
- 10
Ponad 2 mld użytkowników na jednym endpoincie
Ponad dwa miliardy aktywnych użytkowników WhatsApp miesięcznie, dostępnych z jednego wywołania bird.whatsapp.send.
Dlaczego tworzymy WhatsApp
Byliśmy jednym z pierwszych BSP WhatsApp. Nadal jesteśmy jednym z niewielu, którzy dostarczają kod razem z Tobą.
WhatsApp jest kontrolowany. Potrzebujesz zatwierdzonego szablonu, okna sesji z wyrażoną zgodą i weryfikacji biznesowej Meta. To się nie zmieni. Zmienia się to, czy Twój BSP ułatwia, czy utrudnia przejście przez te bramki — czy udostępnia je w kodzie, w webhookach, na które możesz subskrybować, w błędach, które mówią dokładnie, co jest nie tak. My wybraliśmy to pierwsze.
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
const { data, error } = await bird.whatsapp.send({
to: "+15005550009",
template: "order_shipped",
locale: "en_US",
variables: {
customer_name: "Ada",
order_id: "BRD-49217",
tracking_url: "https://track.bird.dev/49217",
eta: "Thursday, May 21",
},
}).safe();
if (error) throw error;
console.log(data.id);
// → "wa_msg_8nB91Yk3p..."
Każda zmiana stanu to webhook.
Payloady podpisane HMAC, zabezpieczone przed powtórzeniem, idempotentne. Ta sama struktura w każdym kanale Bird: naucz się jednego, a znasz je wszystkie.
{
"type": "whatsapp.read",
"id": "evt_7kQ02v...",
"created_at": "2026-05-19T15:42:08.114Z",
"data": {
"wa_msg_id": "wa_msg_8nB91Yk3p",
"from": "+15551234567",
"to": "+15005550009",
"conversation_id": "wa_conv_3pX1g7t",
"template": "order_shipped",
"delivered_at": "2026-05-19T15:42:01.802Z",
"read_at": "2026-05-19T15:42:08.020Z"
}
}
Harmonogram ponownych prób: 5s, 30s, 5m, 30m, 2h, 6h, 12h. Dead-letter po ostatniej próbie; każde zdarzenie dead-letter można odtworzyć z dashboardu lub API.
whatsapp.queuedPrzyjęto przez API i umieszczono w kolejce do wysyłki do Meta.whatsapp.sentPrzekazano do Meta Cloud API.whatsapp.deliveredMeta potwierdza, że wiadomość dotarła na urządzenie odbiorcy.whatsapp.readOdbiorca otworzył wiadomość (jeśli potwierdzenia odczytu są włączone).whatsapp.failedTrwały błąd: kod przyczyny w payloadzie.whatsapp.receivedWiadomość przychodząca od użytkownika w 24-godzinnym oknie sesji.whatsapp.template.approvedMeta zatwierdziło zgłoszony przez Ciebie szablon.whatsapp.template.rejectedMeta odrzuciła szablon: powód odrzucenia w payloadzie.
Fallback na SMS to jeden atrybut, a nie druga integracja.
Jeśli WhatsApp nie może dostarczyć wiadomości — sesja wygasła, odbiorca nie wyraził zgody, szablon jeszcze niezatwierdzony — Bird kieruje tę samą wiadomość przez SMS w tym samym żądaniu. Ta sama autoryzacja, ten sam kontrakt idempotentności, ten sam format webhooka po drugiej stronie.
WhatsApp z fallbackiem.
await bird.whatsapp.send({
to: "+15005550009",
template: "order_shipped",
variables: { order_id: "BRD-49217" },
fallback: "sms",
});
Jeden payload, jedno uwierzytelnienie. Wygaśnięcie sesji, brak zgody, niezatwierdzony szablon — wszystko automatycznie kierowane przez SMS.
SMS bezpośrednio.
await bird.sms.send({
from: "Bird",
to: "+15005550006",
text: `Your order BRD-49217 has shipped.`,
category: "transactional",
});
Te same połączenia, adresowane bezpośrednio. Użyj, gdy chcesz jawnie wybrać ścieżkę SMS.