API Documentation

Complete guide on how to integrate and use the REST API of the WA Gateway.

Base URL: http://localhost:3001/api (or your deployed domain)
Semua endpoint untuk session membutuhkan autentikasi Bearer Token (JWT).


1. Authentication

Dapatkan JWT Bearer token untuk mengakses API dengan melakukan login.

POST /auth/login

Request Body:

{
  "username": "admin",
  "password": "password"
}

2. Session Management

Base route: /sessions. Header wajib: Authorization: Bearer <TOKEN>

GET /sessions

Mendapatkan daftar semua session milik user yang sedang login beserta status dan token session. Simpan token ini untuk digunakan saat mengirim pesan.

POST /sessions/create

Membuat session baru untuk scan QR Web WhatsApp. Memiliki batasan session berdasarkan nilai max_session pada akun.

{
  "session_name": "device_1"
}

DELETE /sessions/:name

Menghapus session tertentu dari database dan menutup instansinya.


3. Messaging

Mengirim pesan melalui session yang aktif.

POST /sessions/send

Mendukung JSON biasa untuk pesan teks atau multipart/form-data jika mengirim file lampiran.

{
  "token": "SESSION_TOKEN_ANDA",
  "no_tujuan": "6281234567890",
  "pesan": "Halo, ini pesan text dari api"
}

4. Webhooks

Terima pesan masuk secara *real-time* ke server Anda via HTTP POST.

PUT /sessions/:name/webhook

Update URL webhook:

{
  "webhook_url": "https://domain-anda.com/api/webhook-whatsapp"
}

Format Payload POST Webhook Masuk

Server Anda akan menerima format data JSON berikut setiap kali ada yang mengirim pesan WA ke Gateway:

{
  "session_name": "device_1",
  "from": "62899xxxxxxx@c.us",
  "to": "62812xxxxxxx@c.us",
  "body": "Halo kak!",
  "timestamp": 1678888888,
  "hasMedia": false,
  "type": "chat"
}