# Device API

## registerDevice

`POST` `https://api.pushwoosh.com/json/1.3/registerDevice`

Вызывается из SDK. Регистрирует устройство для приложения.

##### Заголовки запроса

| Имя | Обязательный | Значение | Описание |
|---------------|----------|---------------|------------------------------------------------------------|
| Authorization | Да | Token `XXXX` | [Токен Device API](/ru/developer/api-reference/api-access-token/#device-api-token) для доступа к Device API. Замените `XXXX` вашим актуальным токеном Device API. |


##### Тело запроса

| Имя | Тип | Описание |
| ---------------------------------------------- | ------- | --------------------------------------------------------------------------------------------------- |
| application\* | string | [Код приложения Pushwoosh](/ru/developer/api-reference/api-identifiers/#application-code) |
| push\_token | string | [Push-токен](/ru/developer/api-reference/api-identifiers/#push-token) для устройства. |
| language | string | Языковая локаль устройства. Должна быть двухбуквенным кодом в нижнем регистре в соответствии со стандартом ISO-639-1. |
| hwid\* | string | Уникальная строка для идентификации устройства (IDFV на iOS, случайно сгенерированное значение на Android). [Узнать больше](/ru/developer/api-reference/api-identifiers/#hardware-id) |
| timezone | integer | Смещение временной зоны для устройства в секундах. |
| device\_type\* | integer | [Тип устройства](/ru/developer/api-reference/api-identifiers/#device-type). См. возможные значения ниже. |
| email | string | Адрес электронной почты для регистрации (используйте для email-пользователей вместо HWID и push-токена). |
| tags | object | Значения тегов для присвоения зарегистрированному устройству. |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": null
}
```
</TabItem>
</Tabs>

```json title="Пример"
{
  "request": {
    "application": "XXXXX-XXXXX",        // required. Pushwoosh application code
    "push_token": "dec301908b9ba8XXXXX57a58e40f96f5XXXXX2068674f5XXXXa25cdc250a2a41", // optional.
    "hwid": "1CA6XXXXX-8DAC-XXXXX-XXXXX-B756288B6D3C",                                   // required. Hardware device ID
    "idfa": "AEBE52E7-0XXXXX-455A-XXXXX-E57283966239",                                   // optional.
    "timezone": 3600,                    // optional. Offset in seconds
    "device_type": 1,                    // required. See the possible values below. For emails, 
                                         //           use the "emails" params as described below.
    "email": "email_address@domain.com", // use instead of "hwid" and "push_token" to register
                                         //           the email address for your email project
    "language": "en",                    // optional. ISO 639-1|639-2 language code
    "userId": "Alex",                    // optional.
    "tags": {                            // optional. Tag values to set for the device registered 
      "StringTag": "string value",
      "IntegerTag": 42,
      "ListTag": ["string1", "string2"], // sets the list of values for Tags of List type
      "DateTag": "2024-10-02 22:11",     // note the time should be in UTC
      "BooleanTag": true                 // valid values are: true, false
    },

    // system tags, optionals
    "app_version": "1.2.3", 
    "device_model": "Samsung SM-G355H",
    "os_version": "2.3",

    // optional encryption keys for chrome/firefox
    "public_key": "BNmDO4BTKEMJqaqprTf7t/HBXXXXX/orcXXXXX/scS5CFP6XXXXXHI1/GgRQD8c4kTxTEEF0quvIUiLQqoBY0/Qo=",
    "auth_token": "RlRmCXXXXX/s7XXXXXjKFzoQ==",
 
    // optional FCM keys for Chrome (for XMPP)
    "fcm_token": "BNmDO4BTKEMJXXXXXprTf7t/XXXXXBQ/orXXXXXc/scS5CFP6zhQGIHI1/GgRQD8c4kTxTEEF0quvIUiLQqoBY0/Qo=",
    "fcm_push_set": "RlXXXXXGM/s7XXXXXjKFzoQ=="
  }
}
```

Возможные типы устройств:

*   1 – iOS
*   3 – Android
*   7 – Mac OS X
*   8 – Windows
*   9 – Amazon
*   10 – Safari
*   11 – Chrome
*   12 – Firefox
*   13 – Internet Explorer
*   14 – Email
*   16 – Baidu Android
*   17 – Huawei
*   18 – SMS
*   20 – Web
*   21 – WhatsApp
*   22 – Line
*   23 – Kakao Talk
*   24 – Telegram
*   25 – Apple Wallet
*   26 – Google Wallet
*   27 – Viber

### Регистрация email-устройств
Чтобы **зарегистрировать подписчика по электронной почте** для вашего приложения, отправьте параметр `"email": "email_address@domain.com"` в вашем запросе `/registerDevice` или [`/registerEmail`](/ru/developer/api-reference/email-api#registeremail) следующим образом:

##### Пример запроса
```json
{
  "request":{
    "application": "XXXXX-XXXXX",        // required. Pushwoosh application code
    "email": "email_address@domain.com", // required. Email address to register for your email project
    "language": "en",                    // optional. ISO 639-1|639-2 language code
    "userId": "Alex",                    // optional.
    "tags": {                            // optional. Tag values to set for the device registered 
      "StringTag": "string value",
      "IntegerTag": 42,
      "ListTag": ["string1", "string2"], // sets the list of values for Tags of List type
      "DateTag": "2024-10-02 22:11",     // note the time should be in UTC
      "BooleanTag": true                 // valid values are: true, false
    }
  }
}
```

### Регистрация устройств WhatsApp
Чтобы зарегистрировать устройство WhatsApp для вашего приложения, следуйте этим рекомендациям:

-   **hwid**: Убедитесь, что это поле содержит префикс `whatsapp:`, за которым следует номер телефона в формате E.164 (например, `whatsapp:+0000000000`). Номер телефона должен быть действительным, что будет проверено Pushwoosh.

-   **Push-токен**: Push-токен не требуется, так как `hwid` автоматически будет функционировать как push-токен.

-   **device\_type**: Установите это поле в `21`, чтобы указать WhatsApp в качестве платформы.

##### Пример запроса
```json
{ 
  "request": {
    "application": "XXXXX-XXXXX",        // required. Pushwoosh application code
    "hwid": "whatsapp:+0000000000",      // required. WhatsApp prefix and valid phone number
    "timezone": 3600,                    // optional. Time offset in seconds
    "device_type": 21,                   // required. WhatsApp device type is 21
    "language": "en",                    // optional. ISO 639-1|639-2 language code
    "userId": "Alex",                    // optional. User identifier
    "tags": {                            // optional. Tag values for custom segmentation
      "StringTag": "string value",
      "IntegerTag": 42,
      "ListTag": ["string1", "string2"],
      "DateTag": "2024-10-02 22:11",     // UTC format
      "BooleanTag": true  
    },
    "app_version": "1.2.3",              // optional. Application version
    "device_model": "Samsung SM-G355H",  // optional. Device model
    "os_version": "2.3"                  // optional. Operating system version
  }
}
```

### Регистрация SMS-устройств
Чтобы зарегистрировать SMS-устройство для вашего приложения, следуйте этим рекомендациям:

-   **hwid**: Убедитесь, что это поле содержит номер телефона в формате E.164 (например, `+0000000000`). Номер телефона должен быть действительным, что будет проверено Pushwoosh.

-   **Push-токен**: Push-токен не требуется, так как `hwid` автоматически будет функционировать как push-токен.

-   **device\_type**: Установите это обязательное поле в `18`, чтобы обозначить SMS в качестве платформы.

##### Пример запроса
```json 
{  
   "request": {
      "application": "XXXXX-XXXXX",           // required. Pushwoosh application code
      "hwid": "+0000000000",                  // required. Valid phone number in E.164 format
      "timezone": 3600,                       // optional. Time offset in seconds
      "device_type": 18,                      // required. SMS device type is 18
      "language": "en",                       // optional. ISO 639-1|639-2 language code
      "userId": "Alex",                       // optional. User identifier
      "tags": {                               // optional. Tag values for custom segmentation
           "StringTag": "string value",
           "IntegerTag": 42,
           "ListTag": ["string1", "string2"],
           "DateTag": "2024-10-02 22:11",     // UTC format
           "BooleanTag": true  
      },
      "app_version": "1.2.3",                 // optional. Application version
      "device_model": "Samsung SM-G355H",     // optional. Device model
      "os_version": "2.3"                     // optional. Operating system version
   }
}
```

**Коды состояния**:

| Код состояния HTTP | status\_code | Описание |
| ---------------- | ------------ | -------------------------------------------------- |
| 200 | 200 | Устройство успешно зарегистрировано |
| 200 | 210 | Ошибка аргумента. См. `status_message` для получения дополнительной информации. |
| 400 | N/A | Неверно сформированная строка запроса |
| 500 | 500 | Внутренняя ошибка |



## unregisterDevice

`POST` `https://api.pushwoosh.com/json/1.3/unregisterDevice`

Удаляет push-токен устройства. Отписанное устройство по-прежнему учитывается в Total Devices и может получать In-App сообщения. Вызывается из SDK.

##### Заголовки запроса

| Имя | Обязательный | Значение | Описание |
|---------------|----------|---------------|------------------------------------------------------------|
| Authorization | Да | Token `XXXX` | [Токен Device API](/ru/developer/api-reference/api-access-token/#device-api-token) для доступа к Device API. Замените `XXXX` вашим актуальным токеном Device API. |

##### Тело запроса

| Имя | Тип | Описание |
| --------------------------------------------- | ------ | --------------------------------------------------- |
| application\* | string | [Код приложения Pushwoosh](/ru/developer/api-reference/api-identifiers/#application-code) |
| hwid\* | string | [ID аппаратного устройства](/ru/developer/api-reference/api-identifiers/#hardware-id), использованный в запросе `/registerDevice`. |

<Tabs>
<TabItem label="200">
```json
{
    "status_code": 200,
    "status_message": "OK",
    "response": null
}
```
</TabItem>
</Tabs>

```json title="Пример"
{
  "request": {
    "application": "XXXXX-XXXXX",              // required. Pushwoosh application code
    "hwid": "8f65b16XXXXXe7a6beceXXXXX530fb2"  // required. Hardware device ID used in /registerDevice API 
  }
}
```

<Aside type="note">
Для email-адресов вызовите [`/deleteEmail`](/ru/developer/api-reference/email-api/#deleteemail).
</Aside>

**Коды состояния**:

| Код состояния HTTP | status\_code | Описание |
| ---------------- | ------------ | -------------------------------------------------- |
| 200 | 200 | Устройство успешно отписано |
| 200 | 210 | Ошибка аргумента. См. `status_message` для получения дополнительной информации. |
| 400 | N/A | Неверно сформированная строка запроса |
| 500 | 500 | Внутренняя ошибка |



## deleteDevice

`POST` `https://api.pushwoosh.com/api/v2/device-api/deleteDevice`

Удаляет устройство и все связанные с ним данные, идентифицированные по указанному [HWID](/ru/developer/api-reference/api-identifiers/#hardware-id) в приложении. В отличие от [`/unregisterDevice`](/ru/developer/api-reference/device-api/#unregisterdevice), который только удаляет push-токен и сохраняет запись об устройстве, `/deleteDevice` полностью удаляет устройство. Запрос обрабатывается асинхронно, и конечная точка возвращает `200 OK`, как только запрос на удаление будет принят к обработке.

#### Заголовки запроса

| Имя | Обязательный | Значение | Описание |
|---------------|----------|------------------|------------------------------------------------------------|
| Authorization | Да | Token `XXXX` | [Токен Device API](/ru/developer/api-reference/api-access-token/#device-api-token) для доступа к Device API. Замените `XXXX` вашим актуальным токеном Device API. |
| Content-Type | Да | application/json | |

#### Тело запроса

| Имя | Обязательный | Тип | Описание |
| ----------- | -------- | ------ | ----------------------------------------------------------------------------------------------------------- |
| application | Да | string | [Код приложения Pushwoosh](/ru/developer/api-reference/api-identifiers/#application-code) |
| hwid | Да | string | [ID аппаратного устройства](/ru/developer/api-reference/api-identifiers/#hardware-id) удаляемого устройства. |


#### Пример запроса

```json
{
  "application": "XXXXX-XXXXX",                 // required. Pushwoosh application code
  "hwid": "8f65b16df378e7a6bece9614e1530fb2"    // required. Hardware device ID of the device to delete
}
```

#### Пример ответа

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": null
}
```
</TabItem>
</Tabs>

##### Коды состояния

| Код состояния HTTP | status\_code | Описание |
| ---------------- | ------------ | -------------------------------------------------- |
| 200 | 200 | Запрос на удаление принят |
| 200 | 210 | Ошибка аргумента. См. `status_message` для получения дополнительной информации. |
| 400 | N/A | Неверно сформированная строка запроса |
| 401 | N/A | Отсутствует или недействителен токен авторизации |
| 500 | 500 | Внутренняя ошибка |



## setTags

`POST` `https://api.pushwoosh.com/json/1.3/setTags`

Устанавливает значения тегов для устройства. Вызывается из SDK.

##### Заголовки запроса

| Имя | Обязательный | Значение | Описание |
|---------------|----------|---------------|------------------------------------------------------------|
| Authorization | Да | Token `XXXX` | [Токен Device API](/ru/developer/api-reference/api-access-token/#device-api-token) для доступа к Device API. Замените `XXXX` вашим актуальным токеном Device API. |

##### Тело запроса

| Имя | Тип | Описание |
| --------------------------------------------- | ------ | ------------------------------------------------------------ |
| application\* | string | [Код приложения Pushwoosh](/ru/developer/api-reference/api-identifiers/#application-code) |
| hwid\* | string | [ID аппаратного устройства](/ru/developer/api-reference/api-identifiers/#hardware-id), использованный в запросе `/registerDevice`. |
| tags\* | object | JSON-объект тегов для установки, отправьте "null" для удаления значения. |

<Tabs>
<TabItem label="200">
```json
{
   "status_code": 200,
   "status_message": "OK",
   "response": null
}
```
</TabItem>
</Tabs>

<Aside type="note">
Метод вызывается из SDK. Его можно вызывать удаленно с вашего бэкенда, однако вам необходимо поддерживать актуальную базу данных hwid на стороне бэкенда.
</Aside>

```json title="Пример"
{
  "request":{
    "application": "XXXXX-XXXXX",               // required. Pushwoosh application code
    "hwid": "8f65b16XXXXXe7a6becXXXXXe1530fb2", // required. Hardware device ID used in /registerDevice API
    "tags": {                                   // required.
      "StringTag": "string value",
      "IntegerTag": 42,
      "ListTag": ["string1", "string2"],        // sets the list of values for Tags of List type
      "DateTag": "2024-10-02 22:11",            // note the time is in UTC
      "BooleanTag": true                        // valid values are - true, false
    }  
  }
}
```

### Инкремент значений тега Integer

Чтобы **увеличить** значение тега Integer, используйте параметр `operation` со значением "increment" следующим образом:

```json
{
  "request":{
    "application": "12345-67890",                   // required. Pushwoosh application code
    "hwid": "21AB7628-XXXX-XXXX-CCC0-PO287CS24CA4", // required. hardware device ID used in /registerDevice API
    "tags": {                                       // required.
      "Level": {                                    // Tag name
        "operation": "increment",                   // overwrites the integer tag in increments of the following value 
        "value": 1                                  // increment for the tag value
      }  
    }  
  }
}
```

### Декремент значений тега Integer

Для **уменьшения** используйте отрицательные числа в качестве значения для операции "increment" (-1, -2, -3, -n):

```json
{
  "request":{
    "application": "12345-67890",                   // required. Pushwoosh application code
    "hwid": "21AB7628-XXXX-XXXX-CCC0-PO287CS24CA4", // required. Hardware device ID used in /registerDevice API
    "tags": {                                       // required
      "Level": {                                    // Tag name
        "operation": "increment",                   // overwrites the integer tag in decrement of the following value 
        "value": -1                                 // decrement for the tag value
      }  
    }  
  }
}
```

### Добавление значений в тег List

Чтобы **дополнить тег List новыми значениями**, используйте параметр `operation` со значением "append" следующим образом:

```json title="Пример"
{
  "request": {
    "hwid": "3d124a79XXXXf189XXXX7dfd9XXXXafd", // required. Hardware device ID used in /registerDevice API
    "application": "6XXXX-XXXX3",               // required. Pushwoosh application code
    "tags": {                                   // required.
      "ListTag": {                              // Tag name
        "operation": "append",                  // appends following values to the Tag's list of values
        "value": [                              // values to append
          "tag2",
          "tag3"
        ]
      }
    }
  }
}
```

### Удаление значений из тега List

Чтобы удалить некоторые значения из тега List, используйте операцию "remove" следующим образом:

```json
{
  "request":{
    "application": "12345-67890",                   // required. Pushwoosh application code
    "hwid": "21AB7628-XXXX-XXXX-CCC0-PO287CS24CA4", // required. Hardware device ID used in /registerDevice API
    "tags": {                                       // required.
      "In-App Product": {                           // Tag name
        "operation": "remove",                      // removes the following values from the list tag
        "value": "outwear_02"                       // value or values to remove
      }
    }  
  }
}
```

### Установка тегов по UserID

Чтобы установить теги для всех устройств, связанных с определенным [User ID](/ru/developer/api-reference/api-identifiers/#user-id), используйте параметр "userId" вместо "hwid".

<Aside type="caution">
Убедитесь, что тег, для которого вы устанавливаете значения, является [пользовательским](/ru/developer/guides/audience-and-segmentation/tags/#tag-scope-general-vs-user-specific).
</Aside>

```json title="Пример"
{
  "request":{
    "application": "AAAAA-BBBBB", // Pushwoosh app code
    "userId": "some_user",        // user ID you'd like to set tags for 
    "tags": {                     // tags and values to set
      "Language": "es"
    }  
  }
}
```

<Aside type="note">
Для email-адресов вызовите [`/setEmailTags`](/ru/developer/api-reference/email-api/#setemailtags).
</Aside>

**Коды состояния:**

| Код состояния HTTP | status\_code | Описание |
| ---------------- | ------------ | -------------------------------------------------- |
| 200 | 200 | Теги успешно установлены |
| 200 | 210 | Ошибка аргумента. См. `status_message` для получения дополнительной информации. |
| 400 | N/A | Неверно сформированная строка запроса |
| 500 | 500 | Внутренняя ошибка |


## getTags

`POST` `https://api.pushwoosh.com/json/1.3/getTags`

Получает список тегов с соответствующими значениями для конкретного устройства.

##### Заголовки запроса

| Имя | Обязательный | Значение | Описание |
|---------------|----------|---------------|------------------------------------------------------------|
| Authorization | Да | Token `XXXX` | [Токен Device API](/ru/developer/api-reference/api-access-token/#device-api-token) для доступа к Device API. Замените `XXXX` вашим актуальным токеном Device API. |

##### Тело запроса

| Имя | Тип | Описание |
| --------------------------------------------- | ------ | --------------------------------------------------------------------------------------------------- |
| application\* | string | [Код приложения Pushwoosh](/ru/developer/api-reference/api-identifiers/#application-code) |
| userId | string | [User ID](/ru/developer/api-reference/api-identifiers/#user-id) для использования вместо "hwid". Если используется вместе с "hwid", "hwid" имеет приоритет. |
| hwid | string | [ID аппаратного устройства](/ru/developer/api-reference/api-identifiers/#hardware-id), использованный в запросе `/registerDevice`. |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "result": {
      "Language": "fr"
    }
  }
}
```
</TabItem>
</Tabs>

```json title="Пример"
{
  "request":{
    "application": "XXXXX-XXXXX",   // required. Pushwoosh application code
    "hwid": "HWID",                 // optional. Hardware device ID used in /registerDevice API
    "userId": "USER_ID"             // optional. Can be used instead of "hwid" to retrieve tags for a specific user
  }
}
```

## setBadge

`POST` `https://api.pushwoosh.com/json/1.3/setBadge`

Отправляет текущее значение значка (badge) для устройства в Pushwoosh. Вызывается из SDK.

##### Заголовки запроса

| Имя | Обязательный | Значение | Описание |
|---------------|----------|---------------|------------------------------------------------------------|
| Authorization | Да | Token `XXXX` | [Токен Device API](/ru/developer/api-reference/api-access-token/#device-api-token) для доступа к Device API. Замените `XXXX` вашим актуальным токеном Device API. |

##### Тело запроса

| Имя | Тип | Описание |
| --------------------------------------------- | ------- | --------------------------------------------------- |
| application\* | string | [Код приложения Pushwoosh](/ru/developer/api-reference/api-identifiers/#application-code) |
| hwid\* | string | [ID аппаратного устройства](/ru/developer/api-reference/api-identifiers/#hardware-id), использованный в запросе `/registerDevice`. |
| badge\* | integer | Текущий значок (badge) в приложении. |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK"
}
```
</TabItem>
</Tabs>

```json title="Пример"
{
  "request":{
    "application": "XXXXX-XXXXX",               // required. Pushwoosh application code
    "hwid": "8f65b16dXXXXe7a6XXXX9614XXXX0fb2", // required. Hardware device ID used in /registerDevice API
    "badge": 4                                  // required. Current badge on the application
  }
}
```

Вызывается из SDK. Отправляет текущее значение значка (badge) для устройства в Pushwoosh. Это происходит, когда приложение изменяет значение значка на устройстве iOS. Позволяет корректно работать автоинкременту значков.

<Aside type="caution">
Этот метод **НЕ** используется для обновления значения значка на устройстве. Вместо этого используйте запрос [`/createMessage`](/ru/developer/api-reference/messages-api/#createmessage) с параметром `"ios_badges"`.
</Aside>



## applicationOpen

`POST` `https://api.pushwoosh.com/json/1.3/applicationOpen`

Регистрирует событие открытия приложения. Вызывается из SDK.

##### Заголовки запроса

| Имя | Обязательный | Значение | Описание |
|---------------|----------|---------------|------------------------------------------------------------|
| Authorization | Да | Token `XXXX` | [Токен Device API](/ru/developer/api-reference/api-access-token/#device-api-token) для доступа к Device API. Замените `XXXX` вашим актуальным токеном Device API. |

##### Тело запроса

| Имя | Тип | Описание |
| --------------------------------------------- | ------ | --------------------------------------------------- |
| application\* | string | [Код приложения Pushwoosh](/ru/developer/api-reference/api-identifiers/#application-code) |
| hwid\* | string | [ID аппаратного устройства](/ru/developer/api-reference/api-identifiers/#hardware-id), использованный в запросе `/registerDevice`. |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK"
}
```
</TabItem>
</Tabs>

```json title="Пример"
{
  "request": {
    "application": "XXXXX-XXXXX",              // required. Pushwoosh application code
    "hwid": "8f65b16dXXXXe7a6XXXX9614eXXXXfb2" // required. Hardware device ID used in /registerDevice API    
  }
}
```



## pushStat

`POST` `https://api.pushwoosh.com/json/1.3/pushStat`

Регистрирует событие открытия push-уведомления. Вызывается из SDK.

##### Заголовки запроса

| Имя | Обязательный | Значение | Описание |
|---------------|----------|---------------|------------------------------------------------------------|
| Authorization | Да | Token `XXXX` | [Токен Device API](/ru/developer/api-reference/api-access-token/#device-api-token) для доступа к Device API. Замените `XXXX` вашим актуальным токеном Device API. |
##### Тело запроса

| Имя | Тип | Описание |
| --------------------------------------------- | ------ | --------------------------------------------------------------------------- |
| application\* | string | [Код приложения Pushwoosh](/ru/developer/api-reference/api-identifiers/#application-code) |
| hwid\* | string | [ID аппаратного устройства](/ru/developer/api-reference/api-identifiers/#hardware-id), использованный в запросе `/registerDevice`. |
| userId | string | [User ID](/ru/developer/api-reference/api-identifiers/#user-id) для связи с событием открытия push-уведомления. |
| hash | string | Хэш-тег, полученный в push-уведомлении (параметр "p" в полезной нагрузке push-уведомления). |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": null
}
```
</TabItem>
</Tabs>

```json title="Пример"
{
  "request": {
    "application": "XXXXX-XXXXX",               // required. Pushwoosh application code
    "hwid": "8f65b16dfXXXX7a6beXXXX14e1530fb2", // required. Hardware device ID used in /registerDevice API 
    "userId": "USER012345",                     // optional. The user id to associate with the push open event 
    "hash": "HASH_TAG"                          // optional. Hash tag received in push notification
                                                //           ("p" parameter in the push payload)
  }
}
```


## messageDeliveryEvent

`POST` `https://api.pushwoosh.com/json/1.3/messageDeliveryEvent`

Регистрирует событие доставки push-уведомления для устройства. Вызывается из SDK.

##### Заголовки запроса

| Имя | Обязательный | Значение | Описание |
|---------------|----------|---------------|------------------------------------------------------------|
| Authorization | Да | Token `XXXX` | [Токен Device API](/ru/developer/api-reference/api-access-token/#device-api-token) для доступа к Device API. Замените `XXXX` вашим актуальным токеном Device API. |

##### Тело запроса

| Имя | Тип | Описание |
| --------------------------------------------- | ------ | --------------------------------------------------------------------------- |
| application\* | string | [Код приложения Pushwoosh](/ru/developer/api-reference/api-identifiers/#application-code) |
| hwid\* | string | [ID аппаратного устройства](/ru/developer/api-reference/api-identifiers/#hardware-id), использованный в запросе `/registerDevice`. |
| hash | string | Хэш-тег, полученный в push-уведомлении (параметр "p" в полезной нагрузке push-уведомления). |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": null
}
```
</TabItem>
</Tabs>

```json title="Пример"
 {
  "request": {
    "application": "XXXXX-XXXXX",               // required. Pushwoosh application code
    "hwid": "8f65b16dfXXXX7a6bece9XXXX1530fb2", // required. Hardware device ID used in /registerDevice API
    "hash": "HASH_TAG"                          // optional. Hash tag received in push notification
                                                //           ("p" parameter in the push payload)
  }
}
```