Webhook WhatsApp
Bird mendorong aktivitas WhatsApp ke endpoint Anda secara real-time, sehingga Anda tidak perlu melakukan polling. Berlangganan dari halaman Webhooks atau dengan POST /v1/webhooks. Panduan Webhooks membahas endpoint, verifikasi tanda tangan, dan percobaan ulang.
Event yang dapat Anda langgani
Setiap event tertaut ke payload-nya.
| Event | Dipicu ketika |
|---|---|
whatsapp.accepted | Bird menerima permintaan pengiriman keluar |
whatsapp.sent | Bird menyerahkan pesan ke jaringan WhatsApp |
whatsapp.delivered | WhatsApp mengonfirmasi pengiriman ke perangkat penerima |
whatsapp.read | Penerima membuka pesan |
whatsapp.failed | Pesan gagal terkirim |
whatsapp.rejected | Bird menolak pesan sebelum mengirimnya |
whatsapp.received | Kontak mengirimkan pesan kepada Anda |
whatsapp.reacted | Kontak menambahkan, mengubah, atau menghapus reaksi |
whatsapp_suppression.created | Supresi terbuka di workspace Anda |
whatsapp.group.join_request_created | Seseorang meminta untuk bergabung ke grup |
whatsapp.group.join_request_revoked | Seseorang membatalkan permintaan untuk bergabung ke grup |
Daftar tipe event bersifat terbuka: tipe baru dapat ditambahkan sewaktu-waktu, jadi perlakukan nilai yang tidak dikenali sebagai event baru, bukan sebagai kesalahan.
Envelope event
Setiap event WhatsApp menggunakan envelope webhook standar: sebuah type, sebuah timestamp, dan objek data khusus tipe.
{
"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"
}Field yang selalu ada di setiap event pesan
Setiap payload webhook WhatsApp untuk pesan membawa whatsapp_id, workspace_id, direction, from, to, tags, dan metadata. Event reaksi, supresi, dan grup bukan tentang pesan, sehingga masing-masing memiliki struktur sendiri yang dijelaskan di halamannya.
- Alamat:
fromdantodapat berisiphone_numberE.164, business-scoped user ID Meta dibsuid, atau keduanya. Pesan yang diterima dari pengguna WhatsApp juga membawa profil yang mereka publikasikan, diusernamedandisplay_name. tagsdanmetadatabernilainulljika pengiriman tidak menyertakannya.in_reply_to_message_idmuncul di setiap event keluar dari pesan yang dikirim sebagai balasan, dariwhatsapp.acceptedhinggawhatsapp.read,whatsapp.failed, atauwhatsapp.rejected, yang menyebutkan pesan yang dijawabnya.
Payload event tidak membawa informasi biaya. Baca kembali pesan dengan GET /v1/whatsapp/messages/{message_id} untuk melihat biayanya.
Langkah selanjutnya
- Webhook status pesan: payload pengiriman dan kegagalan
- Webhook pesan masuk: payload
whatsapp.received - Webhook reaksi: payload
whatsapp.reacted - Panduan webhooks: endpoint, tanda tangan, percobaan ulang, dan katalog lengkap peristiwa
Sumber daya terkait
Lanjutkan dengan dokumentasi, panduan, dan contoh untuk topik ini.