Skip to main content

Webhook

Webhook memungkinkan Anda menerima callback HTTP secara real-time saat event terjadi pada instance WhatsApp Anda. Daripada polling API, Wappfy mendorong event ke server Anda saat terjadi.

Event yang Didukung

Wappfy mendukung 12 jenis event webhook:

Membuat Webhook

Daftarkan endpoint webhook untuk mulai menerima event.
Respons:

Opsi Konfigurasi

Field instance_id bersifat opsional. Jika tidak diisi, webhook akan menerima event dari semua instance di akun Anda.

Melihat Daftar Webhook

Respons:

Memperbarui Webhook

Perbarui URL, event, atau konfigurasi webhook yang sudah ada.

Menghapus Webhook


Format Payload Pengiriman

Saat event terjadi, Wappfy mengirim permintaan POST ke URL webhook Anda dengan struktur berikut:

Field Payload


Verifikasi Tanda Tangan HMAC

Jika Anda menyediakan secret saat membuat webhook, setiap pengiriman akan menyertakan header X-Wappfy-Signature yang berisi tanda tangan HMAC-SHA256 dari body permintaan. Selalu verifikasi tanda tangan ini untuk memastikan permintaan berasal dari Wappfy dan tidak diubah.

Contoh Verifikasi

Selalu gunakan perbandingan waktu konstan (seperti timingSafeEqual atau hmac.compare_digest) saat memverifikasi tanda tangan untuk mencegah serangan timing.

Perilaku Percobaan Ulang

Jika server Anda tidak merespons dengan kode status 2xx dalam waktu timeout_ms yang dikonfigurasi, Wappfy akan mencoba ulang pengiriman.
Percobaan ulang berhenti saat respons 2xx diterima atau retry_count habis. Jumlah percobaan ulang default adalah 3.

Melihat Riwayat Pengiriman

Periksa log pengiriman untuk webhook guna melihat percobaan pengiriman sebelumnya dan hasilnya.
Respons:

Contoh Payload Event


Praktik Terbaik

Respons dengan cepat

Kembalikan status 200 dalam waktu 5 detik. Proses event secara asinkron untuk menghindari timeout.

Deduplikasi

Gunakan id pengiriman untuk mendeteksi dan melewati pengiriman duplikat yang disebabkan oleh percobaan ulang.

Verifikasi tanda tangan

Selalu validasi header X-Wappfy-Signature jika Anda mengonfigurasi secret.

Gunakan HTTPS

URL webhook harus menggunakan HTTPS. Endpoint HTTP akan ditolak.