REST API Documentation
Integrasikan layanan WhatsApp Moonwa ke dalam aplikasi Anda sendiri menggunakan standar REST API HTTP.
Autentikasi
Setiap permintaan API memerlukan API Key yang valid. Anda dapat menemukan atau membuat ulang API Key Anda di menu Device > Settings pada dashboard.
Keamanan: Jaga kerahasiaan API Key Anda. Jangan pernah mengeksposnya di kode Client-Side (seperti file HTML/JS publik). Selalu panggil API dari Server-Side (Backend).
1. Send Text Message
Mengirim pesan teks sederhana ke nomor pribadi atau grup.
POST
https://api.moonwa.id/api/send-message
Parameter Body (JSON)
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
api_key |
String | Ya | Kunci API dari device Anda. |
receiver |
String | Ya | Nomor tujuan (Format: 628xx) atau Group ID. |
data |
Object | Ya | Payload pesan. |
data.message |
String | Ya | Isi pesan teks. |
{
"api_key": "YOUR_API_KEY",
"receiver": "628123456789",
"data": {
"message": "Halo, ini pesan test dari API!"
}
}
curl -X POST \
'https://api.moonwa.id/api/send-message' \
--header 'Content-Type: application/json' \
--data-raw '{
"api_key": "YOUR_API_KEY",
"receiver": "628123456789",
"data": {
"message": "Halo, ini pesan test dari API!"
}
}'
$data = [
'api_key' => 'YOUR_API_KEY',
'receiver' => '628123456789',
'data' => [
'message' => 'Halo, ini pesan test dari API!'
]
];
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.moonwa.id/api/send-message",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_HTTPHEADER => ["Content-Type: application/json"],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
2. Send Media Message
Mengirim pesan gambar, video, audio, atau dokumen.
POST
https://api.moonwa.id/api/send-media
Parameter Body (JSON)
| Parameter | Tipe | Keterangan |
|---|---|---|
data.url |
String | URL file media (harus publik/bisa diakses internet). |
data.media_type |
String | Pilihan: image, video, audio, file. |
data.caption |
String | (Opsional) Teks keterangan media. |
{
"api_key": "YOUR_API_KEY",
"receiver": "628123456789",
"data": {
"url": "https://example.com/image.jpg",
"media_type": "image",
"caption": "Ini adalah foto produk kami"
}
}
$data = [
'api_key' => 'YOUR_API_KEY',
'receiver' => '628123456789',
'data' => [
'url' => 'https://example.com/invoice.pdf',
'media_type' => 'file',
'caption' => 'Silakan unduh invoice Anda'
]
];
// ... Lanjutkan dengan cURL execution seperti contoh Send Text
3. Webhook (Incoming Message)
Webhook digunakan untuk menerima notifikasi pesan masuk secara real-time ke server Anda. Anda dapat mengatur URL Webhook di menu Device Settings.
Contoh Format Data (Diterima Server Anda)
{
"sender": "62857xxxxxxx",
"message": "Halo kak, cek harga dong",
"is_group": false,
"timestamp": 1678900000
}
<?php
// Tangkap input JSON dari Moonwa
$input = file_get_contents('php://input');
$data = json_decode($input, true);
// Pastikan data ada
if (isset($data['message'])) {
$sender = $data['sender'];
$pesan = $data['message'];
// Logika balasan Anda...
if ($pesan == 'Info') {
// Panggil API SendText untuk membalas
}
}
// Selalu kembalikan respon 200 OK
http_response_code(200);
echo json_encode(['status' => 'success']);
?>
© 2025 Moonwa. Documentation.