REST API v1

Dokumentasi API

Integrasikan WhatsApp Gateway ke aplikasi Anda dalam hitungan menit. Semua endpoint, parameter, dan contoh kode lengkap tersedia di sini.

Bearer Token Auth JSON Response REST API
POST /api/v1/messages/send

                    Authorization: Bearer {your_token}
                    Content-Type: application/json

                    {
                    "device_id": 1,
                    "target": "6281234567890",
                    "message": "Halo!"
                    }
Base URL https://whatsapp.rentals.id/api/v1
Semua endpoint memerlukan header Accept: application/json

Autentikasi

POST /api/v1/...
Auth Required

Cara Mendapatkan API Token

Semua endpoint API v1 menggunakan autentikasi **Bearer Token (Sanctum)**. Token dapat dibuat melalui halaman **Profil → API Token** di dashboard. Sertakan token pada setiap request menggunakan header `Authorization: Bearer <token>`. Token bersifat personal dan tidak boleh dibagikan kepada pihak lain.

Headers

KeyValueKeterangan
Authorization * Bearer {your_token} Token API pribadi Anda dari halaman Profil
Accept * application/json Wajib disertakan agar response berformat JSON
Content-Type application/json Untuk request dengan JSON body

Perangkat

GET /api/v1/devices
Auth Required

Daftar Perangkat

Mengambil seluruh perangkat WhatsApp milik akun Anda beserta statusnya. Gunakan `id` perangkat yang statusnya `active` sebagai nilai `device_id` saat mengirim pesan.

Headers

KeyValueKeterangan
Authorization * Bearer {your_token} Token API Anda
Accept * application/json

Contoh Kode

curl -X GET "http://whatsapp.test/api/v1/devices" \
  -H "Authorization: Bearer {your_token}" \
  -H "Accept: application/json"
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://whatsapp.test/api/v1/devices");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer {your_token}',
    'Accept: application/json',
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
const response = await fetch('http://whatsapp.test/api/v1/devices', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer {your_token}',
    'Accept': 'application/json',
  },
});
const data = await response.json();
console.log(data);
import requests

response = requests.get(
    'http://whatsapp.test/api/v1/devices',
    headers={
        'Authorization': 'Bearer {your_token}',
        'Accept': 'application/json',
    }
)
print(response.json())

Response Sukses 200

{
    "status": true,
    "message": "Berhasil mengambil data devices",
    "data": [
        {
            "id": 1,
            "name": "Nomor Utama",
            "number": "6281234567890",
            "status": "active",
            "session_id": "wa_session_abc123"
        }
    ]
}

Response Error

401
{
    "message": "Unauthenticated."
}
403
{
    "status": false,
    "message": "Langganan Anda tidak aktif."
}

Rotator

GET /api/v1/rotators
Auth Required

Daftar Rotator Aktif

Mengambil seluruh rotator milik akun Anda yang sedang aktif. Rotator adalah grup perangkat yang digunakan untuk mendistribusikan pengiriman pesan secara otomatis. Gunakan `id` rotator sebagai nilai `rotator_id` saat mengirim pesan.

Headers

KeyValueKeterangan
Authorization * Bearer {your_token} Token API Anda
Accept * application/json

Contoh Kode

curl -X GET "http://whatsapp.test/api/v1/rotators" \
  -H "Authorization: Bearer {your_token}" \
  -H "Accept: application/json"
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://whatsapp.test/api/v1/rotators");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer {your_token}',
    'Accept: application/json',
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
const response = await fetch('http://whatsapp.test/api/v1/rotators', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer {your_token}',
    'Accept': 'application/json',
  },
});
const data = await response.json();
import requests

response = requests.get(
    'http://whatsapp.test/api/v1/rotators',
    headers={
        'Authorization': 'Bearer {your_token}',
        'Accept': 'application/json',
    }
)
print(response.json())

Response Sukses 200

