Notifikasi Status dan Harga

Klien API WhatsApp Business mengirimkan notifikasi tentang status pesan antara Anda dan pengguna Anda. Notifikasi ini dikirim melalui objek statuses.

Pembaruan Status

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.

NamaDeskripsi

deleted

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.

Setara Aplikasi WhatsApp

Pesan tersebut diganti di WhatsApp seluler dengan catatan bertuliskan, "Pesan ini telah dihapus."

delivered

Pesan yang dikirim oleh bisnis Anda telah tersampaikan ke perangkat pengguna.

Setara Aplikasi WhatsApp

Dua tanda centang

failed

Pesan yang dikirim oleh bisnis Anda gagal terkirim. Alasan kegagalan akan disertakan dalam panggilan balik. Periksa dokumentasi pesan kesalahan untuk membantu debug:

Setara Aplikasi WhatsApp

Segitiga kesalahan merah

read

Pesan yang dikirim oleh bisnis Anda sudah dibaca oleh pengguna. Notifikasi read hanya akan tersedia bagi pengguna yang telah mengaktifkan tanda terima sudah dibaca. Bagi pengguna yang tidak mengaktifkannya, Anda akan menerima notifikasi delivered .

Setara Aplikasi WhatsApp

Dua tanda centang biru

sent

Pesan yang dikirim oleh bisnis Anda sedang transit dalam sistem kami.


Untuk pengguna API di Tempat: Untuk menerima notifikasi pesan sent , atur sent_status ke true di pengaturan aplikasi. Notifikasi status sent dinonaktifkan secara default.

Setara Aplikasi WhatsApp

Satu tanda centang

warning

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.

Pembaruan Harga

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:

Contoh

Dalam contoh berikut, recipient_id mungkin menjadi kolom group_id. Tergantung apakah pesan dikirim ke orang atau grup.

Status: Pesan Terkirim

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"
    }
   }]
}

Status: Pesan Tersampaikan

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"
    }
  }]
}

Status: Pesan Dibaca

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" 
    }
  }]
}

Status: Pesan Gagal

Kode kesalahan 470

{
  "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"
  }]
}

Pesan kesalahan 480

{
  "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.

Status: Pesan Dihapus

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.

Semua Status Pesan yang Mungkin

Lihat Ringkasan, Pesan untuk informasi ini.

Pertanyaan Umum

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:

ScenarioWhen 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.