Autentikasi (API Key)

Semua permintaan ke API SentralPesan wajib menyertakan API Key. Anda bisa mendapatkannya di menu API Keys & Docs pada Dashboard. Anda dapat mengirimkan API Key melalui HTTP Header, atau disisipkan langsung ke dalam parameter Body/Form-Data.

Header Key Authorization
Header Value Bearer [API_KEY_ANDA]
Referensi Device ID

Sistem kami memungkinkan Anda menghubungkan banyak nomor WhatsApp sekaligus. Oleh karena itu, Anda wajib menyertakan parameter device_id di dalam body request agar sistem mengetahui dari nomor WhatsApp mana pesan tersebut harus dikirimkan.

Anda dapat melihat daftar Device ID aktif Anda di menu Device & QR Code pada Dashboard pengguna.

Endpoint 1: Kirim Pesan Teks

Gunakan endpoint ini untuk mengirim pesan teks biasa ke nomor tujuan manapun. Sistem secara otomatis akan memformat awalan nomor 08 menjadi 628.

POST https://sentralpesan.com/api/send_message

Headers:

Content-Type application/json

Parameter Body (JSON):

Parameter Tipe Keterangan
device_id String ID Perangkat Anda (Contoh: SP-079547). Wajib.
number String Nomor tujuan pengiriman (Contoh: 628123456789). Wajib.
message String Isi teks pesan yang ingin dikirim. Mendukung karakter Emoji. Wajib.

Contoh Request Teks (PHP cURL):

<?php
$curl = curl_init();
$payload = json_encode(array(
  "device_id" => "SP-XXXXXX", 
  "number" => "6281234567890", 
  "message" => "Halo! Ini pesan teks dari API."
));

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://sentralpesan.com/api/send_message',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => $payload,
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    'Authorization: Bearer MASUKAN_API_KEY_ANDA_DISINI'
  ),
));

$response = curl_exec($curl);
echo $response;
?>
Endpoint 2: Kirim Gambar & Media

Gunakan endpoint ini untuk mengirimkan file fisik (seperti JPG, PNG, PDF) atau menggunakan URL gambar langsung ke WhatsApp pelanggan beserta keterangan (caption).

Penting: Untuk mengirim media, ubah Content-Type Anda menjadi multipart/form-data. Sangat disarankan untuk memasukkan api_key ke dalam body form data jika web server Anda memblokir header saat upload file.
POST https://sentralpesan.com/api/send_media

Parameter Body (Multipart Form-Data):

Parameter Tipe Keterangan
api_key String API Key Anda. Opsional jika Anda sudah mengirimkannya via Header Authorization.
device_id String ID Perangkat Anda (Contoh: SP-079547). Wajib.
number String Nomor tujuan pengiriman (Contoh: 628123456789). Wajib.
caption String Keterangan teks di bawah gambar/video. Mendukung emoji. (Opsional)
file File File fisik dari server/komputer Anda. Wajib jika `media_url` kosong.
media_url String Tautan/URL langsung ke gambar (Misal: https://web.com/img.jpg). Wajib jika parameter `file` kosong.

Contoh Request Upload File (PHP cURL):

<?php
$api_url = "https://sentralpesan.com/api/send_media";
$lokasi_file = __DIR__ . '/gambar.jpg'; // Path fisik file di server Anda

$data = [
    "api_key"   => "MASUKAN_API_KEY_ANDA_DISINI", 
    "device_id" => "SP-XXXXXX",
    "number"    => "6281234567890",
    "caption"   => "Promo bulan ini! 🎉 Silakan cek gambar berikut.",
    "file"      => new CURLFile($lokasi_file, 'image/jpeg', 'gambar.jpg') // Gunakan CURLFile
];

$ch = curl_init($api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$response = curl_exec($ch);
echo $response;
?>
Contoh Respons Kembalian (JSON)

Struktur respons kembalian ini berlaku secara universal baik untuk pengiriman Pesan Teks maupun Pesan Media.

Jika Sukses Terkirim (HTTP 200)
{
    "status": "success",
    "message": "Pesan berhasil masuk ke jaringan WhatsApp.",
    "data": {
        "device_id": "SP-XXXXXX",
        "number": "6281234567890",
        "message_id": "true_6281234567890@c.us_3EB0..."
    }
}
Jika Gagal / Device Offline (HTTP 400/401)
{
    "status": "failed",
    "message": "Perangkat sedang Offline. Silakan buka dashboard dan pastikan perangkat sudah di-scan (QR Code)."
}
Jika Pending / Timeout (HTTP 202)
{
    "status": "pending",
    "message": "Sistem sibuk. Pesan tertahan di antrean (Timeout).",
    "data": {
        "device_id": "SP-XXXXXX",
        "number": "6281234567890",
        "message_id": null
    }
}