SMS API

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

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

Запрос:

Параметры можно передавать в заголовке запроса:

POST/GET https://api.unibell.ru/v2/sms?X-Authorization=AccessKey d8ac9959r12b43545XXXXX&destAddr=7XXXXXXXXXX&sourceAddr=MySender&shortMessage=Текст сообщения

А также в теле запроса:

{
    "sourceAddr": "MySender",
    "destAddr": "7XXXXXXXXXX",
    "shortMessage": "Текст сообщения"
}

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

curl --location --request POST 'https://api.unibell.ru/v2/sms?X-Authorization=AccessKey%20d8ac9959r12b43545XXXXX&destAddr=7XXXXXXXXXX&sourceAddr=MySender&shortMessage=Текст сообщения'
curl --location 'https://api.unibell.ru/v2/sms?=' \
--header 'X-Authorization: AccessKey d8ac9959r12b43545XXXXX' \
--header 'Content-Type: application/json' \
--data '{
    "sourceAddr": "MySender",
    "destAddr": "7XXXXXXXXXX",
    "shortMessage": "Текст сообщения"
}'
ПараметрТипОписание
sourceAddrstringИмя отправителя (только латиница или номер телефона)
Поле не должно содержать кириллицы
destAddrstringНомер телефона, на который отправляется SMS-сообщение в формате e.164, например, для Российской Федерации
7XXXXXXXXXX
shortMessagestringТекст сообщения

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

{
    "status": "Created",
    "requestId": "11273"
}

Ответ в случае отсутствия destAddr:

{
    "status": "Rejected",
    "error": "Missing destAddr param"
}
ПараметрТипОписание
statusstringСтатус запроса:
Created — Сообщение в системе создано, но ещё не отправлено
Rejected — Сообщение не было принято к отправке, уточнение ошибки в error
prohibitedForServiceError — Ключ не принадлежит услуге HLR
invalidAccessKeyError — Ошибка в ключе авторизации
requestIdstringУникальный идентификатор запроса
errorstringОписание ошибок:
Missing destAddr param — destAddr отсутствует в запросе
Missing sourceAddr param — sourceAddr отсутствует в запросе
Missing shortMessage param — shortMessage отсутствует в запросе
Field sourceAddr must not contain Cyrillic — в sourceAddr присутствует кириллица

Массовая отправка SMS-сообщений

Запрос:

POST/GET https://api.unibell.ru/v2/sms_bulk?X-Authorization=AccessKey d8ac9959r12b43545XXXXX

Тело запроса:

{
    "sourceAddr": "MySender",
    "destAddrs": [
        "79123213232",
        "2вауц",
        "71233212323"
    ],
    "shortMessage": "Текст сообщения"
}

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

curl --location 'https://api.unibell.ru/v2/sms_bulk' \
--header 'X-Authorization: AccessKey d8ac9959r12b43545XXXXX' \
--header 'Content-Type: application/json' \
--data '{
    "sourceAddr": "MySender",
    "destAddrs": [
        "79123213232",
        "2вауц",
        "71233212323"
    ],
    "shortMessage": "Текст сообщения"
}'
ПараметрТипОписание
sourceAddrstringИмя отправителя
Поле не должно содержать кириллицы
destAddrsstringСписок телефонных номеров, на которые отправляются SMS-сообщения в формате e.164, например, для Российской Федерации
7XXXXXXXXXX
shortMessagestringТекст сообщения

Тело ответа при выполнении запроса:

{
    "status": "ok",
    "results": [
        {
            "status": "Created",
            "requestId": "11276",
            "destAddr": "79123213232"
        },
        {
            "status": "Rejected",
            "error": "Not valid destAddr",
            "destAddr": "2вауц"
        },
        {
            "status": "Created",
            "requestId": "11277",
            "destAddr": "71233212323"
        }
    ]
}
ПараметрТипОписание
statusstringСтатус запроса:
Created — Сообщение в системе создано, но ещё не отправлено
Enroute — Сообщение смаршрутизировано и ожидает отправки
Delivered — Сообщение доставлено, получен статус доставки от оператора
Expired — Истекло время жизни сообщения
Deleted — Сообщение было отменено
Undeliverable — Сообщение не доставлено по причине: номер не существует, нет места для новых СМС в телефоне
Accepted — Сообщение отправлено, статус доставки от оператора ещё не получен
Unknown — Неизвестная ошибка
Rejected — Сообщение не было принято к отправке, уточнение ошибки в error
NotUnique — Сообщение не было отправлено, потому что дублирует ранее отправленное
prohibitedForServiceError — Ключ не принадлежит услуге SMS
invalidAccessKeyError — Ошибка в ключе авторизации
resultsstringРезультаты по каждому получателю
errorstringОписание ошибки:
Missing destAddr param — destAddr отсутствует в запросе
Missing sourceAddr param — sourceAddr отсутствует в запросе
Missing shortMessage param — shortMessage отсутствует в запросе
Field sourceAddr must not contain Cyrillic — в sourceAddr присутствует кириллица
Not valid destAddr — Неправильно введен destAddr
requestIdstringУникальный идентификатор запроса
destAddrstringНомер телефона, на который отправляется SMS-сообщение в формате e.164, например, для Российской Федерации
7XXXXXXXXXX

Получение статуса

Запрос:

Параметры можно передавать в заголовке запроса:

GET https://api.unibell.ru/v2/sms_status?X-Authorization=AccessKey d8ac9959r12b43545XXXXX&requestId=11273

А также в теле запроса:

{
    "requestId": "11273"
}

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