{
    "status": true,
    "message": "Berhasil mengambil data rotators",
    "data": [
        {
            "id": 1,
            "name": "Rotator CS",
            "mode": "round_robin",
            "active_devices_count": 3
        }
    ]
}

Response Error

401
{
    "message": "Unauthenticated."
}
403
{
    "status": false,
    "message": "Langganan Anda tidak aktif."
}

Pesan

POST /api/v1/messages/send
Auth Required

Kirim Pesan Teks

Mengirim pesan teks ke nomor WhatsApp tujuan melalui perangkat atau rotator milik Anda. Anda wajib menyertakan salah satu dari `device_id` atau `rotator_id`. Nomor tujuan dapat diawali dengan `0` (otomatis dikonversi ke format `62`) atau langsung menggunakan format internasional.

Headers

KeyValueKeterangan
Authorization * Bearer {your_token} Token API Anda
Accept * application/json
Content-Type * application/json Wajib saat mengirim JSON body

Body Parameters

ParameterTipeKeterangan
device_id integer ID perangkat pengirim. Wajib jika rotator_id tidak disertakan.
Contoh: 1
rotator_id integer ID rotator pengirim. Wajib jika device_id tidak disertakan.
Contoh: 1
target * string Nomor WhatsApp tujuan. Format: 628xxx atau 08xxx.
Contoh: 6281234567890
message * string Isi pesan teks yang akan dikirim.
Contoh: Halo, pesanan Anda telah dikonfirmasi!
scheduled_at string Opsional. Waktu penjadwalan (format: YYYY-MM-DD HH:mm:ss). Jika diisi, pesan akan masuk antrian.
Contoh: 2026-10-01 10:00:00

Contoh Kode

curl -X POST "http://whatsapp.test/api/v1/messages/send" \
  -H "Authorization: Bearer {your_token}" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "device_id": 1,
    "target": "6281234567890",
    "message": "Halo, pesanan Anda telah dikonfirmasi!"
  }'
<?php
$data = [
    'device_id' => 1,
    'target'    => '6281234567890',
    'message'   => 'Halo, pesanan Anda telah dikonfirmasi!',
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://whatsapp.test/api/v1/messages/send");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer {your_token}',
    'Accept: application/json',
    'Content-Type: application/json',
]);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
const response = await fetch('http://whatsapp.test/api/v1/messages/send', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer {your_token}',
    'Accept': 'application/json',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    device_id: 1,
    target: '6281234567890',
    message: 'Halo, pesanan Anda telah dikonfirmasi!',
  }),
});
const data = await response.json();
console.log(data);
import requests

response = requests.post(
    'http://whatsapp.test/api/v1/messages/send',
    headers={
        'Authorization': 'Bearer {your_token}',
        'Accept': 'application/json',
    },
    json={
        'device_id': 1,
        'target': '6281234567890',
        'message': 'Halo, pesanan Anda telah dikonfirmasi!',
    }
)
print(response.json())

Response Sukses 200

{
    "status": true,
    "message": "Pesan berhasil diproses.",
    "used_device": {
        "id": 1,
        "name": "Nomor Utama",
        "number": "6281234567890"
    }
}

Response Error

400
{
    "status": false,
    "message": "Sertakan device_id atau rotator_id."
}
400
{
    "status": false,
    "message": "Device WhatsApp sedang tidak aktif."
}
403
{
    "status": false,
    "message": "Anda telah mencapai batas kuota pesan (1000 pesan) untuk bulan ini."
}
403
{
    "status": false,
    "message": "Plan langganan Anda tidak mendukung penggunaan fitur API."
}
422
{
    "status": false,
    "message": "Validasi gagal.",
    "errors": {
        "target": [
            "The target field is required."
        ]
    }
}
POST /api/v1/messages/send
Auth Required

Kirim Pesan dengan Attachment (File)

Mengirim pesan beserta lampiran file (gambar, PDF, dll.) ke nomor tujuan. Gunakan `multipart/form-data` sebagai Content-Type. Ukuran file maksimal **10 MB**. Plan Anda harus memiliki fitur **Pesan attachment** yang aktif.

