> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Managing Webhooks

> Register the endpoints that receive Bank Transfer events, rotate their signing secret, and retry failed deliveries, from the Bank Transfer plugin in Lerian Console.

The **Webhooks** page of the **Bank Transfer** plugin registers the endpoints that receive Bank Transfer events. It also lists the deliveries that failed. For the events, the signature, and the retry schedule, see [Webhooks](/en/interfaces/ted-jd/ted-webhooks).

Each Bank Transfer screen needs the `bank-transfer` permission: `get` to see it, `post` to act on it, `patch` to change settings and the routing document, and `delete` to delete a webhook. On this page, **Register webhook**, **Rotate signing secret**, and **Retry delivery** need `post`. **Edit**, **Enable**, and **Disable** need `patch`. **Delete** needs `delete`.

## Accessing the page

***

<Steps>
  <Step title="Open Bank Transfer">
    From the Midaz Module sidebar, expand **Bank Transfer**.
  </Step>

  <Step title="Click Webhooks">
    Select **Webhooks** in the submenu.
  </Step>
</Steps>

The page has two tabs: **Registrations** and **Failed deliveries**.

## Registrations

***

The **Registrations** tab lists your webhook registrations, 10 per page.

| Column | Description |
| - | - |
| Name | Name of the registration. |
| Endpoint | URL that receives the events. |
| Status | **Enabled** or **Disabled**. |
| Events | Number of event types that the registration receives. When the registration lists no event type, the column shows **All events**. |
| Updated | When the registration last changed. |
| Actions | **Edit**, **Enable** or **Disable**, **Rotate signing secret**, and **Delete**. |

### Register a webhook

<Steps>
  <Step title="Open the form">
    Click **Register webhook**.
  </Step>

  <Step title="Fill in the fields">
    * **Name**: a name for the registration.
    * **Endpoint URL**: the URL that receives the events.
    * **Enabled**: on by default.
    * **Event types**: the events to receive. Leave the list empty to receive every event.
  </Step>

  <Step title="Save">
    Click **Save**.
  </Step>

  <Step title="Copy the signing secret">
    The **Signing secret** dialog shows the secret once. Copy it before you click **I've saved it**. Use the secret to verify the signature on every delivery.
  </Step>
</Steps>

If the copy fails, select the secret and copy it by hand before you close the dialog. If the dialog shows no secret, the plugin already made that secret available once. Rotate the signing secret to get a new one.

### Edit a webhook

Click **Edit** in the row actions. Change the fields, then click **Save**. The Console sends only the fields that you change.

### Enable or disable a webhook

Click **Disable** in the row actions of an enabled webhook, or **Enable** in the row actions of a disabled webhook.

### Rotate the signing secret

<Steps>
  <Step title="Start the rotation">
    Click **Rotate signing secret** in the row actions.
  </Step>

  <Step title="Confirm">
    Click **Rotate signing secret** in the dialog.
  </Step>

  <Step title="Copy the new secret">
    The **Signing secret** dialog shows the new secret once, as on registration.
  </Step>
</Steps>

<Warning>
  Rotation invalidates the current secret at once. Deliveries fail verification until you deploy the new secret.
</Warning>

### Delete a webhook

Click **Delete** in the row actions, then confirm.

## Failed deliveries

***

The **Failed deliveries** tab lists the events that the plugin could not deliver after its automatic retries, 50 per page.

| Column | Description |
| - | - |
| Event | The event type. |
| Transfer | The transfer of the event. |
| Failure | Why the delivery failed. |
| Automatic retries | Number of automatic retries. |
| Manual retries | Number of manual retries. |
| Failed at | When the delivery failed. |
| Actions | **Retry delivery**. |

When the plugin does not expose the failed-delivery routes, the tab shows the message of the plugin instead of the list.

### Retry a delivery

<Steps>
  <Step title="Start the retry">
    Click **Retry delivery** in the row actions.
  </Step>

  <Step title="Confirm">
    Click **Retry delivery** in the dialog. The endpoint can receive the event more than once.
  </Step>
</Steps>

If the plugin refuses the retry because the delivery reached its maximum of manual retries, **Retry delivery** becomes unavailable on that row. Its hint reads **Maximum manual retries reached**.

## Related pages

***

<Columns cols={2}>
  <Card title="Webhooks" icon="webhook" horizontal href="/en/interfaces/ted-jd/ted-webhooks">
    Events, signature verification, and the retry schedule.
  </Card>

  <Card title="Developer guide" icon="code" horizontal href="/en/interfaces/ted-jd/ted-developer-guide">
    Signature validation code and the integration checklist.
  </Card>
</Columns>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.