# Сообщения

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

<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-го сообщения в секунду.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.cleverapp.pro/dlya-razrabotchikov/dokumentaciya-i-rabota-s-api/soobsheniya.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
