WhatsApp Business API, tanpa ribet urusan BSP.
Penyedia Solusi Bisnis Meta resmi sejak API ini pertama kali ada. Persetujuan template, jendela sesi, media, pesan interaktif — semua ditangani. Lebih dari dua miliar pengguna WhatsApp bulanan, dapat dijangkau dari satu endpoint yang tampilannya sama seperti setiap kanal Bird lainnya.
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 menit dari npm install ke pengiriman pertama
Kirim WhatsApp dari bahasa pemrograman yang sudah Anda gunakan.
SDK di setiap runtime utama. Pengiriman pertama ditujukan ke penerima uji coba resmi (+15005550009) dengan template yang sudah disetujui, sehingga Anda bisa menjalankan CI check sebelum mengajukan template pertama untuk persetujuan.
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();Sepuluh hal yang disembunyikan gerbang BSP dari Anda. Kami tidak.
WhatsApp dibatasi oleh Meta. Pilihan BSP menentukan apakah batasan itu muncul di kode Anda atau disembunyikan di balik dashboard. Kami memilih kode.
- 01
Penyedia Solusi Bisnis Meta (BSP) Resmi
Hubungan langsung dengan Meta sejak API ini pertama kali ada. Tanpa transit dijual ulang, tanpa perantara pihak ketiga.
- 02
Manajemen template
Ajukan, lacak status persetujuan, dan dapatkan webhook begitu Meta menyetujui atau menolak.
- 03
Kesadaran jendela sesi
SDK memberi tahu Anda apakah pesan bebas atau template yang diizinkan sebelum Anda mengirim.
- 04
Pesan interaktif
Tombol, daftar, kartu produk, dan WhatsApp Flows — dideklarasikan dalam payload yang sama.
- 05
Media dan konten kaya
Gambar, video, dokumen, lokasi, kontak, pratinjau tautan, reaksi, dan balasan.
- 06
WhatsApp Flows
Formulir multi-langkah dalam aplikasi dengan validasi backend, didefinisikan sebagai JSON, dieksekusi oleh Meta.
- 07
Iklan Click-to-WhatsApp
Integrasi dengan Meta Ads Manager sehingga klik iklan masuk ke percakapan yang bisa Anda jawab.
- 08
Fallback lintas kanal
Tambahkan fallback: "sms" ke pengiriman apa pun — sesi kedaluwarsa otomatis dialihkan melalui SMS.
- 09
Webhook pesan masuk
Event bertanda tangan HMAC untuk pesan masuk, tanda terima baca, reaksi, dan status template.
- 10
2M+ pengguna di satu endpoint
Lebih dari dua miliar pengguna WhatsApp bulanan dapat dijangkau dari satu panggilan bird.whatsapp.send.
Why we build WhatsApp
Kami adalah salah satu BSP WhatsApp pertama. Kami masih salah satu dari sedikit yang menulis kode bersama Anda.
WhatsApp dibatasi. Anda perlu template yang disetujui; Anda perlu jendela sesi dengan opt-in; Anda perlu verifikasi bisnis Meta. Bagian itu tidak berubah — dan tidak akan berubah. Yang berubah adalah apakah BSP Anda membuat gerbang itu lebih mudah atau lebih sulit untuk dilalui — dengan mengeksposnya di kode Anda, di webhook yang bisa Anda subscribe, di error yang menjelaskan persis apa yang salah. Kami memilih yang pertama.
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..."Setiap perubahan status adalah webhook.
Payload bertanda tangan HMAC, terlindungi dari replay, idempoten. Amplop yang sama di setiap kanal Bird — pelajari satu, Anda sudah memahami semuanya.
{
"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"
}
}Jadwal percobaan ulang: 5d, 30d, 5m, 30m, 2j, 6j, 12j. Dead-letter setelah percobaan terakhir; setiap event dead-letter dapat di-replay dari dashboard atau API.
whatsapp.queuedDiterima oleh API dan diantrikan untuk dikirim ke Meta.whatsapp.sentDiserahkan ke Cloud API Meta.whatsapp.deliveredMeta melaporkan pesan berhasil sampai di perangkat penerima.whatsapp.readPenerima membuka pesan (jika tanda terima baca aktif).whatsapp.failedKegagalan permanen — kode alasan ada di payload.whatsapp.receivedPesan masuk dari pengguna dalam jendela sesi 24 jam.whatsapp.template.approvedMeta menyetujui template yang Anda ajukan.whatsapp.template.rejectedMeta menolak template — alasan penolakan ada di payload.
Fallback ke SMS hanya satu atribut, bukan integrasi kedua.
Jika WhatsApp tidak bisa mengirim — sesi kedaluwarsa, penerima belum opt-in, template belum disetujui — Bird mengalihkan pesan yang sama melalui SMS dalam request yang sama. Auth yang sama, kontrak idempotensi yang sama, bentuk webhook yang sama di ujung lainnya.
WhatsApp dengan fallback.
await bird.whatsapp.send({
to: "+15005550009",
template: "order_shipped",
variables: { order_id: "BRD-49217" },
fallback: "sms",
});Satu payload, satu auth. Sesi kedaluwarsa, celah opt-in, template belum disetujui — semuanya dialihkan melalui SMS secara otomatis.
SMS langsung.
await bird.sms.send({
from: "Bird",
to: "+15005550006",
text: `Your order BRD-49217 has shipped.`,
});Jalur yang sama, ditujukan langsung. Gunakan saat Anda ingin jalur SMS secara eksplisit.
Mulai dari $0,005 per pesan + biaya percakapan Meta tanpa markup.
Dihitung berdasarkan penggunaan. Kami meneruskan biaya percakapan Meta tanpa markup. Diskon volume berlaku otomatis di atas 100K/bulan dan kembali di atas 1M/bulan. Tanpa biaya per pengguna, tanpa fitur tier yang dikunci di balik komitmen tahunan.