# WhatsApp Delivery Receipt Events

The Event Notification Service supports these event notification types and their corresponding payloads for WhatsApp messages.

| Notification Event Category | Notification Event Type | Description                                                          |
| --------------------------- | ----------------------- | -------------------------------------------------------------------- |
| `EngagementEvents`          | `OttDelivered`          | Indicates that the message was delivered to the user device.         |
| `EngagementEvents`          | `OttFailed`             | Indicates that Meta failed to send the message to the user’s device. |
| `EngagementEvents`          | `OttRead`               | Indicates that the user has read the message.                        |
| `EngagementEvents`          | `OttSent`               | Indicates that Meta sent the message to the user’s device.           |

## Delivery Receipt Event Attributes

Delivery receipt events can include the attributes listed in this table.

| Attribute            | Type   | Description                                                                                                                                                                                                                                                                                                                  |
| -------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `activityId`         | string | Unique ID for the Journey Builder activity that sent this message. Delivery receipts include this attribute only if the value of `sendMethod` is `JourneyBuilder`.                                                                                                                                                           |
| `activityName`       | string | The name of the journey activity that sent the message. Delivery receipts include this attribute only if the value of `sendMethod` is `JourneyBuilder`.                                                                                                                                                                      |
| `contactKey`         | string | If the contact information for the transactional message matches a subscriber in Marketing Cloud Engagement, this field contains the subscriber key.                                                                                                                                                                         |
| `customerBizContext` | string | The value that you specified in `customerBizContext` when you sent the message. The value is returned unchanged. This property is present only in receipts for transactional sends that specified this value.                                                                                                                |
| `eid`                | string | The Enterprise ID of the account that produced the event.                                                                                                                                                                                                                                                                    |
| `eventCategoryType`  | string | The type of event. Possible values are `EngagementEvents.OttSent`, `EngagementEvents.OttDelivered`, `EngagementEvents.OttRead`, and `EngagementEvents.OttFailed`.                                                                                                                                                            |
| `journeyId`          | string | The unique ID of the journey that sent the message. Delivery receipts include this attribute only if the value of `sendMethod` is `JourneyBuilder`.                                                                                                                                                                          |
| `journeyName`        | string | The name of the journey that sent the message. Delivery receipts include this attribute only if the value of `sendMethod` is `JourneyBuilder`.                                                                                                                                                                               |
| `journeyVersion`     | number | The version number of the journey sent the message. Delivery receipts include this attribute only if the value of `sendMethod` is `JourneyBuilder`.                                                                                                                                                                          |
| `messageKey`         | string | A unique message key generated during the transactional send request. Delivery receipts include this attribute only for transactional send events.                                                                                                                                                                           |
| `mid`                | string | The Business Unit ID of the account that produced the event.                                                                                                                                                                                                                                                                 |
| `mobileNumber`       | string | The subscriber's phone number.                                                                                                                                                                                                                                                                                               |
| `reason`             | string | The reason that a message wasn't delivered. This message is provided by Meta. Delivery receipts include this attribute only for transactional messages that failed. See *WhatsApp Cloud API Documentation*: [Cloud API error codes](https://developers.facebook.com/docs/whatsapp/cloud-api/support/error-codes/).           |
| `sendMethod`         | string | The method used to send the message. Possible values: <ul><li><code>JourneyBuilder</code>: Messages sent from a journey activity.</li><li><code>Transactional</code>: Messages sent using the Transactional API.</li><li><code>Inbound</code>: Messages sent as a default response to a Mobile Originated message.</li></ul> |
| `senderID`           | string | The sender ID, such as a phone number, used to send the message to the subscriber.                                                                                                                                                                                                                                           |
| `senderType`         | string | The app used to send the message. The only possible value is `WhatsApp`.                                                                                                                                                                                                                                                     |
| `timestampUTC`       | number | The date and time when the message was sent, shown as a UTC epoch timestamp.                                                                                                                                                                                                                                                 |

## Sent Event Examples

These examples show the payload format for sent event notifications from Event Notification Service. The examples demonstrate the differences in payload attributes between transactional messages and journey messages.

### Transactional Message Sent Event Receipt

This example shows a sent event notification for a transactional WhatsApp message.

```json
[
  {
    "eventCategoryType": "EngagementEvents.OttSent",
    "eid": 1982,
    "mid": 2507,
    "senderType": "WhatsApp",
    "senderId": "9988776655",
    "messageKey": "uHi8JOr630KHAJ5tuplsqg",
    "timestampUTC": 1706018114,
    "sendMethod": "TransactionalSend",
    "contactKey": "ContactExample",
    "mobileNumber": "99999999999",
    "customerBizContext": "AccountReset-VIP"
  }
]
```

### Journey Message Sent Event Receipt

This example shows a sent event notification for a WhatsApp message sent from a journey.

```json
[
  {
    "eventCategoryType": "EngagementEvents.OttSent",
    "eid": 1982,
    "mid": 2507,
    "senderType": "WhatsApp",
    "senderId": "9988776655",
    "messageKey": "uHi8JOr630KHAJ5tuplsqg",
    "timestampUTC": 1706018114,
    "sendMethod": "JourneyBuilder",
    "contactKey": "ContactExample",
    "mobileNumber": "99999999999",
    "journeyId": "b2fca3b5-5bce-44ce-8e6a-cc852d247ed5",
    "activityId": "00b375bd-51f9-470a-a87b-0a1fc8919000",
    "journeyName": "ExampleJourneyName",
    "journeyVersion": 1,
    "activityName": "ExampleActivityName"
  }
]
```

