Push#

Через HTTP API поддерживается отправка только текстовых push-сообщений.

Время жизни push-сообщений: от 30 до 86400 секунд (24 часа).
Время жизни сообщения настраивается на стороне Сервис-провайдера по согласованию с Партнёром.

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

В HTTP API допустимы POST и GET запросы.

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

POST-запрос с сообщением на латинице «test» в простом текстовом формате.

POST /login HTTP/1.1
Host: 10.10.10.10:9080
Content-Type: application/x-www-form-urlencoded;charset=utf-8
Content-Length: 58
serviceId=login&pass=123&clientId=79161234567&message=test

Параметры запросов#

Параметры применимы для POST и GET запросов.

Параметр

Обязат.

Тип

Описание

clientId

да

string

Номер телефона абонента, до 25 символов.

Подробнее

Примеры: 79036550550, +79036550550, 8-903-655-05-50, 89036550550.

message

нет

string

Текст сообщения в кодировке UTF-8.

Подробнее

Максимальная длина: 1000 символов.

serviceId

да

string

Идентификатор сервиса (логин), от имени которого происходит отправка сообщения.

Подробнее

Логин serviceId заводится Сервис-провайдером при подключении сервиса и сообщается Партнёру.

pass

да

string

Пароль для авторизации в сервисе.

Подробнее

Пароль заводится Сервис-провайдером при подключении сервиса и сообщается Партнёру.

ptag

нет

string

Идентификатор сообщения в системе Партнёра.

Подробнее

Может содержать от 1 до 50 символов.

Допустимые символы: 0...9a...zA...Z-

Это может быть любой идентификатор в системе Партнёра.

Примечание

Например, уникальный идентификатор сообщения или идентификатор подразделения, инициирующего запрос на отправку. В отличие от параметра partnerMsgId, который нужен для контроля повторных отправок и дублирования, Сервис-провайдер не контролирует значения, переданные в параметре ptag (проверяется только соответствие формату).

Сервис-провайдер опционально возвращает Партнёру данный идентификатор в рамках запроса на получение статуса доставки сообщения (этот функционал подробно описан в разделе Сервис получения статусов доставки).

sending_time

нет

string

Локальное время отправки сообщения абоненту.

Подробнее

Задается в формате hh_hh, где два значения часа задают временной промежуток, в который должно быть отправлено сообщение.

Предупреждение

Если параметр указан, то его значение не может быть пустым.

Примечание

Например, при значении параметра sending_time = 10_20, сообщение будет отправлено в период с 10:00 до 20:00 по местному времени в часовом поясе абонента.

Часовой пояс абонента определяется не по фактическому местоположению абонента.

Если Партнёр не передает параметр time_zone, то часовой пояс абонента определяется по номеру телефона.

Если Партнёр передает в параметре time_zone часовой пояс, то сообщение будет отправлено абоненту по местному времени этого часового пояса.

time_zone

нет

string

Часовой пояс абонента.

Подробнее

Задается в формате ±hh:mm. Подробнее о формате см. ISO 8601

Если Партнёр передает в этом параметре часовой пояс, то сообщение будет отправлено абоненту по местному времени этого часового пояса, иначе часовой пояс абонента определяется по номеру телефона абонента.

Примечание

Абонент с хабаровским номером находится в Москве. Возможны следующие варианты отправки:

  1. Получены значения: sending_time = 10_20, time_zone = +04:00 (московское время).

    Сообщение будет отправлено в период с 10:00 до 20:00 по московскому времени.

  2. Получено значение sending_time = 10_20 и не передан параметр time_zone.

    Сообщение будет отправлено в период с 10:00 до 20:00 по хабаровскому времени.

Для нулевой зоны обязательно указание знака, неважно «+» или «–».

Знак «+» при кодировании URL преобразуется в %2B. Например, часовой пояс +04:00 передается так: time_zone = %2B04:00.

source

нет

string

