API Pesan
API Kirim Pesan ke Grup WhatsApp
Kirim teks, gambar, atau dokumen WhatsApp ke grup WhatsApp yang beranggotakan nomor Anda yang terhubung. Gunakan untuk pengumuman tim, update komunitas, dan notifikasi siaran.
https://wbiztool.com/api/v1/send_msg/group/Body: JSON, field formulir, atau multipart/form-data saat mengunggah file
Pesan masuk antrean dan dikirim ke grup dari nomor WhatsApp Anda. Respons memberi Anda msg_id yang dapat digunakan untuk memeriksa statusnya.
Contoh singkat#
curl -X POST https://wbiztool.com/api/v1/send_msg/group/ \
-H "Content-Type: application/json" \
-d '{
"client_id": 12345,
"api_key": "YOUR_API_KEY",
"whatsapp_client": 678,
"msg_type": 0,
"group_name": "Sales Team Mumbai",
"msg": "Reminder: *weekly review* starts at 4 PM today."
}'import requests
response = requests.post(
"https://wbiztool.com/api/v1/send_msg/group/",
json={
"client_id": 12345,
"api_key": "YOUR_API_KEY",
"whatsapp_client": 678,
"msg_type": 0,
"group_name": "Sales Team Mumbai",
"msg": "Reminder: *weekly review* starts at 4 PM today.",
},
timeout=60,
)
result = response.json() # read the body even when the HTTP code is 400
if result.get("status") == 1:
print("Queued with msg_id", result["msg_id"])
else:
print("Failed:", result.get("message"))// Node.js 18+ (built-in fetch). Save as .mjs to use top-level await.
const response = await fetch("https://wbiztool.com/api/v1/send_msg/group/", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
client_id: 12345,
api_key: "YOUR_API_KEY",
whatsapp_client: 678,
msg_type: 0,
group_name: "Sales Team Mumbai",
msg: "Reminder: *weekly review* starts at 4 PM today.",
}),
});
const result = await response.json(); // read the body even when the HTTP code is 400
if (result.status === 1) {
console.log("Queued with msg_id", result.msg_id);
} else {
console.error("Failed:", result.message);
}<?php
$payload = [
'client_id' => 12345,
'api_key' => 'YOUR_API_KEY',
'whatsapp_client' => 678,
'msg_type' => 0,
'group_name' => 'Sales Team Mumbai',
'msg' => 'Reminder: *weekly review* starts at 4 PM today.',
];
$ch = curl_init('https://wbiztool.com/api/v1/send_msg/group/');
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 'Queued with msg_id ' . $result['msg_id'];
} else {
echo 'Failed: ' . ($result['message'] ?? 'no response');
}Ganti 12345, YOUR_API_KEY, dan 678 dengan nilai Anda sendiri. Lihat Autentikasi untuk mengetahui di mana menemukannya.
Parameter request#
Autentikasi
client_idintegerwajibAPI Client ID Anda dari Settings → API keys (Pengaturan → Kunci API).
api_keystringwajibAPI key Anda dari halaman yang sama.
whatsapp_clientintegerWajib jika pemilik memiliki lebih dari satu nomor yang terhubungID nomor WhatsApp yang digunakan untuk mengirim, dari WhatsApp settings (pengaturan WhatsApp). Nomor ini harus milik pemilik workspace. Jika tidak dikirim dan pemilik memiliki tepat satu nomor yang terhubung, nomor tersebut yang digunakan.
Grup dan pesan
group_namestringwajibNama grup WhatsApp, ditulis persis seperti yang tampil di WhatsApp. Kirim sebagai string. Angka JSON seperti
2024mengembalikan halaman error HTML (HTTP500). Lihat Cara grup ditemukan.msg_typeintegeropsional0teks (default),1gambar,2file atau dokumen.msgstringWajib jika msg_type bernilai 0Teks pesan. Untuk gambar dan file, ini adalah keterangan (caption) dan boleh kosong. Format WhatsApp berfungsi:
*bold*,_italic_,~strikethrough~.messagediterima sebagai alias.
Gambar dan file
img_urlstringWajib jika msg_type bernilai 1 dan tidak ada file yang diunggahURL
httpatauhttpspublik dari gambar.file_urlstringWajib jika msg_type bernilai 2 dan tidak ada file yang diunggahURL
httpatauhttpspublik tempat file dapat diunduh secara langsung.filefileopsionalUnggah gambar atau file sebagai ganti URL. Kirim request sebagai
multipart/form-datadengan field bernamafile.file_namestringopsionalNama file yang dilihat grup, misalnya
price-list.pdf. Ekstensinya menentukan cara file dikirim, jadi sertakan ekstensi. Nama dikirim dalam huruf kecil, karakter seperti& : ? * $ ;diganti dengan_, dan dipotong menjadi 150 karakter. Jika tidak dikirim, nama diambil dari URL atau file yang diunggah.
Opsi pengiriman
expire_after_secondsintegeropsionalTandai pesan sebagai kedaluwarsa (status
4) jika belum terkirim dalam jumlah detik ini, misalnya3600untuk satu jam. Proses latar belakang melakukannya paling cepat 30 detik setelah batas waktu, jadi jangan mengandalkannya untuk batas waktu yang lebih pendek dari satu menit.webhookstringopsionalURL yang menerima
POSTketika pesan terkirim atau gagal. Payload-nya sama seperti pada Kirim pesan.
Gambar dan file mengikuti aturan yang sama seperti Kirim pesan: URL diunduh saat Anda memanggil API (hingga 100 MB). Saat pesan dikirim, gambar lebih dari 16 MB dan video lebih dari 64 MB gagal, audio WAV dan OGG tidak didukung, dan file (msg_type 2) tanpa ekstensi yang didukung ditambahi .pdf, termasuk file yang diunggah. Nama file dikirim dalam huruf kecil. Lihat Mengirim gambar dan file untuk daftar lengkap ekstensi dan error.
Untuk mengunggah file, gunakan contoh multipart di Kirim pesan, dengan mengganti URL menjadi /api/v1/send_msg/group/ serta phone/country_code menjadi group_name.
curl -X POST https://wbiztool.com/api/v1/send_msg/group/ \
-H "Content-Type: application/json" \
-d '{
"client_id": 12345,
"api_key": "YOUR_API_KEY",
"whatsapp_client": 678,
"msg_type": 1,
"group_name": "Sales Team Mumbai",
"img_url": "https://example.com/reports/weekly-sales.png",
"msg": "This week'\''s sales summary"
}'import requests
response = requests.post(
"https://wbiztool.com/api/v1/send_msg/group/",
json={
"client_id": 12345,
"api_key": "YOUR_API_KEY",
"whatsapp_client": 678,
"msg_type": 1,
"group_name": "Sales Team Mumbai",
"img_url": "https://example.com/reports/weekly-sales.png",
"msg": "This week's sales summary",
},
timeout=60,
)
print(response.json())// Node.js 18+ (built-in fetch). Save as .mjs to use top-level await.
const response = await fetch("https://wbiztool.com/api/v1/send_msg/group/", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
client_id: 12345,
api_key: "YOUR_API_KEY",
whatsapp_client: 678,
msg_type: 1,
group_name: "Sales Team Mumbai",
img_url: "https://example.com/reports/weekly-sales.png",
msg: "This week's sales summary",
}),
});
console.log(await response.json());<?php
$ch = curl_init('https://wbiztool.com/api/v1/send_msg/group/');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode([
'client_id' => 12345,
'api_key' => 'YOUR_API_KEY',
'whatsapp_client' => 678,
'msg_type' => 1,
'group_name' => 'Sales Team Mumbai',
'img_url' => 'https://example.com/reports/weekly-sales.png',
'msg' => "This week's sales summary",
]),
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch);
curl_close($ch);Cara grup ditemukan#
Wbiztool tidak memeriksa nama grup saat Anda memanggil API. Saat pesan sedang dikirim, Wbiztool mencari group_name di chat WhatsApp Anda dan membuka hasil pertama. Karena itu:
- Nomor WhatsApp Anda yang terhubung harus menjadi anggota grup.
- Gunakan nama grup lengkap persis seperti yang ditampilkan WhatsApp, termasuk emoji dan tanda baca. Spasi di awal dan akhir diabaikan.
- Buat nama yang unik. Nama yang pendek atau sebagian bisa cocok dengan chat lain yang muncul lebih dulu di hasil pencarian.
- Jika tidak ada yang cocok, jika hanya admin yang dapat mengirim pesan di grup dan nomor Anda bukan admin, atau jika hanya admin komunitas yang dapat memposting, pesan gagal dengan error
Group not found. - Jika nomor Anda sudah keluar dari grup, pesan gagal dengan error
Group member blocked.
Masalah grup tidak muncul di respons API. Gunakan webhook atau Status pesan untuk mengetahui apakah pesan sudah terkirim.
Menggunakan klien resmi#
Klien Python memanggil endpoint ini untuk Anda.
from wbiztool_client import WbizToolClient
client = WbizToolClient(api_key="YOUR_API_KEY", client_id=12345)
result = client.send_message_to_group(
group_name="Sales Team Mumbai",
msg="Reminder: weekly review starts at 4 PM today.",
whatsapp_client=678,
)
print(result)Error memunculkan requests.HTTPError. Baca penyebabnya dengan e.response.json()["message"].
Respons#
Request yang berhasil mengembalikan HTTP 200:
{
"status": 1,
"message": "Created",
"msg_id": 9817263
}
| Field | Tipe | Deskripsi |
|---|---|---|
status | integer | 1 jika pesan masuk antrean, 0 jika request gagal. |
message | string | Created jika berhasil, selain itu berisi error. |
msg_id | integer | ID pesan dalam antrean. Simpan untuk memeriksa status nanti. Hanya ada jika berhasil. |
"status": 1 berarti pesan sudah masuk antrean, belum tentu sudah sampai ke grup. Gunakan webhook atau Status pesan untuk memastikan pesan sudah terkirim.
Error#
Error mengembalikan HTTP 400 dengan status bernilai 0:
{ "status": 0, "message": "Group Name cant be null" }
| Pesan | Cara memperbaikinya |
|---|---|
Auth Error - Please send correct API key and Client id | Kirim api_key yang tidak kosong. |
Invalid client id. | Kirim client_id sebagai angka. |
Auth Error: invalid api key | Pastikan key tersebut ada, belum dihapus, dan milik client_id ini. |
Group Name cant be null | Tambahkan group_name. |
Msg cant be null | Pesan teks (msg_type 0) memerlukan msg. |
Image Url Can't be null | Untuk msg_type 1, kirim img_url atau unggah file. |
File Url Can't be null | Untuk msg_type 2, kirim file_url atau unggah file. |
Invalid file url, Can't download / Invalid file url | URL tidak publik, waktu habis (timeout), atau file lebih dari 100 MB. |
Invalid whatsapp client None | ID whatsapp_client tersebut bukan milik pemilik workspace. Lihat peringatan di atas. |
Invalid whatsapp client id. | Kirim whatsapp_client. Parameter ini wajib kecuali pemilik memiliki tepat satu nomor yang terhubung. |
Not enough credits | Paket Anda sudah tidak memiliki sisa pesan. |
Demo Account can not access apis | Gunakan akun biasa. |
Account Disabled | Akun Anda dinonaktifkan. Hubungi dukungan. |
Invalid JSON format: … | Body JSON tidak valid, sering kali karena koma di akhir atau baris baru tanpa escape di msg. Gunakan \n untuk baris baru. |
Tips#
- Uji nama grup terlebih dahulu: kirim teks singkat ke grup dan periksa Status pesan sebelum mengotomatiskan apa pun.
- Grup yang diganti namanya: jika seseorang mengganti nama grup di WhatsApp, perbarui juga
group_namedi integrasi Anda. - Jenis pesan: hanya
0,1, dan2yang merupakan nilai valid untukmsg_type. Nilai apa pun yang bukan bilangan bulat mengembalikan halaman error HTML (HTTP500), bukan JSON. - Beberapa grup sekaligus: Kirim ke banyak nomor menerima nama grup yang dicampur dengan nomor telepon dalam satu request.
