Guide · webhooks · verified 12 July 2026

URL shortener webhooks: how they work, and who offers what

A URL-shortener webhook is an HTTP POST your systems receive the moment a short link is clicked or a QR code is scanned — turning links into real-time events instead of next-month statistics. Support varies wildly: some platforms gate webhooks behind enterprise contracts, some send unsigned fire-and-forget requests, and a few sign and retry properly.

Facts cite primary sources (each vendor's own pricing pages and docs). Out of date? Tell us and we'll fix it.

What a click webhook actually is

When someone clicks your short link or scans your QR code, the platform POSTs a JSON event to an endpoint you control — within seconds, not in next week's CSV export. That single mechanism is what turns a link from a passive redirect into a trigger: open a ticket when an asset tag is scanned, ping sales when a proposal link is opened, kick off a Zapier or n8n workflow, update your CRM.

A typical event looks like this:

{
  "event": "click",
  "source": "qr",
  "code": "spring24",
  "shortUrl": "go.acme.com/spring24",
  "destination": "https://acme.com/offer",
  "tags": { "campaign": "spring", "site": "leeds" },
  "at": "2026-07-12T11:20:00+00:00",
  "ua": "Mozilla/5.0 (iPhone..."
}

Who offers click/scan webhooks (July 2026)

Support differs more than any other feature in this category. Every fact below links to the vendor's own pricing page or documentation:

PlatformClick/scan webhooksCheapest plan with themDelivery guarantees
Bitly Yes — single combined “engagement” event [source] Enterprise (sales-led) [source] Retries documented; Enterprise-gated
Dub Yes — typed events incl. link.clicked [source] Business, $90/mo [source] Signed + retried — genuinely strong
Short.io Yes — click events, one webhook URL per domain [source] Pro, ~$18/mo [source] Signing/retries not documented
Rebrandly Yes — “Clickstream” click + scan events [source] Professional, $32/mo [source] Delivered in JSON batches (or to S3) [source]
TinyURL No webhooks at any price (API is pull-only) [source]
xengo Yes — per-event click/scan delivery (details) Pro, £39/mo (pricing) HMAC-signed, retried ~45 min with backoff, per-attempt delivery log

Deeper side-by-sides live on our comparison pages — each with the same cite-everything rule as this table.

The three things that separate serious webhooks from a checkbox

1. Signatures

Anyone who discovers your endpoint URL can POST fake events to it — unless deliveries are signed. The de-facto standard is the Svix scheme: a webhook-id, a webhook-timestamp and a webhook-signature header carrying an HMAC-SHA256 over id.timestamp.body, keyed with a secret only you hold. Verification is a few lines of stdlib:

import base64, hashlib, hmac

def verify(secret, headers, raw_body: bytes) -> bool:
    key = base64.b64decode(secret.split("_", 1)[1])
    signed = (f"{headers['webhook-id']}."
              f"{headers['webhook-timestamp']}.").encode() + raw_body
    want = base64.b64encode(
        hmac.new(key, signed, hashlib.sha256).digest()).decode()
    return any(hmac.compare_digest(f"v1,{want}", c)
               for c in headers["webhook-signature"].split())

2. Retries with a stable event id

Your endpoint will be down sometimes. A serious platform retries with increasing backoff and keeps the event id identical across attempts, so de-duplicating on webhook-id makes at-least-once delivery effectively exactly-once for your logic. If retry behaviour isn't in the docs, assume fire-and-forget.

3. A delivery log

When someone asks “did the alert go out?”, you want a per-attempt record — timestamp, attempt number, HTTP result — not a shrug. Few platforms offer one; it's worth checking before you build a workflow that matters on top.

Webhooks vs Zapier triggers

Automation platforms blur the picture: a “Zapier integration” may be a real-time webhook-backed trigger or a poller that checks every 15 minutes (and burns a Zapier task per click). If latency matters, look for the word instant on the trigger, or paste a catch-hook URL into a platform that POSTs per event. The same test applies to Make and n8n.

Try it in two minutes

On xengo: create a Webhook channel in the console (you'll get a whsec_ signing secret, shown once), select the channel on a link, then click the link — the signed event arrives with the headers above, and every attempt shows in the channel's delivery log. The full delivery-guarantees story is here.

Frequently asked questions

Which URL shorteners have click webhooks?

As of July 2026: Bitly (Enterprise plan only), Dub (Business, $90/mo), Short.io (Pro, ~$18/mo, one URL per domain), Rebrandly (Professional, $32/mo, batched clickstream) and xengo (Pro, £39/mo, signed per-event delivery). TinyURL and BL.INK don't offer click webhooks at any price, per their own docs.

How fast do link-click webhooks fire?

Typically seconds. Serious platforms decouple delivery from the redirect so a slow receiving endpoint never slows the visitor. Treat sub-second claims with suspicion — queue-based delivery in single-digit seconds is the honest engineering answer.

How do I verify a webhook really came from the platform?

Use signature verification: the platform signs each delivery with a shared secret (commonly the Svix scheme — webhook-id, webhook-timestamp and an HMAC-SHA256 webhook-signature header) and your endpoint recomputes the HMAC. If a provider's webhooks are unsigned, anyone who learns your endpoint URL can forge events.

What should happen when my endpoint is down?

The platform should retry with increasing backoff and keep the event id stable across attempts so you can de-duplicate, then record the outcome in a delivery log. Check the docs for retry behaviour before you depend on any provider — several popular ones are fire-and-forget.

One platform. Everything a link should do.

Smart URLs, dynamic QR codes and a full API — branded on your own domain, safety-screened, and tracked. Build, re-point and measure it all in one place.

Start free trial
1,284 clicks
go.acme.com/spring
1 London 412
2 Manchester 168
3 Bristol 94

Smart URLs

Branded short links on a domain you control — editable, screened, and tracked.

Popular Smart URLs features

  • Your own custom domain, auto-HTTPS
  • Re-point live links without reprinting
  • Every destination safety-screened
  • Honest, bot-filtered analytics

Dynamic QR

Branded QR codes you can re-point any time — never reprint the poster again.

Popular Dynamic QR features

  • Editable destination behind every code
  • Your brand colours + logo
  • Real-time scan alerts
  • Per-code scan analytics
$ curl -X POST api.xengo.io/v1/links
{
  "domain": "go.acme.com",
  "url": "https://acme.com/…"
}
→ 201 go.acme.com/aB3xK

API

Create and manage links + QR at scale, straight from your own tools.

Popular API features

  • REST API with scoped keys
  • Bulk-create thousands of links
  • Programmatic QR generation
  • Webhooks + click / scan alerts