# REST API для работы с WhatsApp

Мы добавили в Олчат REST API (программный интерфейс взаимодействия с сервером) для работы с WhatsApp. Теперь вы можете сформировать вебхук и использовать его для вызовов методов REST в своих сценариях автоматизации и при интеграции различных сервисов.

## Получение вебхука

Создать вебхук можно в приложении Олчат — «•••» (меню вызова настроек коннектора) — Настройки коннектора — Вебхук — Сгенерировать новый:

<figure><img src="/files/jWCGCXJ88wFjTwNhlgGJ" alt=""><figcaption></figcaption></figure>

После создания его можно скопировать в буфер, нажав на кнопку «Скопировать вебхук». При необходимости вебхук можно изменить, нажав на кнопку «Сгенерировать новый»:

<figure><img src="/files/MxhBpfvPbOsukVs8s9Bi" alt=""><figcaption></figcaption></figure>

## Описание методов

Для простоты использования большая часть API (программных интерфейсов) допускает использование GET-запросов.

{% hint style="info" %}
Указанные ниже технические ограничения по запросам изменить или убрать невозможно.
{% endhint %}

{% hint style="info" %}
Для корректного срабатывания запросов в параметр «Номер телефона» необходимо вписывать значение через «7» в начале номера.
{% endhint %}

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

<mark style="color:blue;">`GET`</mark> `https://olchat.infocom.io/rest/webhook/wa/{{token}}/sendText`

Позволяет отправить текстовое сообщение на указанный номер телефона в WhatsApp.

Ограничение: 5 запросов в 3 секунды.

#### Параметры

| Name                                             | Type | Description                                                  |
| ------------------------------------------------ | ---- | ------------------------------------------------------------ |
| phone\_number<mark style="color:red;">\*</mark>  | str  | Номер телефона                                               |
| body<mark style="color:red;">\*</mark>           | text | Тело сообщения                                               |
| send\_to\_imol<mark style="color:red;">\*</mark> | Y\|N | Отправка в чат Открытой Линии. Может принимать значение Y\|N |

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

{% endtab %}
{% endtabs %}

## Отправка файла

<mark style="color:blue;">`GET`</mark> `https://olchat.infocom.io/rest/webhook/wa/{{token}}/sendFile`

