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

## Запуск сервиса

Для запуска сервиса отправки сообщений в рамках протокола HTTP партнеру необходимо получить реквизиты доступа к API:

* **serviceId** – уникальный идентификатор сервиса;
* **pass** – пароль.

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

<mark style="color:blue;">`GET`</mark> `https://api.seven.tech/send`

Метод позволяет инициировать отправку сообщения с указанием номера абонента, текста и имени отправителя.

#### Path Parameters

| Name          | Type    | Description                                                                                                                                                                                               |
| ------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| clientId      | integer | Номер абонента в международном формате. Пример **79031234567**                                                                                                                                            |
| message       | string  | Сообщение для отправки абоненту в кодировке **UTF-8 (urlencoded)**                                                                                                                                        |
| serviceId     | integer | Идентификатор сервиса от которого происходит отправка сообщений                                                                                                                                           |
| pass          | string  | Пароль для отправки сообщений. Пароль заводится при подключении сервиса и передается партнеру                                                                                                             |
| source        | string  | Имя отправителя. Сообщение абоненту будет отправлено с номера, указанного в данном параметре. Допустимая длина **2-11 символов**. Допустимые символы: **0...9a...zA...Z!@#$%^&\*()/{}';:,+-\_** и пробел. |
| ptag          | string  | Признак сообщения в системе партнера. Максимальная длина: **50 символов**; допустимые символы: **0...9a...zA...Z-**                                                                                       |
| sending\_time | string  | Локальное время отправки сообщения абоненту. Задается в формате **HH\_HH**                                                                                                                                |
| time\_zone    | string  | Часовой пояс абонента. Задается в формате ±hh:mm                                                                                                                                                          |
| flash         | integer | Признак отправки Flash-SMS. При **flash=1** абоненту будет оправлено Flash-SMS                                                                                                                            |
| ttl           | integer | <p>Время жизни сообщения (TTL) между элементами каскада. (значение в секундах)<br>Допустимые интервалы от 100 до 86400.</p>                                                                               |

