Push#
Через HTTP API поддерживается отправка только текстовых push-сообщений.
Запрос на отправку сообщений#
В 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-запрос с текстом сообщения на кириллице “тест“ в URL-формате.
POST /login HTTP/1.1
Host: 10.241.0.194:9080
Content-Type: application/x-www-form-urlencoded;charset=utf-8
Content-Length: 78
serviceId=login&pass=123&clientId=79161234567&message=%D1%82%D0%B5%D1%81%D1%82
GET-запрос для передачи изображения.
http://partner.ru/login?clientId=79161234567&pass=123&serviceId=login&imageUrl=http://image001.jpg
GET-запрос с сообщением на латинице “test“ в простом текстовом формате и кнопкой с надписью “click“.
http://partner.ru/login?clientId=79161234567&message=test&pass=123&serviceId=login&buttonText=click&buttonLink=http://click
Параметры запросов#
Параметры применимы для 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  | 
Идентификатор сообщения в системе Партнёра. 
Может содержать от одного до 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. Если Партнёр передает в этом параметре часовой пояс, то сообщение будет отправлено абоненту по местному времени этого часового пояса, иначе часовой пояс абонента определяется по номеру телефона абонента. Примечание Абонент с хабаровским номером находится в Москве. Возможны следующие варианты отправки: 
 Для нулевой зоны обязательно указание знака, неважно «+» или «-«. 
Знак «+» при кодировании URL преобразуется в «%2B». 
Например, часовой пояс +04:00 передается так time_zone= %2B04:00. 
 | 
source  | 
string  | 
Имя отправителя. Сообщение абоненту будет отправлено с сервисного имени, указанного в данном параметре. Данный параметр не является обязательным. Если параметр отсутствует в запросе, то сообщение будет отправлено абоненту с имени по умолчанию (настройка на стороне Сервис-провайдера). Важно Использование данного параметра недоступно для Партнёра по умолчанию. Функционал может быть включен после согласования с Сервис-провайдером. В этом случае для Партнёра настраивается список разрешенных имен отправителей, либо включается функционал динамической подписи.  | 
output  | 
string  | 
Формат ответа на запрос. Если output=xml, то ответ на запрос будет сформирован в виде XML (см. Ответ в формате XML). Если параметр не задан или имеет другое значение, будет применён формат по умолчанию: text/plain (см. Ответ на запрос).  | 
partnerMsgId  | 
string  | 
Уникальный идентификатор сообщения в системе Партнёра. Допустимая длина: от одного до 50 символов. Данный параметр используется для контроля повторных отправок и дублирования. Партнёр может отправить запрос на отправку сообщения с одним и тем же partnerMsgId несколько раз. При этом: 
 Сервис-провайдер опционально возвращает Партнёру данный идентификатор в рамках запроса на получение статуса доставки сообщения (См. Сервис получения статусов доставки). Использование данного параметра недоступно по умолчанию. Подключение данного функционала нужно согласовать со своим курирующим менеджером.  | 
shortenLinks  | 
boolean  | 
Параметр указывает, требуется ли сокращать ссылки в тексте сообщения. Важно Используется только для одиночных сообщений. В случае каскадной доотправки необходимо использовать параметр shorten_list (cм. Каскадные сообщения). Важно Использование данного параметра недоступно по умолчанию. Подключение данного функционала необходимо согласовать со своим курирующим менеджером. Подробнее: Сервис сокращения ссылок.  | 
Ответ на запрос#
Примечание
Сервис-провайдер отправляет сообщения абонентам только при успешной обработке запроса.
Ответ при успешной отправке запроса#
На успешный запрос Сервис-провайдер возвращает Партнёру:
HTTP-код «200 OK»;
идентификатор сообщения в системе Сервис-провайдера.
OK
4095284974
Ответный код  | 
Описание  | 
Возможные действия Партнера  | 
|---|---|---|
200  | 
Успешная обработка запроса. 
В теле ответа передаётся идентификатор, присвоенный
сообщению Сервис-провайдером. 
Идентификатор представляет собой 64-битное целое
положительное число. 
 | 
