# Сообщения

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

<mark style="color:green;">`POST`</mark> `https://app.onebot.tech/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: 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.onebot.tech/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: 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 но и для других, если к контакту привязан номер. Привязка номера может произойти при первом платеже вашего клиента.&#x20;

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

{% hint style="info" %}
Лимиты:
{% endhint %}

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

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

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

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

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

#### Request Body

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

{% tabs %}
{% tab title="200: OK Успешно отправлено" %}

```javascript
{
    "data": {
          "id": 13,
          "phone": "380660888008",
          "name": "Егор",
          "messenger": "whatsapp",
          "created_at": "2022-11-11T10:38:28+00:00"
    }
}
```

{% endtab %}
{% endtabs %}

{% hint style="danger" %}
Ограничение на отправку сообщений в WA: не больше 1-го сообщения в секунду.
{% endhint %}
