SMS API

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

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

Запрос:

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

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

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

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

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

curl --location --request POST 'https://api.unibell.ru/v2/sms?X-Authorization=AccessKey%20d8ac9959r12b43545XXXXX&destAddr=7XXXXXXXXXX&sourceAddr=MySender&shortMessage=Текст сообщения&ttl=1000'
curl --location --request GET 'https://api.unibell.ru/v2/sms' \
--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 — Ключ не принадлежит услуге SMS
invalidAccessKeyError — Ошибка в ключе авторизации

accountFinanciallyBlocked — Контрагент заблокирован по балансу/Блокировка по IP адресу
unexpectedDataValue — Ошибка в значении TTL
requestIdstringУникальный идентификатор запроса
errorstringОписание ошибок:
Missing destAddr param — destAddr отсутствует в запросе
Missing sourceAddr param — sourceAddr отсутствует в запросе
Missing shortMessage param — shortMessage отсутствует в запросе
Field sourceAddr must not contain Cyrillic — в sourceAddr присутствует кириллица
Field ttl must be an integer — Поле ttl должно быть целым числом
Field ttl must be in range 1 — 86400 — Поле ttl должно находиться в диапазоне от 1 до 86400

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

Запрос:

POST 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
prohibitedForServiceError — Ключ не принадлежит услуге SMS
invalidAccessKeyError — Ошибка в ключе авторизации

accountFinanciallyBlocked — Контрагент заблокирован по балансу/Блокировка по IP адресу
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 — Мобильная сеть отклонила сообщение, скорее всего из-за фильтра или другого ограничения
notFound — Запись по запрошенному requestId отсутствует/не найдена
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

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

Запрос:

Параметры передаются в заголовке запроса:

POST/GET https://api.unibell.ru/v2/sms?X-Authorization=AccessKey d8ac9959r12b43545XXXXX&destAddr=7XXXXXXXXXX&sourceAddr=FlashCall&shortMessage=7341

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

curl --location --request POST 'https://api.unibell.ru/sms_new?X-Authorization=AccessKey%d8ac9959r12b43545XXXXX&destAddr=&sourceAddr=FlashCall&shortMessage=7341'
ПараметрТипОписание
sourceAddrstringУказывается метод отправления FlashingCall
Поле не должно содержать кириллицы
destAddrstringНомер телефона, на который отправляется FlashCall запрос в формате e.164, например, для Российской Федерации
7XXXXXXXXXX
shortMessagestringКод сообщения

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

{
    "status": "ok",
    "requestId": "eaa26d85f7c5571bd9d62004a9e6396e"
}

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

{
    "status": "invalidDataError",
    "error": "Missing destAddr param"
}
ПараметрТипОписание
statusstringСтатус запроса:
Created — Сообщение в системе создано, но ещё не отправлено
Rejected — Сообщение не было принято к отправке, уточнение ошибки в error
prohibitedForServiceError — Ключ не принадлежит услуге SMS
invalidAccessKeyError — Ошибка в ключе авторизации

accountFinanciallyBlocked — Контрагент заблокирован по балансу/Блокировка по IP адресу
requestIdstringУникальный идентификатор запроса
errorstringОписание ошибок:
Missing destAddr param — destAddr отсутствует в запросе
Missing sourceAddr param — sourceAddr отсутствует в запросе
Missing shortMessage param — shortMessage отсутствует в запросе
Field sourceAddr must not contain Cyrillic — в sourceAddr присутствует кириллица

Вы также можете получить статусты доставки FlashCall по API (подробнее см. Получение статуса).

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

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

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

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

Коды ошибок SMS

КодНазваниеОписание
0No errorОшибок нет
Абонент существует и доступен
1Unknown subscriberНомер телефона абонента не существует, неактивен или более не используется
2Unknown subscriber – NR ChangedОшибка переноса номера (Number Portability). Может возникать при многократном переносе номера
5Unidentified subscriberMSC не распознает IMSI абонента. Возможные причины: HLR не обновлен или сбой MSC
6Absent subscriber for SMSУстройство абонента недоступно для получения SMS (телефон выключен или вне зоны действия сети)
7Unknown equipmentСообщение отклонено, так как устройство абонента не идентифицировано
8Roaming not allowedСообщение отклонено из-за ошибки аутентификации или фильтрации при роуминге
9Illegal subscriberСообщение отклонено из-за ошибки аутентификации или фильтрации
10Bearer Service not provisionedПодписка абонента не поддерживает SMS
11Teleservice not provisionedАбонент не может принимать SMS. Причины: услуга не подключена, абонент в роуминге без активации SMS или оператор не налажал обмен SMS
12Illegal equipmentСообщение не доставлено из-за ошибки в телефоне абонента или SIM-карте; устройство или сеть не поддерживают SMS
13Call barredАбонент заблокирован: нулевой/отрицательный баланс, блокировка оператором, поврежденная SIM-карта, или неправильный PIN/PUK
21Facility not supportedПодписка или устройство абонента не поддерживают работу с SMS-сервисом
27Absent subscriberУстройство абонента не зарегистрировано в сети (выключено или вне зоны покрытия)
28Incompatible MS terminal errorФункция SMS не поддерживается мобильным устройством абонента
31Subscriber busy for SM MTУстройство абонента временно недоступно для доставки SMS
32Equipment failureПринимающее устройство не поддерживает SMS или соответствующую функцию
33MS memory capacity exceededПринимающее устройство не имеет достаточной памяти для получения сообщения
34GSM system failureMSC отклонил сообщение из-за сбоя протокола SS7 или сетевой ошибки
35GSM Data Error – data missingОтсутствуют данные GSM
36GSM Data ErrorНекорректные данные GSM
45Subscriber busyАбонент в данный момент не может выполнять GSM-операции
100RejectedByIpBlockedExceptionБлокировка по IP адресу
101RejectedByFinBlockedExceptionФинансовая блокировка
102SmsTemplateRejectedExceptionШаблон сообщения не найден
500Invalid destination addressНекорректный номер получателя
501-506Routing errorОшибка маршрутизации
507SystemFailureОбщий системный сбой
508ThrottledExceptionПревышен лимит запросов или сообщений (ограничение скорости/rate limit)
509Invalid parameter lengthНекорректная длина сообщения или параметра
510Invalid destination addressНекорректный адрес получателя (destination address)
511Loop detection errorОбнаружена петля маршрутизации (циклическая отправка)
512Invalid source addressНекорректный адрес отправителя (source address)
513System errorВнутренняя ошибка системы
999Unspecified errorНеопределенная ошибка (общий код без уточнения причины)
На этой странице