# Webhooks

### How webhooks work

When something happens in your Zynta account: a transfer completes, a KYC check passes, a payment fails. Zynta sends an HTTP POST request to your server with the event details. This lets your application react in real time without polling the API.

### Info banner

At the top of the page, an information banner explains what webhooks do and how to get started. This is helpful for first-time setup.

### Active webhooks

Below the banner, the **Active Webhooks** section lists all your configured webhook endpoints. Each webhook card shows:

<table><thead><tr><th width="200">Field</th><th>Description</th></tr></thead><tbody><tr><td><strong>URL</strong></td><td>The endpoint URL receiving events</td></tr><tr><td><strong>Status</strong></td><td><code>Active</code> or <code>Paused</code></td></tr><tr><td><strong>Last Triggered</strong></td><td>How recently the webhook was last fired (e.g. "5 min ago")</td></tr><tr><td><strong>Success Rate</strong></td><td>Percentage of successful deliveries</td></tr><tr><td><strong>Total Calls</strong></td><td>Total number of webhook deliveries attempted</td></tr><tr><td><strong>Events</strong></td><td>Which event types this webhook subscribes to</td></tr></tbody></table>

### Adding a new webhook

1. Click the **Add Webhook** button
2. In the modal, fill in:
   * **Webhook URL** — the HTTPS endpoint on your server (e.g. `https://your-server.com/webhooks/zynta`)
   * **Signing Secret** — a secret string used to verify webhook signatures. You generate this yourself and store it securely in your application
   * **Events** — select which events to subscribe to:

| Event             | Trigger                             |
| ----------------- | ----------------------------------- |
| Payment Created   | A new payment is initiated          |
| Payment Succeeded | A payment is successfully processed |
| Payment Failed    | A payment fails                     |
| Dispute Created   | A new dispute is opened             |

3. Click **Create Webhook**

{% hint style="info" %}
You can create multiple webhooks pointing to different URLs or subscribing to different event types. For example, one webhook for payment events and another for disputes.
{% endhint %}

### Webhook delivery logs

The bottom section of the page shows a **Webhook Logs** table with recent delivery attempts:

| Column        | Description                                                        |
| ------------- | ------------------------------------------------------------------ |
| **Event**     | The event type that triggered the delivery                         |
| **Endpoint**  | The URL the event was sent to                                      |
| **Timestamp** | When the delivery was attempted                                    |
| **Status**    | HTTP response code from your server (200 = success, 500 = failure) |

Use these logs to debug integration issues. If you see repeated 500 errors, check your webhook handler for bugs. If you see no logs at all, verify your webhook URL is correct and accessible.

### Pausing and resuming

You can pause a webhook from its card in the Active Webhooks section. Paused webhooks stop receiving events but are not deleted, you can resume them at any time.

This is useful during maintenance windows or when debugging issues with your webhook handler.

### Verifying webhook signatures

Every webhook delivery includes an `X-Zynta-Signature` header. Your application should verify this signature using your signing secret before processing any event. See the Webhooks API reference for implementation details.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.zynta.com/dashboard/webhooks.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
