Quickstart
Kirim pesan WhatsApp pertama Anda dalam lima menit. Base URL: https://api.wangsa.id
1. Autentikasi
Ambil token device dari dashboard, lalu sertakan di header Authorization. Token dikirim langsung — tanpa "Bearer".
2. Kirim pesan
Satu permintaan POST sudah cukup untuk mengirim pesan teks.
curl https://api.wangsa.id/v1/send \ -H "Authorization: sk_live_•••" \ -d target="628123456789" \ -d message="Halo dari Wangsa 👋"
Respons mengembalikan status dan sisa kuota Anda:
{ "status": true, "id": "msg_8KzQ1xR", "queued": true, "quota": 9981 }
3. Parameter utama
| Parameter | Tipe | Keterangan |
|---|---|---|
target wajib | string | Nomor tujuan (pisah koma untuk banyak) atau ID grup. Opsional bila pakai inboxid. |
message | string | Isi pesan teks; mendukung variabel {name}. Jadi caption bila ada url. |
url | string | Lampiran gambar/file/audio/video (paket media). |
type | string | text|image|document|video|audio|location|poll|sticker|contact (auto-deteksi bila kosong). |
contactName / contactPhone | string | Kirim kontak (vCard). |
device | string | ID device; csv = rotator (acak per target). Tak perlu bila pakai token device. |
location | string | Kirim lokasi, format lat,lng. |
choices | string | Poll: 2–12 pilihan pisah koma. |
select | string | Poll: single / multiple. |
inboxid | int | Balas pesan masuk (target & device otomatis dari inbox). |
countryCode | string | Normalisasi 0 depan; default 62; 0 = nonaktif. |
delay | string | Jeda acak, mis. 2-5 detik (anti-ban). |
schedule | int | Unix timestamp untuk kirim terjadwal. |
4. Terima pesan (webhook)
Daftarkan URL webhook di dashboard untuk menerima pesan masuk dan pembaruan status. Setiap payload ditandatangani HMAC; endpoint Anda harus membalas 200. Pengiriman gagal dicoba ulang otomatis.
Daftar endpoint
| Method | Endpoint | Fungsi |
|---|---|---|
POST | /v1/send | Kirim pesan (teks/media/lokasi/poll) |
GET | /v1/send?... | Kirim via URL (token boleh di query ?token=) |
POST | /v1/send (inboxid) | Balas pesan masuk via API |
GET | /v1/device | Daftar device & status |
GET | /v1/device/profile | Profil device + sisa kuota |
POST | /v1/device/disconnect | Putuskan device |
GET | /v1/group/list | Daftar grup WhatsApp device |
POST | /v1/typing | Indikator mengetik ke target |
GET/POST | /v1/validate | Cek nomor terdaftar di WhatsApp |
POST | /v1/order | Beli / perpanjang paket |
GET | /v1/device/qr | Ambil QR / kode pairing (polling saat menyambungkan) |
Webhook bisa dibatasi per-device di dashboard (kosongkan = semua device).
Integrasi — Bahasa & Library
Semua integrasi pada dasarnya sama: kirim POST ke /v1/send dengan header Authorization berisi token Anda.
https://api.wangsa.id (SaaS). Bila self-host, gunakan https://domain-anda.com/api/v1/send.<?php
$ch = curl_init('https://api.wangsa.id/v1/send');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: TOKEN_ANDA'],
CURLOPT_POSTFIELDS => [
'target' => '628123456789',
'message' => 'Halo dari Wangsa 👋',
],
]);
echo curl_exec($ch);await fetch('https://api.wangsa.id/v1/send', {
method: 'POST',
headers: { 'Authorization': 'TOKEN_ANDA', 'Content-Type': 'application/json' },
body: JSON.stringify({ target: '628123456789', message: 'Halo dari Wangsa' }),
});use Illuminate\Support\Facades\Http;
Http::withHeaders(['Authorization' => 'TOKEN_ANDA'])
->post('https://api.wangsa.id/v1/send', [
'target' => '628123456789',
'message' => 'Halo dari Wangsa',
]);Integrasi — Platform & Plugin
Hubungkan form & toko online ke WhatsApp. Ganti TOKEN_ANDA dan nama field sesuai milik Anda.
Contact Form 7 (WordPress)
Tempel di functions.php tema/child-theme. Kirim WA tiap form terkirim.
add_action('wpcf7_mail_sent', function ($cf7) {
$d = WPCF7_Submission::get_instance()->get_posted_data();
wp_remote_post('https://api.wangsa.id/v1/send', [
'headers' => ['Authorization' => 'TOKEN_ANDA'],
'body' => [
'target' => $d['your-phone'], // nama field telp
'message' => "Halo {$d['your-name']}, pesan Anda kami terima.",
],
]);
});WooCommerce — notifikasi order
Kirim WA otomatis saat status order berubah (mis. processing).
add_action('woocommerce_order_status_processing', function ($order_id) {
$o = wc_get_order($order_id);
wp_remote_post('https://api.wangsa.id/v1/send', [
'headers' => ['Authorization' => 'TOKEN_ANDA'],
'body' => [
'target' => $o->get_billing_phone(),
'message' => "Terima kasih! Pesanan #{$order_id} sedang diproses. Total: " . $o->get_total(),
],
]);
});Elementor Forms
Tempel snippet (Elementor Pro) — terpicu tiap submit form.
add_action('elementor_pro/forms/new_record', function ($record, $handler) {
$f = $record->get('fields');
wp_remote_post('https://api.wangsa.id/v1/send', [
'headers' => ['Authorization' => 'TOKEN_ANDA'],
'body' => ['target' => $f['phone']['value'], 'message' => 'Halo ' . $f['name']['value']],
]);
}, 10, 2);Formidable Forms
add_action('frm_after_create_entry', function ($entry_id) {
$phone = FrmEntryMeta::get_entry_meta_by_field($entry_id, 25); // ID field telp
$name = FrmEntryMeta::get_entry_meta_by_field($entry_id, 26); // ID field nama
wp_remote_post('https://api.wangsa.id/v1/send', [
'headers' => ['Authorization' => 'TOKEN_ANDA'],
'body' => ['target' => $phone, 'message' => "Halo $name"],
]);
}, 30, 1);Google Form (Apps Script)
Extensions → Apps Script, tempel kode, lalu buat trigger On form submit.
function onFormSubmit(e) {
var v = e.values; // [waktu, nama, no_hp, ...] sesuai urutan kolom
UrlFetchApp.fetch('https://api.wangsa.id/v1/send', {
method: 'post',
headers: { Authorization: 'TOKEN_ANDA' },
payload: { target: v[2], message: 'Halo ' + v[1] + ', terima kasih sudah mengisi form.' },
});
}No-code (Zapier / n8n / Make)
Tambahkan langkah HTTP Request: method POST, URL https://api.wangsa.id/v1/send, header Authorization: TOKEN_ANDA, body target & message. Selesai.
delay (mis. 3-8) saat blast dari plugin agar lebih aman (anti-ban), dan variabel {name} untuk personalisasi.