PushID API

Отправка PushID

PushID — это отправка идентификатора абоненту через push-канал оператора связи (услуга типа «Пушок»). Услуга работает только для операторов, которые её
поддерживают. Если номер получателя принадлежит оператору без поддержки PushID, запрос по желанию может быть автоматически отправлен как обычное SMS — для этого служит параметр isSmsEnabled.

Про процедуру аутентификации и авторизации, которые связывают вызовы API
с необходимыми приложениями в Вашей учётной записи, см. раздел «Авторизация».

Запрос

Поддерживаются методы POST и GET.
Все параметры передаются в строке запроса (query string). Тело запроса не разбирается — передавать параметры в JSON-теле нельзя.

POST/GET [https://api.unibell.ru/pushid?X-Authorization=AccessKey](https://api.unibell.ru/pushid?X-Authorization=AccessKey) d8ac9959r12b43545XXXXX&destAddr=7XXXXXXXXXX&isSmsEnabled=1&sourceAddr=MySender&shortMessage=Текст сообщения

Пример запроса с использованием CURL:

curl --location --request POST '[https://api.unibell.ru/pushid?X-Authorization=AccessKey](https://api.unibell.ru/pushid?X-Authorization=AccessKey) d8ac9959r12b43545XXXXX&destAddr=7XXXXXXXXXX&isSmsEnabled=1&sourceAddr=MySender&shortMessage=Текст сообщения'
curl --location --request GET '[https://api.unibell.ru/pushid?X-Authorization=AccessKey](https://api.unibell.ru/pushid?X-Authorization=AccessKey) d8ac9959r12b43545XXXXX&destAddr=7XXXXXXXXXX'

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

ПараметрТипОписание
destAddrstringОбязательный. Номер телефона получателя в формате
e.164, например, для Российской Федерации 7XXXXXXXXXX.
Поле не должно содержать кириллицы.
Допускаются также форматы 8XXXXXXXXXX и +7XXXXXXXXXX —
они автоматически приводятся к 7XXXXXXXXXX.
isSmsEnabledstringНеобязательный. Флаг отправки SMS в случае, когда
оператор получателя не поддерживает PushID.
1 — при отсутствии поддержки PushID отправить обычное
SMS (обязательными становятся sourceAddr и
shortMessage);
0 или не указан — если оператор не поддерживает PushID,
запрос отклоняется (см. ошибку Destination is not
allowed).
sourceAddrstringИмя отправителя SMS (только латиница или номер телефона).
Поле не должно содержать кириллицы. Требуется только для
SMS-варианта (isSmsEnabled=1 и оператор не поддерживает
PushID). Для PushID игнорируется.
shortMessagestringТекст SMS-сообщения. Требуется только для SMS-варианта
(isSmsEnabled=1 и оператор не поддерживает PushID).
Для PushID игнорируется.

Как выбирается способ отправки

По номеру получателя определяется оператор/зона:

  • если оператор поддерживает PushID — отправляется PushID (в ответе type = PUSHID);
  • если оператор PushID не поддерживает:
    • при isSmsEnabled=1 — отправляется SMS (в ответе type = SMS);
    • иначе — запрос отклоняется с ошибкой Destination is not allowed.

Ответ при успешном выполнении запроса

ПараметрТипОписание
statusstringСтатус запроса:
ok — запрос принят к обработке.
invalidDataError — ошибка в параметрах запроса (уточнение
в поле error).
invalidAccessKeyError — ошибка в ключе авторизации.
prohibitedForServiceError — ключ не принадлежит услуге PushID.
accountFinanciallyBlocked — контрагент заблокирован по
балансу / блокировка по IP-адресу.
requestIdstringУникальный идентификатор запроса.
typestringСпособ отправки: PUSHID — отправлен PushID; SMS — отправлено
обычное SMS (fallback при isSmsEnabled=1).
errorstringОписание ошибки (присутствует при status = invalidDataError).
Возможные значения:
Missing destAddr param — destAddr отсутствует в запросе.
Field destAddr must not contain Cyrillic — в destAddr
присутствует кириллица.
No zone found for the destAddr parameter — не удалось
определить оператора/зону по номеру.
Missing sourceAddr param — sourceAddr отсутствует
(для SMS-варианта).
Field sourceAddr must not contain Cyrillic — в sourceAddr
присутствует кириллица.
Missing shortMessage param — shortMessage отсутствует
(для SMS-варианта).

Примеры ответов при ошибках

Отсутствует destAddr:

{
"status": "invalidDataError",
"error": "Missing destAddr param"
}

Оператор не поддерживает PushID, а isSmsEnabled не задан (HTTP 500):

{
"errorCode": 500,
"errorReason": "Destination is not allowed"
}

На этой странице