Позволяет отправить файл на указанный номер телефона в WhatsApp. В качестве файла указывается прямая ссылка на файл. Подробнее в статье [Настройка отправки файла в зависимости от источника](/roboty-i-aktiviti/sozdanie-pryamoi-ssylki-na-fail.md#sozdanie-pryamoi-ssylki-na-fail).

Ограничение: 5 запросов в 3 секунды.

#### Параметры

| Name                                             | Type | Description                                                  |
| ------------------------------------------------ | ---- | ------------------------------------------------------------ |
| phone\_number<mark style="color:red;">\*</mark>  | str  | Номер телефона                                               |
| body<mark style="color:red;">\*</mark>           | url  | Прямая ссылка на файл                                        |
| send\_to\_imol<mark style="color:red;">\*</mark> | Y\|N | Отправка в чат Открытой Линии. Может принимать значение Y\|N |
| caption                                          | str  | Текст подписи под картинкой                                  |

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

{% endtab %}
{% endtabs %}

## Проверка аккаунта на номере

<mark style="color:blue;">`GET`</mark> `https://olchat.infocom.io/rest/webhook/wa/{{token}}/checkPhone`

Позволяет проверить наличие на номере аккаунта WhatsApp.

Ограничение: 3 запроса в 1 секунду.

ВАЖНО! Не злоупотребляйте этим методом, так как высока вероятность блокировки вашего аккаунта со стороны WhatsApp.

#### Path Parameters

| Name                                            | Type | Description    |
| ----------------------------------------------- | ---- | -------------- |
| phone\_number<mark style="color:red;">\*</mark> | str  | Номер телефона |

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

{% endtab %}
{% endtabs %}

## Проверка статуса линии

<mark style="color:blue;">`GET`</mark> `https://olchat.infocom.io/rest/webhook/wa/{{token}}/checkStatus`

Позволяет проверить статус текущей линии.

Ограничение: 5 запросов в 3 секунды.

## Проверка статуса сообщения

<mark style="color:blue;">`GET`</mark> `https://olchat.infocom.io/rest/webhook/wa/{{token}}/checkMessageStatus`

Позволяет проверить статус сообщения.

Ограничение: 5 запросов в 3 секунды.

#### Path Parameters

| Name                                            | Type | Description    |
| ----------------------------------------------- | ---- | -------------- |
| phone\_number<mark style="color:red;">\*</mark> | str  | Номер телефона |
| message\_id<mark style="color:red;">\*</mark>   | str  | ID сообщения   |

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

{% endtab %}
{% endtabs %}

## Где можно использовать REST API

Предположим, что у вас есть сайт или интернет-магазин, который не интегрирован с Битрикс24, но присутствует необходимость уведомить клиента, заполнившего форму WhatsApp, о том, что его заявка принята в работу или заказ оформлен.

Вы можете привязаться к событию заполнения формы и отправить запрос, содержащий метод отправки сообщения: **<https://olchat.infocom.io/rest/webhook/wa/\\{{token\\}}/sendText>.**

* В качестве **phone\_number** передайте в запрос номер телефона из формы.
* В качестве **body** – ваш текст сообщения, например: «Мы получили вашу заявку, номер вашего заказа №00001».
* В **send\_to\_imol** передайте Y или N.

Другие примеры использования REST API:

1. Уведомление о записи на приём из сторонней системы (например, запись на приём у стоматолога).
2. Отправка уведомления из 1С.
3. Сообщение с номера телефона для интегратора.

## Как добавить подпись к файлу, отправленному через REST API

Ниже приведен пример, написанный на Python с использованием библиотеки Requests:

```
import requests

webhook_url = "https://olchat.infocom.io/rest/webhook/wa/{{ваш token}}/sendFile/"

payload = {
   'phone_number': '7985...',
   'body': 'https://drive.google.com/uc?export=dow...eezby';,
   'send_to_imol': 'Y',
   'caption': 'Ваша корзина ждет! Завершите покупку и получите подарок'
}

response = requests.post(webhook_url, json=payload)
```

{% hint style="info" %}
Переменная '**send\_to\_imol**' может иметь значение:

* '**Y**' - публиковать в чат Открытой линии.
* '**N**' - не публиковать в чат Открытой линии.
  {% endhint %}

При выполнении этого скрипта в чате Открытой линии будет отображено следующее сообщение:

<figure><img src="/files/USs4ooFt4CgFIakbL8Bo" alt=""><figcaption></figcaption></figure>

На стороне клиента это же сообщение будет выглядеть следующим образом:

<figure><img src="/files/PIcJytEuLN5vWUpl4kbT" alt=""><figcaption></figcaption></figure>

## Получение последних входящих сообщений

<mark style="color:blue;">`GET`</mark>`https://olchat.infocom.io/rest/webhook/wa/{{token}}/lastIncomingMessages`

Возвращает последние входящие сообщения из чата Открытой линии, привязанного к сущности CRM.

Ограничени&#x435;**:** 5 запросов в 3 секунды.

**Параметры запроса (передаются в query string):**

* minutes — **int** — количество минут назад, за которые нужно получить сообщения.

Это обязательный параметр со значением по умолчанию 1440 (сутки). Допустимый диапазон: от 1 до 10080 (7 суток).

## Получение последних исходящих сообщений

<mark style="color:blue;">`GET`</mark>`https://olchat.infocom.io/rest/webhook/wa/{{token}}/lastOutgoingMessages`

Возвращает последние исходящие сообщения из чата Открытой линии, привязанного к сущности CRM (системы управления взаимоотношениями с клиентами).

Ограничени&#x435;**:** 5 запросов в 3 секунды.

Параметры запроса (передаются в query string):

* minutes — **int** — количество минут назад, за которые нужно получить сообщения.

Это обязательный параметр со значением по умолчанию 1440 (сутки). Допустимый диапазон: от 1 до 10080 (7 суток).

### **Особенности получения последних сообщений**

* Возвращается только текст (медиафайлы — фото, видео, документы — не возвращаются).
* В ответе присутствует поле timestamp с датой и временем каждого сообщения (в формате Unix timestamp или ISO 8601 — уточняется в реальном ответе).
* Работает только для чатов, привязанных к контактам, компаниям или сделкам.
* Максимальная глубина истории поиска — 7 дней (10080 минут). Это жёсткое ограничение Bitrix24, его нельзя увеличить.
* Если требуется знать дату самого последнего сообщения за более длительный период — рекомендуется сохранять timestamp последнего сообщения в кастомное поле CRM при каждом новом входящем или исходящем сообщении (через вебхуки или обработчики событий).
* Методы не предназначены для полной выгрузки истории чата. Они подходят только для получения свежих сообщений и определения времени последнего контакта.


---

# 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://docs.olchat.io/ispolzovanie/rest-api-dlya-raboty-s-whatsapp.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.
