HTTP API¶
Обзор API¶
Предоставляемый API сервис отправки SMS-сообщений позволяет осуществить:
- Аутентификацию
- Отправку SMS-сообщения на один номер без учета часового пояса получателя
- Отправку SMS-сообщения на один номер с учетом часового пояса получателя
- Отправку SMS-сообщения на несколько номеров без учета часового пояса получателя
- Получение статуса отправленного SMS-сообщения
- Получение входящих SMS-сообщений за период
- Получение статистики по SMS-рассылкам
- Получение баланса авторизованного Пользователя
API Сервиса отправки SMS-сообщений организован в соответствии с принципами REST, что позволяет обмениваться HTTPS-запросами с URL-encoded кодировкой. HTTPS - это обычный HTTP, работающий через шифрованные транспортные механизмы SSL и TLS. Это позволяет обеспечить защиту от атак, основанных на прослушивании сетевого соединения (снифферских атак и атак типа man-in-the-middle), при условии использования шифрующих средств и подтвержденной надежности сертификата сервера.
Запрос к API состоит из следующих элементов:
- основной URL запроса: https://integrationapi.net/rest/
- ресурс (например: /Sms/SendByTimeZone)
- параметры GET или POST-запроса (в кодировке UTF-8)
Аутентификация¶
Сервис создает идентификатор сессии в Системе после прохождения аутентификации данных, передаваемых сервису в GET-запросе следующего формата:
https://integrationapi.net/rest/user/sessionid?login=<Login>&password=<Password>
Параметры запроса представляют собой последовательность пар вида {имя параметра}={значение параметра}, разделенных символом амперсанда (&). Content-Type для параметров запроса: application/x-www-form-urlencoded Это формат для кодирования пар «ключ-значение» с возможностью дублирования ключей. Каждая пара ключ-значение отделяется символом «&», ключ отделен от значения символом «=». При этом пробелы должны заменяться на знак «+», а затем, используя URL-кодирование, могут быть заменены на буквенно-цифровые символы. Например:
login: Jonathan password: a+b==13%!
Должно быть закодировано как:
login=Jonathan&password=a%2Bb%3D%3D13%25!
Ниже приведен пример запроса:
https://integrationapi.net/rest/user/sessionid?login=test&password=11111
В Табл. 1 приводится полный список параметров GET-запроса.
Табл. 1. Параметры GET-запроса для аутентификации
| Параметр | Тип данных | Описание |
|---|---|---|
| Обязательные параметры | ||
| Login | String | Логин,полученный при регистрации |
| Password | String | Пароль, соответствующий логину |
В случае успешной аутентификации предоставленных данных от сервиса отправки SMS-сообщений будет получен ответ со следующими параметрами:
HTTP status code: 200 ОК (статус «OperationComplete»);
Cache-Control: private (указание на то, что ответ разрешается сохранять только в закрытом кэше, т.е. только для текущего Пользователя);
Connection: Keep-Alive (наименование заголовка соединения, которое не надо обновлять в кэше);
Content-Type: application/json; charset=utf-8 (фактически значение вернется в виде строки в кавычках (не в виде JSON) и кодировке utf-8);
“Идентификатор сессии (GUID)”
Ниже приведен пример ответа:
HTTP/1.1 200 OK
Cache-Control: private
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
"Z5CYSZEKDL1DPICU37WEHQVOYKP0T1GSLHX1"
В случае возникновения исключительной ситуации в ходе обработки запроса или ошибки аутентификации Сервис возвращает Код ошибки (см. Табл. 10) в виде JSON следующего формата:
{
Code: <Код ошибки>,
Desc: <”Текст ошибки”>
}
Например, при ошибке авторизации:
{
Code: 4,
Desc: "Invalid user login or password"
}
Полученный идентификатор сессии действителен в течение 120 минут.
Получение баланса авторизованного пользователя¶
Протокол HTTP не имеет состояний. Это означает, что веб-сервер обрабатывает каждый HTTP-запрос со стороны внешнего приложения или сайта независимо и не сохраняет значения переменных, использованных в предшествующих запросах. Поэтому при выполнении запроса на получение баланса пользователя также необходимо передавать данные, полученные при авторизации этого пользователя. Сервис возвращает значение баланса авторизованного пользователя в соответствии со значениями параметров, передаваемых сервису в GET-запросе следующего формата:
https://integrationapi.net/rest/User/Balance?SessionID=<Идентификатор сессии>
Ниже приведен пример запроса:
https://integrationapi.net/rest/User/Balance?SessionID=Z5CYSZEKDL1DPICU37WEHQVOYKP0T1GSLHX1
В Табл. 2 приводится полный список параметров запроса.
Табл. 2. Параметры GET-запроса баланса
| Параметр | Тип данных | Описание |
|---|---|---|
| Обязательные параметры | ||
| SessionID | String | Идентификатор сессии, полученный при аутентификации |
Сервис проверяет валидность полученного SessionID (проверяет актуальность и наличие в Системе). В случае успеха сервис авторизует пользователя и в ответе передает баланс пользователя со следующими параметрами:
HTTP/1.1 200 OK
Cache-Control: private
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
<Баланс пользователя>
Ниже приведен пример ответа:
HTTP/1.1 200 OK
Cache-Control: private
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
В случае возникновения исключительной ситуации при обработке запроса или ошибки аутентификации сервис возвращает код ошибки (см. Табл. 10) в виде JSON следующего формата:
{
Code: <Код ошибки>,
Desc: <”Текст ошибки”>
}
Например, при ошибке аутентификации идентификатора сессии:
{
Code: 4,
Desc: "SessionID expired"
}
Отправка SMS-сообщений¶
Отправка SMS-сообщения на один номер без учета часового пояса получателя¶
Сервис инициирует отправку SMS-сообщения в соответствии со значениями параметров, передаваемых сервису в POST-запросе следующего формата:
https://integrationapi.net/rest/Sms/Send?SessionID=<Идентификатор сессии>&SourceAddress=<Адрес отправителя>& DestinationAddress=<Номер получателя>&Data=<Текст сообщения>&Validity=<Время жизни сообщения>
Ниже приведен пример запроса:
https://integrationapi.net/rest/Sms/Send?SessionId=C619DF83829F4C3094CB54F4D62878786B5B&DestinationAddress=79161002030&SourceAddress=DEVINO&Data=test&Validity=0
В Табл. 3 приводится полный список параметров запроса.
Табл. 3. Параметры запроса на отправку SMS-сообщения
| Параметр | Тип данных | Описание |
|---|---|---|
| Обязательные параметры | ||
| SessionID | String | Идентификатор сессии, полученный при аутентификации (36 символов) |
| DestinationAddress | String | Номер получателя сообщения, в международном формате: код страны и код сети плюс номер телефона. Пример:
|
| Data | String | Текст сообщения, не более 2000 символов |
| SourceAddress | String | Адрес отправителя, не более 11 латинских символов или 15 цифр |
| Необязательные параметры | ||
| SendDate | DateTime | Дата и время отправки (пример 2011-01-28T16:00:00). Если в запросе передается этот параметр, то сообщение будет отправлено только при наступлении полученных даты и времени без учета текущего часового пояса получателя. Сообщение отправится при наступлении переданного времени в часовом поясе: GMT+03:00. Если не требуется отложенная отправка, то передавать данный параметр не нужно. |
| Validity | Int | Время жизни сообщения (в минутах) |
Перед отправкой SMS-сервис выполняет проверку запроса:
- наличие обязательных параметров;
- валидность сессии Пользователя (аутентификацию и определение, не истекло ли его время жизни SessionID);
- баланс пользователя на отправку SMS (достаточность средств на балансе определяется тарифом текущего пользователя на отправку SMS для мобильного оператора указанного в запросе номера);
- валидность указанного в запросе номера;
- валидность адреса отправителя;
- длина сообщения.
Если все проверки пройдены успешно, сервис отправляет сообщение в SMS-центр и возвращает идентификатор отправленного сообщения с параметрами:
Формат ответа:
HTTP/1.1 200 OK
Cache-Control: private
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
<Идентификатор сообщения>
Например:
HTTP/1.1 200 OK
Cache-Control: private
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
["579700854169272358"]
В случае превышения длины отправляемого сообщения (70 символов на кириллице или 160 символов на латинице) сервис возвращает ответ в виде последовательности идентификаторов сообщений. Например:
["579700854169272358","579700854169272359"]
В случае непрохождения других проверок сервис возвращает код ошибки (см. Табл. 10) в виде JSON следующего формата:
{
Code: <Код ошибки>,
Desc: <”Текст ошибки”>
}
Например:
{
Code: 6,
Desc: "Invalid source address"
}
Отправка SMS-сообщения на один номер с учетом часового пояса получателя:¶
Сервис инициирует отправку SMS-сообщения в соответствии со значениями параметров, передаваемых сервису в POST-запросе следующего формата:
https://integrationapi.net/rest/Sms/SendByTimeZone?SessionID=<Идентификатор сессии>&SourceAddress=<Адрес отправителя>&DestinationAddress=<Номер получателя>&Data=<Текст сообщения>&Validity=<Время жизни сообщения>&SendDate=<Дата отправки сообщения>
Ниже приведен пример запроса:
https://integrationapi.net/rest/Sms/SendByTimeZone?SessionId=Z5CYSZEKDL1DPICU37WEHQVOYKP0T1GSLHX1&SourceAddress=TESTSMS&DestinationAddress=79001234567&Data=testdata&Validity=10&destinationAddress=79160000000&data=testdata&sendDate=2011-01-28T16:00:00&validity=10
В Табл. 4 приводится полный список параметров запроса.
Табл. 4. Параметры POST-запроса на отправку SMS-сообщения c учетом часового пояса
| Параметр | Тип данных | Описание |
|---|---|---|
| Обязательные параметры | ||
| SessionID | String | Идентификатор сессии, полученный при аутентификации (36 символов) |
| DestinationAddress | String | Номер получателя сообщения, в международном формате: код страны и код сети плюс номер телефона. Пример:
|
| Data | String | Текст сообщения (не более 2000 символов) |
| SourceAddress | String | Адрес отправителя (не более 11 латинских символов или 15 цифр) |
| SendDate | DateTime | Дата и время отправки (пример 2011-01-28T16:00:00). Если в запросе передается этот параметр, то сообщение будет отправлено только при наступлении полученных даты и времени с учетом текущего часового пояса получателя. Если не требуется отложенная отправка, то передавать данный параметр не нужно. |
| Необязательные параметры | ||
| Validity | Int | Время жизни сообщения (в минутах) |
Перед отправкой SMS-сервис выполняет проверку запроса:
- наличие обязательных параметров;
- валидность сессии Пользователя (аутентификацию и определение, не истекло ли его время жизни SessionID);
- баланс пользователя на отправку SMS (достаточность средств на балансе определяется тарифом текущего пользователя на отправку SMS для мобильного оператора указанного в запросе номера);
- валидность указанного в запросе номера;
- валидность адреса отправителя;
- длина сообщения.
Если все проверки пройдены успешно, сервис отправляет сообщение в SMS-центр и возвращает идентификатор отправленного сообщения с параметрами: Формат ответа:
HTTP/1.1 200 OK
Cache-Control: private
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
<Идентификатор сообщения>
Например:
HTTP/1.1 200 OK
Cache-Control: private
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
["579700854169272359"]
В случае превышения длины отправляемого сообщения (70 символов на кириллице или 160 символов на латинице) сервис возвращает ответ в виде последовательности идентификаторов сообщений. Например:
["579700854169272358","579700854169272359"]
Например:
HTTP/1.1 200 OK
Cache-Control: private
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
["579700854169272358","579700854169272359"]
В случае непрохождения других проверок сервис возвращает код ошибки (см. Табл. 10) в виде JSON следующего формата:
{
Code: <Код ошибки>,
Desc: <”Текст ошибки”>
}
Например:
{
Code: 6,
Desc: "Invalid source address"
}
Отправка SMS-сообщения на несколько номеров без учета часового пояса получателя:¶
Сервис инициирует отправку SMS-сообщения на несколько номеров в соответствии со значениями параметров, передаваемых сервису в POST-запросе следующего формата:
Отправка SMS-сообщения на несколько номеров без учета часового пояса получателя: Сервис инициирует отправку SMS-сообщения на несколько номеров в соответствии со значениями параметров, передаваемых сервису в POST-запросе следующего формата:
https://integrationapi.net/rest/Sms/SendBulk?SessionID=<Идентификатор сессии>&SourceAddress=<Адрес отправителя>&DestinationAddresses=<Номер(а) получателя>&Data=<Текст сообщения>&Validity=<Время жизни сообщения>
Ниже приведен пример запроса:
https://integrationapi.net/rest/Sms/SendBulk?SessionID=Z5CYSZEKDL1DPICU37WEHQVOYKP0T1GSLHX1&SourceAddress=TESTSMS&DestinationAddresses=79001234567&Data=testdata&Validity=10&DestinationAddresses=79160000000&data=testdata&sendDate=2011-01-28T16:00:00&validity=10
В Табл. 5 приводится полный список параметров запроса.
Табл. 5. Параметры POST-запроса на отправку SMS-сообщения на несколько номеров
| Параметр | Тип данных | Описание |
|---|---|---|
| Обязательные параметры | ||
| SessionID | String | Идентификатор сессии, полученный при аутентификации (36 символов) |
| DestinationAddresses | String | Номер получателя сообщения, в международном формате: код страны и код сети плюс номер телефона. Пример:
|
| Data | String | Текст сообщения (не более 2000 символов) |
| SourceAddress | String | Адрес отправителя (не более 11 латинских символов или 15 цифр) |
| Необязательные параметры | ||
| Validity | Int | Время жизни сообщения (в минутах) |
| SendDate | DateTime | Дата и время отправки (пример 2010-0601T19:14:00). Если не требуется отложенная отправка, то передавать данный параметр не нужно. |
Перед отправкой SMS-сервис выполняет проверку запроса:
- наличие обязательных параметров;
- валидность сессии пользователя (аутентификацию и определение, не истекло ли его время жизни SessionID);
- баланс пользователя на отправку SMS (достаточность средств на балансе определяется тарифом текущего пользователя на отправку SMS для мобильного оператора указанного в запросе номера);
- валидность указанного в запросе номера;
- валидность адреса отправителя;
- длина сообщения.
Если все проверки пройдены успешно, сервис отправляет сообщение в SMS-центр и возвращает идентификатор отправленного сообщения с параметрами:
Формат ответа:
HTTP/1.1 200 OK
Cache-Control: private
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
<Идентификатор сообщения>
Например:
HTTP/1.1 200 OK
Cache-Control: private
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
["579700854169272358"]
В случае превышения длины отправляемого сообщения (70 символов на кириллице или 160 символов на латинице) сервис возвращает ответ в виде последовательности идентификаторов сообщений. Для нескольких сообщений идентификаторы сегментов будут расположены последовательно – сначала последовательно все сегменты одного сообщения, затем – все сегменты другого. Например:
["579700854169272358","579700854169272359","579700854169272360","579700854169272361"]
Например:
HTTP/1.1 200 OK
Cache-Control: private
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
["579700854169272358","579700854169272359","579700854169272360","579700854169272361"]
В случае непрохождения других проверок сервис возвращает код ошибки (см. Табл. 10) в виде JSON следующего формата:
{
Code: <Код ошибки>,
Desc: <”Текст ошибки”>
}
Например:
{
Code: 6,
Desc: "Invalid source address"
}
Внимание! Возможность отправки sms на несколько номеров с учетом часового пояса получателя пока недоступна.
Получение статуса отправленного SMS-сообщения¶
Сервис возвращает статус отправленного sms-сообщения в соответствии со значениями параметров, передаваемых сервису в GET-запросе следующего формата:
https://integrationapi.net/rest/Sms/State?sessionId=<Идентификатор сессии>&messageId=<Идентификатор сообщения>
Ниже приведен пример запроса для односегментного сообщения (длина которого не превышает 70 символов на кириллице или 160 символов на латинице):
https://integrationapi.net/rest/Sms/State?sessionId=Z5CYSZEKDL1DPICU37WEHQVOYKP0T1GSLHX1&messageId=579700854169272358
Для многосегментных сообщений (длина сообщения превышает 70 символов на кириллице и 160 на латинице) запрос должен формироваться для каждого сегмента сообщения, например:
https://integrationapi.net/rest/Sms/State?sessionID=1AED345F65DD4C27BD37A17970C427FAE991&messageID=579700854169272358
Табл. 6. Параметры GET-запроса статуса отправленного сообщения (сегмента сообщения)
| Параметр | Тип данных | Описание |
|---|---|---|
| SessionID | String | Идентификатор сессии, полученный при аутентификации (36 символов) |
| DestinationAddress | String | Идентификатор сообщения (сегмента сообщения). Для одного запроса будет выполнен возврат статуса только одного сообщения (сегмента сообщения). |
После получения запроса сервис проверяет валидность идентификатора сессии и наличие отправленного сообщения (сегмента сообщения) с присланным идентификатором. Если все проверки пройдены успешно, то сервис вернет статус отправленного sms-сообщения в json-формате со следующими параметрами:
HTTP/1.1 200 OK
Cache-Control: private
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
{"State":<Код статуса сообщения>,
"CreationDateUtc":<Дата создания>,
"SubmittedDateUtc":<Дата отправки сообщения>,
"ReportedDateUtc":<Дата доставки сообщения>,
"TimeStampUtc":"<Дата и время получения отчета>",
"StateDescription":"<Описание статуса>",
"Price":<Стоимость>}
Например:
HTTP/1.1 200 OK
Cache-Control: private
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
{"State":255,"CreationDateUtc":null,"SubmittedDateUtc":null,"ReportedDateU tc":null,"TimeStampUtc":"\/Date(-
62135596800000)\/","StateDescription":"Неизвестный","Price":null}
Если какая-нлибо проверка неуспешна, сервис возвращает код ошибки (см. Табл. 10) в виде JSON следующего формата:
{
Code: <Код ошибки>,
Desc: <”Текст ошибки”>
}
Например:
{
Code: 1,
Desc: "MessageID can not be null or empty Parameter name: messageId"
}
Табл. 7. Параметры ответа на запрос статуса сообщения
| Наименование поля | Описание |
|---|---|
| State | Статус сообщения (см. Табл. 11) |
| TimeStampUtc | Дата и время получения отчета (Гринвич GMT00:00) |
| StateDescription | Описание статуса |
| CreationDateUtc | Дата создания |
| SubmittedDateUtc | Дата отправки |
| ReportedDateUtc | Дата доставки |
| Price | Цена за сообщение |
Получение SMS-сообщений за период¶
Сервис возвращает входящие sms-сообщения за период в соответствии со значениями параметров, передаваемых сервису в GET-запросе следующего формата:
https://integrationapi.net/rest/Sms/In?sessionId=<Идентификатор сессии>& minDateUTC=<Дата и время начала периода>&maxDateUTC=<Дата и время окончания периода>
Ниже приведен пример запроса:
https://integrationapi.net/rest/Sms/In?sessionId=Z5CYSZEKDL1DPICU37WEHQVOYKP0T1GSLHX1&minDateUTC=2011-01-01T00:00:00&maxDateUTC=2011-01-11T00:00:00
Табл. 8. Параметры GET-запроса на получение сообщений за период
| Параметр | Тип данных | Описание |
|---|---|---|
| SessionID | String | Идентификатор сессии, полученный при аутентификации (36 символов) |
| maxDateUTC | DateTime | Дата и время окончания периода, за который происходит выборка входящих сообщений (например, 2010-06-02T19:14:00). |
| Необязательные параметры | ||
| minDateUTC | DateTime | Дата и время начала периода, за который происходит выборка входящих сообщений (например, 2010-06-01T19:14:00). |
После получения запроса сервис проверит валидность идентификатора сессии и даты-времени начала и окончания периода присланным идентификатором. Если все проверки пройдены успешно, то сервис вернет перечень сообщений и их параметров за период в json-файла следующего формата:
HTTP/1.1 200 OK
Cache-Control: private
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
[{"Data":<Текст сообщения>,
"SourceAddress":<Адрес отправителя>,
"DestinationAddress":<Номер получателя>,
"ID":<Идентификатор сообщения>,
"CreatedDateUtc":<Дата создания>}]
Например:
HTTP/1.1 200 OK
Cache-Control: private
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
[{"Data":"test1",
"SourceAddress":"79260000000",
"DestinationAddress":"79160000000",
"ID":539187174,
"CreatedDateUtc":"\/Date(1294045911213)\/"},
{"Data":"test2",
"SourceAddress":"79260000001",
"DestinationAddress":"79160000000",
"ID":539187214,
"CreatedDateUtc":"\/Date(1294045911353)\/"}]
Если какая-либо проверка неуспешна, сервис возвращает код ошибки (см. Табл. 10) в виде JSON следующего формата:
{
Code: <Код ошибки>,
Desc: <”Текст ошибки”>
}
Например:
{
Code: 9,
Desc: "The parameters dictionary contains a null entry for parameter
'maxDateUtc' of non-nullable type 'DateTime' for method
'System.Web.Mvc.ActionResult In(System.String, DateTime, DateTime)' in
'RestService.Controllers.SmsController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters"
}
Получение статистики по SMS-рассылкам¶
Сервис возвращает статистику по SMS-рассылкам за период в соответствии со значениями параметров, передаваемых сервису в GET-запросе следующего формата:
https://integrationapi.net/rest/Sms/Statistics?sessionId=FBHKZT9TBBTUWYUR1PYUTYRAGRLUUG0R8A8Z&startDateTime=2012-01-18%2000:00:00&endDateTime=2012-01-18%2023:59:00
Ниже приведен пример запроса:
https://integrationapi.net/rest/Sms/Statistics?sessionId=FBHKZT9TBBTUWYUR1PYUTYRAGRLUUG0R8A8Z&startDateTime=2012-01-18%2000:00:00&endDateTime=2012-0118%2023:59:00
Табл. 9. Параметры GET-запроса на формирование статистики за период
| Параметр | Тип данных | Описание |
|---|---|---|
| Обязательные параметры | ||
| SessionID | String | Идентификатор сессии (36 символов) |
| startDateTime | DateTime | Дата и время начала периода, за который необходимо получить статистику, например 2012-01-18%2000:00:00. |
| endDateTime | DateTime | Дата и время конца периода, за который необходимо получить статистику, например 2012-01-18%2023:59:00. |
| Необязательные параметры | ||
После получения запроса сервис проверяет валидность присланного идентификатора сессии, корректность дат начала/окончания формирования статистики, диапазон дат (не более 3 месяцев). Если все проверки пройдены успешно, сервис возвращает статистику по sms-сообщениям в json-формате со следующими параметрами:
HTTP/1.1 200 OK
Cache-Control: private
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
{"Sent":<Отправлено>,
"Delivered":<Доставлено>,
"Errors":<С ошибками>,
"InProcess":<В процессе>,
"Expired":<С истекшим сроком доставки>,
"Rejected":<Отмененные>,
"Total":<Всего>,
"TotalWithErrors":<Всего с ошибками>,
"DeliveryRatio":<Успешно доставлено>}
Например:
HTTP/1.1 200 OK
Cache-Control: private
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
{"Sent":9,
"Delivered":0,
"Errors":0,
"InProcess":7780,
"Expired":0,
"Rejected":56876,
"Total":64665,
"TotalWithErrors":64665,
"DeliveryRatio":0}
Если какая-нибудь проверка не проходит успешно, то сервис возвращает код ошибки (см. Табл. 10) в виде JSON следующего формата:
{
Code: <Код ошибки>,
Desc: <”Текст ошибки”>
}
Например:
{
Code: 2,
Desc: "Нельзя указывать диапазон дат более 90 дней."
}
Коды ошибок и статусы сообщений¶
Табл. 10. Коды ошибок
| REST error code | HTTP status code | Описание |
|---|---|---|
| 200 | Operation complete | |
| 1 | 400 | Argument cannot be null or empty |
| 2 | 400 | Invalid argument |
| 3 | 400 | Invalid session id |
| 4 | 401 | Unauthorized access |
| 5 | 403 | Not enough credits |
| 6 | 400 | Invalid operation |
| 7 | 403 | Forbidden |
| 8 | 500 | Gateway error |
| 9 | 500 | Internal server error |
Табл. 11. Статусы сообщений
| State | Описание |
|---|---|
| -1 | Отправлено (передано в мобильную сеть) |
| -2 | В очереди |
| 47 | Удалено |
| -98 | Остановлено |
| 0 | Доставлено абоненту |
| 10 | Неверно введен адрес отправителя |
| 11 | Неверно введен адрес получателя |
| 41 | Недопустимый адрес получателя |
| 42 | Отклонено смс-центром |
| 46 | Просрочено (истек срок жизни сообщения) |
| 48 | Отклонено Платформой |
| 69 | Отклонено |
| 99 | Неизвестный |
| 255 | статус: *сообщение еще не успело попасть в БД, *сообщение старше 48 часов. |