Headers

KeyValueKeterangan
Authorization * Bearer {your_token} Token API Anda
Accept * application/json
Content-Type * multipart/form-data Wajib untuk pengiriman file

Body Parameters

ParameterTipeKeterangan
device_id integer ID perangkat pengirim. Wajib jika rotator_id tidak ada.
Contoh: 1
rotator_id integer ID rotator. Wajib jika device_id tidak ada.
Contoh: 1
target * string Nomor WhatsApp tujuan.
Contoh: 6281234567890
message string Caption atau teks pendamping file.
Contoh: Silakan lihat faktur terlampir.
file * file File yang akan dikirim. Maks 10 MB.
Contoh: invoice.pdf

Contoh Kode

curl -X POST "http://whatsapp.test/api/v1/messages/send" \
  -H "Authorization: Bearer {your_token}" \
  -H "Accept: application/json" \
  -F "device_id=1" \
  -F "target=6281234567890" \
  -F "message=Silakan lihat faktur terlampir." \
  -F "file=@/path/to/invoice.pdf"
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://whatsapp.test/api/v1/messages/send");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
    'device_id' => 1,
    'target'    => '6281234567890',
    'message'   => 'Silakan lihat faktur terlampir.',
    'file'      => new CURLFile('/path/to/invoice.pdf'),
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer {your_token}',
    'Accept: application/json',
]);
$response = curl_exec($ch);
curl_close($ch);
const form = new FormData();
form.append('device_id', '1');
form.append('target', '6281234567890');
form.append('message', 'Silakan lihat faktur terlampir.');
form.append('file', fileInput.files[0]);

const response = await fetch('http://whatsapp.test/api/v1/messages/send', {
  method: 'POST',
  headers: { 'Authorization': 'Bearer {your_token}', 'Accept': 'application/json' },
  body: form,
});
const data = await response.json();
import requests

with open('/path/to/invoice.pdf', 'rb') as f:
    response = requests.post(
        'http://whatsapp.test/api/v1/messages/send',
        headers={
            'Authorization': 'Bearer {your_token}',
            'Accept': 'application/json',
        },
        data={'device_id': 1, 'target': '6281234567890', 'message': 'Lihat faktur terlampir.'},
        files={'file': f}
    )
print(response.json())

Response Sukses 200

{
    "status": true,
    "message": "Pesan berhasil diproses.",
    "used_device": {
        "id": 1,
        "name": "Nomor Utama",
        "number": "6281234567890"
    }
}

Response Error

403
{
    "status": false,
    "message": "Plan langganan Anda tidak mendukung pengiriman attachment\/media."
}
POST /api/v1/messages/send
Auth Required

Kirim Pesan dengan Attachment (URL)

Mengirim pesan dengan media yang diambil dari URL publik. Server akan mengunduh file dari URL tersebut lalu meneruskannya ke WhatsApp. Pastikan URL dapat diakses secara publik tanpa autentikasi. Fitur ini memerlukan plan dengan **Pesan attachment** aktif.

Headers

KeyValueKeterangan
Authorization * Bearer {your_token} Token API Anda
Accept * application/json
Content-Type * application/json

Body Parameters

ParameterTipeKeterangan
device_id integer ID perangkat pengirim.
Contoh: 1
rotator_id integer ID rotator pengirim.
Contoh: 1
target * string Nomor WhatsApp tujuan.
Contoh: 6281234567890
message string Caption atau teks pendamping.
Contoh: Foto produk terbaru kami!
url * string URL publik file media yang akan dikirim.
Contoh: https://example.com/image.jpg

Contoh Kode

curl -X POST "{$baseUrl}/api/v1/messages/send" \
  -H "Authorization: Bearer {your_token}" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "device_id": 1,
    "target": "6281234567890",
    "message": "Foto produk terbaru kami!",
    "url": "https://example.com/image.jpg"
  }'
