Lewati ke konten utama

Inbound dan Outbound Webhooks

Tujuan

Menerima event secara aman dan mengirim event outbound tanpa duplikasi.

Prasyarat

  • URL HTTPS subscriber tersedia.
  • Secret signature diberikan melalui konfigurasi aman.
  • Consumer menyimpan event ID dan status pemrosesan.

Inbound

  1. Terima request hanya melalui endpoint deployment yang dikonfigurasi.
  2. Verifikasi signature HMAC atas raw body sebelum parsing.
  3. Validasi tenant, event ID, dan timestamp/replay window.
  4. Deduplikasi event ID sebelum efek samping.
  5. Persist event lalu proses downstream; balas sukses hanya setelah aturan persist deployment terpenuhi.

Jangan mencatat secret, token, atau isi PII penuh. Jangan melewati verifikasi HMAC untuk memulihkan delivery.

Outbound

  1. Daftarkan subscriber dan event yang diizinkan.
  2. Simpan delivery ID dan payload minimal.
  3. Verifikasi respons, retry dengan backoff terbatas, dan deduplikasi di consumer.
  4. Monitor kegagalan, lalu nonaktifkan subscriber yang terus gagal sesuai kebijakan operasi.

Outbound webhook belum tersedia penuh pada seluruh alur; status tetap limited. 501 Not Implemented adalah kondisi jujur ketika provider/event belum didukung, bukan error yang boleh disamarkan.

Kondisi provider

Kemampuan WAHA/provider dapat membatasi tipe pesan, status delivery, atau event. Jangan mengklaim delivery ketika provider belum mengonfirmasi. Event provider harus dinormalisasi dan divalidasi sebelum downstream.

Tanda berhasil

Event valid diproses sekali, delivery ID dapat dilacak, dan retry tidak membuat efek samping ganda.

Jika terjadi masalah

400 payload/signature invalid: kirim ulang setelah memperbaiki serialisasi. 401/403: perbaiki secret atau izin. 409: perlakukan sebagai duplicate/idempotent result. 429: backoff. 501: cek kemampuan/provider dan gunakan event yang tersedia.

Batasan

Retry window, timestamp tolerance, daftar event, dan status delivery bergantung konfigurasi deployment. Tidak ada jaminan exactly-once lintas jaringan.

Tugas terkait