> For the complete documentation index, see [llms.txt](https://support.ordereazi.com/central/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://support.ordereazi.com/central/developers/webhooks/managing-webhooks.md).

# Managing webhooks

List, register, and remove OrderEazi webhooks with the API.

Adding webhooks by hand for every installation is slow and easy to get wrong. With the `/api/webhook` calls, your system can register its own webhooks when it's set up, and remove them when it's switched off.

### Before you start

You'll need **Read** on **For Administrative Data** to list webhooks, and **Write** to register and remove them. See [Authentication](/central/developers/authentication.md).

### How to list webhooks

`GET /api/webhook/list` returns every webhook in the organisation, including ones added in OrderEazi and by installed apps:

```bash
curl https://yourcompany.ordereazi.com/api/webhook/list \
  -H "X-OrderEazi-Key: YOUR_API_KEY" \
  -H "x-api-version: 2.0"
```

```json
{
  "Success": true,
  "Warnings": null,
  "Data": [
    {
      "Id": 12,
      "Created": "2026-11-01T09:00:00",
      "Modified": "2026-11-01T09:00:00",
      "WebhookProcess": 3,
      "Url": "https://shop.example.com/hooks/oe-7f3k9q2m/dispatched",
      "Application": null
    }
  ]
}
```

* **`WebhookProcess`:** The event, as its number. Look the number up in the [Event catalogue](/central/developers/webhooks/event-catalogue.md).
* **`Application`:** The installed app that added the webhook, or `null`.

### How to register a webhook

Send a POST to `/api/webhook`, with the event and your endpoint's address as query parameters:

```bash
curl -X POST "https://yourcompany.ordereazi.com/api/webhook?process=OrderDispatched&url=https%3A%2F%2Fshop.example.com%2Fhooks%2Foe-7f3k9q2m%2Fdispatched" \
  -H "X-OrderEazi-Key: YOUR_API_KEY" \
  -H "x-api-version: 2.0"
```

* **`process`:** The event's name, such as `OrderDispatched`. Always send the name, not the number.
* **`url`:** Your endpoint's full address, URL-encoded (with characters such as `:` and `/` written as `%3A` and `%2F`). Use an HTTPS address. It can be up to 348 characters.

The response's `Data` is the webhook, in the same shape as the list. Keep its `Id` to remove the webhook later.

Registering the same event and address again doesn't add a second webhook. You get the existing one back, so it's safe to register every time your system starts.

A new webhook can take up to a minute to start receiving events.

### How to remove a webhook

> **Warning:** Removing a webhook can't be undone, and deliveries for it that haven't gone out yet aren't sent. The list includes webhooks other systems and apps rely on, so only remove webhooks your system registered.

Send a DELETE to `/api/webhook`, with the webhook's `Id`:

```bash
curl -X DELETE "https://yourcompany.ordereazi.com/api/webhook?webhookId=12" \
  -H "X-OrderEazi-Key: YOUR_API_KEY" \
  -H "x-api-version: 2.0"
```

The response's `Data` is `true` when the webhook is removed. If there's no webhook with that `Id`, you get a `400` with the warning "Webhook not found".

### What the API does not do

**Changing a webhook:** The API can't change a webhook. Remove it and register a new one, or change it in OrderEazi. See [Webhooks](/central/order-management/integrations/webhooks.md).

### Related pages

* [Webhooks](/central/developers/webhooks.md): how webhooks work, and what each delivery contains
* [Event catalogue](/central/developers/webhooks/event-catalogue.md): the events you can register for
* [Delivery and troubleshooting](/central/developers/webhooks/delivery-and-troubleshooting.md): check your first deliveries arrive
* [Responses, errors, and warnings](/central/developers/responses-errors-and-warnings.md): the response envelope