<?php
$data = [
    'device_id' => 1,
    'target'    => '6281234567890',
    'message'   => 'Foto produk terbaru kami!',
    'url'       => 'https://example.com/image.jpg',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "{$baseUrl}/api/v1/messages/send");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer {your_token}',
    'Accept: application/json',
    'Content-Type: application/json',
]);
$result = json_decode(curl_exec($ch), true);
const response = await fetch('{$baseUrl}/api/v1/messages/send', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer {your_token}',
    'Accept': 'application/json',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    device_id: 1,
    target: '6281234567890',
    message: 'Foto produk terbaru kami!',
    url: 'https://example.com/image.jpg',
  }),
});
const data = await response.json();
import requests

response = requests.post(
    '{$baseUrl}/api/v1/messages/send',
    headers={'Authorization': 'Bearer {your_token}', 'Accept': 'application/json'},
    json={
        'device_id': 1, 'target': '6281234567890',
        'message': 'Foto produk terbaru kami!',
        'url': 'https://example.com/image.jpg',
    }
)
print(response.json())

Response Sukses 200

{
    "status": true,
    "message": "Pesan berhasil diproses.",
    "used_device": {
        "id": 1,
        "name": "Nomor Utama",
        "number": "6281234567890"
    }
}

Response Error

400
{
    "status": false,
    "message": "Gagal mengunduh file dari URL."
}
403
{
    "status": false,
    "message": "Plan langganan Anda tidak mendukung pengiriman attachment\/media."
}
POST /api/send-message
Auth Required

Kirim Pesan via Device Token

Mengirim pesan teks/media langsung menggunakan **Token Perangkat (Device Token)**. API ini berguna jika Anda tidak ingin menggunakan _Personal Access Token_ (Sanctum), melainkan menggunakan token spesifik dari perangkat WhatsApp Anda. Anda dapat menemukan token ini di menu **Device** pada dashboard.

Headers

KeyValueKeterangan
Authorization * Bearer {device_token} Token spesifik perangkat dari menu Device
Accept * application/json
Content-Type application/json Jika mengirim request body berupa JSON

Body Parameters

ParameterTipeKeterangan
target * string Nomor tujuan (08xxx atau 628xxx).
Contoh: 6281234567890
message string Isi pesan atau caption.
Contoh: Pesan dari Device Token.
url string URL media opsional.
Contoh: https://example.com/image.jpg
file file Atau file media (multipart/form-data).

Contoh Kode

curl -X POST "{$baseUrl}/api/send-message" \
  -H "Authorization: Bearer {device_token}" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "target": "6281234567890",
    "message": "Pesan dari Device Token."
  }'
<?php
$data = ['target' => '6281234567890', 'message' => 'Pesan dari Device Token.'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "{$baseUrl}/api/send-message");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer {device_token}',
    'Accept: application/json',
    'Content-Type: application/json',
]);
$result = json_decode(curl_exec($ch), true);
const response = await fetch('{$baseUrl}/api/send-message', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer {device_token}',
    'Accept': 'application/json',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    target: '6281234567890',
    message: 'Pesan dari Device Token.',
  }),
});
const data = await response.json();
import requests

response = requests.post(
    '{$baseUrl}/api/send-message',
    headers={'Authorization': 'Bearer {device_token}', 'Accept': 'application/json'},
    json={'target': '6281234567890', 'message': 'Pesan dari Device Token.'}
)
print(response.json())

Response Sukses 200

{
    "status": true,
    "message": "Pesan berhasil dikirim."
}

Response Error

401
{
    "status": false,
    "message": "Token tidak valid."
}
400
{
    "status": false,
    "message": "Device WhatsApp sedang tidak aktif \/ disconnected."
}

Broadcast

POST /api/v1/broadcasts
Auth Required

Kirim Broadcast Massal

