API CST ACS (Dial WABA)
Endpoint kirim template WhatsApp yang kompatibel Dial WABA v1.6. Berbeda dari API Sandeza (H2H & CGW): di sini tidak ada HMAC, tidak ada webhook secret, dan webhook statusnya polos.
Autentikasi
Header Authorization berisi SECRET RAW Anda (diawali sk_), tanpa awalan "Bearer" dan bukan HMAC. Body memuat public key Anda (diawali pk_) pada field key. Tidak ada webhook secret dan tidak ada signature — jangan menambahkan keduanya.
Contoh request
curl -X POST https://chat.diginov.co.id/waba/v2/message \
-H 'Authorization: sk_SEKRET_ANDA' \
-H 'Content-Type: application/json' \
-d '{
"clientSid": "PHONE_NUMBER_ID",
"refId" : "INV-2026-0001",
"key" : "pk_PUBLIC_KEY_ANDA",
"to" : "628123456789",
"template" : {
"name" : "order_update",
"language" : "id",
"body" : { "{{1}}": "Eko" }
}
}'
Kode balasan (rc)
rc dikirim sebagai STRING. HTTP status selalu 200 untuk semua amplop; 4xx akan membuat klien HTTP (mis. Guzzle) melempar sebelum membaca rc.
| rc | Arti | Kapan |
|---|---|---|
1 |
Diterima | Pesan diantrekan lewat channel yang Anda pilih. Bukan berarti sudah terkirim — hasil sebenarnya datang lewat webhook status. |
2 |
Kesalahan internal | Kegagalan tak terduga di sisi kami. Aman untuk dicoba ulang dengan refId yang sama. |
3 |
refId berulang | refId ini sudah diterima sebelumnya. Tidak ada kiriman kedua, jadi aman untuk mengulang request yang sama persis. |
4 |
Permintaan tidak sah | Kredensial, channel, template, atau payload tidak sah. Jawabannya sengaja generik supaya tidak membocorkan mana yang salah. |
5 |
Kegagalan gateway | Kegagalan hilir yang sebenarnya. Tidak pernah dipakai untuk kesalahan input. |
Webhook status
Dikirim saat status pesan berubah. Body-nya empat kunci, dan status memakai skala 1..6 di bawah.
{"status":"2","refId":"INV-2026-0001","media":"whatsapp","timestamp":"1788300000"}
| status | Arti |
|---|---|
1 |
Terkirim |
2 |
Sampai di perangkat |
3 |
Dibaca |
4 |
Dihapus |
5 |
Gagal |
6 |
Tidak diketahui |
Webhook status ACS dikirim polos: tanpa webhook-id, webhook-timestamp, webhook-sequence, maupun webhook-signature. Balas dengan HTTP 2xx APA PUN untuk mengakui penerimaan.
CIDR egress
Webhook status ACS tidak memakai HMAC atau webhook secret. Minta daftar CIDR egress SIPESAN yang dipublikasikan ke tim onboarding, lalu izinkan di firewall Anda. SIPESAN tidak menampilkan alamat IP di layar karena nilainya dapat berubah.