> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.brevo.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.brevo.com/_mcp/server.

This page lists the currently supported Push notification webhook events and their payloads.

* [Push notification clicked](/docs/push-notification-webhooks#push-notification-clicked)
* [Push subscribed](/docs/push-notification-webhooks#push-subscribed)
* [Push unsubscribed](/docs/push-notification-webhooks#push-unsubscribed)
* [Push session started](/docs/push-notification-webhooks#push-session-started)

## Push notification clicked

| Attribute name                | Datatype | Description                                              |
| :---------------------------- | :------- | :------------------------------------------------------- |
| `reporting.attributionReason` | String   | Reason for notification click                            |
| `reporting.campaignId`        | String   | Campaign ID of campaign that triggered push notification |
| `reporting.notificationId`    | String   | Notification ID of push notification                     |

```json
{
  "reporting": {
    "attributionReason": "notificationOpened",
    "campaignId": "000jdxx0063",
    "notificationId": "01xx7yxxx5rfgh"
  }
}
```

## Push subscribed

| Attribute name | Datatype | Description                                                                                                                                                                                                                              |
| :------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `subtype`      | String   | One of: new, moved, soft, inactivity  New: user subscribes  Moved: push token moved to that installation because user logged in  Soft: User decides to show notifications  Inactivity: Resubscribed at the end of a period of inactivity |

```json
{"subtype":"new"}
```

## Push unsubscribed

| Attribute name | Datatype | Description                                                                                                                                                                                                                              |
| :------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `subtype`      | String   | One of: new, moved, soft, inactivity  New: user subscribes  Moved: push token moved to that installation because user logged in  Soft: User decides to show notifications  Inactivity: Resubscribed at the end of a period of inactivity |

```json
{"subtype":"new"}
```

## Push session started

| Attribute name                | Datatype | Description                                     |
| :---------------------------- | :------- | :---------------------------------------------- |
| `reporting.attributionReason` | String   | Reason for session start                        |
| `reporting.campaignId`        | String   | Campaign ID of campaign that triggered the push |
| `reporting.notificationId`    | String   | Notification ID of push notification sent       |

```json
{
  "reporting": {
    "attributionReason": "notificationOpened",
    "campaignId": "000jdxx0063",
    "notificationId": "01xx7yxxx5rfgh"
  }
}
```