Langsung ke konten utama
WABeres API adalah REST API berbasis JSON yang memungkinkan kamu mengontrol seluruh fungsi platform secara programmatic — mulai dari mengirim pesan, mengelola sesi WhatsApp, hingga manajemen akun dan paket aktif.

Base URL

https://waberes.fredoronan.web.id

SDK

WABeres menyediakan SDK resmi untuk NodeJS yang dapat langsung kamu gunakan tanpa perlu mengimplementasikan signature dan autentikasi secara manual.
SDK belum dipublikasikan ke npm dan masih dalam tahap pengembangan. Instalasi dan panduan penggunaan tersedia di repository resmi WABeres. Repository bersifat open source, kontribusi dipersilakan.

WABeres NodeJS SDK

Lihat repository, instalasi, dan contoh penggunaan SDK
Jika kamu lebih memilih menggunakan HTTP client langsung tanpa SDK, semua endpoint tetap dapat diakses seperti biasa menggunakan curl, fetch, axios, atau HTTP client apapun di bahasa pilihanmu.

Autentikasi

Setiap request ke WABeres API wajib menyertakan tiga header berikut:
HeaderKeterangan
X-Api-KeyAPI key kamu yang tertera di dokumen PDF
X-TimestampUnix timestamp saat request dibuat (detik)
X-SignatureHMAC-SHA256 signature dari request
Timestamp yang dikirim tidak boleh berbeda lebih dari 5 menit dari waktu server. Request di luar rentang ini akan ditolak sebagai proteksi replay attack.

Membuat Signature

Signature dibuat menggunakan HMAC-SHA256 dengan Secret Key kamu sebagai kunci. String yang di-sign adalah gabungan dari method, path, timestamp, dan hash body request: Urutan dan format string yang di-sign:
KomponenContoh
methodPOST
path/api/v1/messages/send
timestamp1778577555
sha256(body)Hash SHA-256 dari raw JSON body request
Contoh implementasi di Go:
import (
    "crypto/hmac"
    "crypto/sha256"
    "encoding/hex"
)

// Hash body terlebih dahulu
bodyHash := sha256.Sum256([]byte(requestBody))
bodyHashHex := hex.EncodeToString(bodyHash[:])

// Gabungkan komponen
signingString := method + path + timestamp + bodyHashHex

// Buat signature
mac := hmac.New(sha256.New, []byte(secretKey))
mac.Write([]byte(signingString))
signature := hex.EncodeToString(mac.Sum(nil))
Contoh implementasi di JavaScript/TypeScript:
import crypto from "crypto";

// Hash body terlebih dahulu
const bodyHash = crypto
  .createHash("sha256")
  .update(JSON.stringify(requestBody))
  .digest("hex");

// Gabungkan komponen
const signingString = method + path + timestamp + bodyHash;

// Buat signature
const signature = crypto
  .createHmac("sha256", secretKey)
  .update(signingString)
  .digest("hex");
Pastikan body yang di-hash adalah raw JSON string yang sama persis dengan yang dikirim di request — bukan objek yang di-serialize ulang. Perbedaan whitespace atau urutan key akan menghasilkan hash yang berbeda dan request akan ditolak.

Format Response

Semua response mengembalikan JSON dengan struktur konsisten:
{
  "success": true,
  "message": "Pesan berhasil dikirim",
  "data": { }
}
Untuk response error:
{
  "success": false,
  "error": "pesan error disini",
  "code": "kode errornya"
}

Endpoint yang Tersedia

Pesan

Kirim pesan teks ke nomor WhatsApp tujuan

Webhook

Terima pesan masuk secara real-time ke sistemmu

Sesi & Device

Kelola koneksi WhatsApp — pair, status, dan disconnect

Akun & Paket

Info akun aktif, sisa kuota, dan renewal paket

Rate Limiting

WABeres menerapkan rate limiting per API key. Jika limit terlampaui, server akan mengembalikan status 429 Too Many Requests. Tunggu beberapa saat sebelum mencoba kembali.
Gunakan exponential backoff saat menangani error 429 di sistemmu untuk menghindari request yang menumpuk.