# Параметры /createMessage

<Aside type="caution" title="Устарел">
Метод `/createMessage` устарел. В новых интеграциях следует использовать [Messaging API v2](/ru/developer/api-reference/messaging-api-v2/) — см. [руководство по миграции](/ru/developer/api-reference/messaging-api-v2/migration-from-v1/) для сопоставления полей параметров, описанных ниже.
</Aside>

Здесь вы найдете описание параметров API-метода [`/createMessage`](/ru/developer/api-reference/messages-api/#createmessage).

- [Обязательные параметры](#required-parameters) должны быть включены для успешной отправки API-запроса `/createMessage` и рассылки push-уведомлений в указанное время.

- [Необязательные параметры](#optional-parameters) позволяют настраивать свойства push-уведомлений.

<Aside type="note">
Если вы используете _/createMessage_ для отправки SMS, обратитесь к разделу [Параметры для отправки SMS](/ru/developer/api-reference/sms/#createsmsmessage). Другие параметры передаваться не будут.
</Aside>

<span id="required-parameters" />

## Обязательные параметры

Обязательные параметры необходимо использовать в запросах [`/createMessage`](/ru/developer/api-reference/messages-api/#createmessage). В противном случае запрос не будет отправлен.

### application

Уникальный код приложения, созданного в вашем аккаунте Pushwoosh. Код приложения можно найти в левом верхнем углу Панели управления или в ответе на запрос [`/createApplication`](/ru/developer/api-reference/applications/#createapplication). Код приложения представляет собой набор из 10 символов (букв и цифр), разделенных дефисом.

<img src="/messages-api-prerequisites-1.webp" alt="Код приложения Pushwoosh, отображаемый в Панели управления в левом верхнем углу"/>

При создании приложения через API вы получите код приложения в ответе на ваш запрос [`/createApplication`](/ru/developer/api-reference/applications/#createapplication).

Чтобы получить код ранее созданного приложения через API, вызовите [`/getApplications`](/ru/developer/api-reference/applications/#getapplications). В ответе на запрос [`/getApplications`](/ru/developer/api-reference/applications/#getapplications) вы получите список всех приложений, созданных в вашем аккаунте Pushwoosh, с их названиями и кодами.

### auth

Токен доступа к API из Панели управления Pushwoosh. Перейдите в **Settings** → **API Access** и скопируйте токен, который вы хотите использовать, или сгенерируйте новый.

<img src="/messages-api-prerequisites-2.webp" alt="Страница настроек доступа к API в Панели управления Pushwoosh, показывающая токены доступа к API"/>

При генерации токена доступа укажите его разрешения. Отметьте флажками те типы действий, для которых вы собираетесь использовать токен API. Вы можете создавать токены API для конкретных приложений, отметив флажки Applications.

<img src="/messages-api-prerequisites-3.webp" alt="Диалоговое окно генерации токена API с флажками разрешений и приложений"/>

### content

Строка или объект, определяющий содержание сообщения. Параметр "content", переданный со строковым значением, отправит одно и то же сообщение всем получателям.

```txt title="Строка"
"content": "Hello world!",
```

Объекты JSON используются для указания контента с помощью [динамического контента](/ru/developer/guides/personalization/dynamic-content/), например, для многоязычных сообщений.

```txt title="Объект"
"content": {
  "en": "Hello!",
  "es": "¡Hola!",
  "de": "Hallo!"
},
```

### notifications

Массив JSON со свойствами push-уведомления. Должен включать как минимум обязательные параметры `content` и `send_date`.

Необязательные параметры для использования в массиве "notifications":

* [campaign](#campaign)
* [capping_days](#capping_days)
* [capping_count](#capping_count)
* [conditions](#conditions)
* [data](#data)
* [devices](#devices)
* [dynamic_content](#dynamic_content)
* [filter](#filter)
* [ignore_user_timezone](#ignore_user_timezone)
* [inbox_date](#inbox_date)
* [inbox_image](#inbox_image)
* [link](#link)
* [minimize_link](#minimize_link)
* [message_type](#message_type)
* [platforms](#platforms)
* [preset](#preset)
* [rich_media](#rich_media)
* [send_rate](#send_rate)
* [timezone](#timezone)
* [template_bindings](#template_bindings)
* [transactionId](#transactionid)
* [users](#users)

### send_date

Дата и время отправки сообщения. Может быть любой датой и временем в формате YYYY-MM-DD HH:mm или 'now'. Если установлено значение 'now', сообщение будет отправлено сразу после отправки запроса.

<span id="optional-parameters" />

## Необязательные параметры

### campaign

Код кампании. Чтобы получить код кампании, перейдите в **Statistics** → **Aggregated statistics** и выберите кампанию, которую вы собираетесь использовать. Код кампании будет виден в конце URL-адреса страницы в формате `XXXXX-XXXXX`.

**Пример:**

**URL:** `https://app.pushwoosh.com/applications/AAAAA-AAAAA/statistics/aggregated-message?campaignCode=XXXXX-XXXXX`

**Код кампании:** `XXXXX-XXXXX`

Чтобы получить список кампаний с их кодами, вызовите [`/getCampaigns`](/ru/developer/api-reference/campaigns/#getcampaigns). В ответе на запрос `/getCampaigns` вы получите список всех кампаний, созданных для конкретного приложения в вашем аккаунте Pushwoosh, с их кодами, названиями и описаниями.

### capping_days

Период, применяемый для ограничения частоты, в днях (максимум 30 дней). Подробнее см. в разделе [Ограничение частоты](/ru/product/messaging-channels/message-delivery-settings/frequency-capping/).

Ограничение частоты не применяется к сообщениям с `message_type: transactional`. Во всех остальных случаях ограничение частоты применяется, включая запросы, где `message_type` опущен.

### capping_count

Максимальное количество push-уведомлений, которое может быть отправлено из определенного приложения на конкретное устройство в течение периода "capping_days". В случае, если созданное сообщение превышает лимит "capping_count" для устройства, оно не будет отправлено на это устройство. Подробнее см. в разделе [Ограничение частоты](/ru/product/messaging-channels/message-delivery-settings/frequency-capping/).

### conditions

Условия — это массивы вида `[tagName, operator, operand]`, используемые для отправки целевых сообщений на основе [тегов](/ru/developer/guides/audience-and-segmentation/tags/) и их значений, где:

* tagName — имя применяемого тега,
* [operator](/ru/developer/guides/audience-and-segmentation/tags#tag-operators) — оператор сравнения значений ("EQ" | "IN" | "NOTEQ" | "NOTIN" | "LTE" | "GTE" | "BETWEEN" | "NOTSET" | "ANY"),
* [operand](/ru/developer/guides/audience-and-segmentation/tags#tag-values) — значения тегов любого из следующих типов: string | integer | array | date | boolean | list

#### Описание операторов

| | |
| -------- | ----------- |
| **EQ** | значение тега равно операнду. |
| **IN** | значение тега пересекается с операндом (операнд всегда должен быть массивом). |
| **NOTEQ** | значение тега не равно операнду. |
| **NOTIN** | значение тега не пересекается с операндом (операнд всегда должен быть массивом). |
| **GTE** | значение тега больше или равно операнду. |
| **LTE** | значение тега меньше или равно операнду. |
| **BETWEEN** | значение тега больше или равно минимальному значению операнда, но меньше или равно максимальному значению операнда (операнд всегда должен быть массивом). |
| **NOTSET** | тег не установлен. Операнд не учитывается. |
| **ANY** | тег имеет любое значение. Операнд не учитывается. |

#### Строковые теги

**Допустимые операторы**: EQ, IN, NOTEQ, NOTIN, NOTSET, ANY

**Допустимые операнды:**
| | |
| -------- | ------- |
| **EQ, NOTEQ** | операнд должен быть строкой |
| **IN, NOTIN** | операнд должен быть массивом строк, например `["value 1", "value 2", "value N"]` |
| **NOTSET** | тег не установлен. Операнд не учитывается |
| **ANY** | тег имеет любое значение. Операнд не учитывается |

#### Целочисленные теги

**Допустимые операторы**: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE, NOTSET, ANY

**Допустимые операнды:**

| | |
| -------- | ------- |
| **EQ, NOTEQ, GTE, LTE** | операнд должен быть целым числом |
| **IN, NOTIN** | операнд должен быть массивом целых чисел, например `[value 1, value 2, value N]` |
| **BETWEEN** | операнд должен быть массивом целых чисел, например `[min_value, max_value]` |
| **NOTSET** | тег не установлен. Операнд не учитывается |
| **ANY** | тег имеет любое значение. Операнд не учитывается |

#### Теги даты

**Допустимые операторы**: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE, NOTSET, ANY

**Допустимые операнды:**

* `"YYYY-MM-DD 00:00"` (строка)
* временная метка unix `1234567890` (целое число)
* `"N days ago"` (строка) для операторов EQ, BETWEEN, GTE, LTE

#### Логические теги

**Допустимые операторы**: EQ, NOTSET, ANY

**Допустимые операнды:** `0, 1, true, false`

#### Теги-списки

**Допустимые операторы**: IN, NOTIN, NOTSET, ANY

**Допустимые операнды:** операнд должен быть массивом строк, например `["value 1", "value 2", "value N"]`.

<Aside type="danger" title="Важно">
Помните, что параметры “filter” и “conditions” не должны использоваться вместе.\
Также оба они **будут проигнорированы**, если в том же запросе используется параметр "devices".
</Aside>

<Aside type="note" title="Теги страны и языка">
Значение тега языка — это двухбуквенный код в нижнем регистре согласно [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes).
Значение тега страны — это двухбуквенный код в ВЕРХНЕМ РЕГИСТРЕ согласно [ISO_3166-2](https://en.wikipedia.org/wiki/ISO_3166-2).

Например, чтобы отправить push-уведомление португалоязычным подписчикам в Бразилии, вам нужно будет указать следующее условие: `"conditions": [["Country", "EQ", "BR"],["Language", "EQ", "pt"]]`
</Aside>

### conditions_operator

Логический оператор для массивов условий. Возможные значения: AND | OR. По умолчанию используется AND.

Если применяется оператор AND (когда оператор не указан или параметр 'conditions_operator' имеет значение 'AND'), push-уведомление получат устройства, одновременно соответствующие всем условиям.

Если оператор — OR, сообщение получат устройства, соответствующие любому из указанных условий.

### data

Строка JSON или объект JSON, используемый для передачи любых [пользовательских данных](/ru/developer/guides/messaging-channels/using-custom-data) в полезной нагрузке push-уведомления; передается как параметр "u" в полезной нагрузке (преобразуется в строку JSON).

### devices

Массив [push-токенов](/ru/developer/pushwoosh-knowledge-hub/device-identifiers/#push-token) или [hwids](/ru/developer/pushwoosh-knowledge-hub/device-identifiers/#hwid) для отправки целевых push-уведомлений. Если установлен, сообщение будет отправлено только на устройства из списка.

### dynamic_content

Заполнители для [динамического контента](/ru/product/personalization/dynamic-content), которые будут использоваться вместо значений тегов устройства. Пример ниже отправит сообщение "Hello, John!" каждому пользователю, на которого вы нацелены. Если не установлено, значения динамического контента берутся из тегов устройства.

```
"content": "Hello, {firstname|CapitalizeFirst}!",
"dynamic_content_placeholders": {
  "firstname": "John",
  "lastname": "Doe"
},
```

### filter

Название [сегмента](/ru/product/audience-data-and-segmentation/segmentation/) в точности так, как он создан в Панели управления Pushwoosh или через API-запрос [`/createFilter`](/ru/developer/api-reference/segmentation-filters-api/#createfilter). Перейдите в раздел **Audience** → **Segments** и проверьте список созданных сегментов.

<img src="/messages-api-prerequisites-7.webp" alt="Список сегментов в разделе Audience Панели управления Pushwoosh"/>

Чтобы получить список сегментов через API, вызовите API-метод [`/listFilters`](/ru/developer/api-reference/segmentation-filters-api/#listfilters). В ответе на запрос `/listFilters` вы получите список всех сегментов, созданных в вашем аккаунте Pushwoosh, с названиями, условиями и датами истечения срока действия сегментов.

### ignore_user_timezone

Если установлено значение 'true', сообщение отправляется в дату и время, указанные в параметре "send_date", в соответствии с UTC-0.

Если установлено значение 'false', пользователи получат сообщение в указанное местное время в соответствии с настройками их устройства.

### inbox_date

Дата, до которой сообщение должно храниться в [Inbox](/ru/developer/guides/message-inbox/mobile-message-inbox) пользователей. Если не указано, сообщение будет удалено из Inbox на следующий день после даты отправки.

<Aside type="note">
Чтобы сохранить сообщение в Inbox, используйте хотя бы один из параметров 'inbox': "inbox_date" или "inbox_image".
</Aside>

<Aside type="caution">
Сообщение будет удалено из Inbox в 00:00:01 указанной даты, поэтому предыдущая дата — это последний день, когда пользователь может видеть сообщение в своем Inbox.
</Aside>

### inbox_image

URL-адрес пользовательского изображения, которое будет отображаться рядом с сообщением в [Inbox](/ru/developer/guides/message-inbox/mobile-message-inbox).

<Aside type="note">
Чтобы сохранить сообщение в Inbox, используйте хотя бы один из параметров 'inbox': "inbox_date" или "inbox_image".
</Aside>

### inbox_days

Срок жизни сообщения в Inbox в днях, до 30 дней. По истечении этого периода сообщение будет удалено из Inbox. Может использоваться вместо параметра **inbox_date**.

### link

URL-адрес, который будет открыт, как только пользователь откроет push-уведомление.

### message_type

Указывает тип сообщения. Работает для всех платформ, на которые вы отправляете сообщения этим методом, включая SMS и WhatsApp, а также в `createSMSMessage` и `createWhatsAppMessage`. Доступные значения: `marketing` и `transactional`. Подробнее см. в разделе [Маркетинговые и транзакционные сообщения](/ru/product/messaging-channels/marketing-vs-transactional/).

Этот параметр необязателен. Если он опущен, сообщение считается маркетинговым: оно не доставляется членам [контрольной группы](/ru/product/audience-data-and-segmentation/control-groups/), а SMS-сообщения проверяются на наличие [согласия на маркетинговые рассылки](/ru/product/messaging-channels/sms-viber-marketing-consent/). Чтобы отправить сервисное сообщение всем, установите для `message_type` значение `transactional`.

### minimize_link

Сокращатель для минимизации URL-адреса, указанного в параметре "link". Обратите внимание, что размер полезной нагрузки push-уведомления ограничен, поэтому рассмотрите возможность создания коротких URL-адресов, чтобы не превышать лимит. Доступные значения: 0 — не минимизировать, 2 — bitly. По умолчанию = 2. Сокращатель URL-адресов Google отключен с 30 марта 2019 года.

### platforms

Массив кодов платформ для отправки сообщения только на определенные платформы.

Доступные коды платформ включают: `1` — iOS, `3` — Android, `7` — Mac OS X, `8` — Windows, `9` — Amazon, `10` — Safari, `11` — Chrome, `12` — Firefox, `14` — Email, `17` — Huawei, `18` — SMS и `21` — WhatsApp.

### preset

Код [пресета](/ru/product/content/push-presets/), созданного в Панели управления Pushwoosh или через API. Чтобы получить код пресета, перейдите в **Content** → **Presets**, разверните пресет, который вы собираетесь использовать, и скопируйте **Preset Code** из сведений о пресете.

<img src="/messages-api-prerequisites-8.webp" alt="Список пресетов в разделе Content, показывающий код пресета"/>

### rich_media

Код страницы [In-Apps](/ru/product/content/in-apps/), которую вы собираетесь прикрепить к своему сообщению. Чтобы получить код, перейдите в **Content** → **In-Apps**, откройте страницу, которую вы собираетесь использовать, и скопируйте код из адресной строки вашего браузера. Код представляет собой набор из 10 символов (букв и цифр), разделенных дефисом.

<img src="/messages-api-prerequisites-9.webp" alt="Страница In-Apps в разделе Content с кодом Rich Media в адресной строке браузера"/>

### send_rate

Регулирование для ограничения скорости отправки push-уведомлений. Допустимые значения от 100 до 1000 push-уведомлений в секунду.

### timezone

Часовой пояс, который следует учитывать при отправке сообщения в определенную дату и время. Если установлен, часовой пояс устройства игнорируется. Если проигнорирован, сообщение отправляется в UTC. См. [https://php.net/manual/timezones.php](https://php.net/manual/timezones.php) для поддерживаемых часовых поясов.

### template_bindings

Заполнители шаблона для использования в вашем шаблоне контента. Подробнее см. в руководстве по [шаблонам Liquid](/ru/developer/guides/personalization/liquid-templates/).

### transactionId

Уникальный идентификатор сообщения для предотвращения дублирования сообщений в случае проблем с сетью. Вы можете присвоить любой ID сообщению, созданному через запрос [`/createMessage`](/ru/developer/api-reference/messages-api/#createmessage) или [`/createTargetedMessage`](/ru/developer/api-reference/messages-api/#createtargetedmessage). Хранится на стороне Pushwoosh в течение 5 минут.

### use_latest_user_device

Если установлено значение `true`, доставляет одно push-уведомление на пользователя вместо одного на устройство: его получает только устройство с самым последним Last Application Open среди платформ в `platforms`. Если ни одно из устройств пользователя на этих платформах не имеет этих данных, его получает первое подходящее устройство, так что отправка никогда не отменяется. Устройства без User ID не затрагиваются. Применяется независимо от того, как была нацелена аудитория — по `users`, `filter` или `conditions`. Работает так же, как `use_latest_user_device` в [Messaging API v2](/ru/developer/api-reference/messaging-api-v2/notify/#notifysegment). По умолчанию `false` (отправлять на каждое устройство).

### users

Массив [userIds](/ru/developer/pushwoosh-knowledge-hub/users-userids/). User ID — это уникальный идентификатор пользователя, установленный API-запросом [`/registerUser`](/ru/developer/api-reference/user-centric-api/), [`/registerDevice`](/ru/developer/api-reference/device-api/#registerdevice) или [`/registerEmail`](/ru/developer/api-reference/email-api/).