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

# Managing Webhooks

> List, create, update, and delete webhook endpoints for email delivery, open, click, and bounce events with the Lettr Java SDK

Webhooks deliver real-time notifications when emails are delivered, opened, clicked, bounced, or marked as spam. The `lettr.webhooks()` service manages your endpoints.

For the event payload format and signature verification, see [Webhooks](/learn/webhooks/introduction).

```java theme={null}
import com.lettr.Lettr;
import com.lettr.services.webhooks.model.*;
import java.util.List;

Lettr lettr = new Lettr("your-api-key");
```

## List Webhooks

```java theme={null}
ListWebhooksResponse webhooks = lettr.webhooks().list();
for (Webhook w : webhooks.getWebhooks()) {
    System.out.println(w.getName() + " -> " + w.getUrl() + " (enabled: " + w.isEnabled() + ")");
}
```

<Card title="API Reference" icon="book" href="/api-reference/webhooks/list-webhooks">
  GET /webhooks
</Card>

## Create a Webhook

```java theme={null}
Webhook webhook = lettr.webhooks().create(
    CreateWebhookOptions.builder()
        .name("Order Notifications")
        .url("https://example.com/webhook")
        .authType("basic")
        .authUsername("user")
        .authPassword("secret")
        .eventsMode("selected")
        .events(List.of("message.delivery", "message.bounce"))
        .build()
);
System.out.println("Webhook ID: " + webhook.getId());
```

Use `eventsMode("all")` to receive every event type, or `eventsMode("selected")` with an explicit `events` list. `authType` is `"none"`, `"basic"`, or `"oauth2"`.

<Card title="API Reference" icon="book" href="/api-reference/webhooks/create-webhook">
  POST /webhooks
</Card>

## Get a Webhook

```java theme={null}
Webhook webhook = lettr.webhooks().get("webhook-abc123");
```

<Card title="API Reference" icon="book" href="/api-reference/webhooks/get-webhook">
  GET /webhooks/{webhook}
</Card>

## Update a Webhook

```java theme={null}
Webhook updated = lettr.webhooks().update("webhook-abc123",
    UpdateWebhookOptions.builder()
        .name("Updated Webhook")
        .url("https://new.example.com/webhook")
        .active(false)
        .build()
);
```

<Card title="API Reference" icon="book" href="/api-reference/webhooks/update-webhook">
  PATCH /webhooks/{webhook}
</Card>

## Delete a Webhook

```java theme={null}
lettr.webhooks().delete("webhook-abc123");
```

<Card title="API Reference" icon="book" href="/api-reference/webhooks/delete-webhook">
  DELETE /webhooks/{webhook}
</Card>

## What's Next

<CardGroup cols={2}>
  <Card title="Webhook Events" icon="bell" href="/learn/webhooks/introduction">
    Event types and payload format
  </Card>

  <Card title="Webhook Authorization" icon="shield-check" href="/learn/webhooks/authorization">
    Verify webhook authenticity
  </Card>
</CardGroup>
