Eza Pedia API 1.2 adalah platform WhatsApp API Gateway RESTful yang dikembangkan untuk menghubungkan sistem aplikasi Anda dengan WhatsApp secara cepat, aman, dan modular. Seluruh interaksi API dikirim melalui protokol HTTP dengan format respon terstandarisasi JSON.
Base URL Gateway
Apabila Anda memasang Wafy Gateway di server lokal VPS atau hosting tersendiri, silakan ubah http://localhost:3000 menggunakan IP Publik atau nama domain server Anda.
Format Request & Response
Untuk request dengan metode POST atau PUT, pastikan Anda mengirimkan header Content-Type: application/json dan payload raw JSON. Respon API akan selalu berupa objek JSON terstruktur dengan parameter success: true/false.
Keamanan akses API dilindungi menggunakan kunci API unik (API Key). Kunci API harus disertakan pada **HTTP Header** di setiap request.
Header Otentikasi
| Key Header |
Value |
Keterangan |
| x-api-key |
__api_key_rahasia_anda__ |
Kunci API rahasia yang dapat dilihat di dashboard administrasi gateway. |
Peringatan Keamanan: Jangan pernah membagikan API Key Anda ke publik. Gunakan *Environment Variables* di server backend Anda untuk menyimpannya dengan aman.
Berikut adalah parameter input global yang sering digunakan pada API Eza Pedia 1.2:
| Parameter |
Tipe |
Keterangan |
| no |
string |
Nomor tujuan personal (e.g. 62812345678) atau ID Grup (e.g. 1234567890@g.us). Untuk bulk, pisahkan nomor dengan baris baru (\n). |
| text |
string |
Isi pesan teks utama, caption media, nama file dokumen, atau string payload terformat (seperti BUTTONS!, LOCATION!, CONTACT!, POLLVOTE!). |
| media |
string |
URL publik berkas Gambar, Video, Audio, Voice Note, atau Stiker yang valid. |
| file |
string |
URL publik dokumen berkas PDF, Excel, Word, ZIP, dll. |
| immediate |
boolean |
Menentukan apakah pesan langsung dikirim (true) atau dimasukkan antrian antrean tunda (false) untuk pengiriman bulk aman. |
Mengirimkan pesan teks biasa dengan dukungan format teks WhatsApp (*tebal*, _miring_, ~coret~).
Contoh Script PHP cURL
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'http://localhost:3000/api/send',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode([
'no' => '62812345678',
'text' => "Halo! Ini adalah pesan tes dari *Eza Pedia API Gateway*.\n\nSemoga hari Anda menyenangkan!",
'immediate' => true
]),
CURLOPT_HTTPHEADER => [
'x-api-key: __api_key_anda__',
'Content-Type: application/json'
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Contoh Response JSON
{
"success": true,
"message": "Message successfully queued/sent",
"data": {
"key": {
"remoteJid": "62812345678@s.whatsapp.net",
"fromMe": true,
"id": "A4F5B1234567890"
},
"message": {
"conversation": "Halo! Ini pesan tes."
}
}
}
Mengirimkan dokumen file seperti PDF, Excel, Word, ZIP, dll.
Contoh Script PHP cURL
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'http://localhost:3000/api/send',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode([
'no' => '62812345678',
'file' => 'https://domain.com/invoices/inv-1082.pdf',
'text' => 'Invoice_Tagihan_Juli_2026.pdf',
'immediate' => true
]),
CURLOPT_HTTPHEADER => [
'x-api-key: __api_key_anda__',
'Content-Type: application/json'
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Contoh Response JSON
{
"success": true,
"message": "Message successfully queued/sent",
"data": {
"key": {
"remoteJid": "62812345678@s.whatsapp.net",
"fromMe": true,
"id": "C7D8E3456789012"
},
"message": {
"documentMessage": {
"url": "https://domain.com/invoices/inv-1082.pdf",
"title": "Invoice_Tagihan_Juli_2026.pdf"
}
}
}
}
Mengirimkan pesan suara audio (MP3, WAV) atau Voice Note rekaman langsung (OGG).
Contoh Script PHP cURL
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'http://localhost:3000/api/send',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode([
'no' => '62812345678',
'media' => 'https://domain.com/audio/rekaman.ogg',
'immediate' => true
]),
CURLOPT_HTTPHEADER => [
'x-api-key: __api_key_anda__',
'Content-Type: application/json'
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Contoh Response JSON
{
"success": true,
"message": "Message successfully queued/sent",
"data": {
"key": {
"remoteJid": "62812345678@s.whatsapp.net",
"fromMe": true,
"id": "D8E9F4567890123"
},
"message": {
"audioMessage": {
"url": "https://domain.com/audio/rekaman.ogg",
"mimetype": "audio/ogg"
}
}
}
}
Mengirimkan sticker statis atau dinamis berformat .webp.
Contoh Script PHP cURL
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'http://localhost:3000/api/send',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode([
'no' => '62812345678',
'media' => 'https://domain.com/stickers/happy.webp',
'immediate' => true
]),
CURLOPT_HTTPHEADER => [
'x-api-key: __api_key_anda__',
'Content-Type: application/json'
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Contoh Response JSON
{
"success": true,
"message": "Message successfully queued/sent",
"data": {
"key": {
"remoteJid": "62812345678@s.whatsapp.net",
"fromMe": true,
"id": "E9F0A5678901234"
},
"message": {
"stickerMessage": {
"url": "https://domain.com/stickers/happy.webp"
}
}
}
}
Mengirimkan pin koordinat lokasi geografis WhatsApp dengan nama alamat tujuan menggunakan string payload terformat LOCATION!latitude,longitude,alamat.
Contoh Script PHP cURL
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'http://localhost:3000/api/send',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode([
'no' => '62812345678',
'text' => 'LOCATION!-6.200000,106.816666,Kantor Pusat Eza Pedia Indonesia',
'immediate' => true
]),
CURLOPT_HTTPHEADER => [
'x-api-key: __api_key_anda__',
'Content-Type: application/json'
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Contoh Response JSON
{
"success": true,
"message": "Message successfully queued/sent",
"data": {
"key": {
"remoteJid": "62812345678@s.whatsapp.net",
"fromMe": true,
"id": "F0A1B6789012345"
},
"message": {
"locationMessage": {
"degreesLatitude": -6.2,
"degreesLongitude": 106.816666,
"name": "Kantor Pusat Eza Pedia Indonesia"
}
}
}
}
Mengirimkan pesan interaktif jajak pendapat (Polling) di WhatsApp menggunakan string payload terformat POLLVOTE!pertanyaan:opsi1:opsi2:opsi3....
Contoh Script PHP cURL
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'http://localhost:3000/api/send',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode([
'no' => '62812345678',
'text' => 'POLLVOTE!Kapan waktu meeting internal?:Senin Pukul 09.00:Rabu Pukul 13.00:Jumat Pukul 15.00',
'immediate' => true
]),
CURLOPT_HTTPHEADER => [
'x-api-key: __api_key_anda__',
'Content-Type: application/json'
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Contoh Response JSON
{
"success": true,
"message": "Message successfully queued/sent",
"data": {
"key": {
"remoteJid": "62812345678@s.whatsapp.net",
"fromMe": true,
"id": "B2C3D8901234567"
},
"message": {
"pollCreationMessage": {
"name": "Kapan waktu meeting internal?",
"options": [
{"optionName": "Senin Pukul 09.00"},
{"optionName": "Rabu Pukul 13.00"},
{"optionName": "Jumat Pukul 15.00"}
]
}
}
}
}
Mengirimkan pesan teks massal ke banyak nomor tujuan sekaligus dengan cara memisahkan nomor tujuan menggunakan baris baru (\n) di parameter no.
Contoh Script PHP cURL
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'http://localhost:3000/api/send',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode([
'no' => "628123456781\n628123456782\n628123456783",
'text' => 'Halo! Ini adalah info pengumuman massal dari *Eza Pedia Gateway 1.2*.',
'immediate' => false
]),
CURLOPT_HTTPHEADER => [
'x-api-key: __api_key_anda__',
'Content-Type: application/json'
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Contoh Response JSON
{
"success": true,
"message": "Message successfully queued/sent",
"results": [
{"phone": "628123456781", "success": true, "messageId": "A1B2C3D4E5"},
{"phone": "628123456782", "success": true, "messageId": "B2C3D4E5F6"},
{"phone": "628123456783", "success": true, "messageId": "C3D4E5F6A7"}
]
}
Mengambil daftar semua grup WhatsApp yang diikuti oleh perangkat yang terhubung.
Contoh Script PHP cURL
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'http://localhost:3000/api/groups',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => [
'x-api-key: __api_key_anda__'
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Contoh Response JSON
{
"success": true,
"groups": [
{
"id": "1234567890@g.us",
"name": "Grup Internal Sales",
"owner": "62812345678@s.whatsapp.net"
}
]
}
Mengambil daftar seluruh peserta / anggota dari suatu grup WhatsApp tertentu.
Contoh Script PHP cURL
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'http://localhost:3000/api/group-members/' . urlencode('1234567890@g.us'),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => [
'x-api-key: __api_key_anda__'
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Contoh Response JSON
{
"success": true,
"groupId": "1234567890@g.us",
"name": "Grup Internal Sales",
"participants": [
{
"id": "62812345678@s.whatsapp.net",
"admin": "superadmin"
},
{
"id": "62887654321@s.whatsapp.net",
"admin": null
}
]
}
Membuat grup WhatsApp baru dan langsung mengundang anggota awal.
Contoh Script PHP cURL
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'http://localhost:3000/api/groups/create',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Grup Pelanggan VIP',
'participants' => ['62812345678', '62887654321']
]),
CURLOPT_HTTPHEADER => [
'x-api-key: __api_key_anda__',
'Content-Type: application/json'
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Contoh Response JSON
{
"success": true,
"message": "Group successfully created",
"group": {
"id": "1234567891@g.us",
"subject": "Grup Pelanggan VIP",
"owner": "62812345678@s.whatsapp.net"
}
}
Mengeluarkan, menambahkan, atau mempromosikan anggota grup menjadi admin.
Contoh Script PHP cURL
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'http://localhost:3000/api/groups/participants',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode([
'groupId' => '1234567890@g.us',
'action' => 'add',
'participants' => ['628999123456']
]),
CURLOPT_HTTPHEADER => [
'x-api-key: __api_key_anda__',
'Content-Type: application/json'
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Contoh Response JSON
{
"success": true,
"message": "Participants action 'add' processed",
"response": [
{
"status": "200",
"jid": "628999123456@s.whatsapp.net"
}
]
}
Ketika WhatsApp Anda menerima pesan teks personal, pesan grup, atau media dari pengguna lain, Wafy Gateway akan secara otomatis melakukan HTTP POST callback ke Webhook URL Anda.
Contoh Handler Webhook PHP
<?php
// Menangani Event Webhook Masuk
$json_str = file_get_contents('php://input');
$payload = json_decode($json_str, true);
if ($payload && isset($payload['event']) && $payload['event'] === 'message') {
$message = $payload['message_text'];
$phone = $payload['sender_phone'];
$name = $payload['sender_push_name'];
// Logika balasan otomatis atau pemrosesan data Anda
}
http_response_code(200);
Contoh Payload Webhook JSON
{
"event": "message",
"chat": "62812345678@s.whatsapp.net",
"sender": "62812345678@s.whatsapp.net",
"sender_push_name": "Budi Santoso",
"sender_phone": "62812345678",
"is_group": false,
"message_text": "halo, tolong kirim price list",
"message_time": "2026-07-02 08:35:10"
}
Dipicu secara real-time ketika ada peristiwa penting aktivitas anggota grup WhatsApp (seperti anggota masuk, keluar, atau dikeluarkan).
Skema Payload Webhook
{
"event": "group_participants_update",
"chat": "1234567890@g.us",
"action": "add",
"participants": [
"628999123456@s.whatsapp.net"
],
"message_time": "2026-07-02 08:40:00"
}
Mengembalikan status koneksi WhatsApp Anda.
Contoh Script PHP cURL
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'http://localhost:3000/api/session/status',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => [
'x-api-key: __api_key_anda__'
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Contoh Response JSON
{
"success": true,
"connected": true,
"qr": null,
"user": {
"id": "6289513258338:17@s.whatsapp.net",
"name": "Ghazio"
}
}
Meminta kode pairing 8-karakter numerik untuk menautkan perangkat WhatsApp menggunakan nomor telepon.
Contoh Script PHP cURL
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'http://localhost:3000/api/session/pair',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode([
'phone' => '628123456789'
]),
CURLOPT_HTTPHEADER => [
'x-api-key: __api_key_anda__',
'Content-Type: application/json'
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Contoh Response JSON
{
"success": true,
"code": "ABCD1234"
}
Memutus koneksi sesi WhatsApp dan menghapus kredensial sesi lokal.
Contoh Script PHP cURL
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'http://localhost:3000/api/session/logout',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'x-api-key: __api_key_anda__'
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Contoh Response JSON
{
"success": true,
"message": "Session successfully logged out"
}
Memulai ulang koneksi socket WhatsApp Gateway.
Contoh Script PHP cURL
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'http://localhost:3000/api/session/restart',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'x-api-key: __api_key_anda__'
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Contoh Response JSON
{
"success": true,
"message": "Session connection successfully restarted"
}