Webhook adalah mekanisme notifikasi real-time dari sebuah layanan ke layanan lain menggunakan HTTP request. Berbeda dengan pendekatan polling yang meminta data secara berkala, webhook mendorong data secara aktif begitu sebuah peristiwa terjadi — sehingga jauh lebih efisien dan responsif.
Cara kerja webhook cukup sederhana: Anda mendaftarkan sebuah URL endpoint ke layanan pihak ketiga. Ketika event terjadi — misalnya pembayaran berhasil atau pesan baru masuk — layanan tersebut akan mengirimkan HTTP POST ke URL yang Anda daftarkan beserta data event dalam format JSON.
Untuk membangun webhook yang andal, endpoint Anda harus dapat diakses publik, mendukung HTTPS, dan merespons dengan status 200 OK dalam waktu singkat. Jika respons terlambat atau gagal, layanan pengirim biasanya akan mencoba ulang (retry) secara otomatis.
Keamanan webhook perlu diperhatikan. Validasi signature yang dikirim di header untuk memastikan request benar-benar berasal dari sumber tepercaya. Jangan pernah memproses payload tanpa verifikasi — ini mencegah serangan replay dan pemalsuan data.
Implementasikan idempotency agar pemrosesan event yang sama dua kali tidak menyebabkan duplikasi data. Catat setiap event ke log dan siapkan mekanisme alerting bila webhook gagal diproses, sehingga tim dapat merespons cepat.
Contoh penggunaan webhook yang umum: notifikasi pembayaran dari payment gateway, trigger CI/CD saat push kode ke GitHub, sinkronisasi data antara dua sistem yang berbeda, serta notifikasi ke Telegram Bot saat ada event penting di aplikasi Anda.