Langsung ke konten
Wbiztool

API Pesan

API Status Pesan

Periksa apakah pesan yang Anda kirim melalui API masih dalam antrean, sudah terkirim, atau gagal. Gunakan untuk memastikan pesan penting sudah terkirim dan untuk mengetahui mengapa sebuah pesan tidak terkirim.

POSThttps://wbiztool.com/api/v1/message/status/{msg_id}/

Body: JSON atau field formulir

Masukkan ID pesan di URL, dengan mengganti {msg_id} dengan msg_id yang dikembalikan oleh Kirim pesan, Kirim ke grup, Kirim ke banyak nomor, atau Jadwalkan pesan. Contoh: https://wbiztool.com/api/v1/message/status/9817263/.

Contoh singkat#

curl -X POST https://wbiztool.com/api/v1/message/status/9817263/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY"
  }'

Ganti 12345 dan YOUR_API_KEY dengan nilai Anda sendiri. Lihat Autentikasi untuk mengetahui di mana menemukannya.

Parameter request#

URL

msg_idintegerwajib

ID pesan, sebagai bagian dari path URL. ID harus berupa bilangan bulat dan termasuk dalam workspace API key Anda.

Body

client_idintegerwajib

API Client ID Anda dari Settings → API keys (Pengaturan → Kunci API).

api_keystringwajib

API key Anda dari halaman yang sama.

Menggunakan klien resmi#

Klien Python memanggil endpoint ini untuk Anda.

Python
from wbiztool_client import WbizToolClient

client = WbizToolClient(api_key="YOUR_API_KEY", client_id=12345)

result = client.get_message_status(msg_id=9817263)
print(result.get("status_text"), result.get("error"))

Klien mengembalikan field yang sama seperti API, jadi result["status"] adalah status pesan, bukan penanda keberhasilan. Error autentikasi memunculkan requests.HTTPError; baca penyebabnya dengan e.response.json()["message"].

Respons#

Endpoint mengembalikan HTTP 200 dengan status pesan saat ini:

{
  "message": "Sent",
  "status": 1,
  "status_text": "Sent",
  "error": ""
}

Pesan yang gagal:

{
  "message": "Failed",
  "status": 2,
  "status_text": "Failed",
  "error": "Phone number invalid"
}
FieldTipeDeskripsi
statusintegerKode status pesan. Lihat tabel di bawah.
status_textstringNama status: Created, Sent, Failed, Cancelled, atau Expired.
messagestringNilainya sama dengan status_text.
errorstring atau nullAlasan pesan gagal. Selalu ada; kosong ("" atau null) jika tidak ada error.

Nilai status#

statusstatus_textArti
0CreatedDalam antrean atau terjadwal, menunggu dikirim.
1SentSudah dikirim dari nomor WhatsApp Anda.
2FailedTidak dapat dikirim, atau pengiriman terputus. error menjelaskan penyebabnya. Jika error berisi Sending was interrupted and may have been delivered. Check WhatsApp before resending., penerima mungkin sudah menerima pesan tersebut, jadi jangan kirim ulang secara otomatis.
3CancelledDibatalkan sebelum terkirim, misalnya dengan Batalkan pesan.
4ExpiredTidak terkirim sebelum batas waktu expire_after_seconds.

Sent adalah status sukses terakhir. Endpoint ini tidak melaporkan apakah pesan sudah sampai ke ponsel atau sudah dibaca.

Contoh nilai error untuk pesan yang gagal: Phone number invalid, Group not found, Image Url Error, File Url Error, Blocked Contact, File exceeds WhatsApp size limit (…), File type not supported, Sending was interrupted and may have been delivered. Check WhatsApp before resending.

Error#

{
  "message": "Unknown message id",
  "status": 0,
  "status_text": "pending",
  "error": "Invalid message id"
}
PesanCara memperbaikinya
Unknown message idTidak ada pesan dengan ID tersebut di workspace API key Anda. Periksa ID-nya dan pastikan Anda menggunakan key dari workspace yang sama.
Auth ErrorKirim client_id dan api_key. Body JSON yang tidak valid (misalnya ada koma di akhir) juga mengembalikan Auth Error.
Invalid Client IdKirim client_id sebagai angka. Dikembalikan dengan HTTP 403.
Auth Error: invalid api keyPastikan key tersebut ada, belum dihapus, dan milik client_id ini. Dikembalikan dengan HTTP 400.

Tips#

  • Utamakan webhook untuk update real-time: kirim webhook saat mengirim pesan, dan Wbiztool akan memberi tahu Anda ketika pesan terkirim atau gagal, sehingga Anda tidak perlu melakukan polling. Pesan yang dibatalkan dan kedaluwarsa tidak memicu webhook, jadi periksa pesan tersebut di sini.
  • Polling: jika Anda melakukan polling, berhenti setelah status tidak lagi bernilai 0. Beri jeda beberapa detik di antara setiap pengecekan.
  • Banyak pesan sekaligus: untuk memeriksa pesan selama satu hari penuh, gunakan Riwayat pesan, bukan memanggil endpoint ini untuk setiap ID.
  • Pesan lama dihapus: pesan terkirim, gagal, dibatalkan, dan kedaluwarsa yang tidak tersentuh selama sekitar 90 hari mengembalikan Unknown message id. Begitu pula pesan yang masih dalam antrean 90 hari setelah dibuat atau dijadwalkan, pada nomor yang terputus atau dihapus.
  • Integrasi lama: POST /api/v1/msg_status/ dengan msg_id di body sudah usang (deprecated). Endpoint tersebut mengembalikan field yang sama. Endpoint itu juga menerima GET dengan client_id, api_key, dan msg_id di query string, yang membuat API key Anda terekspos di URL dan log. Beralihlah ke endpoint ini.