API

Webhooks

Subscribe to signed Qorlivo link events, verify delivery signatures, test endpoints, and handle retries.

Webhooks let your app receive notifications when Qorlivo link events happen. Configure webhooks from Settings, then Developers in the dashboard.

Availability

Webhooks require Pro, Business, or Enterprise.

Add a webhook

  1. Open Settings.
  2. Go to Developers.
  3. Choose Add webhook.
  4. Enter an HTTPS endpoint URL.
  5. Choose the events you want.
  6. Add a signing secret.
  7. Save.
  8. Send a test event.

Webhook URLs must use HTTPS. Keep the signing secret private.

Events

EventWhen it fires
link.createdA short link is created.
link.updatedA link destination, title, preview field, or protected setting changes.
link.deletedA short link is permanently deleted.
link.activatedAn archived link is restored.
link.deactivatedAn active link is archived.
test.pingA test event sent from the dashboard.

Payload format

Qorlivo sends JSON with an event name, data object, and timestamp.

{
  "event": "link.created",
  "data": {
    "linkId": "j97xxxxxxxxxxxxxxxxxxxxxxxxx",
    "slug": "promo-2026",
    "destinationUrl": "https://example.com/landing",
    "title": "Spring promo",
    "createdAt": "2026-05-26T18:42:00.000Z"
  },
  "timestamp": 1783027439000
}

Delivery headers

Content-Type: application/json
X-Qorlivo-Signature: hmac-sha256-signature
X-Qorlivo-Event: link.created
X-Qorlivo-Delivery-Attempt: 1

Test deliveries set:

X-Qorlivo-Delivery-Attempt: test

Verify signatures

X-Qorlivo-Signature is a lowercase hex HMAC-SHA256 signature of the raw request body using your webhook secret.

Node.js example:

import crypto from "node:crypto"

function verifyQorlivoWebhook(rawBody, signature, secret) {
  const expected = crypto
    .createHmac("sha256", secret)
    .update(rawBody)
    .digest("hex")

  return crypto.timingSafeEqual(
    Buffer.from(signature, "hex"),
    Buffer.from(expected, "hex")
  )
}

Verify against the raw body bytes before parsing JSON. Reject requests with missing signatures or mismatched signatures.

Retries

Qorlivo retries non-2xx responses and network failures up to five times.

RetryDelay before retry
110 seconds
230 seconds
390 seconds
4270 seconds
5810 seconds

Return a 2xx response only after your endpoint has safely accepted the event. If your endpoint returns an error or times out, Qorlivo may deliver the same event again.

Endpoint recommendations

  • Respond within 10 seconds.
  • Verify the signature before processing.
  • Store event IDs or use event data to avoid duplicate side effects.
  • Return 2xx after accepting the event, then do slower work asynchronously in your own system.
  • Keep webhook secrets out of source control.
  • Use the dashboard test button before relying on a webhook in production workflows.