---
title: "WebhookDelivery"
description: "The `WebhookDelivery` entity."
section: "Reference"
group: "Types"
order: 255
---

## Definition

```ts
interface WebhookDelivery {
  id: string;
  workspaceId: string;
  subscriptionId: string;
  sourceEventId: string | null;
  eventType: string;
  payload: Record<string, unknown>;
  status: "pending" | "failed" | "completed" | "cancelled" | "retrying";
  attemptCount: number;
  maxAttempts: number;
  nextRetryAt: string | null;
  createdAt: string;
  updatedAt: string;
}
```

## Fields

| Field            | Type                                                                | Notes                                                                                      |
| ---------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
| `id`             | `string`                                                            | `readonly` `required`                                                                      |
| `workspaceId`    | `string`                                                            | `required` — Workspace that owns the subscription.                                         |
| `subscriptionId` | `string`                                                            | `required` — Subscription that this delivery is for.                                       |
| `sourceEventId`  | `string \| null`                                                    | `required` — Event that triggered this delivery; null if the event has been pruned.        |
| `eventType`      | `string`                                                            | `required` — Snapshot of the event type at dispatch time.                                  |
| `payload`        | `Record<string, unknown>`                                           | `required` — Snapshot of the outbound body; preserved so retries work after event pruning. |
| `status`         | `"pending" \| "failed" \| "completed" \| "cancelled" \| "retrying"` | `required` — Lifecycle state — see entity docs for transitions.                            |
| `attemptCount`   | `number`                                                            | `required` — Number of attempts recorded so far.                                           |
| `maxAttempts`    | `number`                                                            | `required` — Ceiling for automatic retries (1 initial + N auto-retries).                   |
| `nextRetryAt`    | `string \| null`                                                    | `required` — When the retry worker will next pick this up; null if terminal.               |
| `createdAt`      | `string`                                                            | `readonly` `required` — ISO-8601 timestamp of creation.                                    |
| `updatedAt`      | `string`                                                            | `readonly` `required` — ISO-8601 timestamp of the last state transition.                   |
