# Сообщения

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

<mark style="color:green;">`POST`</mark> `https://watbot.ru/api/v1/sendMessage`

Этот метод позволяет отправить сообщение по ID контакта.

#### Query Parameters

| Name        | Type    | Description      |
| ----------- | ------- | ---------------- |
| file        | string  | URL на файл.     |
| image       | string  | URL на картинку. |
| contact\_id | integer | ID контакта.     |
| text        | string  | Сообщение.       |

{% tabs %}
{% tab title="200 Сообщение успешно отправлено." %}

```javascript
{
    "success": true
}
```

{% endtab %}

{% tab title="403 Доступ запрещен." %}

```javascript
{
    "message": "Forbidden"
}
```

{% endtab %}

{% tab title="422 Переданные данные некорректны." %}

```javascript
{
  "message": "The given data was invalid.",
  "errors": {
    "contact_id": [
      "Поле contact id обязательно для заполнения, когда messenger \/ bot id \/ contact external id не указано."
    ],
    "text": [
      "Поле text обязательно для заполнения, когда ни одно из image \/ file не указано."
    ],
    "image": [
      "Поле image обязательно для заполнения, когда ни одно из text \/ file не указано."
    ],
    "file": [
      "Поле file обязательно для заполнения, когда ни одно из text \/ image не указано."
    ],
    "messenger": [
      "Поле messenger обязательно для заполнения, когда contact id не указано."
    ],
    "bot_id": [
      "Поле bot id обязательно для заполнения, когда contact id не указано."
    ],
    "contact_external_id": [
      "Поле contact external id обязательно для заполнения, когда contact id не указано."
    ]
  }
}
```

{% endtab %}

{% tab title="429 Превышен лимит отправки сообщений." %}

```javascript
{
    "error": "Достигнут лимит отправки сообщений для whatsapp"
}
```

{% endtab %}

{% tab title="501 Отправка для мессенджера еще контакта не реализована. " %}

```
{
    "error": "На данный момент не реализована отправка сообщений в мессенджер контакта"
}
```

{% endtab %}
{% endtabs %}

## Отправить сообщение по внешнему ID

<mark style="color:green;">`POST`</mark> `https://watbot.ru/api/v1/sendMessage`

Этот метод позволяет отправить сообщение по номеру телефона или по внешнему ID контакта в мессенджере или социальной сети.

#### Query Parameters

| Name                  | Type    | Description                                           |
| --------------------- | ------- | ----------------------------------------------------- |
| file                  | string  | URL на файл.                                          |
| image                 | string  | URL на картинку.                                      |
| bot\_id               | integer | ID бота контакта                                      |
| contact\_external\_id | string  | Номер телефона или внешний id контакта в мессенджере. |
| messenger             | string  | ID мессенджера.                                       |
| text                  | string  | Сообщение.                                            |

{% tabs %}
{% tab title="200 Сообщение успешно отправлено." %}

```javascript
{
    "success": true
}
```

{% endtab %}

{% tab title="403 Доступ запрещен." %}

```javascript
{
    "message": "Forbidden"
}
```

{% endtab %}

{% tab title="422 Переданные данные некорректны." %}

```javascript
{
  "message": "The given data was invalid.",
  "errors": {
    "contact_id": [
      "Поле contact id обязательно для заполнения, когда messenger \/ bot id \/ contact external id не указано."
    ],
    "text": [
      "Поле text обязательно для заполнения, когда ни одно из image \/ file не указано."
    ],
    "image": [
      "Поле image обязательно для заполнения, когда ни одно из text \/ file не указано."
    ],
    "file": [
      "Поле file обязательно для заполнения, когда ни одно из text \/ image не указано."
    ],
    "messenger": [
      "Поле messenger обязательно для заполнения, когда contact id не указано."
    ],
    "bot_id": [
      "Поле bot id обязательно для заполнения, когда contact id не указано."
    ],
    "contact_external_id": [
      "Поле contact external id обязательно для заполнения, когда contact id не указано."
    ]
  }
}
```

{% endtab %}

{% tab title="429 Превышен лимит отправки сообщений." %}

```javascript
{
    "error": "Достигнут лимит отправки сообщений для whatsapp"
}
```

{% endtab %}
{% endtabs %}

&#x20;Поле `messenger` может принимать следующие значения:

* `whatsapp`
* `telegram`
* `viber`
* `vk`
* `max`

В поле `contact_external_id` можно передавать номер телефона не только для мессенджера WhatsApp но и для других, если к контакту привязан номер. Привязка номера может произойти при первом платеже вашего клиента или с помощью специального блока — "Запрос номера телефона".&#x20;

{% hint style="warning" %}
Ваш `contact_external_id`должен быть в контактах у бота, для этого напишите боту с нужного мессенджера. Отправка на произвольный номер возможна  только через мессенджер WhatsApp через метод `sendMessageToWhatsApp` (см. ниже).
{% endhint %}

### Лимиты

Для отправки сообщений установлены следующие ограничения:

| Мессенджер | Количество сообщений за 10 сек. |
| ---------- | ------------------------------- |
| WhatsApp   | 1                               |
| Telegram   | 10                              |
| Viber      | 10                              |
| Max        | 10                              |

## Отправить сообщение в WhatsApp

<mark style="color:green;">`POST`</mark> `https://watbot.ru/api/v1/sendMessageToWhatsApp`

Этот метод позволяет отправить сообщение на WhatsApp по номеру  телефона.

#### Request Body

| Name    | Type    | Description                                                                       |
| ------- | ------- | --------------------------------------------------------------------------------- |
| bot\_id | integer | ID бота контакта.                                                                 |
| phone   | string  | Номер телефона                                                                    |
| text    | string  | Сообщение                                                                         |
| name    | string  | Имя контакта, необходимо отправлять когда вы пишите данному контакту в первый раз |

{% tabs %}
{% tab title="200 " %}

```javascript
{
    "data": {
          "id": 1,
          "phone": "79991234567",
          "name": "Иван Иванов",
          "messenger": "whatsapp",
          "created_at": "2019-05-10T10:38:28+00:00"
    }
}
```

{% endtab %}
{% endtabs %}

Ограничение: не больше 1-го сообщения в секунду.