Mengirim satu pesan ke banyak nomor tujuan sekaligus dengan jeda antar pengiriman. Nomor tujuan dipisahkan dengan baris baru (`\n`). Anda dapat menyertakan media melalui multipart upload. Pengiriman broadcast diproses secara antrian (queue) di background. Fitur ini memerlukan plan dengan **Broadcast** aktif.

Headers

KeyValueKeterangan
Authorization * Bearer {your_token} Token API Anda
Accept * application/json
Content-Type * multipart/form-data Gunakan multipart jika menyertakan media, atau application/json jika tidak

Body Parameters

ParameterTipeKeterangan
device_id integer ID perangkat pengirim. Wajib jika rotator_id tidak ada.
Contoh: 1
rotator_id integer ID rotator. Wajib jika device_id tidak ada.
Contoh: 1
name * string Nama/label broadcast untuk identifikasi.
Contoh: Promo Lebaran 2025
target_numbers * string Daftar nomor tujuan dipisah baris baru.
Contoh: 6281234567890 6289876543210
message * string Isi pesan broadcast.
Contoh: Promo spesial hari ini! Diskon 50% untuk semua produk.
delay * integer Jeda antar pengiriman dalam detik (min: 0).
Contoh: 3
media file File media opsional. Format: jpg, jpeg, png, pdf. Maks 5 MB.
Contoh: banner.jpg
list_message_id integer ID list message untuk broadcast dengan tombol interaktif.
Contoh: 2

Contoh Kode

curl -X POST "http://whatsapp.test/api/v1/broadcasts" \
  -H "Authorization: Bearer {your_token}" \
  -H "Accept: application/json" \
  -F "device_id=1" \
  -F "name=Promo Lebaran 2025" \
  -F "target_numbers=6281234567890" \
  -F "message=Promo spesial hari ini! Diskon 50%." \
  -F "delay=3"
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://whatsapp.test/api/v1/broadcasts");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
    'device_id'      => 1,
    'name'           => 'Promo Lebaran 2025',
    'target_numbers' => "6281234567890\n6289876543210",
    'message'        => 'Promo spesial hari ini! Diskon 50%.',
    'delay'          => 3,
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer {your_token}',
    'Accept: application/json',
]);
$result = json_decode(curl_exec($ch), true);
const form = new FormData();
form.append('device_id', '1');
form.append('name', 'Promo Lebaran 2025');
form.append('target_numbers', '6281234567890\n6289876543210');
form.append('message', 'Promo spesial hari ini! Diskon 50%.');
form.append('delay', '3');

const response = await fetch('http://whatsapp.test/api/v1/broadcasts', {
  method: 'POST',
  headers: { 'Authorization': 'Bearer {your_token}', 'Accept': 'application/json' },
  body: form,
});
const data = await response.json();
import requests

response = requests.post(
    'http://whatsapp.test/api/v1/broadcasts',
    headers={
        'Authorization': 'Bearer {your_token}',
        'Accept': 'application/json',
    },
    data={
        'device_id': 1,
        'name': 'Promo Lebaran 2025',
        'target_numbers': '6281234567890\n6289876543210',
        'message': 'Promo spesial hari ini! Diskon 50%.',
        'delay': 3,
    }
)
print(response.json())

Response Sukses 200

{
    "status": true,
    "message": "Broadcast berhasil dijadwalkan. Pesan sedang diproses.",
    "data": {
        "broadcast_id": 42,
        "total_recipients": 250
    }
}

Response Error

400
{
    "message": "Pilih device atau rotator pengirim."
}
403
{
    "message": "Gagal: Broadcast ini membutuhkan 250 kuota pesan. Sisa kuota bulan ini tidak mencukupi."
}
403
{
    "message": "Plan langganan Anda tidak mendukung fitur Broadcast."
}

Pesan Berkala

GET /api/v1/recurring-messages
Auth Required

Daftar Pesan Berkala

Mengambil daftar pesan berkala (Recurring Message) milik akun Anda.

Headers

