Viewing and retrying webhooks from your Dashboard

Edited

Webhooks notify your integration when important events happen on Paystack, such as successful transactions, transfers, refunds, disputes, subscriptions, invoices, and customer identification updates.

On the new Paystack Dashboard, you can view your webhook delivery history, inspect Paystack’s request and your server’s response, and retry events that were not delivered successfully.


💡 Important to note

This feature is only available on the new Paystack Dashboard. To set up a webhook URL or learn how to verify webhook signatures, see the Paystack webhooks guide.


Viewing webhook events

  1. Log in to the new Paystack Dashboard.

  2. Select the correct environment:

    • Test mode for test webhook events

    • Live mode for live webhook events

  3. Go to Developers → Webhooks.

You’ll see a history of the webhook events Paystack has sent to your integration.


⚠️ Test and live webhook events are stored separately. If you cannot find an event, confirm that you’re viewing the correct environment.


Understanding the Webhooks page

The Webhooks page shows information that can help you confirm whether an event was delivered successfully and troubleshoot delivery issues.

Detail

What it means

Event name

The webhook event type, such as charge.success, transfer.success, or invoice.payment_failed.

Category

The Paystack product associated with the event, such as Transaction, Transfer, or Subscription.

Status

The current delivery status.

Category ID

The ID of the related transaction, transfer, or other resource.

Date and time sent

When Paystack sent the webhook.

Delivery attempts

How many times Paystack has tried to deliver the event.

HTTP response code

The response code returned by your server.

Webhook URL

The endpoint to which Paystack sent the event.

Event payload

The data Paystack sent to your endpoint.

Response body

The response returned by your server.

Webhook statuses and their meanings

Status

Meaning

Recommended action

Delivered

Your server returned a successful 2xx response.

No action is usually required.

Pending

The event is being processed or is waiting for an automatic retry.

Wait for the retry. If it remains pending, check your server logs.

Failed

Paystack could not deliver the event successfully.

Fix the issue on your server, then retry the event from your Dashboard.

A webhook may remain pending or fail if your server returns a non-2xx response, takes too long to respond, or blocks the request.

Filtering webhook events

Use the filters on the Webhooks page to find a specific event. You can filter by:

  • Category, such as Transactions, Transfers, or Refunds

  • Event type, such as charge.success or transfer.failed

  • Status

  • Date range

  • Category ID, such as a transaction ID

Viewing webhook details

  1. Go to Developers → Webhooks on the new Paystack Dashboard.

  2. Find the event you want to review.

  3. Click the event to open its details.

The detail view shows the event payload, webhook URL, delivery status, number of attempts, HTTP response code, and your server’s response body.

If delivery failed, share the response code and response body with your technical team. These details can help them identify and fix the issue.

Retrying a webhook

Fix the issue that caused the delivery to fail before retrying the event.

To retry a webhook:

  1. Go to Developers → Webhooks on the new Paystack Dashboard.

  2. Use the filters to find the event.

  3. Select the event.

  4. Click Retry.

  5. Review the confirmation prompt, then confirm the retry.

Paystack will queue the event for delivery again. Because retries happen in the background, the status may not update immediately. Refresh the page or reopen the event details to see the latest status.


⚠️ Retrying sends the event again. Before you continue, make sure your integration can safely handle repeated events so a customer is not credited, fulfilled, or updated more than once.


A retried event is sent to the webhook URL currently configured for the selected environment. This URL may be different from the one that was configured when Paystack first sent the event.

Retrying multiple webhooks

You can also retry multiple events that match your active filters. Before confirming the retry, review the number of matching events shown on your Dashboard—especially when using a wide date range or selecting several event types.

Troubleshooting webhook deliveries

The webhook returned a non-2xx response

Your server returned an error response. Review the HTTP response code and response body in the event details, fix the issue on your server, and then retry the event.

The webhook remains pending

The event may still be processing or waiting for an automatic retry. If it remains pending longer than expected, check your server logs and confirm that your webhook URL is publicly reachable.

The Retry button is unavailable

This can happen when:

  • No webhook URL is configured for the selected environment.

  • The selected event cannot be retried.

  • Too many events are selected.

  • The request is temporarily rate-limited.

Review the message shown on your Dashboard and resolve the issue before trying again.

If no webhook URL is configured, add one to the correct environment in your webhook settings, save your changes, and return to Developers → Webhooks. Test and live modes have separate webhook URLs.

The webhook was delivered, but your system did not update

A Delivered status means your server returned a successful response to Paystack. Check your application logs to confirm how your system handled the payload.

You can retry the event, but only if your integration can safely handle repeated events.

Your endpoint received the same event more than once

Webhook endpoints can occasionally receive an event more than once, particularly when retries occur. Use a unique transaction reference or resource ID to check whether your system has already processed the event before giving value.

Best practices

  • Check a unique transaction reference or resource ID before processing an event.

  • Return a 200 OK response as soon as your server accepts the event.

  • Process long-running tasks in the background after acknowledging the webhook.

  • Keep your webhook URL publicly reachable.

  • Verify Paystack’s webhook signature before processing an event.

  • Monitor failed events and fix endpoint errors before retrying them.

For implementation guidance, see the Paystack webhooks guide.

Supported webhook events

Webhook events are grouped into categories such as:

Category

Examples

Transaction

charge.success, refund.pending, refund.processing, refund.processed, refund.failed, paymentrequest.pending, paymentrequest.success, customeridentification.success, customeridentification.failed, dedicatedaccount.assign.success, dedicatedaccount.assign.failed, charge.dispute.create, charge.dispute.remind, charge.dispute.resolve

Transfer

transfer.success, transfer.failed, transfer.reversed

Subscription

subscription.create, subscription.disable, subscription.not_renew, subscription.expiring_cards, invoice.create, invoice.update, invoice.payment_failed

The events available to you may depend on the Paystack products your business uses. See the supported events section of the Paystack webhooks guide for the latest list.

Contacting Paystack Support

Contact Paystack Support if:

  • You cannot find an expected event after checking the environment and date range.

  • A retried event still fails after your technical team has fixed the issue.

  • You believe Paystack did not send an expected event.

  • The Webhooks page shows an error you cannot resolve.

  • You need help understanding an event payload or response body.

When contacting Support, include:

  • Your business name

  • The affected environment—test or live

  • The transaction, transfer, or resource reference

  • The webhook event name, if available

  • The date and time you expected the event

  • Any response code or error message shown on your Dashboard

Related Articles

Was this article helpful?

Sorry about that! Care to tell us more?

Thanks for the feedback!

There was an issue submitting your feedback
Please check your connection and try again.