SMS API

Авторизация

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

Для этого каждый запрос должен содержать заголовок, либо аргумент X-Authorization с токеном соединения в формате AccessKey token.

Например заголовком:

POST /apps/activate HTTP/1.1
Host: app.sptele.ru
X-Authorization: AccessKey d8ac9959r12b43545XXXXX

X-Authorization передается в зависимости от настроек HTTP-подключения:

AccessKey d8ac9959r12b43545XXXXX — по умолчанию
Basic d8ac9959r12b43545XXXXX (или Basic base64encoded(username:password))
Bearer d8ac9959r12b43545XXXXX

либо параметром:

POST https://app.sptele.ru/api/apps/activate?X-Authorization=AccessKey d8ac9959r12b43545XXXXX

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

Запрос:

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

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

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

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

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

curl --location --request POST 'https://app.sptele.ru/api/v2/sms?X-Authorization=AccessKey%20d8ac9959r12b43545XXXXX&destAddr=7XXXXXXXXXX&sourceAddr=MySender&shortMessage=Текст сообщения'
curl --location 'https://app.sptele.ru/api/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 — Ошибка в ключе авторизации

accountFinanciallyBlocked — Контрагент заблокирован по балансу/Блокировка по IP адресу
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://app.sptele.ru/api/v2/sms_bulk?X-Authorization=AccessKey d8ac9959r12b43545XXXXX

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

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

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

curl --location 'https://app.sptele.ru/api/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 — Ошибка в ключе авторизации

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://app.sptele.ru/api/v2/sms_status?X-Authorization=AccessKey d8ac9959r12b43545XXXXX&requestId=11273

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

{
    "requestId": "11273"
}

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

curl --location 'https://app.sptele.ru/api/v2/sms_status' \
--header 'X-Authorization: AccessKey d8ac9959r12b43545XXXXX' \
--header 'requestId: 11273'
curl --location --request GET 'https://app.sptele.ru/api/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Неожиданное значение данных
Переданы некорректные или неожиданные данные

Коды ошибок 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Неопределенная ошибка (общий код без уточнения причины)
На этой странице