API Pesan
API Batalkan Pesan
Batalkan pesan WhatsApp yang belum terkirim. Gunakan untuk menghentikan pengingat terjadwal setelah janji temu dibatalkan, atau untuk menarik kembali pesan dalam antrean yang terkirim karena kesalahan.
https://wbiztool.com/api/v1/cancel_msg/Body: JSON atau field formulir
Anda dapat membatalkan pesan apa pun yang masih menunggu dikirim (status 0, Created): pesan terjadwal, serta pesan yang dimasukkan ke antrean oleh Kirim pesan, Kirim ke grup, atau Kirim ke banyak nomor. Pesan yang sudah terkirim tidak dapat ditarik kembali. Jika bot sedang mengirim pesan tersebut tepat pada saat itu, pesan mungkin tetap terkirim, jadi untuk pembatalan yang penting, pastikan dengan Status pesan.
Contoh singkat#
curl -X POST https://wbiztool.com/api/v1/cancel_msg/ \
-H "Content-Type: application/json" \
-d '{
"client_id": 12345,
"api_key": "YOUR_API_KEY",
"msg_id": 9817263
}'import requests
response = requests.post(
"https://wbiztool.com/api/v1/cancel_msg/",
json={
"client_id": 12345,
"api_key": "YOUR_API_KEY",
"msg_id": 9817263,
},
timeout=60,
)
result = response.json() # read the body even when the HTTP code is 400
if result.get("status") == 1:
print("Message cancelled")
else:
print("Not cancelled:", result.get("message", "no message in response"))// Node.js 18+ (built-in fetch). Save as .mjs to use top-level await.
const response = await fetch("https://wbiztool.com/api/v1/cancel_msg/", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
client_id: 12345,
api_key: "YOUR_API_KEY",
msg_id: 9817263,
}),
});
const result = await response.json(); // read the body even when the HTTP code is 400
if (result.status === 1) {
console.log("Message cancelled");
} else {
console.error("Not cancelled:", result.message ?? "no message in response");
}<?php
$payload = [
'client_id' => 12345,
'api_key' => 'YOUR_API_KEY',
'msg_id' => 9817263,
];
$ch = curl_init('https://wbiztool.com/api/v1/cancel_msg/');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 60,
]);
$result = json_decode(curl_exec($ch), true);
curl_close($ch);
if (($result['status'] ?? 0) === 1) {
echo 'Message cancelled';
} else {
echo 'Not cancelled: ' . ($result['message'] ?? 'no message in response');
}Ganti 12345 dan YOUR_API_KEY dengan nilai Anda sendiri, dan 9817263 dengan msg_id yang Anda dapatkan saat mengirim atau menjadwalkan pesan.
Parameter request#
client_idintegerwajibAPI Client ID Anda dari Settings → API keys (Pengaturan → Kunci API).
api_keystringwajibAPI key Anda dari halaman yang sama.
msg_idintegerwajibmsg_idyang dikembalikan oleh request kirim atau jadwalkan. ID ini harus termasuk dalam workspace API key Anda.
Endpoint ini tidak memerlukan whatsapp_client.
Menggunakan klien resmi#
Klien Python dan Node.js memanggil endpoint ini untuk Anda.
from wbiztool_client import WbizToolClient
client = WbizToolClient(api_key="YOUR_API_KEY", client_id=12345)
result = client.cancel_message(msg_id=9817263)
print(result)const { WbizToolClient } = require("wbiztool-client");
const client = new WbizToolClient({
clientId: 12345,
apiKey: "YOUR_API_KEY",
whatsappClient: 678, // required by the client's constructor, not used by this endpoint
});
(async () => {
const result = await client.cancelMessage(9817263);
console.log(result);
})().catch(console.error);Kedua klien melempar error pada error autentikasi (HTTP 400/403): Python memunculkan requests.HTTPError, dan Node.js melempar API error: 400 - {…}. Balasan Msg has been … dikembalikan sebagai hasil biasa dengan status: 0.
Respons#
Request yang berhasil mengembalikan HTTP 200:
{
"message": "Cancelled",
"status": 1
}
| Field | Tipe | Deskripsi |
|---|---|---|
status | integer | 1 jika pesan dibatalkan, 0 jika tidak. |
message | string | Cancelled jika berhasil, selain itu berisi alasannya. |
Setelah dibatalkan, Status pesan melaporkan pesan tersebut sebagai 3 (Cancelled). Pesan yang dibatalkan tidak dikirim, tidak memicu webhook-nya, dan tidak lagi mengurangi sisa kredit Anda.
Error#
Sebagian besar error mengembalikan HTTP 200 dengan status bernilai 0, jadi selalu periksa status di body:
{ "message": "Msg has been Sent", "status": 0 }
| Pesan | Cara memperbaikinya |
|---|---|
Msg has been Sent | Pesan sudah terkirim. Pesan tidak dapat dibatalkan. |
Msg has been Failed | Pesan sudah gagal, jadi tidak ada yang perlu dibatalkan. |
Msg has been Cancelled | Pesan sudah dibatalkan sebelumnya. |
Msg has been Expired | Pesan sudah kedaluwarsa sebelum terkirim, jadi tidak ada yang perlu dibatalkan. |
No msg found for given msg_id | Periksa msg_id. ID harus berupa angka dan termasuk dalam workspace yang sama dengan API key Anda. |
Msg_id cant be null | Tambahkan msg_id. |
Auth Error | Kirim client_id dan api_key. |
Invalid Client Id | Kirim client_id sebagai angka. Dikembalikan dengan HTTP 403. |
Auth Error: invalid api key | Pastikan key tersebut ada, belum dihapus, dan milik client_id ini. Dikembalikan dengan HTTP 400. |
Invalid JSON format: … | Body JSON tidak valid, sering kali karena koma di akhir, atau Anda mengirim field formulir tanpa client_id. |
Objek kosong {} | Body JSON dikirim dengan metode selain POST. |
Tips#
- Simpan setiap
msg_id: Anda memerlukannya untuk membatalkan. Untuk Kirim ke banyak nomor, batalkan setiapmsg_iddi respons secara terpisah. - Batalkan lebih awal: pesan yang sudah terkirim tidak bisa ditarik, jadi batalkan pesan terjadwal segera setelah Anda tahu pesan tersebut tidak lagi diperlukan.
- Mengubah jadwal: tidak ada endpoint untuk mengubah waktu jadwal. Batalkan pesan lalu jadwalkan pesan baru.
- Anggap pesan berstatus final sebagai selesai: balasan
Msg has been …berarti pesan sudah tidak ada di antrean, jadi Anda tidak perlu mencoba ulang.