{% tabs %}
{% tab title="200 Успешная обработка запроса. В теле ответа передаётся идентификатор принимающей стороны.
Действий не требуется" %}

```
OK
12345678
```

{% endtab %}

{% tab title="400 Отсутствуют обязательные параметры или заданы некорректного значения параметров. Например, параметр message не задан или значение параметра serviceId содержит буквы.
Необходимо исключить возможные ошибки и повторить запрос. При невозможности разрешить проблему своими силами, обратиться в техническую поддержку" %}

```
Message body required
```

{% endtab %}

{% tab title="401 Передано неверное сочетание параметров serviceId/pass.
Можно повторить запрос с правильным сочетанием serviceId/pass." %}

```
wrong password passme123 for service with id=65535
```

{% endtab %}

{% tab title="402 Исчерпан остаток оплаченных сообщений (для партнеров, работающих по предоплате).
Не следует повторять запрос. Необходимо внести предоплату и обратиться к аккаунт-менеджеру." %}

```
Exceeded limit MT
```

{% endtab %}

{% tab title="403 Выполнен запрос с IP-адреса не добавленого в список разрешенных. Частный случай данной ошибки — сервис с переданным serviceId отсутствует или не активен.
Не повторять запрос. Обратиться в техническую поддержку." %}

```
Forbidden
```

{% endtab %}

{% tab title="406 Невозможно отправить сообщение абоненту с переданным clientId.
Как правило, ошибка указывает на невалидный номер абонента." %}

```
wrong clientId '79031234567' for pattern '^7[34589]\d{9}$(?<!(7940\d{7}))'
```

{% endtab %}

{% tab title="408 Превышение допустимой скорости отправки сообщений.
Повторить запрос, не превышая допустимой скорости." %}

```
speed exceed for serviceId=65535 max request speed is 300/sec
```

{% endtab %}

{% tab title="409 Признак срабатывания функционала Защиты от дубликатов.
При необходимости, обратиться в техническую поддержку за дополнительными разъяснениями." %}

```
such message already has been sent
```

{% endtab %}

{% tab title="414 Превышение допустимой длины (1000 символов) текста сообщения, переданного в параметре message.
Необходимо сократить длину отправляемого сообщений не превышая лимит в 1000 символов и повторить отправку." %}

```
so long message
```

{% endtab %}

{% tab title="423 Отправка сообщений абоненту с переданным clientId отключена за фрод.
Выдержать паузу минимум 1 час и повторить запрос." %}

```
```

{% endtab %}

{% tab title="500 Внутренняя ошибка сервера.Технические проблемы платформы.
Выдержать паузу минимум 1 минуту и повторить запрос. При повторении ошибки более 10 раз прекратить передачу запроса. Сообщить о проблеме в техническую поддержку." %}

```
System error
```

{% endtab %}

{% tab title="503 Запрос в обработке.
Выдержать паузу и подождать ответ на первый запрос с переданным значением partnerMsgId. Допускается повторить запрос, если не получен ответ на первый." %}

```
Request processing is unavailable
```

{% endtab %}
{% endtabs %}

## Примеры вызова

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

```
https://api.seven.tech/send?serviceId=65535&pass=passme123&clientId=79031234567&source=North&message=With+such+love+as+this+now
```

Абоненту 79031234567 на мобильное устройcтво от имени North поступит сообщение с текстом:

> With such love as this now

**Отправка сообщения в кириллице**

```
https://api.seven.tech/send?serviceId=65535&pass=passme123&clientId=79031234567&source=South&message=%d0%92+%d1%87%d0%b0%d1%89%d0%b0%d1%85+%d1%8e%d0%b3%d0%b0+%d0%b6%d0%b8%d0%bb+%d0%b1%d1%8b+%d1%86%d0%b8%d1%82%d1%80%d1%83%d1%81%3f+%d0%94%d0%b0%2c+%d0%bd%d0%be+%d1%84%d0%b0%d0%bb%d1%8c%d1%88%d0%b8%d0%b2%d1%8b%d0%b9+%d1%8d%d0%ba%d0%b7%d0%b5%d0%bc%d0%bf%d0%bb%d1%8f%d1%80%d1%8a!  
```

Абоненту 79031234567 на мобильное устройcтво от имени South поступит сообщение с текстом:

> В чащах юга жил бы цитрус? Да, но фальшивый экземпляръ!

## **Дополнительная информация параметрам**

| Параметр      | Пояснение                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| message       | Если длина сообщения для отправки абоненту превышает 160 символов в кодировке 8859-1 или 140 байт, то сообщение должно быть передано целиком, в склеенном (полном) виде. При отправке абоненту будет происходить нарезка на несколько сообщений.                                                                                                                                                                                                                                                                                                                                                         |
| source        | <p>Как правило, на подключении выделяется согласованный набор имен отправителей с которых разрешена отправка сообщений. Возможность активация динамической подписи необходимо согласовать с аккаунт-менеджером. <br><br>Возможно изменение настройки сервиса, когда партнер не передает в запросе данный параметр и при отправке сообщений будет использовано имя отправителя по-умолчанию. Эта опция может быть интересна для партнеров использующих фиксированное имя отправителя.</p>                                                                                                                 |
| ptag          | <p>Значением может быть любой идентификатор в системе партнера. Например, уникальный идентификатор сообщения или идентификатор подразделения, инициирующего запрос на отправку.<br><br>Принимающая сторона не контролирует значения, переданные в данном параметре (проверяет только на соответствие формату). В отличие от параметра partnerMsgId (описание параметра см. ниже), который нужен для контроля повторных отправок и дублирования.<br><br>Опционально возможно получения параметра ptag в рамках функционала возврата отчетов о доставке сообщений (описание функционала доступен ниже)</p> |
| sending\_time | <p>Например, при значении параметра sending\_time=10\_20 сообщение будет отправлено в период с 10:00 до 20:00 по местному времени в часовом поясе абонента.<br>Часовой пояс абонента определяется не по фактическому местоположению абонента.<br>Если Контент-провайдер не передает параметр time\_zone, то часовой пояс абонента определяется по номеру телефона.<br>Если Контент-провайдер передает в параметре time\_zone часовой пояс, то сообщение будет отправлено абоненту по местному времени этого часового пояса.</p>                                                                          |
| time\_zone    | [Подробнее о формате](http://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| partnerMsgId  | <p>Данный параметр нужен для контроля повторных отправок и дублирований.<br>Партнер может выполнить запрос на отправку сообщения с одним и тем же partnerMsgId несколько раз. При этом:</p><ul><li>Отправка сообщения абоненту будет выполнена только один раз (по первому запросу);</li><li>В ответах на запросы Агрегатор вернет Контент-провайдеру один тот же идентификатор сообщения в системе Агрегатора (тот же, что на первый запрос).</li></ul>                                                                                                                                                 |


---

# 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://legacy-docs.seven.tech/v1/http/send.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.
