# WhatsApp API

import { Badge } from '@astrojs/starlight/components';

<Aside type="caution" title="/createWhatsAppMessage устарел">
Новые интеграции должны использовать [Messaging API v2](/ru/developer/api-reference/messaging-api-v2/) — передайте `platforms: ["WHATS_APP"]` в `Notify` и используйте блок `whatsapp` внутри `payload.content.localized_content`. См. [руководство по миграции](/ru/developer/api-reference/messaging-api-v2/migration-from-v1/#from-createwhatsappmessage).
</Aside>

<Aside type="note">
Перед отправкой сообщений WhatsApp убедитесь, что платформа WhatsApp правильно настроена. [Узнать больше](/ru/product/first-steps/start-with-your-project/configure-platforms/whatsapp-configuration/)
</Aside>

## createWhatsAppMessage <Badge text="Устарел" variant="caution" size="small" />

Используется для отправки сообщений WhatsApp пользователям

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

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

| Имя  <div style="width:180px"></div>   | Обязательный <div style="width:100px"></div> | Тип | Описание |
| :---- | :---- | :---- | :---- |
| auth\* | Да | string | [Токен доступа API](/ru/developer/api-reference/api-identifiers/#api-access-token) из Панели управления Pushwoosh. |
| application\* | Да | string | [Код приложения Pushwoosh](/ru/developer/api-reference/api-identifiers/#application-code) |
| notifications\* | Да | array | Настройки контента. JSON-массив параметров сообщения. Подробности см. ниже. |

### Параметры уведомления

| Имя   <div style="width:150px"></div>     | Обязательный                                  | Тип    | Описание                                                                                                                                                                                                                                                                                  |
|:----------------------|:------------------------------------------|:--------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| send_date*            | Да                                       | string  | Дата и время отправки уведомления. Используйте формат `YYYY-MM-DD HH:mm` или `'now'` для немедленной отправки.                                                                                                                                                                                        |
| content               | Обязательный, если не указан `content_id`. | string  | Текстовое содержимое сообщения WhatsApp.                                                                                                                                                                                                                                                        |
| content_id            | Обязательный, если не указан `content`.    | string  | Идентификатор предварительно одобренного шаблона WhatsApp из вашего аккаунта Meta.                                                                                                                                                                                                                      |
| devices*              | Да                                       | array   | Номер телефона клиента (должен быть связан с [User ID](/ru/developer/api-reference/api-identifiers/#user-id) с помощью [`/registerDevice`](/ru/developer/api-reference/device-api#registerdevice) и указан в параметре `hwid`, или используйте `use_auto_registration`). Здесь можно указать только один номер. |
| use_auto_registration | Нет                                        | boolean | Если установлено значение `true`, номер телефона, указанный в параметре `devices`, будет зарегистрирован автоматически.                                                                                                                                                                                    |
| content_variables     | Нет                                        | object  | Переменные для кастомизации содержимого сообщения. Каждый плейсхолдер будет заменен соответствующими динамическими значениями.                                                                           |
| button_url_variables  | Нет                                        | object     | Динамические переменные URL для кнопок. Каждый ключ представляет индекс кнопки, а его значение — это динамическая переменная для замены в URL кнопки. **Примечание**: Индексация кнопок начинается с 0, где первая кнопка — 0, вторая — 1 и так далее.                                                                                              |
| header_variables      | Нет                                        | object  | Переменные для заголовка в шаблонном сообщении WhatsApp. Укажите `type` (например, `text`, `image`, `video`, `document`) и соответствующее значение. **Пример**: `"header_variables": {"image": "https://image-url.png"}`                                                                   |
| preset                | Нет                                        | string  | Код пресета WhatsApp из вашей Панели управления.                                                                                |
| language              | Нет                                        | string  | Языковая локаль шаблона WhatsApp (должна совпадать с локалью в редакторе шаблонов Meta WhatsApp). По умолчанию: `"en_US"`. Пример: `"en_GB"`.                                                                                                            |

<Aside type="caution" title="Важно">
****
В настоящее время каждое сообщение WhatsApp должно отправляться отдельным запросом для каждого клиента.
</Aside>

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

```json
{
  "request": {
    "application": "12XXX-67XXX",           // required. Код приложения Pushwoosh.
    "auth": "yxoPUlwqm…………pIyEX4H",         // required. Токен доступа API из Панели управления Pushwoosh.
    "notifications": [{
      "send_date": "now",                   // required. YYYY-MM-DD HH:mm ИЛИ "now".
      "content": "Hello! {{1}}",            // required if content_id is not provided. Текст сообщения.
      "content_id": "hello_world",          // required if content is not provided. Идентификатор шаблона WhatsApp.
      "devices": ["whatsapp:+1234567890"],  // required. Номер телефона клиента в WhatsApp (должен быть связан
                                            //           с UserId с помощью /registerDevice и указан в
                                            //           параметре "hwid" или используйте "use_auto_registration").
                                            //           Здесь можно указать только один номер WhatsApp.
      "preset": "XXXXX-XXXXX",              // optional. Код пресета WhatsApp из вашей Панели управления.
      "content_variables": {                // optional. Переменные для кастомизации содержимого сообщения.
        "1": "John"
      },
      "header_variables": {                 // optional. Переменные для заголовка сообщения WhatsApp.
        "image": "https://image-url.png"
      },
      "language": "en_GB",                  // optional. Языковая локаль шаблона WhatsApp (должна совпадать с локалью в редакторе шаблонов Meta WhatsApp). По умолчанию: "en_US".
      "use_auto_registration": true         // optional. Автоматически регистрировать номер WhatsApp, указанный
                                            //           в параметре "devices".
    }]
  }
}
```

### Пример: Отправка кода двухфакторной аутентификации через WhatsApp

```json
{
    "request": {
        "application":"APP_CODE", "auth":"AUTH_TOKEN",
        "notifications":[{
            "send_date":"now",
            "content_id":"replace_with_your_meta_two_factor_template_name",
            "content_variables":{"1":"AUTH_CODE"},
            "button_url_variables":{"0":"AUTH_CODE"},
            "devices":["whatsapp:REPLACE_WITH_YOUR_PHONE_NO"]
        }]
    }
}
```

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

```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "Messages": [
      "9648-0B10EXXX-0D9F2XXX"
    ]
  }
}
```

### Ответ с ошибкой

```json
{
  "status_code": 210,
  "status_message": "Invalid devices list. \"devices\" must be an array.",
  "response": {
    "Messages": []
  }
}
```