# Webhook event catalog

These are the events a webhook can subscribe to, grouped by object. Each webhook subscribes one URL to one
event (see [Using webhooks](/guides/using-webhooks)).

**Class** says what a subscription needs:

- **Standard** and **compliance** events can be sent to any URL. Compliance events report bounces, complaints,
  unsubscribes and refused sends. Their payloads are documented in [Compliance events](/guides/webhook-compliance-events).
- **High-volume** events can only be sent to an approved domain. See [event classes](/guides/using-webhooks#event-classes).

Payloads of the other events aren't documented yet.

<div className="webhook-event-catalog">

| Event | When it fires | Class | Payload |
|---|---|---|---|
| `Account.Created` | A partner creates a sub-account (`POST /accounts`). Delivered to the partner account. | Standard | Not yet documented |
| `Account.Confirmed` | A pending sub-account is confirmed from its verification link (`POST /accounts/{account_id}/confirm`). Delivered to the partner account. | Standard | Not yet documented |
| `Account.Updated` | A partner edits a sub-account (`PATCH /accounts/{account_id}`), delivered to the partner account; or an account edits itself (`PATCH /accounts/self`), delivered to the account and to its partner. | Standard | Not yet documented |
| `Account.Deleted` | A partner deletes a sub-account (`DELETE /accounts/{account_id}`). Delivered to the partner account. | Standard | Not yet documented |
| `Campaign.Created` | A campaign is created (`POST /campaigns`). | Standard | Not yet documented |
| `Campaign.Updated` | A campaign is edited (`PATCH /campaigns/{campaign_id}`). | Standard | Not yet documented |
| `Campaign.Scheduled` | A campaign is scheduled or rescheduled (`POST /campaigns/{campaign_id}/schedule`, `POST /campaigns/{campaign_id}/reschedule`). | Standard | Not yet documented |
| `Campaign.Unscheduled` | A scheduled campaign is unscheduled (`POST /campaigns/{campaign_id}/unschedule`). | Standard | Not yet documented |
| `Campaign.Suspended` | A campaign is suspended with `POST /campaigns/{campaign_id}/suspend`. | Standard | Not yet documented |
| `Campaign.Resumed` | A suspended campaign is resumed (`POST /campaigns/{campaign_id}/resume`). | Standard | Not yet documented |
| `Campaign.Canceled` | A campaign is canceled (`POST /campaigns/{campaign_id}/cancel`). | Standard | Not yet documented |
| `CampaignLogExport.Created` | An export of a campaign's activity log is requested (`POST /logs/campaigns/{campaign_id}/exports`). It fires on the request, not when the export is ready. | Standard | Not yet documented |
| `Contact.Added` | A contact becomes active on a list: added (`POST /lists/{list_id}/contacts`), imported, signed up with a form, added by an Email API message to a list, confirmed after a double opt-in, or resubscribed. A pending contact fires it when they confirm. | High-volume | Not yet documented |
| `Contact.Updated` | A contact changes (`PATCH /lists/{list_id}/contacts/{contact_id}`), or is added or imported again while already on the list. | High-volume | Not yet documented |
| `Contact.Removed` | A contact leaves a list: unsubscribed (a link, the API, a list unsubscribe or a global unsubscribe) or deleted (`DELETE /lists/{list_id}/contacts/{contact_id}`). An import that unsubscribes contacts doesn't fire it. | Compliance | [Payload](/guides/webhook-compliance-events#contactremoved) |
| `ContactsExport.Created` | A contacts export is requested (`POST /lists/{list_id}/exports`). | Standard | Not yet documented |
| `ContactsExport.Deleted` | A contacts export is deleted (`DELETE /lists/{list_id}/exports/{export_id}`). | Standard | Not yet documented |
| `Email.Submitted` | Email API: `POST /v2/emails` accepts a message. | High-volume | Not yet documented |
| `Email.Queued` | Email API: a submitted message passes the checks and is queued for delivery. | High-volume | Not yet documented |
| `Email.Processing` | Email API: the sending server reports that it's processing the message. | High-volume | Not yet documented |
| `Email.Delivered` | Email API: the sending server reports the message delivered. | High-volume | Not yet documented |
| `Email.Rejected` | Email API: `POST /v2/emails` refuses a message before queueing it, because the recipient bounced, unsubscribed, hasn't confirmed, reported spam, was deleted or is suppressed. | Compliance | [Payload](/guides/webhook-compliance-events#emailrejected) |
| `Email.Error` | Email API: a submitted message hits an internal error before it's queued. | Compliance | [Payload](/guides/webhook-compliance-events#emailerror) |
| `Email.Sent` | The deprecated `POST /emails` accepts a message. Campaigns and `POST /v2/emails` don't fire it. | High-volume | Not yet documented |
| `Email.Opened` | A recipient opens a tracked message, whichever way it was sent. | High-volume | Not yet documented |
| `Email.Clicked` | A recipient clicks a tracked link, whichever way the message was sent. | High-volume | Not yet documented |
| `Email.Bounced` | A message bounces, whichever way it was sent. | Compliance | [Payload](/guides/webhook-compliance-events#emailbounced) |
| `Email.ReportedAsSpam` | A recipient reports a message as spam to a mailbox provider that shares complaints, whichever way it was sent. | Compliance | [Payload](/guides/webhook-compliance-events#emailreportedasspam) |
| `Email.Unsubscribed` | Email API: a recipient unsubscribes from the list with a link or the `List-Unsubscribe` header. | Compliance | [Payload](/guides/webhook-compliance-events#emailunsubscribed) |
| `Email.GlobalUnsubscribed` | Email API: a recipient unsubscribes from all email. | Compliance | [Payload](/guides/webhook-compliance-events#emailglobalunsubscribed) |
| `List.Created` | A list is created (`POST /lists`). | Standard | Not yet documented |
| `List.Updated` | A list's settings change (`PATCH /lists/{list_id}`, `POST /lists/{list_id}/accept-policy`). | Standard | Not yet documented |
| `List.Deleted` | A list is deleted (`DELETE /lists/{list_id}`). Archiving a list doesn't fire it. | Standard | Not yet documented |
| `ListLogsExport.Created` | An export of a list's activity log is requested (`POST /logs/lists/{list_id}/exports`). | Standard | Not yet documented |
| `Segment.Created` | A segment is created (`POST /lists/{list_id}/segments`). | Standard | Not yet documented |
| `Segment.Updated` | A segment's name or conditions change (`PATCH /lists/{list_id}/segments/{segment_id}`). | Standard | Not yet documented |
| `Segment.Deleted` | A segment is deleted (`DELETE /lists/{list_id}/segments/{segment_id}`). | Standard | Not yet documented |
| `Sender.Created` | A sender is added (`POST /brands/default/senders`). | Standard | Not yet documented |
| `Sender.Updated` | A sender is edited (`PATCH /brands/default/senders/{sender_id}`). | Standard | Not yet documented |
| `Sender.Deleted` | A sender is deleted (`DELETE /brands/default/senders/{sender_id}`). | Standard | Not yet documented |
| `Sender.Confirmed` | A sender is confirmed from its confirmation link (`POST /brands/default/senders/confirm-email`), or by an administrator. | Standard | Not yet documented |
| `Sender.ConfirmationEmailSent` | The confirmation email is sent again (`POST /brands/default/senders/{sender_id}/resend-confirmation-email`). The first one, sent when the sender is added, doesn't fire it. | Standard | Not yet documented |
| `SuppressedEmail.Added` | An address, domain or local part is added to the suppression list: with `POST /suppressed-emails`, or by a global unsubscribe. | Standard | [Payload](/guides/webhook-compliance-events#suppressedemailadded) |
| `SuppressedEmail.Removed` | A suppression is removed (`DELETE /suppressed-emails/{email}`). | Standard | Not yet documented |
| `SuppressedEmailsExport.Created` | A suppression-list export is requested (`POST /reports/suppressed-emails-exports`). | Standard | Not yet documented |
| `SuppressedEmailsExport.Deleted` | A suppression-list export is deleted (`DELETE /reports/suppressed-emails-exports/{export_id}`). | Standard | Not yet documented |
| `User.Created` | A user is added (`POST /users`). | Standard | Not yet documented |
| `User.Confirmed` | An invited user sets their password from the verification link (`POST /users/{user_id}/confirm`). | Standard | Not yet documented |
| `User.Updated` | A user's profile, permissions or status changes (`PATCH /users/{user_id}`). | Standard | Not yet documented |
| `User.Deleted` | A user is deleted, whether confirmed or pending (`DELETE /users/{user_id}`). | Standard | Not yet documented |

</div>

## Which events fire depends on how you send

| | Campaigns and workflow emails | Email API (`POST /v2/emails`, and automations) | Deprecated `POST /emails` |
|---|---|---|---|
| `Email.Opened`, `Email.Clicked`, `Email.Bounced`, `Email.ReportedAsSpam` | Yes | Yes | Yes |
| `Email.Submitted`, `Email.Queued`, `Email.Processing`, `Email.Delivered`, `Email.Rejected`, `Email.Error` | No | Yes | No |
| `Email.Unsubscribed`, `Email.GlobalUnsubscribed` | No: see below | Yes | No |
| `Email.Sent` | No | No | Yes |

An unsubscribe from a campaign or workflow email fires `Contact.Removed`. A global unsubscribe from one also
fires `SuppressedEmail.Added`.

Some events exist only inside the platform and can't be subscribed to, such as logins, MFA changes and contact
tags.
