Why aren't my webhooks arriving?

A checklist for diagnosing missing webhook events, from consent completion through to endpoint configuration.

If your endpoint isn't receiving events you expect, work through this checklist in order — most missing-webhook reports come down to one of the first three causes.

1. Confirm the event actually happened

Webhooks fire when something completes — a consent is received, updated, or revoked, or a data sync finishes. If a user started the connection flow but never finished it, no consent exists and no webhook is sent. This is expected behaviour — see Why no webhooks arrive after an abandoned flow.

2. Check your event subscriptions

When you register a webhook in the Fiskil Console, you select which events it receives — for example consent.received or banking.transactions.sync.completed. If you're not subscribed to an event, it won't be delivered.

Event subscriptions are fixed at creation

You can change a webhook's endpoint URL later, but you can't change its event subscriptions once it's created. To listen for additional events, register a new webhook with the right set. See the webhooks guide for the full event list.

3. Verify your endpoint is reachable

Fiskil delivers events as HTTPS POST requests with a JSON payload. Your endpoint must:

  1. Be publicly accessible — not behind a VPN, allowlist, or localhost tunnel that has expired.
  2. Serve valid TLS — HTTPS is mandatory in production.
  3. Accept POST requests and respond with a 2xx status code. Non-2xx responses count as failed deliveries.

If delivery fails, Fiskil retries up to 5 times with backoff intervals between 1 and 10 minutes. After the retries are exhausted, the event is discarded — it won't be redelivered later, so a long outage on your side means permanently missed events.

4. Check the webhook logs in the console

The Fiskil Console keeps webhook delivery logs for 90 days. Open your registered webhook under Settings to see recent events, whether each delivery succeeded or failed, the HTTP status your server returned, and the delivery timestamp. This tells you immediately whether Fiskil attempted delivery — see Checking connection status and logs in the console.

Also check that your signature verification isn't silently rejecting valid events: Fiskil signs each payload with HMAC SHA256 in the X-Fiskil-Signature header, and a bug in your verification code can look identical to "no webhooks arriving" if your handler discards them.

What to send support

If deliveries look like they should be succeeding and you still see nothing, contact Fiskil support with:

  1. Your team ID and the webhook endpoint URL.
  2. The event types you expected (e.g. consent.received).
  3. The end user ID and consent ID involved, if applicable.
  4. The time window in which you expected the events.
  5. Anything from your own logs — including message_id values from any events you did receive.