# Сообщения

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

<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 %}


---

# 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.onebot.tech/onebot-help/rabota-s-api-platformy/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.
