Push#
Отправка push-уведомлений#
В мобильных и веб push-уведомлениях доступна передача текста и, опционально, дополнительных параметров.
Примеры дополнительных параметров:
заголовок;
изображения;
кнопки выбора действия;
HTML-страницы;
шаблоны для передачи чувствительных данных;
параметры для обогащения данных;
данные без предварительной обработки (в формате JSON);
клиентские данные для статистики;
данные для обновления виджета Live Activity;
признак главного приложения;
подписки мобильного приложения;
указание провайдеров (APNS, FCM, HMS, RuStore, PWA) для передачи данных.
Примеры запросов на отправку push-уведомлений#
Для формирования тестового запроса с вашими параметрами
Открыть генератор запросов
Описание параметров useTimeDiff ; destAddr.
1 {
2 "login":"ВАШ_ЛОГИН",
3 "password":"ВАШ_ПАРОЛЬ",
4 "id":"8770630",
5 "extraParam":"param1=value1,param2=value2",
6 "registeredDelivery":"1",
7 "notifyUrl":"URL_для_передачи_статусов",
8 "useTimeDiff":true,
9 "scheduleInfo":{
10 "timeBegin":"10:00",
11 "timeEnd":"12:00",
12 "weekdaysSchedule":"123",
13 "deadline": "2029-12-31T16:29:30+0300"
14 },
15 "destAddr":"Номер_Абонента",
16 "message":{
17 "type":"Push",
18 "data":{
19 "externalUserId": "ID_абонента",
20 "text":"Текст уведомления",
21 "serviceNumber":"НОМЕР_ОТПРАВИТЕЛЯ",
22 "ttl":10,
23 "ttlUnit": "SECONDS"
24 }
25 }
26 }
1 {
2 "login":"ВАШ_ЛОГИН",
3 "password":"ВАШ_ПАРОЛЬ",
4 "id":"8770631",
5 "destAddr":"Номер_Абонента",
6 "message":{
7 "type":"PUSH",
8 "data":{
9 "text":"Текст уведомления",
10 "serviceNumber":"НОМЕР_ОТПРАВИТЕЛЯ",
11 "ttl":2
12 }
13 }
14 }
Описание параметра title.
1 {
2 "login":"ВАШ_ЛОГИН",
3 "password":"ВАШ_ПАРОЛЬ",
4 "id":"8770631",
5 "destAddr":"Номер_Абонента",
6 "message":{
7 "type":"PUSH",
8 "data":{
9 "title":"Заголовок push-сообщения",
10 "text":"Текст уведомления",
11 "serviceNumber":"НОМЕР_ОТПРАВИТЕЛЯ",
12 "ttl":2
13 }
14 }
15 }
Описание параметра primaryOn.
1 {
2 "login":"ВАШ_ЛОГИН",
3 "password":"ВАШ_ПАРОЛЬ",
4 "id":"8770631",
5 "destAddr":"Номер_Абонента",
6 "message":{
7 "type":"PUSH",
8 "data":{
9 "text":"Текст уведомления",
10 "primaryOn":true,
11 "serviceNumber":"НОМЕР_ОТПРАВИТЕЛЯ",
12 "ttl":2
13 }
14 }
15 }
В данном примере сообщение передается по externalUserId клиента.
Описание параметра contentCategory.
1 {
2 "login": "ВАШ_ЛОГИН",
3 "password": "ВАШ_ПАРОЛЬ",
4 "id": "9999992",
5 "message": {
6 "type": "PUSH",
7 "data": {
8 "externalUserId": "ИД_абонента",
9 "text": "Текст_сообщения",
10 "serviceNumber": "0000",
11 "ttl": 40,
12 "ttlUnit": "SECONDS",
13 "content": {
14 "contentCategory": "IMAGE",
15 "contentUrl": "https://i.pinimg.com/originals/11/ab/14/11ab147894a7d2ce866ff88a4aa63655.jpg"
16 }
17 }
18 }
19 }
В данном примере сообщение передается по externalUserId клиента.
Описание параметров contentCategory ; actions.
1 {
2 "login": "ВАШ_ЛОГИН",
3 "password": "ВАШ_ПАРОЛЬ",
4 "id": "9999992",
5 "message": {
6 "type": "PUSH",
7 "data": {
8 "externalUserId": "ИД_абонента",
9 "text": "Текст_сообщения",
10 "serviceNumber": "0000",
11 "ttl": 40,
12 "ttlUnit": "SECONDS",
13 "content": {
14 "contentCategory": "IMAGE",
15 "contentUrl": "https://i.pinimg.com/originals/11/ab/14/11ab147894a7d2ce866ff88a4aa63655.jpg",
16 "actions": [
17 {
18 "title": "Открыть",
19 "action": "link",
20 "options": "https://doc.rapporto.ru/"
21 },
22 {
23 "title": "Открыть приложение",
24 "action": "open-app",
25 "options": ""
26 }
27 ]
28 }
29 }
30 }
31 }
Описание параметра contentCategory.
1 {
2 "login": "ВАШ_ЛОГИН",
3 "password": "ВАШ_ПАРОЛЬ",
4 "id": "9999992",
5 "destAddr":"Номер_Абонента",
6 "message": {
7 "type": "PUSH",
8 "data": {
9 "text": "Текст_сообщение",
10 "serviceNumber": "0000",
11 "ttl": 40,
12 "ttlUnit": "SECONDS",
13 "content": {
14 "contentCategory": "HTML",
15 "contentUrl": "https://i.pinimg.com/originals/11/ab/14/11ab147894a7d2ce866ff88a4aa63655.jpg"
16 }
17 }
18 }
19 }
Описание параметра deviceSubscriptions.
1 {
2 "login":"ВАШ_ЛОГИН",
3 "password":"ВАШ_ПАРОЛЬ",
4 "id":"8770631",
5 "destAddr":"Номер_Абонента",
6 "message":{
7 "type":"PUSH",
8 "data":{
9 "externalUserId":"ИД_абонента",
10 "text":"Текст",
11 "serviceNumber":"Номер_отправителя",
12 "ttl":24,
13 "ttlUnit":"HOURS",
14 "deviceSubscriptions":[
15 "card"
16 ]
17 }
18 }
19 }
Описание параметра customPayload.
1 {
2 "login":"ВАШ_ЛОГИН",
3 "password":"ВАШ_ПАРОЛЬ",
4 "id":"8770631",
5 "destAddr":"Номер_Абонента",
6 "message":{
7 "type":"PUSH",
8 "data":{
9 "title":"Заголовок Push-сообщения",
10 "text":"Текст_сообщения",
11 "serviceNumber":"Номер_отправителя",
12 "ttl":1,
13 "ttlUnit":"MINUTES",
14 "customPayload":{
15 "list":"card"
16 }
17 }
18 }
19 }
Описание параметра callbackData.
1 {
2 "login":"ВАШ_ЛОГИН",
3 "password":"ВАШ_ПАРОЛЬ",
4 "id":"8770631",
5 "destAddr":"Номер_Абонента",
6 "message":{
7 "type":"PUSH",
8 "data":{
9 "title":"Заголовок Push-сообщения",
10 "text":"Текст_сообщения",
11 "serviceNumber":"Номер_отправителя",
12 "ttl":1,
13 "ttlUnit":"MINUTES",
14 "callbackData":"Данные_для_статистики"
15 }
16 }
17 }
Параметры для альтернативного варианта отправки данных с контентом для мобильного приложения.
1 {
2 "login":"ВАШ_ЛОГИН",
3 "password":"ВАШ_ПАРОЛЬ",
4 "id":"4560",
5 "message":{
6 "type":"PUSH",
7 "data":{
8 "externalUserId":"ИД_абонента",
9 "title":"Заголовок_до",
10 "text":"Тест_до",
11 "serviceNumber":"Номер_отправителя",
12 "ttl":30,
13 "ttlUnit":"SECONDS",
14 "extraOptions":[
15 {
16 "param_name":"RICH",
17 "param_value":{
18 "title":"Заголовок_после",
19 "message":"Текст_после"
20 }
21 }
22 ]
23 }
24 }
25 }
Параметры для обновления виджета Live Activity на устройствах с операционной системой iOS.
1 {
2 "login":"ВАШ_ЛОГИН",
3 "password":"ВАШ_ПАРОЛЬ",
4 "id":"4560",
5 "message":{
6 "type":"PUSH",
7 "data":{
8 "externalUserId":"ИД_абонента",
9 "title":"Заголовок",
10 "text":"Текст",
11 "serviceNumber":"Номер_отправителя",
12 "ttl":30,
13 "ttlUnit":"SECONDS",
14 "extraOptions":[
15 {
16 "param_name":"LIVE_ACTIVITY",
17 "param_value":{
18 "aps":{
19 "timestamp":"2024-03-29T17:23:47.720Z",
20 "event":"update",
21 "content-state":{
22 "deliveryStatus":2,
23 "deliveryTime":5
24 }
25 }
26 }
27 }
28 ]
29 }
30 }
31 }
Параметры для передачи чувствительных данных в push-уведомлении.
1 {
2 "login":"ВАШ_ЛОГИН",
3 "password":"ВАШ_ПАРОЛЬ",
4 "id":"4560",
5 "message":{
6 "type":"PUSH",
7 "data":{
8 "primaryOn":false,
9 "externalUserId":"ИД_абонента",
10 "title": "Код для получения %data%",
11 "text":"%name%, ваша карта с номером %card% готова к выпуску",
12 "serviceNumber":"Номер_отправителя",
13 "ttl":30,
14 "ttlUnit":"SECONDS",
15 "extraOptions":[
16 {
17 "param_name":"SECURE",
18 "param_value":{
19 "name":"Имя",
20 "card":"*0000",
21 "data":"12345"
22 }
23 }
24 ]
25 }
26 }
27 }
Параметры для отправки push-уведомлений на определенные типы платформ (APNS, FCM, HMS, RuStore, PWA) по желанию Партнера.
1{
2 "login":"ВАШ_ЛОГИН",
3 "password":"ВАШ_ПАРОЛЬ",
4 "id":"1",
5 "message":{
6 "type":"PUSH",
7 "data":{
8 "serviceNumber":"Сервисное_имя_отправителя",
9 "externalUserId":"ИД_абонента",
10 "text":"Текст_сообщения",
11 "title":"Заголовок_сообщения",
12 "ttl":24,
13 "ttlUnit":"HOURS",
14 "extraOptions":[
15 {
16 "param_name":"SENDING_PLATFORMS",
17 "param_value":[
18 "Android",
19 "Ios",
20 "RuStore"
21 ]
22 }
23 ]
24 }
25 }
26}
1{
2 "login":"ВАШ_ЛОГИН",
3 "password":"ВАШ_ПАРОЛЬ",
4 "id":"1",
5 "message":{
6 "type":"PUSH",
7 "data":{
8 "serviceNumber":"Сервисное_имя_отправителя",
9 "externalUserId":"ИД_абонента",
10 "text":"Текст_сообщения",
11 "title":"Заголовок_сообщения",
12 "ttl":24,
13 "ttlUnit":"HOURS",
14 "extraOptions":[
15 {
16 "param_name":"SENDING_PLATFORMS",
17 "param_value":[
18 "Pwa",
19 ]
20 }
21 ]
22 }
23 }
24}
Параметры запросов#
Звездочкой (*) отмечены параметры, которые не работают при отправке веб push-сообщений.
Параметр |
Обязат. |
Тип данных |
Описание |
|---|---|---|---|
login |
да |
string |
Имя Партнера в системе. |
password |
да |
string |
Пароль Партнера в системе. |
extraParam |
нет |
string |
Дополнительные параметры, передаваемые в виде
Подробнее
Символ запятой в названии параметра использоваться не может, но может входить в его
значение — в этом случае он должен удваиваться. Пример: строка
|
useTimeDiff |
нет |
boolean |
Учитывание часового пояса при запуске рассылки. Подробнее
Если
Если
Значение по умолчанию: |
scheduleInfo |
нет |
object |
Расписание рассылки. ПодробнееЕсли не указано, отправляется сразу же, в момент получения запроса. |
scheduleInfo/
timeBegin
|
нет |
string |
Время начала. Подробнее
Например, |
scheduleInfo/
timeEnd
|
нет |
string |
Время окончания. Подробнее
Например, |
scheduleInfo/
weekdaysSchedule
|
нет |
string |
Дни рассылки. Подробнее
Задаются цифрами от Если ограничений по дням недели нет, то данный параметр может быть пустой или не передан в запросе. |
scheduleInfo/
deadline
|
нет |
string |
Дата окончания рассылки. Подробнее
Например, |
id |
нет |
string |
Уникальный идентификатор на стороне Партнёра. ПодробнееДанный параметр нужен для контроля повторных отправок и дублирования (сервис контроля включается отдельно). Партнёр может вызывать Сервис-провайдера (запрос на отправку сообщения) с одним и тем же id несколько раз. При этом: отправка сообщения абоненту будет выполнена только один раз (по первому запросу). В ответах на запросы Сервис-провайдер вернет Партнёру один и тот же идентификатор сообщения в системе Сервис-провайдера (тот же, что на первый запрос). Сервис-провайдер опционально возвращает Партнёру данный идентификатор при его наличии в отчёте о доставке сообщения. |
shortenLinks |
нет |
boolean |
Параметр управляет включением автоматического сокращения длинных ссылок в сообщении. ПодробнееВозможные значения:
Если параметр в запросе не приходит, но при этом сервис Партнёру доступен, то ссылки будут сокращаться по умолчанию. Подробнее: см. Сервис Сервис сокращения ссылок. Примечание Возможность пользоваться данным сервисом предварительно оговаривается и настраивается Сервис-Провайдером. |
destAddr |
нет |
string |
Номер телефона абонента. Подробнее
Для Push-сообщений является обязательным при отсутствии
параметра Содержит код страны, код оператора и номер телефона.
Для РФ код может быть
Примеры номеров: |
message |
да |
object |
Параметры отправляемого сообщения. |
message/type |
да |
enum |
Тип сообщения. Передается значение |
message/data |
да |
object |
Параметры отправляемых данных. |
message/data/
externalUserId
|
нет |
string |
ID пользователя для отправки Push-сообщения (логин, email, UID). |
message/data/ttl |
нет |
integer |
Срок жизни сообщения. ПодробнееДопустимый диапазон, секунд: от 30 до 86400. Примечание При Если
|
message/data/
ttlUnit
|
нет |
enum |
Единица измерения периода доставки сообщения. Подробнее
Передается только вместе с Допустимые значения:
|
message/data/
serviceNumber
|
нет |
string |
Сервисное имя, от которого осуществляется отправка сообщения. |
message/data/text |
да |
string |
Текст отправляемого сообщения. ПодробнееКоличество символов: не более 1000. |
Запрос с заголовком title |
|||
message/data/title |
нет |
string |
Заголовок для текстового сообщения. ПодробнееКоличество символов: не более 80. |
Запрос с признаком главного приложения (primaryOn)
|
|||
message/data/
primaryOn
|
нет |
boolean |
Признак главного приложения, установленного на устройство абонента. ПодробнееДопустимые значения:
Если параметр отсутствует, то передается тоже на все устройства пользователя. |
registeredDelivery |
нет |
integer |
Необходимость отчётов о доставке. ПодробнееВозможные значения:
|
notifyUrl |
нет |
string |
Имя хоста входящего API для получения отчета о доставке (см. Сервис получения статусов доставки сообщений). ПодробнееЭтот параметр в запросе необязательный, но при его отправке нужно учесть следующее:
При невыполнении любого из указанных условий будет сгенерирована ошибка, запрос не будет выполнен. |
Запрос с указанием категории содержимого – изображений, HTML-ссылок и кнопок (contentCategory) |
|||
message/data/
content
|
нет |
object |
Параметры для отправки изображений, HTML-ссылок и кнопок. |
message/data/
content/
contentCategory
|
нет |
enum |
Категория содержимого по ссылке ПодробнееВозможные значения:
|
message/data/
content/
contentUrl
|
нет |
string |
URL-адрес изображения или HTML. ПодробнееМаксимальная длина ссылки: 512 символов.
Требования к изображению при
|
Запрос для отображения кнопок (actions)
|
|||
message/data/
content/actions
|
нет |
array |
Массив, в котором передаются кнопки. Описание атрибутов кнопки приведено в таблице ниже. ПодробнееКнопки позволяют:
|
message/data/
content/actions/
title
|
нет |
string |
Надпись на кнопке. ПодробнееКоличество символов, не более: 64. |
message/data/
content/actions/
action
|
нет |
string |
Текстовый идентификатор кнопки в мобильном приложении. ПодробнееОпределяет действие, которое будет выполняться при клике на кнопку. Параметр настраивается в мобильном приложении. Количество символов, не более: 64. Допустимые значения:
|
message/data/
content/actions/
options
|
нет |
string |
Дополнительные параметры кнопки. ПодробнееНабор зависит от ОС, определяется разработчиком мобильного приложения. Параметр настраивается в мобильном приложении. Количество символов, не более: 300.
В случае кнопки с |
Запрос с подписками (deviceSubscriptions) |
|||
message/data/
deviceSubscriptions
|
нет |
array |
Передаваемый массив с перечнем подписок мобильного приложения. |
Запрос с данными для приложения (customPayload) |
|||
message/data/
customPayload
|
нет |
JSON Object |
Данные, которые передаются в исходном виде для дальнейшей обработки на уровне клиентского приложения. |
Запрос с данными для статистики (callbackData)
|
|||
message/data/
callbackData
|
нет |
string |
Клиентские данные для статистики. ПодробнееПри получении сохраняются в передаваемом виде, при необходимости возможен вывод в статистических данных. |
Запрос с обогащенными данными (extraOptions)
|
|||
message/data/
extraOptions
|
нет |
array |
Массив объектов дополнительных данных от партнера. Подробнее
Содержит два обязательных параметра: |
message/data/
extraOptioparam_name
|
да |
string |
Передача признака сообщения. ПодробнееВозможные значения:
|
message/data/
extraOptions/
param_value
|
да |
string |
В зависимости от переданного в |
param_name=RICH
|
|||
message/data/
extraOptions/
param_value/title
|
нет |
string |
Заголовок сообщения. ПодробнееЕсли приходит, то происходит подмена присланного заголовка или задается заголовок вместо пустого. |
message/data/
exraOptions/
param_value/message
|
нет |
string |
Текст сообщения. Подробнее
Если приходит в |
message/data/
extraOptions/
param_value/
content-category
|
нет |
string |
Тип контента. Подробнее
Если приходит, то заменяется вместе с url. Если URL пустой,
то |
message/data/
extraOptions/
param_value/
content-url
|
нет |
string |
Ссылка для контента. ПодробнееЕсли не указан тип контента, то подставляется как url вместо присланного. Если url не присылается и типа контента не было прислано, то игнорируется. |
message/data/
extraOptions/
param_value/
custom-payload
|
нет |
string |
Пользовательские данные. ПодробнееЕсли приходит, то заменяют присланные ранее или задаются новые данные, если не было прислано ранее. |
message/data/
extraOptions/
param_value/actions
|
нет |
array |
Список кнопок. ПодробнееЕсли приходят не пустые данные, то происходит замена присланного ранее контента. |
param_name=LIVE_ACTIVITY |
|||
message/data/
extraOptions/
param_value/aps/
stale_date *
|
нет |
timestamp |
|
message/data/
extraOptions/
param_value/aps/
dismissal_date *
|
нет |
timestamp |
ПодробнееПосле того, как виджет перестанет быть активным, он может еще 4 часа оставаться на экране блокировки, если его не закрыть. Чтобы закрыть сразу и не ждать, можно указать дату, которая уже прошла. |
message/data/
extraOptions/
param_value/aps/
timestamp *
|
да |
timestamp |
|
message/data/
extraOptions/
param_value/aps/
event *
|
да |
string |
Событие для обновления Live Activity. ПодробнееПринимает следующие значения:
|
message/data/
extraOptions/
param_value/aps/
content_state *
|
нет |
object |
Данные, которые будут отображаться в виджете Live Activity. ПодробнееПараметры передаются разработчиком виджета. Данный блок не валидируется. В demo приложении реализовано:
|
param_name=SECURE
|
|||
message/data/
extraOptions/
param_value
|
нет |
string |
Наименования параметров с чувствительными данными ( ПодробнееПри отправке через облачных провайдеров чувствительные данные, передаваемые в push-уведомлении, маскируются при помощи шаблонов (подстановки в тексте и заголовке уведомления). Требования к наименованию параметров с данными для подстановки:
На примере выше (запрос с обогащенными данными
Соответственно, эти значения обязательно должны быть переданы в
|
param_name=SENDING_PLATFORMS
|
|||
message/data/
extraOptions/
param_value
|
нет |
string |
Перечень наименований провайдеров, на которые необходимо выполнить отправку сообщений. ПодробнееВозможные значения:
|
Ответ на запрос#
После отправки сообщения Сервис-провайдер синхронно возвращает ответ. В случае успешной отправки возвращается HTTP-код 200 OK.
Ответ при успешной отправке#
1 {
2 "mtNum": "7390612217"
3 "id": "8770599"
4 }
Параметр |
Тип данных |
Описание |
|---|---|---|
mtNum |
string |
Идентификатор цепочки отправки, присваиваемый платформой Сервис-провайдера. |
id |
string |
Уникальный идентификатор на стороне Партнёра. Присутствует, если был передан при отправке. |
Ошибки при отправке#
Для ошибочных результатов HTTP-код ответа будет отличный от 200 OK (см. Коды ошибок отправки).
1 {
2 "error": {
3 "code": 1,
4 "description": "Service is unavailable"
5 }
6 }
Параметр |
Тип данных |
Описание |
|---|---|---|
error |
object |
Информация об ошибке. |
error/code |
int |
Код ошибки. |
error/description |
string |
Краткое описание ошибки. |
extendedDescription |
string |
Подробное описание ошибки (необязательный параметр). |
Коды ошибок отправки#
Код |
Описание |
HTTP-код |
|---|---|---|
1 |
Service is unavailable |
503 |
2 |
Invalid IP-address |
403 |
3 |
Too many connections |
429 |
4 |
Invalid request |
400 |
5 |
Invalid login |
401 |
6 |
Invalid password |
401 |
7 |
serviceNumber is not defined |
400 |
8 |
destAddr is not correct |
406 |
9 |
Message type is not correct |
406 |
10 |
Prohibited sending duplicates |
409 |
11 |
Invalid TTL |
406 |
100 |
100 |
500 |
Статусы доставки push-уведомлений#
Для получения статусов push-уведомлений необходимо настроить Сервис получения статусов доставки сообщений.
Коды ошибок доставки#
Коды ошибок доставки, в зависимости от типа сообщения, приведены в соответствующей вкладке в разделе Описание кодов ошибок.