## Delivered Event Examples

These examples show the payload format for delivered event notifications from Event Notification Service.

### Transactional Message Delivered Event Receipt

This example shows a delivered event notification for a transactional WhatsApp message.

```json
[
  {
    "eventCategoryType": "EngagementEvents.OttDelivered",
    "eid": 1982,
    "mid": 2507,
    "senderType": "WhatsApp",
    "senderId": "9988776655",
    "messageKey": "uHi8JOr630KHAJ5tuplsqg",
    "timestampUTC": 1706109047,
    "sendMethod": "TransactionalSend",
    "contactKey": "ContactExample",
    "mobileNumber": "99999999999",
    "customerBizContext": "AccountReset-VIP"
  }
]
```

### Journey Message Delivered Event Receipt

This example shows a delivered event notification for a WhatsApp message sent from a journey.

```json
[
  {
    "eventCategoryType": "EngagementEvents.OttDelivered",
    "eid": 1982,
    "mid": 2507,
    "senderType": "WhatsApp",
    "senderId": "9988776655",
    "timestampUTC": 1706109047,
    "sendMethod": "JourneyBuilder",
    "contactKey": "ContactExample",
    "mobileNumber": "99999999999",
    "journeyId": "b2fca3b5-5bce-44ce-8e6a-cc852d247ed5",
    "activityId": "00b375bd-51f9-470a-a87b-0a1fc8919000",
    "journeyName": "ExampleJourneyName",
    "journeyVersion": 1,
    "activityName": "ExampleActivityName"
  }
]
```

## Read Event Examples

These examples show the payload format for read event notifications from Event Notification Service.

### Transactional Message Read Event Receipt

This example shows a read event notification for a transactional WhatsApp message.

```json
[
  {
    "eventCategoryType": "EngagementEvents.OttRead",
    "eid": 1982,
    "mid": 2507,
    "senderType": "WhatsApp",
    "senderId": "9988776655",
    "messageKey": "uHi8JOr630KHAJ5tuplsqg",
    "timestampUTC": 1706018253,
    "sendMethod": "TransactionalSend",
    "contactKey": "ContactExample",
    "mobileNumber": "99999999999",
    "customerBizContext": "AccountReset-VIP"
  }
]
```

### Journey Message Read Event Receipt

This example shows a read event notification for a WhatsApp message sent from a journey.

```json
[
  {
    "eventCategoryType": "EngagementEvents.OttRead",
    "eid": 1982,
    "mid": 2507,
    "senderType": "WhatsApp",
    "senderId": "9988776655",
    "timestampUTC": 1706018253,
    "sendMethod": "JourneyBuilder",
    "contactKey": "ContactExample",
    "mobileNumber": "99999999999",
    "journeyId": "b2fca3b5-5bce-44ce-8e6a-cc852d247ed5",
    "activityId": "00b375bd-51f9-470a-a87b-0a1fc8919000",
    "journeyName": "ExampleJourneyName",
    "journeyVersion": 1,
    "activityName": "ExampleActivityName"
  }
]
```

## Failed Event Examples

These examples show the payload format for failed event notifications from Event Notification Service.

### Transactional Message Failed Event Receipt

This example shows a failed event notification for a transactional WhatsApp message.

```json
[
  {
    "eventCategoryType": "EngagementEvents.OttFailed",
    "eid": 1982,
    "mid": 2507,
    "senderType": "WhatsApp",
    "senderId": "9988776655",
    "messageKey": "uHi8JOr630KHAJ5tuplsqg",
    "reason": "131026 Message Undeliverable",
    "timestampUTC": 1706018186,
    "sendMethod": "TransactionalSend",
    "contactKey": "ContactExample",
    "mobileNumber": "99999999999",
    "customerBizContext": "AccountReset-VIP"
  }
]
```

### Journey Message Failed Event Receipt

This example shows a failed event notification for a WhatsApp message sent from a journey.

```json
[
  {
    "eventCategoryType": "EngagementEvents.OttFailed",
    "eid": 1982,
    "mid": 2507,
    "senderType": "WhatsApp",
    "senderId": "9988776655",
    "messageKey": "uHi8JOr630KHAJ5tuplsqg",
    "reason": "131026 Message Undeliverable",
    "timestampUTC": 1706018186,
    "sendMethod": "JourneyBuilder",
    "contactKey": "ContactExample",
    "mobileNumber": "99999999999",
    "journeyId": "b2fca3b5-5bce-44ce-8e6a-cc852d247ed5",
    "activityId": "00b375bd-51f9-470a-a87b-0a1fc8919000",
    "journeyName": "ExampleJourneyName",
    "journeyVersion": 1,
    "activityName": "ExampleActivityName"
  }
]
```

## See Also

- [WhatsApp Send Events](/docs/marketing/marketing-cloud/guide/transactional_ott_events.md)
