# Сообщения

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

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

Этот метод позволяет отправить сообщение по id пользователя на платформе JetBot (параметр contact\_id)

#### Request Body

<table><thead><tr><th width="288">Name</th><th width="112">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>api_token</code><mark style="color:red;">*</mark></td><td>string</td><td>api токен вашего аккаунта</td></tr><tr><td><code>contact_id</code><mark style="color:red;">*</mark></td><td>integer</td><td>id пользователя на платформе JetBot</td></tr><tr><td><code>file</code></td><td>string</td><td>URL на файл. Обязательный параметр когда <code>image</code> и <code>text</code> не переданы.</td></tr><tr><td><code>image</code></td><td>string</td><td>URL на картинку. Обязательный параметр когда <code>file</code> и <code>text</code> не переданы.</td></tr><tr><td><code>text</code></td><td>string</td><td>Сообщение. Обязательный параметр когда <code>file</code> и <code>image</code> не переданы.</td></tr></tbody></table>

**Response**

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

```json
{
    "success": true
}
```

{% endtab %}

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

```json
{
    "message": "Forbidden"
}
```

{% endtab %}

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

```json
{
  "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="422 Неверный api токен" %}

```json
{
    "error": "Unauthenticated."
}
```

{% endtab %}

{% tab title="429 Превышен лимит" %}

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

{% endtab %}
{% endtabs %}

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

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

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

#### Request Body

<table><thead><tr><th width="265">Name</th><th width="125">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>api_token</code><mark style="color:red;">*</mark></td><td>string</td><td>api токен вашего аккаунта</td></tr><tr><td><code>file</code></td><td>string</td><td>URL на файл. Обязательный параметр когда <code>image</code> и <code>text</code> не переданы.</td></tr><tr><td><code>image</code></td><td>string</td><td>URL на картинку. Обязательный параметр когда <code>file</code> и <code>text</code> не переданы.</td></tr><tr><td><code>text</code></td><td>string</td><td>Сообщение. Обязательный параметр когда <code>file</code> и <code>image</code> не переданы.</td></tr><tr><td><code>bot_id</code><mark style="color:red;">*</mark></td><td>integer</td><td>ID бота контакта</td></tr><tr><td><code>contact_external_id</code><mark style="color:red;">*</mark></td><td>string</td><td>Номер телефона или внешний id контакта в мессенджере.</td></tr><tr><td><code>messenger</code><mark style="color:red;">*</mark></td><td>string</td><td>ID мессенджера.</td></tr></tbody></table>

**Response**

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

```json
{
    "success": true
}
```

{% endtab %}

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

```json
{
  "message": "Forbidden"
}
```

{% endtab %}

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

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

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

{% endtab %}
{% endtabs %}

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

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

В поле `contact_external_id` можно передавать номер телефона не только для мессенджера WhatsApp но и для других, если к контакту привязан номер. Привязка номера может произойти при первом платеже вашего клиента.

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

## Лимиты

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

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

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

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

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

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

**Request Body**

<table><thead><tr><th width="260">Name</th><th width="129">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>api_token</code><mark style="color:red;">*</mark></td><td>string</td><td>api токен вашего аккаунта</td></tr><tr><td><code>bot_id</code><mark style="color:red;">*</mark></td><td>integer</td><td>ID бота контакта</td></tr><tr><td><code>phone</code><mark style="color:red;">*</mark></td><td>string</td><td>Номер телефона</td></tr><tr><td><code>text</code><mark style="color:red;">*</mark></td><td>string</td><td>Сообщение</td></tr><tr><td><code>name</code></td><td>string</td><td>Имя контакта, необходимо отправлять когда вы пишите данному контакту в первый раз</td></tr></tbody></table>

**Response**

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

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

{% endtab %}
{% endtabs %}