Имя отправителя.

Подробнее

Сообщение абоненту будет отправлено с сервисного имени, указанного в данном параметре.

Данный параметр не является обязательным. Если параметр отсутствует в запросе, то сообщение будет отправлено абоненту с имени по умолчанию (настройка на стороне Сервис-провайдера).

Важно

Использование данного параметра недоступно для Партнёра по умолчанию. Функционал может быть включен после согласования с Сервис-провайдером. В этом случае для Партнёра настраивается список разрешенных имен отправителей, либо включается функционал динамической подписи.

output

нет

string

Формат ответа на запрос.

Подробнее

Если output = xml, то ответ на запрос будет сформирован в виде XML (см. Ответ в формате XML).

Если параметр не задан или имеет другое значение, будет применён формат простой текст (text/plain), см. Ответ на запрос.

partnerMsgId

нет

string

Уникальный идентификатор сообщения в системе Партнёра.

Подробнее

Допустимая длина: от 1 до 50 символов.

Данный параметр используется для контроля повторных отправок и дублирования. Партнёр может отправить запрос на отправку сообщения с одним и тем же partnerMsgId несколько раз.

При этом:

  • отправка сообщения абоненту будет выполнена только один раз (по первому запросу);
  • в ответах на данные запросы Сервис-провайдер вернет Партнёру один и тот же идентификатор сообщения в системе Сервис-провайдера (тот же, что на первый запрос).

Сервис-провайдер опционально возвращает Партнёру данный идентификатор в рамках запроса на получение статуса доставки сообщения (см. Сервис получения статусов доставки).

Использование данного параметра недоступно по умолчанию. Подключение данного функционала нужно согласовать со своим курирующим менеджером.

shortenLinks

нет

boolean

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

Подробнее

Важно

Используется только для одиночных сообщений.

В случае каскадной доотправки необходимо использовать параметр shorten_list (см. Каскадные сообщения).

Важно

Использование данного параметра недоступно по умолчанию. Подключение данного функционала необходимо согласовать со своим курирующим менеджером.

Подробнее: см. Сервис сокращения ссылок.

Ответ на запрос#

После получения и обработки запроса Сервис-провайдер синхронно возвращает Партнёру ответ.
По умолчанию ответ от Сервис-провайдера приходит в формате text/plain.
По согласованию с Партнёром ответ может быть сформирован в формате XML.

Примечание

Сервис-провайдер отправляет сообщения абонентам только при успешной обработке запроса.

Ответ при успешной отправке запроса#

На успешный запрос Сервис-провайдер возвращает Партнёру:

  • HTTP-код 200 OK;

  • идентификатор сообщения в системе Сервис-провайдера.

OK
4095284974

Ошибки при отправке запроса#

При передаче ошибочного запроса в теле ответа может возвращаться короткое текстовое сообщение об ошибке.

Пример ответа в случае возникновения ошибки неверного сочетания serviceId/pass:

Invalid password

Ответ в формате XML#

Для получения ответа в формате XML Партнеру в теле запроса необходимо передать параметр output = xml.
В таком случае Сервис-провайдер синхронно отвечает на запрос одним из следующих HTTP-кодов:
  • 200 — запрос успешно обработан;

  • 500 — внутренняя ошибка сервера, технические проблемы на стороне Сервис-провайдера.

Примеры ответов#

Пример ответа в формате XML при успешной отправке запроса (HTTP-код 200) .

<?xml version="1.0" encoding="utf-8"?>
<response>
    <code>200</code>
    <text>OK</text>
    <payload>
        <id>4095284976</id>
    </payload>
</response>

Статусы доставки сообщений#

Для получения статусов сообщений необходимо настроить Сервис получения статусов доставки.

Коды ошибок доставки#

Коды ошибок доставки, в зависимости от типа сообщения, приведены в соответствующей вкладке в разделе Описание кодов ошибок (параметр unifiedExtStatus).