Klien API WhatsApp Business mengirimkan notifikasi tentang status
pesan antara Anda dan pengguna Anda. Notifikasi ini dikirim melalui objek statuses
.
Untuk setiap pesan yang dikirim oleh bisnis Anda, Anda akan menerima notifikasi tentang status pesan tersebut. Pada tabel di bawah ini, klik panah di kolom kiri untuk aplikasi WhatsApp yang setara dengan setiap status, jika tersedia.
Nama | Deskripsi |
---|---|
| Pesan yang dikirim oleh pengguna telah dihapus oleh pengguna. Setelah menerima notifikasi ini, Anda harus memastikan bahwa pesan tersebut dihapus dari sistem Anda jika sudah diunduh dari server. |
| Pesan yang dikirim oleh bisnis Anda telah tersampaikan ke perangkat pengguna. |
| Pesan yang dikirim oleh bisnis Anda gagal terkirim. Alasan kegagalan akan disertakan dalam panggilan balik. Periksa dokumentasi pesan kesalahan untuk membantu debug:
|
| Pesan yang dikirim oleh bisnis Anda sudah dibaca oleh pengguna. Notifikasi |
| Pesan yang dikirim oleh bisnis Anda sedang transit dalam sistem kami. Untuk pengguna API di Tempat: Untuk menerima notifikasi pesan |
| Pesan yang dikirim oleh bisnis Anda berisi item dalam katalog yang tidak tersedia atau tidak ada. |
Urutan notifikasi ini dalam aplikasi Anda mungkin tidak mencerminkan waktu aktual dari status pesan. Lihat cap waktu untuk mengetahui waktunya, jika perlu.
Agar statusnya menjadi read
, pesan harus sudah delivered
. Dalam beberapa skenario, seperti saat pengguna berada di layar obrolan dan sebuah pesan masuk, pesan menjadi delivered
dan read
hampir bersamaan. Dalam skenario ini, notifikasi delivered
tidak akan dikirim kembali, karena itu sudah tersirat, yaitu pesan telah tersampaikan jika sudah dibaca. Alasan untuk perilaku ini adalah pengoptimalan internal.
Mulai 1 Februari 2022, objek statuses
di notifikasi keluar Anda mencakup dua objek berlapis baru: conversation
dan pricing
. Komponen objek percakapan dan harga akan bervariasi tergantung di mana percakapan dimulai. Percakapan dapat diinisiasi oleh pengguna, diinisiasi oleh pelaku bisnis, atau dapat dimulai dari titik masuk gratis. Lihat informasi selengkapnya di bawah ini:
Dalam contoh berikut, recipient_id
mungkin menjadi kolom group_id
. Tergantung apakah pesan dikirim ke orang atau grup.
Webhooks berikut diterima saat bisnis mengirim pesan sebagai bagian dari percakapan dimulai oleh pengguna (jika percakapan itu tidak berawal dari poin entri gratis):
{ "statuses": [{ "id": "ID", "recipient_id": "WHATSAPP_ID", "status": "sent", "timestamp": "TIMESTAMP", "type": "message", "message": { "recipient_id":"WHATSAPP_ID" }, "conversation": { "id": "CONVERSATION_ID", "expiration_timestamp": TIMESTAMP, "origin": { "type": "user_initiated" } }, "pricing": { "pricing_model": "CBP", "billable": true, "category": "user_initiated" } }] }
Webhooks berikut diterima saat bisnis mengirim pesan sebagai bagian dari percakapan dimulai oleh pengguna untuk pesan media (jika percakapan itu tidak berawal dari poin entri gratis):
{ "statuses": [{ "id": "ID", "recipient_id": "WHATSAPP_ID", "status": "sent", "timestamp": "TIMESTAMP", "type": "message", "message": { "media_id": "98d14c8e-0310-4061-8f99-2d148274c286", "recipient_id":"WHATSAPP_ID" }, "conversation": { "id": "CONVERSATION_ID", "expiration_timestamp": TIMESTAMP, "origin": { "type": "user_initiated" } }, "pricing": { "pricing_model": "CBP", "billable": true, "category": "user_initiated" } }] }
Webhooks berikut diterima saat bisnis mengirim pesan sebagai bagian dari percakapan diinisiasi oleh pelaku bisnis:
{ "statuses": [{ "id": "ID", "recipient_id": "WHATSAPP_ID", "status": "sent", "timestamp": "TIMESTAMP", "type": "message", "message": { "recipient_id":"WHATSAPP_ID" }, "conversation": { "id": "CONVERSATION_ID", "expiration_timestamp": TIMESTAMP, "origin": { "type": "business_initiated" } }, "pricing": { "pricing_model": "CBP", "billable": true, "category": "business_initiated" } }] }
Webhooks berikut diterima saat sebuah bisnis mengirim pesan sebagai balasan ke percakapan dimulai oleh pengguna yang berasal dari poin entri gratis:
{ "statuses": [{ "id": "ID", "recipient_id": "WHATSAPP_ID", "status": "sent", "timestamp": "TIMESTAMP", "type": "message", "message": { "recipient_id":"WHATSAPP_ID" }, "conversation": { "id": "CONVERSATION_ID", "expiration_timestamp": TIMESTAMP, "origin": { "type": "referral_conversion", } }, "pricing": { "pricing_model": "CBP", "billable": false, "category": "referral_conversion" } }] }
Webhooks berikut diterima saat pesan bisnis tersampaikan dan pesan itu adalah bagian dari percakapan dimulai oleh pengguna (jika percakapan itu tidak berawal dari poin entri gratis):
{ "statuses": [{ "id": "ID", "recipient_id": "WHATSAPP_ID", "status": "delivered", "timestamp": "TIMESTAMP", "type": "message", "message": { "recipient_id":"WHATSAPP_ID" }, "conversation": { "id": "CONVERSATION_ID", "origin": { "type": "user_initiated" } }, "pricing": { "pricing_model": "CBP", "billable": true, "category": "user_initiated" } }] }
Webhooks berikut diterima saat pesan bisnis tersampaikan dan pesan itu adalah bagian dari percakapan yang diinisiasi oleh pelaku bisnis:
{ "statuses": [{ "id": "ID", "recipient_id": "WHATSAPP_ID", "status": "delivered", "timestamp": "TIMESTAMP", "type": "message", "message": { "recipient_id": "WHATSAPP_ID" }, "conversation": { "id": "CONVERSATION_ID", "origin": { "type": "business_initiated" } }, "pricing": { "pricing_model": "CBP", "billable": true, "category": "business_initiated" } }] }
Webhooks berikut diterima saat pesan bisnis tersampaikan dan pesan itu adalah bagian dari percakapan dimulai oleh pengguna yang berasal dari poin entri gratis:
{ "statuses": [{ "id": "ID", "recipient_id": "WHATSAPP_ID", "status": "delivered", "timestamp": "TIMESTAMP", "type": "message", "message": { "recipient_id": "WHATSAPP_ID" }, "conversation": { "id": "CONVERSATION_ID", "origin": { "type": "referral_conversion", } }, "pricing": { "pricing_model": "CBP", "billable": false, "category": "referral_conversion" } }] }
Panggilan balik standar untuk pesan yang dibaca:
{ "statuses":[{ "id": "ID", "recipient_id": "WHATSAPP_ID", "status": "read", "timestamp": "TIMESTAMP", "type": "message", "message": { "recipient_id": "WHATSAPP_ID" } }] }
{ "statuses": [{ "errors": [{ "code": 470, "title": "Failed to send message because you are outside the support window for freeform messages to this user. Please use a valid HSM notification or reconsider." }], "id": "ID", "recipient_id": "WHATSAPP_ID", "status": "failed", "timestamp": "TIMESTAMP" }] }
{ "statuses": [{ "errors": [{ "code": 480, "title": "Failed to send message since we detect an identity change of the contact" }], "id": "ID", "recipient_id": "WHATSAPP_ID", "status": "failed", "timestamp": "TIMESTAMP" }] }
Subbagian percakapan tidak disertakan dalam panggilan balik, jika pesan gagal. Tidak ada tagihan atau aktivasi percakapan yang terlibat dalam kasus ini.
Panggilan balik standar untuk pesan yang dihapus:
{ "statuses": [{ "id": "ID", "recipient_id": "WHATSAPP_ID", "status": "deleted", "timestamp": "TIMESTAMP", "type": "message", "message": { "recipient_id": "WHATSAPP_ID" } }] }
Subbagian percakapan tidak disertakan dalam panggilan balik, jika pesan dihapus. Tidak ada tagihan atau aktivasi percakapan yang terlibat dalam kasus ini.
Lihat Ringkasan, Pesan untuk informasi ini.
Yes, there is a specific scenario where you can get pricing information on your webhook alert for read messages. For each sent message, there can be 3 scenarios:
Scenario | When it Happens |
---|---|
You get a webhook alert when the message is delivered (including pricing information) and another webhook alert when the message is read (not including pricing information). | This is the most common scenario. |
You get a webhook alert when the message is delivered (including pricing information). You do not get a webhook alert that the message has been read. | Common when a customer has turned off the feature that lets people know they have read a message. |
You get a webhook alert when the message is read (including pricing information). You do not get a webhook alert that the message has been delivered. | Only triggered when the user is already reading the thread with the business when the message comes in. |