curl --location 'https://api.unibell.ru/v2/sms_status' \
--header 'X-Authorization: AccessKey d8ac9959r12b43545XXXXX' \
--header 'requestId: 11273'
curl --location --request GET 'https://api.unibell.ru/v2/sms_status' \
--header 'X-Authorization: AccessKey d8ac9959r12b43545XXXXX' \
--header 'Content-Type: application/json' \
--data '{
    "requestId": "11273"
}'

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

{
    "id": 9654,
    "destAddr": "7XXXXXXXXXX",
    "requestId": "11273",
    "status": "Rejected",
    "networkErrCode": 34,
    "mcc": 0,
    "mnc": 0,
    "ported": 0
}

Ответ в случае отсутствия параметра requestId:

{
    "status": "Rejected",
    "error": "Missing requestId param"
}
ПараметрТипОписание
idintegerУникальный идентификатор SMS-сообщения
destAddrstringНомер телефона, на который было отправлено SMS-сообщение в формате e.164, например, для Российской Федерации 7XXXXXXXXXX
requestIdstringУникальный идентификатор запроса
statusstringСтатус запроса отправки SMS-сообщения:
Created — Сообщение в системе создано, но ещё не отправлено
Enroute — Сообщение смаршрутизировано и ожидает отправки
Delivered — Сообщение доставлено, получен статус доставки от оператора
Expired — Истекло время жизни сообщения
Deleted — Сообщение было отменено
Undeliverable — Сообщение не доставлено по причине: номер не существует, нет места для новых СМС в телефоне
Accepted — Сообщение отправлено, статус доставки от оператора ещё не получен
Unknown — Неизвестная ошибка
Rejected — Мобильная сеть отклонила сообщение, скорее всего из-за фильтра или другого ограничения
NotUnique — Сообщение не было отправлено, потому что дублирует ранее отправленное
notFound — Если запись не найдена
networkErrCodestringОшибки SS7, смотрите ниже
mccintegerMobile Country Code – код страны
mncintegerMobile Network Code – код мобильного оператора
portedintegerИнформация о том, был ли портирован номер:
1 — если номер был портирован
0 — если не был портирован
errorstringОписание ошибок:
Missing requestId param — отсутсвтует requestId в запросе

Получение статусов сообщений на Webhook

Источник запросов:

Webhook будут приходить с IP-адресов 185.175.44.211 и 46.148.235.62, которые необходимо включить в ACL на стороне веб-сервера клиента для обеспечения корректного взаимодействия.

Формат взаимодействия:

Обратные вызовы выполняются по протоколу HTTP.

Данные передаются в формате JSON.

Настройка Webhook происходит по запросу в техническую поддержку.

Отправка запроса:

Запрос отправляется в формате JSON, который имеет следующую структуру:

{
  "ported": 0,
  "mnc": 0,
  "requestId": "35714061",
  "destAddr": "7XXXXXXXXXX",
  "id": 639073386,
  "networkErrCode": 0,
  "mcc": 0,
  "status": "Delivered"
}
ПараметрТипОписание
portedintegerИнформация о том, был ли портирован номер:
1 — если номер был портирован
0 — если не был портирован
mncintegerMobile Network Code – код мобильного оператора
requestIdstringУникальный идентификатор запроса
destAddrstringНомер телефона, на который отправляется SMS-сообщение в формате e.164, например, для Российской Федерации
7XXXXXXXXXX
idintegerУникальный идентификатор SMS-сообщения
networkErrCodestringОшибки SS7, смотрите ниже
mccintegerMobile Country Code – код страны
statusstringСтатус запроса отправки SMS-сообщения:
Created — Сообщение в системе создано, но ещё не отправлено
Enroute — Сообщение смаршрутизировано и ожидает отправки
Delivered — Сообщение доставлено, получен статус доставки от оператора
Expired — Истекло время жизни сообщения
Deleted — Сообщение было отменено
Undeliverable — Сообщение не доставлено по причине: номер не существует, нет места для новых СМС в телефоне
Accepted — Сообщение отправлено, статус доставки от оператора ещё не получен
Unknown — Неизвестная ошибка
Rejected — Сообщение не было принято к отправке, уточнение ошибки в error
NotUnique — Сообщение не было отправлено, потому что дублирует ранее отправленное

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

Возможные коды ошибок в статусе SMS (значения networkErrCode).

Все неуказанные коды считаются зависящими от поставщика и не обрабатываются отдельно.

КодРасшифровкаОписание
1unknownSubscriberНеизвестный абонент
Абонент не зарегистрирован в сети
5unidentifiedSubscriberНеопознанный абонент
Абонент зарегистрирован, но информация о нем отсутствует или недоступна
9illegalSubscriberНезаконный абонент
Абоненту отказано в доступе из-за нарушения правил
11teleserviceNotProvisionedТелекоммуникационная услуга не представлена
Абонент не подключен к запрашиваемой услуге
13callBarredЗапрещенный вызов
Запрет на вызов для данного абонента (например, из-за блокировки или ограничений тарифа)
21facilityNotSupportedУслуга не поддерживается
Запрошенная услуга недоступна для абонента или сети
27adsentSubscriberАдрес отправителя отсутствует
Сообщение не доставлено из-за отсутствия данных об отправителе
31subscriberBusyForMT-SMSАбонент занят для получения MT-HLR
Абонент не может принять HLR из-за занятости устройства
32sm-DeliverFailureОшибка доставки HLR
Общая ошибка, связанная с передачей HLR
33messageWaitingListFullСписок ожидания сообщений переполнен
В памяти устройства абонента нет места для новых сообщений
34systemFailureСистемная ошибка
Общая ошибка на стороне сети
35dataMissingОтсутствуют данные
Не хватает информации для выполнения операции
36unexpectedDataValueНеожиданное значение данных
Переданы некорректные или неожиданные данные
На этой странице