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": "Текст сообщения"
}'
Параметр | Тип | Описание |
---|---|---|
sourceAddr | string | Имя отправителя (только латиница или номер телефона) Поле не должно содержать кириллицы |
destAddr | string | Номер телефона, на который отправляется SMS-сообщение в формате e.164, например, для Российской Федерации 7XXXXXXXXXX |
shortMessage | string | Текст сообщения |
Ответ при успешном выполнении запроса:
{
"status": "Created",
"requestId": "11273"
}
Ответ в случае отсутствия destAddr:
{
"status": "Rejected",
"error": "Missing destAddr param"
}
Параметр | Тип | Описание |
---|---|---|
status | string | Статус запроса: Created — Сообщение в системе создано, но ещё не отправлено Rejected — Сообщение не было принято к отправке, уточнение ошибки в error prohibitedForServiceError — Ключ не принадлежит услуге HLR invalidAccessKeyError — Ошибка в ключе авторизации |
requestId | string | Уникальный идентификатор запроса |
error | string | Описание ошибок: 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": "Текст сообщения"
}'
Параметр | Тип | Описание |
---|---|---|
sourceAddr | string | Имя отправителя Поле не должно содержать кириллицы |
destAddrs | string | Список телефонных номеров, на которые отправляются SMS-сообщения в формате e.164, например, для Российской Федерации 7XXXXXXXXXX |
shortMessage | string | Текст сообщения |
Тело ответа при выполнении запроса:
{
"status": "ok",
"results": [
{
"status": "Created",
"requestId": "11276",
"destAddr": "79123213232"
},
{
"status": "Rejected",
"error": "Not valid destAddr",
"destAddr": "2вауц"
},
{
"status": "Created",
"requestId": "11277",
"destAddr": "71233212323"
}
]
}
Параметр | Тип | Описание |
---|---|---|
status | string | Статус запроса: Created — Сообщение в системе создано, но ещё не отправлено Enroute — Сообщение смаршрутизировано и ожидает отправки Delivered — Сообщение доставлено, получен статус доставки от оператора Expired — Истекло время жизни сообщения Deleted — Сообщение было отменено Undeliverable — Сообщение не доставлено по причине: номер не существует, нет места для новых СМС в телефоне Accepted — Сообщение отправлено, статус доставки от оператора ещё не получен Unknown — Неизвестная ошибка Rejected — Сообщение не было принято к отправке, уточнение ошибки в error NotUnique — Сообщение не было отправлено, потому что дублирует ранее отправленное prohibitedForServiceError — Ключ не принадлежит услуге SMS invalidAccessKeyError — Ошибка в ключе авторизации |
results | string | Результаты по каждому получателю |
error | string | Описание ошибки: Missing destAddr param — destAddr отсутствует в запросе Missing sourceAddr param — sourceAddr отсутствует в запросе Missing shortMessage param — shortMessage отсутствует в запросе Field sourceAddr must not contain Cyrillic — в sourceAddr присутствует кириллица Not valid destAddr — Неправильно введен destAddr |
requestId | string | Уникальный идентификатор запроса |
destAddr | string | Номер телефона, на который отправляется 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"
}
Параметр | Тип | Описание |
---|---|---|
id | integer | Уникальный идентификатор SMS-сообщения |
destAddr | string | Номер телефона, на который было отправлено SMS-сообщение в формате e.164, например, для Российской Федерации 7XXXXXXXXXX |
requestId | string | Уникальный идентификатор запроса |
status | string | Статус запроса отправки SMS-сообщения: Created — Сообщение в системе создано, но ещё не отправлено Enroute — Сообщение смаршрутизировано и ожидает отправки Delivered — Сообщение доставлено, получен статус доставки от оператора Expired — Истекло время жизни сообщения Deleted — Сообщение было отменено Undeliverable — Сообщение не доставлено по причине: номер не существует, нет места для новых СМС в телефоне Accepted — Сообщение отправлено, статус доставки от оператора ещё не получен Unknown — Неизвестная ошибка Rejected — Мобильная сеть отклонила сообщение, скорее всего из-за фильтра или другого ограничения NotUnique — Сообщение не было отправлено, потому что дублирует ранее отправленное notFound — Если запись не найдена |
networkErrCode | string | Ошибки SS7, смотрите ниже |
mcc | integer | Mobile Country Code – код страны |
mnc | integer | Mobile Network Code – код мобильного оператора |
ported | integer | Информация о том, был ли портирован номер: 1 — если номер был портирован 0 — если не был портирован |
error | string | Описание ошибок: 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"
}
Параметр | Тип | Описание |
---|---|---|
ported | integer | Информация о том, был ли портирован номер: 1 — если номер был портирован 0 — если не был портирован |
mnc | integer | Mobile Network Code – код мобильного оператора |
requestId | string | Уникальный идентификатор запроса |
destAddr | string | Номер телефона, на который отправляется SMS-сообщение в формате e.164, например, для Российской Федерации 7XXXXXXXXXX |
id | integer | Уникальный идентификатор SMS-сообщения |
networkErrCode | string | Ошибки SS7, смотрите ниже |
mcc | integer | Mobile Country Code – код страны |
status | string | Статус запроса отправки SMS-сообщения: Created — Сообщение в системе создано, но ещё не отправлено Enroute — Сообщение смаршрутизировано и ожидает отправки Delivered — Сообщение доставлено, получен статус доставки от оператора Expired — Истекло время жизни сообщения Deleted — Сообщение было отменено Undeliverable — Сообщение не доставлено по причине: номер не существует, нет места для новых СМС в телефоне Accepted — Сообщение отправлено, статус доставки от оператора ещё не получен Unknown — Неизвестная ошибка Rejected — Сообщение не было принято к отправке, уточнение ошибки в error NotUnique — Сообщение не было отправлено, потому что дублирует ранее отправленное |
Коды ошибок в статусе
Возможные коды ошибок в статусе SMS (значения networkErrCode).
Все неуказанные коды считаются зависящими от поставщика и не обрабатываются отдельно.
Код | Расшифровка | Описание |
---|---|---|
1 | unknownSubscriber | Неизвестный абонент Абонент не зарегистрирован в сети |
5 | unidentifiedSubscriber | Неопознанный абонент Абонент зарегистрирован, но информация о нем отсутствует или недоступна |
9 | illegalSubscriber | Незаконный абонент Абоненту отказано в доступе из-за нарушения правил |
11 | teleserviceNotProvisioned | Телекоммуникационная услуга не представлена Абонент не подключен к запрашиваемой услуге |
13 | callBarred | Запрещенный вызов Запрет на вызов для данного абонента (например, из-за блокировки или ограничений тарифа) |
21 | facilityNotSupported | Услуга не поддерживается Запрошенная услуга недоступна для абонента или сети |
27 | adsentSubscriber | Адрес отправителя отсутствует Сообщение не доставлено из-за отсутствия данных об отправителе |
31 | subscriberBusyForMT-SMS | Абонент занят для получения MT-HLR Абонент не может принять HLR из-за занятости устройства |
32 | sm-DeliverFailure | Ошибка доставки HLR Общая ошибка, связанная с передачей HLR |
33 | messageWaitingListFull | Список ожидания сообщений переполнен В памяти устройства абонента нет места для новых сообщений |
34 | systemFailure | Системная ошибка Общая ошибка на стороне сети |
35 | dataMissing | Отсутствуют данные Не хватает информации для выполнения операции |
36 | unexpectedDataValue | Неожиданное значение данных Переданы некорректные или неожиданные данные |