A webhook is a mechanism where a service automatically sends an HTTP request (typically POST) to a pre-registered URL when a specific event occurs. It's like giving someone your phone number and saying "call me when something happens" - enabling event-driven service integration.
The opposite of webhooks is polling, where you repeatedly ask "any updates?" at regular intervals. With polling, requests are made even when nothing has changed. Webhooks only fire when events occur.
In URL shortening services that offer webhooks, they can notify you when links are clicked. For example, you could receive Slack notifications for important campaign link clicks, or automatically feed click data into your own database.
Several considerations are important when implementing webhooks. First, expose the receiving endpoint over HTTPS. Stripe requires registered endpoints to be publicly accessible HTTPS URLs (per its documentation as of October 2026). Second, retry logic for failed deliveries needs consideration - how many times and for how long a delivery is retried differs by service, and events may be lost if the receiver is down for extended periods. Third, verify the webhook sender by validating its signature (such as HMAC-SHA256).
Services that use webhooks include GitHub (push notifications), Stripe (payment confirmations), and Slack (message posting).