> 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.

# Push notification webhooks

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                | Data type | 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 | Data type | 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 | Data type | 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                | Data type | 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"
  }
}
```