SENDAL WAGU

Dokumentasi API

Kirim pesan WhatsApp dari aplikasi Anda lewat satu endpoint REST.

Mulai cepat

SENDAL WAGU adalah gateway WhatsApp tidak resmi. Hubungkan nomor Anda sekali, lalu kirim pesan dari aplikasi apa pun lewat satu endpoint REST.

  1. Pilih paket. Buka menu Pilih Paket di panel customer.
  2. Hubungkan WhatsApp. Di Sesi WhatsApp, klik Buat sesi baru, lalu Lihat QR dan scan lewat WhatsApp › Perangkat tertaut. Tunggu status connected.
  3. Buat API key. Buka API Akses lalu klik Buat API key.
  4. Kirim pesan. Salin contoh kode di bagian Kirim pesan.

Daftar gratis Masuk

Autentikasi

Semua request ke API wajib membawa API key milik akun Anda. Kirim apa adanya lewat header Authorization, tanpa awalan Bearer. Header X-Api-Key dan Token, atau field api_key di body, juga diterima.

BASE URL https://send.alkhaf.com/api/v1
POST https://send.alkhaf.com/api/v1/messages

Endpoint kirim pesan adalah Base URL ditambah /messages.

HeaderNilai
Authorization<API_KEY>wajib
Content-Typeapplication/jsonwajib
Acceptapplication/jsondisarankan
Rahasiakan API key. Panggil API dari server Anda, bukan dari browser atau aplikasi mobile. Jika key bocor, buat ulang di menu API Akses. Key lama langsung tidak berlaku.

Kirim pesan teks

POST https://send.alkhaf.com/api/v1/messages

Parameter body

NamaTipeKeterangan
session opsional string Nama sesi dari menu Sesi WhatsApp, misalnya budi_628123456789 (format username_nomor). Status sesi harus connected. Jika dikosongkan, dipakai sesi default (menu API Akses) atau satu-satunya sesi yang terhubung.
to wajib string Nomor tujuan dalam format internasional tanpa tanda +, misalnya 628123456789. Awalan 0 otomatis diubah menjadi 62.
message wajib string Isi pesan teks.

Contoh request

curl -X POST "https://send.alkhaf.com/api/v1/messages" \
  -H "Authorization: <API_KEY_ANDA>" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "session": "nama_sesi_anda",
    "to": "628123456789",
    "message": "Halo dari SENDAL WAGU!"
  }'
<?php
$ch = curl_init('https://send.alkhaf.com/api/v1/messages');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: <API_KEY_ANDA>',
        'Accept: application/json',
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'session' => 'nama_sesi_anda',
        'to' => '628123456789',
        'message' => 'Halo dari SENDAL WAGU!',
    ]),
]);
$response = curl_exec($ch);
curl_close($ch);

echo $response;
const res = await fetch('https://send.alkhaf.com/api/v1/messages', {
  method: 'POST',
  headers: {
    Authorization: '<API_KEY_ANDA>',
    Accept: 'application/json',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    session: 'nama_sesi_anda',
    to: '628123456789',
    message: 'Halo dari SENDAL WAGU!',
  }),
});

console.log(res.status, await res.json());
import requests

res = requests.post(
    "https://send.alkhaf.com/api/v1/messages",
    headers={"Authorization": "<API_KEY_ANDA>", "Accept": "application/json"},
    json={
        "session": "nama_sesi_anda",
        "to": "628123456789",
        "message": "Halo dari SENDAL WAGU!",
    },
)
print(res.status_code, res.json())

Respons

Jika berhasil, API membalas 200 dan kuota pesan berkurang satu. Isi data adalah respons mentah dari mesin WhatsApp dan bisa berbeda antarversi. Daftar respons gagal ada di Kode respons.

200 OK
{
  "message": "Pesan terkirim.",
  "data": { "id": "..." }
}
Untuk pesan teks saja. Endpoint yang tersedia saat ini hanya POST /messages.

Integrasi aplikasi lain

Untuk aplikasi pihak ketiga (sistem kost, kasir, ERP, dan sejenisnya) yang punya kolom pengaturan gateway, isi seperti berikut.

