接收事件
標準事件類型同載荷
每次投遞帶嘅統一信封,同埋全部公開標準事件類型目錄。按端點用 subscribed_events 訂閱,或者用 ["*"] 訂閱全部公開事件;provider.raw_event 唔會投遞畀客戶。信封固定係 id / type / provider / account_id / occurred_at / data。 通話事件權限由工作區 is_beta 控制。內測工作區的 subscribed_events 為 *、空陣列或省略時包含通話事件;具體事件清單只匹配列出的事件。非內測工作區可使用通配訂閱,但不會收到通話事件;明確訂閱通話事件仍傳回 403 beta_feature_not_enabled。每次投遞、重試及死信重放都重新核驗資格,查詢失敗不放行;一般 message.* 通話記錄獨立,不受影響。
事件載荷
{
"id": "evt_2f9c1a4b7e",
"type": "message.received",
"provider": "whatsapp",
"account_id": "acc_8c21d0",
"occurred_at": "2026-06-08T12:34:56Z",
"data": {
"account": { "provider_account_ref": "8600000000000" },
"conversation": { "id": "8613912345678", "type": "user", "title": "Jordan Lee" },
"sender": { "id": "8613912345678", "name": "Jordan Lee", "type": "user" },
"message": {
"id": "wamid.HBgM",
"text": "Hi - is my order shipped yet?",
"direction": "inbound",
"sent_at": "2026-06-08T12:34:55Z"
}
}
}標準事件類型
- call.incoming
call.incoming 係預留內測契約,目前未開放來電。將來開放後,內測工作區可透過 subscribed_events 匹配訂閱:逐項訂閱、*、空陣列或省略都可以。
- call.answered
call.answered 表示本系統通話已接通。內測工作區的 subscribed_events 包含 call.answered 或 *,或為空陣列、省略時都可接收。
- call.ended
call.ended 表示本系統通話已結束,包含 data.call.id、reason、duration_seconds。內測工作區的 subscribed_events 包含 call.ended 或 *,或為空陣列、省略時都可接收。
- post.comment.created
通過識別同目前帳號帖文歸屬驗證後嘅 TikTok 留言通知。啟用前要確認環境已開放通知,而且接收端已準備好。輪詢預設關閉;設定 provider_data.enable_comment=true 後要啟動或重新連線,在線修改要重新連線。start 成功唔代表設定已生效;關閉唔會撤回已排隊嘅事件。訂閱 post.comment.created,或者用空訂閱或 *;單靠訂閱唔會開啟輪詢。通知盡力而為,可能延遲、重複、亂序或遺漏,唔保證完整歷史。按事件 id 去重。缺少 parent_comment_id 唔代表係可回覆嘅一級留言;回覆前要核實目標。
- contact.updated
WhatsApp 通訊錄名稱更新(唔包括 whatsapp-protocol)。只更新 data.contact.address_book 有提供嘅欄位:空字串表示清空,省略就保留原值,null 無效。唔會覆蓋對方暱稱或帳號本人資料。contact.id 識別聯絡人資源,唔一定係對話識別碼。
- message.received
帳號觀察到一條訊息;用 data.message.direction 區分 inbound 同 outbound。
- message.updated
一條已投遞嘅訊息被編輯。
- message.deleted
一條訊息被刪除或者收回。
- message.read
已讀回條——對方已讀某條訊息。
- message.reaction
某條訊息被加上或者移除咗表情回應(reaction)。
- message.delivered
一條訊息已送達對方裝置。
- conversation.updated
會話層級設定有變——靜音 / 取消靜音、封存、置頂或者標記已讀。
- conversation.deleted
一個會話俾刪除咗。
- conversation.cleared
一個會話嘅聊天記錄俾清空咗。
- conversation.history
WhatsApp 喺啟動或者重連之後同步咗某個會話嘅近期歷史訊息。
- group.updated
群組中繼資料有變——名稱、成員或者設定。
- group.join_request
有人申請加入已開入群審批嘅群組。推送係盡力而為——請以輪詢「列出入群申請」為準。
- account.status.updated
帳號嘅執行環境 / 連線狀態有變化。
- account.profile.updated
帳號公開名稱資料已同步;目前由 WhatsApp 名稱事件觸發。
- account.started
帳號執行環境已經連線,可以收發訊息。
- account.history.synced
一次 WhatsApp 歷史同步批次已經結束;data.summary 會俾出已投遞嘅會話同訊息數量。
- account.auth.required
帳號需要(重新)認證——驗證碼、掃碼或者兩步驗證。
- account.auth.succeeded
帳戶授權成功。傳送前查詢帳戶,確認 runtime_status=running。
- account.auth.failed
一次認證嘗試失敗。
備註
- 對於媒體訊息,data.message.attachments[] 會帶暫時簽章嘅 OSS url,同埋 type、mimetype、size。
- subscribed_events 必須填上面嘅精確事件名或者 ["*"];星號只包公開標準事件,唔包括 provider.raw_event。
- 唔係每個 provider 都會發出全部事件,部分載荷欄位亦有差異——按 provider 嘅差異見「Webhook 標準事件差異」矩陣。
- message.read 同 message.delivered 帶有精確嘅回執範圍:data.message.ids 列出今次回執涵蓋嘅全部訊息,read_at / delivered_at 俾出渠道回報嘅時間。
- WhatsApp 即時 message.received 喺渠道提供可回覆嘅訊息標識時,可能帶 data.message.reply_token;將佢原樣放入 POST /v1/messages 嘅 reply_to.reply_token。佢用嚟回覆目前訊息,唔係父訊息 id;歷史同步訊息冇呢個欄位。