Штатная работа с сервисом.  | 
Ошибки при отправке запроса#
При передаче ошибочного запроса в теле ответа может возвращаться короткое текстовое сообщение об ошибке.
Пример ответа в случае возникновения ошибки неверного сочетания serviceId/pass:
Invalid password
Ответный код  | 
Описание  | 
Возможные действия Партнера  | 
|---|---|---|
400  | 
Отсутствуют обязательные параметры или они заданы некорректно. Например, не передан параметр message (там, где он необходим).  | 
Повторить запрос с правильным сочетанием параметров и их корректными значениями.  | 
401  | 
Передано неверное сочетание параметров serviceId и pass.  | 
Повторить запрос с верными значениями параметров serviceId и pass.  | 
402  | 
Исчерпан остаток оплаченных сообщений (для Партнёров, работающих по предоплате).  | 
Для возобновления отправки сообщений необходимо внести предоплату и обратиться к вашему курирующему менеджеру. Партнёр не должен повторять запрос.  | 
403  | 
Сервис с переданным serviceId отсутствует или не активен.  | 
Следует обратиться к своему курирующему менеджеру. Партнёр не должен повторять запрос.  | 
406  | 
Невозможно послать сообщение абоненту с переданным clientId.  | 
Партнёр не должен повторять запрос.  | 
408  | 
Превышение допустимой скорости отправки сообщений. Примечание Для сервиса Партнёра установлена допустимая скорость 10 запросов в секунду. Партнёр отправил 12 запросов в секунду. Первые 10 запросов будут успешно обработаны: в ответ на эти запросы Сервис-провайдер вернет Партнёру статус 200 и отправит сообщения абонентам. В ответ на последние 2 запроса Сервис-провайдер вернет Партнёру статус 408 и не будет отправлять сообщения абонентам.  | 
Партнёр может повторить запрос, не превышая допустимой скорости.  | 
409  | 
Запрещена отправка дубликатов. Примечание Для сервиса Партнёра включен функционал блокировки дубликатов. Партнёр отправил в течении суток три запроса для отправки сообщения на один номер с одинаковым текстом. Первый запрос будет успешно обработан и сообщение будет отправлено абоненту. В ответ на последние два запроса Сервис-провайдер вернет Партнёру статус 409 и не будет отправлять эти два сообщения абоненту. Функционал блокировки дубликатов по умолчанию отключен для Партнёра. Функционал может быть включен по просьбе Партнёра. Также Сервис-провайдер может включить функционал блокировки дубликатов для Партнёра при необходимости: например, в ответ на жалобы абонентов.  | 
Партнёр не должен повторять запрос. При необходимости отправки дубликата сообщения, Партнёр может обратиться в службу техподдержки Сервис-провайдера, предоставив наиболее полную информацию об условиях возникновения данной ситуации.  | 
414  | 
Превышение допустимой длины текста сообщения, переданного в параметре message.  | 
Партнёр может повторить запрос, сократив текст сообщения до допустимой длины.  | 
500  | 
Внутренняя ошибка сервера. Технические проблемы на стороне Сервис-провайдера.  | 
При получении статуса 500 или при истечении тайм-аута ожидания ответа, Партнёр должен выдержать паузу минимум 1 минуту. По истечении паузы Партнёр может повторить запрос. При получении статуса 500 более 10 раз необходимо прекратить передачу запроса. После чего передать в службу техподдержки Сервис-провайдера наиболее полную информацию б условиях возникновения данной ошибки для дальнейшего анализа.  | 
503  | 
Запрос в обработке. Ошибка может возникнуть, если Партнёр практически одновременно передает несколько запросов с одним и тем же значением параметра partnerMsgId. Пока не обработан первый запрос на следующие запросы с тем же partnerMsgId Сервис-провайдер вернет Партнёру статус 503.  | 
Партнёр должен выдержать паузу и подождать ответ на первый запрос с переданным значением параметра partnerMsgId. Партнёр может повторить запрос, если не получит ответ на первый запрос.  | 
Ответ в формате XML#
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>
Пример ответа в формате XML при ошибочной отправке запроса: неверное сочетание serviceId/pass.
<?xml version="1.0" encoding="utf-8"?>
<response>
    <code>401</code>
    <text>Invalid password</text>
</response>
При получении статуса 500 или при истечении тайм-аута ожидания ответа, Партнёр должен выдержать паузу минимум 1 минуту. По истечении паузы Партнёр может повторить запрос.
Примечание
При получении статуса 500 более 10 раз необходимо прекратить передачу запроса. После чего передать в службу техподдержки Сервис-провайдера наиболее полную информацию об условиях возникновения данной ошибки для дальнейшего анализа.
В таблице обязательные параметры выделены жирным шрифтом.
Наименование  | 
Описание  | 
Примечание  | 
|---|---|---|
xml version  | 
Номер версии XML.  | 
Содержится в прологе XML-документа.  | 
encoding  | 
Кодировка.  | 
Содержится в прологе XML-документа.  | 
response  | 
Корневой элемент, содержит элементы code, text, payload.  | 
|
code  | 
Код ответа (значения соответствуют HTTP-кодам для ответов с типом text/plain).  | 
Подробное описание этих кодов приведено выше.  | 
text  | 
Дополнительная краткая текстовая информация об ответе.  | 
Может содержать информацию об ошибке.  | 
payload  | 
Информация о сообщении, содержит элемент id.  | 
Передаются только в случае успешного выполнения запроса (при значении code=200).  | 
id  | 
Идентификатор, присвоенный сообщению Сервис-провайдером. Идентификатор представляет собой 64-разрядное целое положительное число.  |