Kirim pesan WhatsApp dengan PHP
Kirim teks, gambar, dan file WhatsApp dari situs atau aplikasi PHP Anda, dari nomor Anda sendiri yang ditautkan ke WbizTool seperti WhatsApp Web. Cukup ekstensi cURL PHP dan satu POST ke endpoint yang terdokumentasi.
Uji coba gratis: 50 pesan dalam 30 hari mana pun, tanpa kartu.
Cara kerjanya
Dapatkan kunci API dan tautkan nomor Anda
Daftar, lalu tautkan nomor WhatsApp Anda di halaman Nomor WhatsApp dengan kode QR atau kode penautan, seperti WhatsApp Web. Di Pengaturan → Kunci API, buat kunci dan salin Client ID Anda (panduan Kunci API di bawah menunjukkan letaknya). ID di kartu nomor (seperti ID 678) adalah
whatsapp_clientAnda.Susun request-nya
Masukkan
client_id,api_key,whatsapp_client, nomor telepon, danmsgke dalam array. Kirim sebagai JSON dengan ekstensi cURL PHP – atau dengan HTTP client apa pun yang sudah Anda pakai, dengan field yang sama.Kirim pesannya
POST ke
https://wbiztool.com/api/v1/send_msg/. Balasan dengan"status": 1danmsg_idberarti pesan sudah masuk antrean di nomor Anda.Pastikan pesan terkirim
Sertakan URL
webhookuntuk diberi tahu saat pesan terkirim atau gagal, atau tanyakan ke endpoint Status pesan denganmsg_id.
Contoh kode PHP
<?php
$payload = [
'client_id' => 12345,
'api_key' => 'YOUR_API_KEY',
'whatsapp_client' => 678,
'msg_type' => 0,
'country_code' => '91',
'phone' => '9876543210',
'msg' => 'Hi Aman, your order #4821 has shipped and will arrive on Thursday.',
];
$ch = curl_init('https://wbiztool.com/api/v1/send_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 'Queued with msg_id ' . $result['msg_id'];
} else {
echo 'Failed: ' . ($result['message'] ?? 'no response');
}{"status": 1, "message": "Created", "msg_id": 9817263}<?php
$ch = curl_init('https://wbiztool.com/api/v1/send_msg/');
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,
'country_code' => '91',
'phone' => '9876543210',
'img_url' => 'https://example.com/offers/diwali-sale.jpg',
'msg' => 'Our Diwali sale starts today 🎉',
]),
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch);
curl_close($ch);<?php
$ch = curl_init('https://wbiztool.com/api/v1/send_msg/');
curl_setopt_array($ch, [
CURLOPT_POST => true,
// An array body (not json_encode) makes cURL send multipart/form-data.
CURLOPT_POSTFIELDS => [
'client_id' => 12345,
'api_key' => 'YOUR_API_KEY',
'whatsapp_client' => 678,
'msg_type' => 2,
'country_code' => '91',
'phone' => '9876543210',
'msg' => 'Your invoice for order #4821 is attached.',
'file_name' => 'invoice-4821.pdf',
'file' => new CURLFile('/path/to/invoice-4821.pdf', 'application/pdf', 'invoice-4821.pdf'),
],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 120,
]);
echo curl_exec($ch);
curl_close($ch);<?php
$payload = [
'client_id' => 12345,
'api_key' => 'YOUR_API_KEY',
'whatsapp_client' => 678,
'msg_type' => 0,
'country_code' => '91',
'phone' => '9876543210',
'msg' => 'Hi Aman, a reminder that your appointment is today at 11:30 AM.',
'date' => '24/12/2026',
'time' => '09:00',
'timezone' => 'Asia/Kolkata',
];
$ch = curl_init('https://wbiztool.com/api/v1/schedule_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 'Scheduled with msg_id ' . $result['msg_id'];
} else {
echo 'Failed: ' . ($result['message'] ?? 'no message in response');
}<?php
$msgId = 9817263;
$payload = [
'client_id' => 12345,
'api_key' => 'YOUR_API_KEY',
];
$ch = curl_init("https://wbiztool.com/api/v1/message/status/{$msgId}/");
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['message'] ?? '') === 'Unknown message id') {
echo 'No message with this ID in your workspace';
} elseif (!isset($result['status_text'])) {
echo 'Request failed: ' . ($result['message'] ?? 'no message in response');
} elseif ($result['status'] === 1) {
echo 'Sent';
} elseif ($result['status'] === 2) {
echo 'Failed: ' . $result['error'];
} else {
echo 'Status: ' . $result['status_text'];
}<?php
// webhook.php – WbizTool posts form fields, so they arrive in $_POST.
$msgId = $_POST['msg_id'] ?? '';
$status = $_POST['status'] ?? ''; // SENT, FAILED, CANCELLED or EXPIRED
error_log("WbizTool message $msgId: $status");
http_response_code(200);Yang bisa Anda lakukan
Tanpa library yang perlu diinstal
Contoh-contohnya hanya memakai ekstensi cURL PHP. API menerima JSON, form field, atau multipart form data saat Anda mengunggah file.
Teks, gambar, dan file
Atur
msg_typeke 0 untuk teks, 1 untuk gambar, atau 2 untuk file. Beriimg_urlataufile_urlpublik, atau unggah file denganCURLFile.Jadwalkan untuk nanti
POST ke
/api/v1/schedule_msg/dengandate(dd/mm/yyyy),time(HH:MM), dantimezonesepertiAsia/KolkataatauAmerica/New_York.Webhook untuk setiap status
Sertakan
webhookdan skrip Anda menerima POST form-encoded – baca$_POST['msg_id']dan$_POST['status'](SENT,FAILED,CANCELLED, atauEXPIRED).Pakai WordPress? Gunakan plugin-nya
Plugin WordPress WbizTool mengirim pesan WhatsApp untuk pesanan WooCommerce, booking WP Amelia, dan formulir Contact Form 7 tanpa kode.
Perlu diketahui
"status": 1berarti pesan masuk antrean, bukan sudah diterima. Terkirim (Sent) adalah status sukses terakhir; API tidak melaporkan apakah pesan sudah diterima atau dibaca.- Error Kirim pesan kembali dengan HTTP 400 (429 saat batas harian); error Jadwalkan pesan biasanya kembali dengan HTTP 200 dan
"status": 0, jadi selalu decode body dan periksastatus. - Untuk unggah file, berikan array ke
CURLOPT_POSTFIELDS, bukanjson_encode, agar cURL mengirimmultipart/form-datadengan file di field bernamafile. - Simpan kunci API di server Anda, misalnya di environment variable. Siapa pun yang memilikinya bisa mengirim dari nomor-nomor Anda, jadi jangan pernah menaruhnya di JavaScript browser, aplikasi mobile, atau kode yang Anda publikasikan.
- Uji coba gratis berisi 50 pesan dalam 30 hari mana pun dan 1 nomor, tanpa kartu. Paket berbayar mulai $25 per bulan di AS (harga Anda ada di halaman Harga) dan mengirim pesan tanpa batas sesuai penggunaan wajar: hingga 1.000 per hari per nomor.
- Pesan dikirim dari nomor WhatsApp Anda sendiri, jadi aturan WhatsApp sendiri berlaku: kirim pesan ke orang yang menunggu kabar dari Anda.
Pertanyaan
- Apakah ada SDK PHP?
- Tidak ada paket PHP resmi, dan Anda tidak memerlukannya: setiap panggilan adalah satu POST dengan ekstensi cURL, seperti contoh di atas. HTTP client PHP apa pun bisa dipakai dengan URL dan field yang sama.
- Bagaimana cara mengirim invoice PDF dari PHP?
- Gunakan
msg_type2. Berifile_urlpublik, atau unggah file dengannew CURLFile(...)di field bernamafile. Aturfile_namedengan ekstensinya, sepertiinvoice-4821.pdf. - Bagaimana saya tahu pesan sudah terkirim?
- Balasan dengan
"status": 1danmsg_idberarti pesan sudah masuk antrean. Sertakan URLwebhookuntuk menerima POST denganSENT,FAILED,CANCELLED, atauEXPIRED, atau panggil endpoint Status pesan denganmsg_id. Terkirim (Sent) adalah status akhir: API tidak melaporkan pesan diterima atau dibaca. - Format nomor telepon apa yang harus saya kirim?
- Kirim nomor dengan kode negaranya (6281234567890), atau tanpa kode negara (81234567890) bersama
country_code(62). Spasi, +, tanda hubung, dan tanda kurung dihapus otomatis, jadi +62 812-3456-7890 juga bisa. - Apakah saya perlu WhatsApp Business API atau persetujuan Meta?
- Tidak. WbizTool mengirim dari nomor WhatsApp atau WhatsApp Business Anda sendiri, yang ditautkan seperti WhatsApp Web. Tidak perlu persetujuan Meta dan tidak ada template pesan yang harus disetujui.
- Apakah ada biaya per pesan?
- Tidak. Uji coba gratis mencakup 50 pesan dalam 30 hari mana pun. Paket berbayar mengirim pesan tanpa batas sesuai penggunaan wajar, hingga 1.000 per hari per nomor: Lite $25, Standard $59, dan Advanced $149 per bulan di AS; halaman Harga menampilkan harga untuk negara Anda.
Baca panduannya
- API Kirim pesan
- API Jadwalkan pesan
- API Status pesan
- Plugin WordPress
- Kunci API dan Client ID
- Hubungkan nomor WhatsApp Anda
Terkait
- WordPressPesan WhatsApp untuk pesanan WooCommerce, Contact Form 7, dan WP Amelia.
- cURLKirim, jadwalkan, dan lacak pesan WhatsApp dengan satu perintah cURL.
- PythonKirim pesan WhatsApp dari Python dengan client resmi atau requests biasa.
- Pengingat pembayaranPengingat pembayaran bulanan atau sekali kirim dari nomor Anda sendiri, dengan invoice dalam PDF.
Kirim pesan WhatsApp otomatis pertama Anda hari ini
Buat akun, scan kode QR, dan kirim pesan dalam waktu kurang dari lima menit.
Mulai gratisPaket berbayar mulai $25 per bulan di AS. Harga