KeyValueKeterangan
Authorization * Bearer {your_token} Token API Anda
Accept * application/json

Response Sukses 200

{
    "status": true,
    "data": [
        {
            "id": "uuid",
            "name": "Tagihan Bulanan",
            "target": "6281234567890",
            "schedule_type": "Monthly",
            "schedule_time": "08:00:00"
        }
    ]
}
POST /api/v1/recurring-messages
Auth Required

Buat Pesan Berkala

Membuat pesan berkala (Recurring Message). Pesan ini akan dikirim secara otomatis pada interval waktu tertentu (Daily, Weekly, Monthly, Yearly).

Headers

KeyValueKeterangan
Authorization * Bearer {your_token} Token API Anda
Accept * application/json
Content-Type * multipart/form-data Wajib jika menyertakan media

Body Parameters

ParameterTipeKeterangan
device_id * integer ID perangkat pengirim.
Contoh: 1
name * string Nama/label pesan berkala.
Contoh: Tagihan Bulanan
target * string Nomor tujuan.
Contoh: 6281234567890
message * string Isi pesan berkala.
Contoh: Tagihan Anda bulan ini sebesar Rp100.000
timezone * string Timezone. Pilih: Asia/Jakarta, Asia/Makassar, Asia/Jayapura.
Contoh: Asia/Jakarta
schedule_type * string Pilih: Daily, Weekly, Monthly, Yearly.
Contoh: Monthly
schedule_time * string Format jam pengiriman: HH:mm.
Contoh: 08:00
media file File media opsional.
is_active boolean Status aktif (1) atau tidak (0).
Contoh: 1

Response Sukses 200

{
    "status": true,
    "message": "Recurring Message berhasil dibuat."
}
DELETE /api/v1/recurring-messages/{id}
Auth Required

Hapus Pesan Berkala

Menghapus pesan berkala berdasarkan ID-nya.

Headers

KeyValueKeterangan
Authorization * Bearer {your_token} Token API Anda
Accept * application/json

Response Sukses 200

{
    "status": true,
    "message": "Recurring Message berhasil dihapus."
}

Webhook

WEBHOOK {your_webhook_url}

Penerimaan Pesan (Webhook)

Jika Anda mengatur **Webhook URL** pada halaman edit perangkat, setiap pesan masuk ke nomor perangkat tersebut akan diteruskan secara _real-time_ ke URL Anda menggunakan metode HTTP POST. Anda dapat menggunakan payload JSON berikut untuk memproses pesan masuk di sistem internal Anda (misalnya membalas otomatis menggunakan AI). Fitur ini membutuhkan langganan plan yang mendukung Webhook.

Headers

KeyValueKeterangan
Content-Type * application/json Sistem kami akan mengirim request dengan header ini

Contoh Kode

<?php
// Contoh cara menerima webhook di PHP
$payload = file_get_contents('php://input');
$data = json_decode($payload, true);

$sender = $data['sender'];
$message = $data['message'];

// Lakukan sesuatu dengan pesan tersebut
file_put_contents('webhook.log', "Pesan dari {$sender}: {$message}\n", FILE_APPEND);

// Wajib merespon dengan HTTP 200 OK agar server kami tahu webhook berhasil diterima
http_response_code(200);
echo json_encode(['status' => 'success']);
const express = require('express');
const app = express();

app.use(express.json());

app.post('/webhook', (req, res) => {
  const data = req.body;
  console.log(`Pesan dari ${data.sender}: ${data.message}`);
  
  // Lakukan proses bisnis Anda di sini
  
  res.status(200).json({ status: 'success' });
});

app.listen(3000, () => console.log('Listening on port 3000'));

Response Sukses 200

{
    "device": "6281234567890",
    "session_id": "wa_session_abc123",
    "sender": "6289876543210",
    "sender_name": "Budi Santoso",
    "message": "Halo, apakah produk ini masih tersedia?",
    "timestamp": "2026-09-26 21:00:00"
}