WhatsApp Business API bez zbędnej biurokracji BSP.
Oficjalny dostawca rozwiązań biznesowych Meta (BSP) 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 "@bird/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 "@bird/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 — zadeklarowane w jednym 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 dowolnej wysyłki — po wygaśnięciu sesji wiadomość automatycznie przechodzi 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; potrzebujesz okna sesji z wyrażoną zgodą; potrzebujesz weryfikacji biznesowej Meta. To się nie zmieni — i nie zmieni się. Zmienia się to, czy Twój BSP ułatwia, czy utrudnia przejście przez te bramki — eksponując je w Twoim kodzie, w webhookach, 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 "@bird/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órkami, idempotentne. Ta sama struktura na każdym kanale Bird — naucz się jednego, 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ło 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, jedna autoryzacja. Wygaśnięcie sesji, brak zgody, niezatwierdzony szablon — wszystko automatycznie przechodzi przez SMS.
SMS bezpośrednio.
await bird.sms.send({
from: "Bird",
to: "+15005550006",
text: `Your order BRD-49217 has shipped.`,
});Te same połączenia, adresowane bezpośrednio. Użyj, gdy chcesz jawnie wybrać ścieżkę SMS.
Od 0,005 USD za wiadomość + opłata konwersacyjna Meta po kosztach.
Rozliczenie za użycie. Opłatę konwersacyjną Meta przekazujemy po kosztach — bez marży. Rabaty wolumenowe włączają się automatycznie powyżej 100 tys./mies. i ponownie powyżej 1 mln/mies. Bez opłat za stanowisko, bez funkcji zablokowanych za rocznym zobowiązaniem.