Integrasi WhatsApp
Layanan WhatsApp Notification Gateway ini menyediakan antarmuka REST API yang memungkinkan aplikasi internal maupun pihak ketiga untuk mengirimkan pesan notifikasi secara otomatis ke pengguna melalui platform WhatsApp.
Integrasi ini dirancang sebagai middleware yang menjembatani sistem Anda dengan protokol WhatsApp Web Multi-device, memungkinkan pengiriman informasi yang cepat, personal, dan real-time.
Fitur Utama
Layanan ini mendukung beberapa kapabilitas pengiriman pesan, antara lain:
- Text Messaging: Pengiriman pesan teks standar dengan dukungan pemformatan (tebal, miring, monospace).
- Media Messaging: Pengiriman file gambar (JPG/PNG) yang disertai dengan caption.
- Secure Access: Dilindungi menggunakan standar Basic Authentication.
Kapan Menggunakan Layanan Ini?
API ini ideal digunakan untuk skenario komunikasi satu arah (server-to-user), seperti:
- Pengiriman kode OTP (One Time Password).
- Notifikasi status transaksi atau layanan publik.
- Peringatan sistem (System Alerting) untuk tim teknis.
- Pengiriman bukti laporan atau tiket antrian dalam bentuk gambar.
Layanan ini berjalan di atas protokol WhatsApp Web Multi-device (Unofficial Wrapper).
- Anti-Spam: Gunakan layanan ini dengan bijak. Pengiriman pesan massal (bulk) yang agresif ke nomor yang tidak menyimpan kontak sender berisiko menyebabkan pemblokiran nomor oleh pihak WhatsApp.
Pastikan Anda menggunakan Base URL yang sesuai dengan environment (Staging/Production).
- Base URL:
https://dev.denpasarkota.go.id/whatsapp
Alur Integrasi (Sequence Diagram)
Berikut adalah alur pengiriman pesan dari aplikasi klien ke WhatsApp Gateway:
Autentikasi
API ini menggunakan mekanisme Basic Authentication. Setiap permintaan (request) ke API harus menyertakan header Authorization yang valid.
Kredensial terdiri dari username dan password yang digabungkan dengan format username:password.
Pastikan Anda tidak menyimpan kredensial (Username & Password) langsung di dalam source code frontend (client-side). Selalu lakukan request dari sisi server (backend) untuk menjaga keamanan.
Format Header
Authorization: Basic <base64_encoded_credentials>
1. Mengirim Pesan Teks
Endpoint ini digunakan untuk mengirim pesan teks biasa ke nomor tujuan. Mendukung formatting teks dasar WhatsApp (Bold, Italic, Monospace).
/send/messageRequest Body
Format body menggunakan JSON.
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
phone | string | Ya | Nomor telepon tujuan dengan format internasional (tanpa + atau 0). Contoh: 628123456789. |
message | string | Ya | Isi pesan yang akan dikirimkan. |
Contoh Request
- cURL
- Node.js (Axios)
# Gunakan flag -u untuk Basic Auth (curl otomatis melakukan encode)
curl -X POST https://dev.denpasarkota.go.id/whatsapp/send/message \
-u "username:password" \
-H "Content-Type: application/json" \
-d '{
"phone": "6281234567890",
"message": "Halo, ini pesan dengan autentikasi."
}'
const axios = require('axios');
await axios.post('https://dev.denpasarkota.go.id/whatsapp/send/message',
{
phone: '6281234567890',
message: 'Halo, ini pesan dengan autentikasi.'
},
{
auth: {
username: 'username_anda',
password: 'password_anda'
}
}
);
Response Sukses
JSON{
"status": true,
"data": {
"id": "3EB0...",
"status": "PENDING",
"message": "Message sent successfully"
}
}
2. Mengirim Pesan Gambar
Endpoint ini digunakan untuk mengirimkan file gambar (JPG/PNG) disertai dengan caption teks.
/send/image- cURL
curl -X POST https://dev.denpasarkota.go.id/whatsapp/send/image \
-H "Content-Type: multipart/form-data" \
-F "phone=6281234567890" \
-F "caption=Ini bukti laporan Anda" \
-F "image=@/path/to/gambar.jpg"
Disarankan untuk melakukan kompresi gambar sebelum dikirim ke API untuk menghindari timeout atau kegagalan pengiriman pada jaringan yang lambat.