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.
Swagger UI Reference
Eksplorasi dan tes langsung endpoint via browser.
Postman Spec (JSON)
Import 1-klik ke Postman, Insomnia, atau SDK generator.
Format Khusus AI (/llms.txt)
Spesifikasi teks ringkas untuk Cursor, Claude, dan ChatGPT.
Live API Sandbox
Kirim pesan uji coba langsung dengan API Key akun Anda.
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.
https://api.waqu.biz.id/v1x-api-key: your_api_key_here2. Kirim Pesan Teks & OTP
/api/v1/send| Field | Tipe | Wajib | Keterangan |
|---|---|---|---|
| to | string | Ya | Nomor WhatsApp tujuan format E.164 (contoh: 628123456789). |
| message | string | Ya | Isi pesan atau kode OTP. Parameter body juga didukung sebagai alias. |
| sender_pool | string | Opsional | ID 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)
/api/v1/sendSertakan 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)
/api/v1/send-bulkKirim 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']);