Skip to main content

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.
Disclaimer Teknis

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.
Base URL

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.

Credentials

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).

POST /send/message

Request Body

Format body menggunakan JSON.

ParameterTipeWajibDeskripsi
phonestringYaNomor telepon tujuan dengan format internasional (tanpa + atau 0). Contoh: 628123456789.
messagestringYaIsi pesan yang akan dikirimkan.

Contoh Request

# 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."
}'

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.

POST /send/image
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"
Kompresi Gambar

Disarankan untuk melakukan kompresi gambar sebelum dikirim ke API untuk menghindari timeout atau kegagalan pengiriman pada jaringan yang lambat.