---
title: "Webhook WhatsApp"
description: "Event webhook WhatsApp yang dapat didorong Bird ke endpoint Anda, envelope yang membungkus setiap event, dan field yang selalu ada di event pesan."
canonical: "https://bird.com/id-id/dokumentasi/guides/whatsapp/webhooks"
---

# Webhook WhatsApp

Bird mendorong aktivitas WhatsApp ke endpoint Anda secara real-time, sehingga Anda tidak perlu melakukan polling. Berlangganan dari halaman [**Webhooks**](https://bird.com/dashboard/w/webhooks) atau dengan [`POST /v1/webhooks`](/docs/api/reference/create-webhook). [Panduan Webhooks](/docs/guides/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`](/docs/guides/whatsapp/webhooks/message-status#delivery-events)                | Bird menerima permintaan pengiriman keluar               |
| [`whatsapp.sent`](/docs/guides/whatsapp/webhooks/message-status#delivery-events)                    | Bird menyerahkan pesan ke jaringan WhatsApp              |
| [`whatsapp.delivered`](/docs/guides/whatsapp/webhooks/message-status#delivery-events)               | WhatsApp mengonfirmasi pengiriman ke perangkat penerima  |
| [`whatsapp.read`](/docs/guides/whatsapp/webhooks/message-status#delivery-events)                    | Penerima membuka pesan                                   |
| [`whatsapp.failed`](/docs/guides/whatsapp/webhooks/message-status#delivery-events)                  | Pesan gagal terkirim                                     |
| [`whatsapp.rejected`](/docs/guides/whatsapp/webhooks/message-status#delivery-events)                | Bird menolak pesan sebelum mengirimnya                   |
| [`whatsapp.received`](/docs/guides/whatsapp/webhooks/messages)                                      | Kontak mengirimkan pesan kepada Anda                     |
| [`whatsapp.reacted`](/docs/guides/whatsapp/webhooks/reactions)                                      | Kontak menambahkan, mengubah, atau menghapus reaksi      |
| [`whatsapp_suppression.created`](/docs/guides/whatsapp/webhooks/suppressions)                       | Supresi terbuka di workspace Anda                        |
| [`whatsapp.group.join_request_created`](/docs/guides/whatsapp/webhooks/groups#join-request-created) | Seseorang meminta untuk bergabung ke grup                |
| [`whatsapp.group.join_request_revoked`](/docs/guides/whatsapp/webhooks/groups#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](/docs/guides/webhooks) standar: sebuah `type`, sebuah `timestamp`, dan objek `data` khusus tipe.

```json
{
  "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**: `from` dan `to` dapat berisi `phone_number` E.164, [business-scoped user ID](/docs/guides/whatsapp/business-scoped-user-ids) Meta di `bsuid`, atau keduanya. Pesan yang diterima dari pengguna WhatsApp juga membawa profil yang mereka publikasikan, di `username` dan `display_name`.
- **`tags` dan `metadata`** bernilai `null` jika pengiriman tidak menyertakannya.
- **`in_reply_to_message_id`** muncul di setiap event keluar dari pesan yang dikirim sebagai balasan, dari `whatsapp.accepted` hingga `whatsapp.read`, `whatsapp.failed`, atau `whatsapp.rejected`, yang menyebutkan pesan yang dijawabnya.

Payload event tidak membawa informasi biaya. Baca kembali pesan dengan [`GET /v1/whatsapp/messages/{message_id}`](/docs/api/reference/get-whatsapp-message) untuk melihat biayanya.

## Langkah selanjutnya

- [Webhook status pesan](/docs/guides/whatsapp/webhooks/message-status): payload pengiriman dan kegagalan
- [Webhook pesan masuk](/docs/guides/whatsapp/webhooks/messages): payload `whatsapp.received`
- [Webhook reaksi](/docs/guides/whatsapp/webhooks/reactions): payload `whatsapp.reacted`
- [Panduan webhooks](/docs/guides/webhooks): endpoint, tanda tangan, percobaan ulang, dan katalog lengkap peristiwa

## Related resources

- [Connecting WhatsApp to Bird: from buying a number to a live channel](/learn/whatsapp/connecting-whatsapp-to-bird) (video)
- [What is the 24-hour customer service window on WhatsApp?](/explained/whatsapp/what-is-the-24-hour-customer-service-window) (answer)
- [WhatsApp message builder](/tools/whatsapp-message-builder) (tool)
- [WhatsApp](/whatsapp-api) (product)

[Get an implementation brief](/learn/workspace?topic=whatsapp)
