# Сообщения

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

<mark style="color:green;">`POST`</mark> `https://app.cleverapp.pro/api/v1/sendMessage`

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

#### Query Parameters

| Name                                          | Type    | Description      |
| --------------------------------------------- | ------- | ---------------- |
| file                                          | string  | URL на файл.     |
| image                                         | string  | URL на картинку. |
| contact\_id<mark style="color:red;">\*</mark> | integer | ID контакта.     |
| text                                          | string  | Сообщение.       |

{% tabs %}
{% tab title="200: OK Запрос успешно обработан" %}

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

{% endtab %}

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

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

{% endtab %}

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

```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: Too Many Requests Превышен лимит отправки сообщений" %}

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

{% endtab %}

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

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

{% endtab %}
{% endtabs %}

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

<mark style="color:green;">`POST`</mark> `https://app.cleverapp.pro/api/v1/sendMessage`

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

#### Query Parameters

| Name                                                    | Type    | Description                                           |
| ------------------------------------------------------- | ------- | ----------------------------------------------------- |
| file                                                    | string  | URL на файл.                                          |
| image                                                   | string  | URL на картинку.                                      |
| bot\_id<mark style="color:red;">\*</mark>               | integer | ID бота контакта                                      |
| contact\_external\_id<mark style="color:red;">\*</mark> | string  | Номер телефона или внешний id контакта в мессенджере. |
| messenger<mark style="color:red;">\*</mark>             | string  | ID мессенджера.                                       |
| text                                                    | string  | Сообщение.                                            |

{% tabs %}
{% tab title="200: OK Запрос успешно обработан" %}

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

{% endtab %}

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

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

{% endtab %}

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

```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: Too Many Requests Превышен лимит отправки сообщений" %}

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

{% endtab %}
{% endtabs %}

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

* `whatsapp`
* `telegram`
* `viber`
* `icq`

В поле `contact_external_id` можно передавать номер телефона не только для мессенджера WhatsApp но и для других, если к контакту привязан номер. Привязка номера может произойти при первом платеже вашего клиента.Ваш `contact_external_id`должен быть в контактах у бота, для этого напишите боту с нужного мессенджера. Отправка на произвольный номер возможна только через мессенджер WhatsApp через метод `sendMessageToWhatsApp` (см. ниже).

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

#### Лимиты <a href="#limity" id="limity"></a>

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

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

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

<mark style="color:green;">`POST`</mark>&#x20;

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

#### Request Body

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

{% tabs %}
{% tab title="200: OK Запрос успешно обработан" %}

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

{% endtab %}
{% endtabs %}

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