Dokumentasi Resmi WAQU Gateway v1.0

Dokumentasi Teknis REST API & Webhooks

Panduan lengkap integrasi WhatsApp Gateway WAQU untuk kirim OTP transaksi, notifikasi e-commerce, invoice PDF/gambar, broadcast massal, dan webhooks penerima pesan.

Menggunakan Cursor, GitHub Copilot, atau ChatGPT?

Cukup salin link spesifikasi AI kami dan tempelkan ke prompt AI Anda. AI akan langsung memahami seluruh schema dan membuatkan kode tanpa halusinasi rute.

1. Autentikasi & Konfigurasi Dasar

Setiap permintaan API harus menyertakan token API Key pada header HTTP.

Base Endpoint URL
https://api.waqu.biz.id/v1
Header Autentikasi
x-api-key: your_api_key_here

2. Kirim Pesan Teks & OTP

POST/api/v1/send
FieldTipeWajibKeterangan
tostringYaNomor WhatsApp tujuan format E.164 (contoh: 628123456789).
messagestringYaIsi pesan atau kode OTP. Parameter body juga didukung sebagai alias.
sender_poolstringOpsionalID pool perangkat atau "auto" untuk load balancing.
curl -X POST "https://api.waqu.biz.id/v1/send" \
  -H "x-api-key: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
  "to": "628123456789",
  "message": "Kode OTP verifikasi akun Anda adalah: 849201. Berlaku selama 5 menit."
}'

3. Kirim Lampiran Media (Invoice PDF, Gambar, Audio)

POST/api/v1/send

Sertakan parameter attachment_url dan attachment_type untuk mengirim dokumen atau gambar secara otomatis.

curl -X POST "https://api.waqu.biz.id/v1/send" \
  -H "x-api-key: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
  "to": "628123456789",
  "message": "Halo Kak! Terlampir salinan invoice pemesanan nomor #INV-1029.",
  "attachment_url": "https://yourdomain.com/invoices/inv-1029.pdf",
  "attachment_type": "document"
}'

4. Broadcast Massal (Bulk Blast)

POST/api/v1/send-bulk

Kirim pesan hingga 100 penerima dalam satu panggilan API dengan jeda anti-ban otomatis.

curl -X POST "https://api.waqu.biz.id/v1/send-bulk" \
  -H "x-api-key: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
  "recipients": [
    "628123456789",
    "628987654321"
  ],
  "message": "Pemberitahuan: Layanan pemeliharaan sistem malam ini pukul 23:00 WIB."
}'

5. Webhook Penerima Pesan & Verifikasi Signature

Payload Pesan Masuk (event: message.received)

{
  "event": "message.received",
  "messageId": "wamid.HBgLMjY4...",
  "from": "628123456789",
  "fromName": "Customer Name",
  "body": "Halo, saya mau konfirmasi pembayaran",
  "hasMedia": false,
  "mediaType": null,
  "poolId": "pool_clx1820a90001",
  "timestamp": "2026-11-03T01:30:00.000Z"
}

Verifikasi Keaslian Webhook (HMAC-SHA256)

Header X-Webhook-Signature dikirimkan di setiap request. Verifikasi menggunakan kode berikut:

<?php
$secret = getenv('WAQU_WEBHOOK_SECRET');
$rawBody = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_WEBHOOK_SIGNATURE'] ?? '';

if ($secret && $signature) {
    $expected = hash_hmac('sha256', $rawBody, $secret);
    if (!hash_equals($signature, $expected)) {
        http_response_code(401);
        exit('Invalid signature');
    }
}
$data = json_decode($rawBody, true);
// Tangani pesan masuk...
echo json_encode(['status' => 'success']);