How to monitor SePay webhooks

Monitor SePay webhooks via delivery logs, dashboard metrics, alerts to Telegram, Slack or Discord, incident management, and manual delivery replay.

||

The Webhooks page has 3 monitoring tools: Delivery logs (per-delivery details), Dashboard (aggregate metrics), Alerts + Incidents (auto-notify on failures).

Delivery logs

The Delivery logs tab shows every webhook delivery: status, HTTP status, response time, webhook name, related transaction. Filter by webhook, time, status.

Delivery logs
Click to expand
List of webhook delivery logs

Detail panel

Click a log row to open the panel:

  • Summary: HTTP status, response time, error label. Replayed webhooks show the original source.
  • General info: connection status, link to the transaction, HTTP method.
  • Request tab: URL, headers, JSON body (with highlight and copy button).
  • Response tab: response headers and body from your server.
  • Copy cURL: get the matching cURL command, handy for debugging from the terminal.
Log detail
Click to expand
Detail panel for a single webhook delivery

Common error labels

ErrorCauseFix
DNS ErrorDomain doesn't resolveCheck URL, DNS
Connection RefusedServer rejected connectionCheck server, firewall, port
TimeoutResponse too slow (>30s)Optimize endpoint, async processing
SSL ErrorInvalid certificateCheck SSL cert
HTTP 401Bad authCheck API Key / Secret Key
HTTP 404Wrong URLCheck endpoint path
HTTP 500Server errorCheck server logs

Replay webhook

Manually replay any log, both failed and successful.

Single: detail panel → Replay. SePay sends the same payload to the current endpoint.

Multiple: tick rows → Replay. Up to 20 logs per batch.

Limit: 10 replays per minute per company.

Tracking: replayed webhooks have a "Replayed from #xxx" label linking back to the original log. The original is not modified.

Endpoint must be idempotent

Replays can duplicate the original delivery. Make sure your endpoint is idempotent (safe to call multiple times) and deduplicates by id, especially when replaying logs that already succeeded.

Replay webhook
Click to expand
Replay label on a delivery log

Dashboard

The Overview tab shows aggregate metrics over a selectable time range.

Dashboard overview
Click to expand
Webhook activity dashboard

Metrics

MetricMeaning
Success rate% of successful deliveries
Total deliveriesTotal deliveries in the time range
FailuresCount of failed deliveries
TimeoutsCount of endpoints that didn't respond in time
Avg responseAverage response time (ms)
P95 response95% of requests respond within this time

Charts

  • Delivery trend: success and failure by day.
  • Response time distribution: how fast the endpoint is.
  • Error breakdown: ratio of each type (DNS, timeout, 4xx, 5xx).
  • Top failing webhooks: priority list to fix.

Time filter

Top right has a selector: 7 days, 30 days (default), 90 days, or custom. Click ↻ to refresh.

Alerts

Rather than manually checking the dashboard, let SePay send you alerts automatically when a webhook fails several times in a row. Setup takes 2 steps: create an alert channel, then attach the channel to the webhook.

Create an alert channel

Alert channels tab → Add channel.

Alert channels tab
Click to expand
List of alert channels

Pick the platform you want to receive notifications on:

After creation, click Test to send a test message. Make sure the channel receives it before attaching to webhooks.

Create alert channel
Click to expand
New alert channel form

Attach alerts to a webhook

When creating/editing a webhook, in the Alerts step:

  1. Toggle alerts on
  2. Set the consecutive-failure threshold (1–20, default 3)
  3. Pick alert event types
  4. Tick channels to receive

Paused channels appear dimmed and cannot be selected.

Alert behavior

Failure counter: increments on initial-delivery or auto-retry failures. Manual replays don't increment. Once it reaches the configured threshold (default 3 consecutive failures), SePay sends the alert through the configured channels.

Auto recovery: when a new transaction or retry succeeds, the counter resets and SePay sends a recovery notification with webhook name, URL, failure count, affected transaction count, error duration. Telegram replies into the original error message.

Manual replay recovery: closes the incident and clears the alert mute window (see below). No recovery notification is sent because you already know the endpoint is OK. If the endpoint fails again afterward, a new alert fires immediately.

Alert mute window: after each alert, the same webhook won't send another alert for 60 minutes, even if failures continue — this prevents alert spam during long outages. The mute window clears on recovery.

Notification content

Each notification contains: webhook name, URL, error HTTP status, consecutive failure count, and timestamp. Each channel renders it in its native style.

Sample alert notification
Click to expand
Example webhook failure alert in Telegram

Incidents

When a webhook fails several times in a row, SePay groups those failures into a single incident for easier tracking. Each incident records the time, error type, and affected transactions. When the webhook starts succeeding again, the incident auto-closes.

Requirement: the webhook must have alerts enabled (see Alerts above).

Lifecycle

1. Open First failure, SePay creates an incident in Open status. Each subsequent failure increments the failure counter (see Alert behavior for threshold and mute-window details).

2. Close 3 ways to close an incident:

  • Auto: webhook delivers successfully again. Sends recovery notification if the alert had fired.
  • Manual: click Mark as handled after reconciling. SePay records the user, no notification.
  • Successful replay: you actively tested successfully. No recovery notification.

A closed incident can be Reopened if you clicked by mistake or found the issue isn't done.

View incidents

Incidents tab. Default filter is Open.

Incidents tab
Click to expand
Incident list with stat cards and filters

Four 30-day stats:

MetricMeaning
OpenNot yet resolved
ResolvedClosed
Affected transactionsTotal transactions across incidents
ReplayedWebhooks successfully replayed

Detail

Click an incident to open the panel: status, URL, error time, total amount, error type (HTTP 500, Timeout, DNS, ...).

Below is the list of transactions: code, amount, replay status.

Incident detail
Click to expand
Incident detail panel with transaction list

Bulk replay

  1. Open incident detail
  2. Pick transactions (or Select all)
  3. Click Resend

Successful sends lock the checkbox.

Click View full in Delivery logs to switch to the logs view, pre-filtered by webhook and incident time range.

Manage alert channels

In the channels list, you can enable/disable (with confirmation), edit info, delete, or view notification history.

Next