Kolom di aplikasiIsi
API URL / Base URLhttps://send.alkhaf.com/api/v1/messages. Jika aplikasi menambahkan path sendiri di belakang URL, cukup https://send.alkhaf.com/api/v1.
API Key / TokenAPI key dari menu API Akses.
Device token / secretKosongkan.
Nomor / sesi pengirimNomor WhatsApp sesi Anda atau nama sesi. Jika kosong atau tidak cocok, dipakai sesi default (menu API Akses) atau satu-satunya sesi yang terhubung.

Nama field alternatif yang diterima: tujuan to / phone / target / number; isi pesan message / text / body; pengirim session / sender / from / device. Path alternatif: /send dan /send-message di bawah /api atau /api/v1.

Status sesi

Status tampil di menu Sesi WhatsApp dan diperbarui otomatis. Pesan hanya bisa dikirim saat status connected.

StatusArti
startingSesi sedang disiapkan di server.
scan_qrMenunggu QR discan dari aplikasi WhatsApp.
connectedTerhubung. Siap dipakai mengirim pesan.
disconnectedTerputus. Buat ulang sesi lalu scan QR kembali.
stoppedSesi dihentikan.

Kode respons

Setiap respons berupa JSON dengan kunci message. Gunakan kode status HTTP untuk menentukan langkah berikutnya.

KodePenyebabContoh body
200Pesan berhasil dikirim.{"message":"Pesan terkirim."}
401 Unauthorized
API key salah, kosong, atau sudah diganti.
{"message":"API key tidak valid."}
402 Payment Required
Tidak ada paket aktif, atau kuota pesan habis.
{"message":"Kuota pesan Anda sudah habis."}
404 Not Found
Nama sesi tidak ditemukan di akun Anda.
{"message":"Sesi WhatsApp tidak ditemukan."}
409 Conflict
Sesi ada, tetapi belum berstatus connected.
{"message":"Sesi WhatsApp belum terhubung."}
422 Unprocessable
Parameter wajib kosong atau formatnya salah, atau session tidak dikirim padahal ada beberapa sesi terhubung dan belum ada sesi default.
{"message":"The to field is required.","errors":{"to":["The to field is required."]}}
502 Bad Gateway
Server WhatsApp menolak atau tidak merespons.
{"message":"Gagal mengirim pesan.","detail":{}}

Kuota dan paket

  • Kuota berkurang satu untuk setiap pesan yang berhasil (respons 200). Request yang gagal tidak mengurangi kuota.
  • Paket unlimited tidak memiliki batas jumlah pesan.
  • Jumlah sesi WhatsApp dibatasi sesuai paket.
  • Pesan dari paket gratis (harga Rp0) otomatis diberi watermark di akhir pesan. Paket berbayar tidak memakai watermark.
  • Setelah masa aktif berakhir atau kuota habis, API membalas 402. Paket baru bisa dipilih setelah paket lama berakhir.

FAQ

Kenapa saya mendapat status 409?

Sesi belum terhubung. Buka Sesi WhatsApp (status diperbarui otomatis tiap 10 detik) dan scan ulang QR jika perlu.

Apakah layanan ini resmi dari WhatsApp?

Bukan. Layanan berjalan di atas WhatsApp Web tidak resmi, sehingga nomor berisiko dibatasi oleh WhatsApp. Kirim hanya ke kontak yang mengharapkan pesan dan hindari pesan massal yang tidak diminta.

Kenapa pesan ke nomor baru gagal (error 463 atau 475)?

WhatsApp membatasi jumlah kontak baru yang boleh dihubungi sebuah akun. Sesi tetap terhubung. Balas percakapan yang sudah ada, kurangi pesan ke kontak baru, lalu coba lagi nanti.

Kenapa pesan saya ada tambahan teks di akhir?

Itu watermark paket gratis. Upgrade ke paket berbayar agar pesan terkirim tanpa tambahan teks.

Bagaimana format nomor tujuan?

Gunakan kode negara tanpa +, misalnya 628123456789. Nomor berawalan 0 akan diubah otomatis ke 62.

API key saya bocor, apa yang harus dilakukan?

Buka API Akses lalu klik Buat ulang API key. Key lama langsung tidak bisa dipakai.