Перейти к содержанию

HTTP API Без SessionID

Описание

Предоставляемый API сервис отправки SMS-сообщений позволяет осуществить:

  • Получение баланса авторизованного пользователя
  • Отправку SMS-сообщения на один или несколько номеров с учетом и без учета часового пояса получателя
  • Получение статуса отправленного SMS-сообщения
  • Получение SMS-сообщений за период
  • Получение статистики по SMS-рассылкам
  • Отправку Viber-сообщения на один или несколько номеров без учета часового пояса получателя
  • Отправка Viber-сообщения на один или несколько номеров с переотправкой по SMS
  • Получение статуса отправленного Viber-сообщения

Внимание

Для использования данного вида интеграции необходимо обратиться к менеджеру компании либо в техническую поддержку для настройки доступа.

API сервиса отправки SMS сообщений организовано в соответствии с принципами REST, что позволяет обмениваться HTTPS URL–encoded запросами. HTTPS - это обычный HTTP, работающий через шифрованные транспортные механизмы SSL и TLS. Это позволяет обеспечить защиту от атак, основанных на прослушивании сетевого соединения: снифферских атак и атак типа man-in-the-middle при условии, что будут использоваться шифрующие средства и сертификат сервера проверен и ему доверяют.

Запрос к API состоит из следующих элементов:

  • основной URL запроса: https://integrationapi.net/rest/v2
  • ресурс (например: /Sms/SendByTimeZone)
  • параметры GET или POST-запроса (в кодировке UTF-8)

Получение баланса авторизованного пользователя

Сервис возвращает значение баланса авторизованного пользователя в соответствии со значениями параметров, передаваемых сервису в GET-запросе следующего формата:

https://integrationapi.net/rest/v2/User/Balance?Login=<Логин>&Password=<Пароль> 

Ниже приведен пример запроса:

https://integrationapi.net/rest/v2/User/Balance?Login=test_login&Password=test123    

Параметры GET-запроса баланса

Параметр Тип данных Описание
Login string Логин,полученный при регистрации
Password string Пароль, соответствующий логину

Сервис проверяет валидность Логина/Пароля и в случае успеха авторизует пользователя и в ответе присылает баланс пользователя со следующими параметрами:

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
20015.3

В случае возникновения исключительной ситуации во время обработки запроса или ошибки аутентификации, сервис возвращает код ошибки в виде JSON следующего формата:

{
  Code: <Код ошибки>, 
  Desc: <”Текст ошибки”>
}

Например, при ошибке авторизации:

{
  Code: 4,
  Desc: "Invalid user login or password" 
}

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

Отправка SMS-сообщения на один номер без учета часового пояса получателя

Сервис инициирует отправку SMS-сообщения в соответствии со значениями параметров, передаваемых сервису в POST-запросе следующего формата:

https://integrationapi.net/rest/v2/Sms/Send?Login=<Логин>&Password=<Пароль>&SourceAddress=<Адрес отправителя>&DestinationAddress=<Номер получателя>&Data=<Текст сообщения>&Validity=<Время жизни сообщения>

Ниже приведен пример запроса:

https://integrationapi.net/rest/v2/Sms/Send?Login=test_login&Password=test_password&DestinationAddress=79161002030&SourceAddress=DEVINO&Data=test&Validity=0

Параметры запроса на отправку SMS-сообщения

Параметр Тип данных Описание
Login
обязательный
string Логин, полученный при регистрации
Password
обязательный
string Пароль, соответствующий логину
DestinationAddress
обязательный
string Номер получателя сообщения, в международном формате: код страны + код сети + номер телефона. Пример: 79031234567; +79031234567
Data
обязательный
string Текст сообщения, сообщение не должно быть длиннее 2000 символов
SourceAddress
обязательный
string Адрес отправителя сообщения. До 11 латинских символов или до 15 цифровых.
SendDate DateTime Дата и время отправки (пример 2011-01-28T16:00:00). Если в запросе передается этот параметр, то сообщение будет отправлено только при наступлении полученных даты и времени без учета текущего часового пояса получателя. Сообщение отправится при наступлении переданного времени в часовом поясе: GMT+00:00. Если не требуется отложенная отправка, то передавать данный параметр не нужно.
Validity integer Время жизни сообщения (в минутах)

Перед отправкой SMS сервис проверяет запрос на:

  • Наличие обязательных параметров
  • Валидность логина/пароля
  • Достаточно ли баланса пользователя на отправку SMS. (Достаточность определяется на основании тарифа пользователя на отправку SMS для мобильного оператора указанного в запросе номера)
  • Валидность указанного в запросе номера
  • Валидность адреса отправителя
  • Длину сообщения.

Если все проверки пройдены успешно, то сервис отправит сообщение в SMS-центр и вернет ID отправленного сообщения с дополнительными параметрами.

Формат ответа:

HTTP/1.1 200 OK 
Cache-Control: private 
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8 
<ID сообщения> 

Например:

HTTP/1.1 200 OK
Cache-Control: private 
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8 
["GW0261BBD6B3"] 

В случаях, когда длина отправляемого сообщения превышает 70 символов на кириллице или 160 символов на латинице, ответ от сервиса будет в виде последовательности ID сообщений, например:

["SAR-GW01+79160000000-5f3b1972-2-1","SAR-GW01+79160000000-5f3b1972-2-2"] 

Если какая-нибудь проверка не проходит успешно, то сервис возвращает код ошибки в виде JSON следующего формата:

{
  Code: <Код ошибки>,
  Desc: <”Текст ошибки”>
}

Например:

{
  Code: 6,
  Desc: "Invalid source address"
} 

Отправка SMS-сообщения на один номер с учетом часового пояса получателя

Сервис инициирует отправку SMS-сообщения в соответствии со значениями параметров, передаваемых сервису в POST-запросе следующего формата:

https://integrationapi.net/rest/v2/Sms/SendByTimeZone?Login=<Логин>&Password=<Пароль>&SourceAddress=<Адрес отправителя>&DestinationAddress=<Номер получателя>&Data=<Текст сообщения>&Validity=<Время жизни сообщения>&SendDate=<Дата отправки сообщения>

Ниже приведен пример запроса:

https://integrationapi.net/rest/v2/Sms/SendByTimeZone?Login=test_login&Password=test123&SourceAddress=TESTSMS&DestinationAddress=79001234567&Data=testdata&Validity=10&sendDate=2011-01-28T16:00:00 

Параметры POST-запроса на отправку SMS-сообщения c учетом часового пояса

Параметр Тип данных Описание
Login
обязательный
string Логин, полученный при регистрации
Password
обязательный
string Пароль, соответствующий логину
DestinationAddress
обязательный
string Номер получателя сообщения, в международном формате: код страны и код сети плюс номер телефона. Пример: 79031234567; +79031234567; 89031234567.
Data
обязательный
string Текст сообщения, сообщение не должно быть длиннее 2000 символов
SourceAddress
обязательный
string Адрес отправителя сообщения. До 11 латинских символов или до 15 цифровых.
SendDate
обязательный
DateTime Дата и время отправки (пример 2011-01-28T16:00:00). Если в запросе передается этот параметр, то сообщение будет отправлено только при наступлении полученных даты и времени с учетом текущего часового пояса получателя. Если не требуется отложенная отправка, то передавать данный параметр не нужно.
Validity integer Время жизни сообщения (в минутах)

Перед отправкой SMS сервис проверяет запрос на:

  • Наличие обязательных параметров
  • Валидность логина/пароля
  • Достаточно ли баланса пользователя на отправку SMS. (Достаточность определяется на основании тарифа пользователя на отправку SMS для мобильного оператора указанного в запросе номера)
  • Валидность указанного в запросе номера
  • Валидность адреса отправителя
  • Длину сообщения

Если все проверки пройдены успешно, то сервис отправит сообщение в SMS-центр и вернет ID отправленного сообщения с дополнительными параметрами.

Формат ответа:

HTTP/1.1 200 OK 
Cache-Control: private 
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8 
<ID сообщения>

Например:

HTTP/1.1 200 OK 
Cache-Control: private 
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8 
["GW0261BBD6B3"] 

В случаях, когда длина отправляемого сообщения превышает 70 символов на кириллице или 160 символов на латинице, ответ от сервиса будет в виде последовательности ID сообщений:

["SAR-GW01+79160000000-5f3b1972-2-1","SAR-GW01+79160000000-5f3b1972-2-2"]

Например:

HTTP/1.1 200 OK 
Cache-Control: private 
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8 
["SAR-GW01+79160000000-5f3b1972-2-1","SAR-GW01+79160000000-5f3b1972-2-2"]

Если какая-нибудь проверка не проходит успешно, то сервис возвращает код ошибки в виде JSON следующего формата:

{
  Code: <Код ошибки>, 
  Desc: <”Текст ошибки”>
}

Например:

{
  Code: 6,
  Desc: "Invalid source address"
}

Отправка SMS-сообщения на несколько номеров без учета часового пояса получателя

Сервис инициирует отправку SMS-сообщения на несколько номеров в соответствии со значениями параметров, передаваемых сервису в POST-запросе следующего формата:

https://integrationapi.net/rest/v2/Sms/SendBulk?Login=<Логин>&Password=<Пароль>&SourceAddress=<Адрес отправителя>&DestinationAddresses=<Номер(а) получателя(ей)>&Data=<Текст сообщения>&Validity=<Время жизни сообщения>

Ниже приведен пример запроса:

https://integrationapi.net/rest/v2/Sms/SendBulk?Login=test_login&Password=test123&SourceAddress=TESTSMS&DestinationAddresses=79001234567&DestinationAddresses= 79059999999&Data=testdata&Validity=10

Параметры POST-запроса на отправку SMS-сообщения на несколько номеров

Параметр Тип данных Описание
Login
обязательный
string Логин, полученный при регистрации
Password
обязательный
string Пароль, соответствующий логину
DestinationAddress
обязательный
string Номер получателя сообщения, в международном формате: код страны и код сети плюс номер телефона. Максимальное количество получателей сообщения не должно превышать 2999. Пример: 79031234567; +79031234567; 89031234567.
Data
обязательный
string Текст сообщения, сообщение не должно быть длиннее 2000 символов
SourceAddress
обязательный
string Адрес отправителя сообщения. До 11 латинских символов или до 15 цифровых.
Validity integer Время жизни сообщения (в минутах)
SendDate DateTime Дата и время отправки (пример 2010-0601T19:14:00). Если не требуется отложенная отправка, то передавать данный параметр не нужно.

Перед отправкой SMS сервис проверяет запрос на:

  • Наличие обязательных параметров
  • Валидность логина/пароля
  • Достаточно ли баланса пользователя на отправку SMS. (Достаточность определяется на основании тарифа пользователя на отправку SMS для мобильного оператора указанного в запросе номера)
  • Валидность указанных в запросе номеров (если хоть один номер не проходит валидацию, то сообщения не отправляются)
  • Валидность адреса отправителя
  • Длину сообщения

Если все проверки пройдены успешно, то сервис отправит сообщения в SMS-центр и вернет IDы отправленных сообщений со дополнительными параметрами.

Формат ответа:

HTTP/1.1 200 OK 
Cache-Control: private 
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8 
<ID сообщения>

Например:

HTTP/1.1 200 OK 
Cache-Control: private 
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8 
["GW0261BBD6B3"] 

В случаях, когда длина отправляемого сообщения превышает 70 символов на кириллице или 160 символов на латинице, ответ от сервиса будет в виде последовательно расположенных ID сегментов сообщения. Для нескольких сообщений IDы сегментов будут расположены последовательно – сначала последовательно все сегменты одного сообщения, затем – все сегменты другого, например:

["SAR-GW01+79160000000-5f3b1972-2-1","SAR-GW01+79160000000-5f3b1972-2-2", "SAR-GW01+79053500000-5d3b1972-2-1","SAR-GW01+79053500000-5d3b1972-2-2]

Например:

HTTP/1.1 200 OK 
Cache-Control: private 
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8 
["SAR-GW01+79160000000-5f3b1972-2-1","SAR-GW01+79160000000-5f3b1972-2-2",
"SAR-GW01+79053500000-5f3d1972-2-1","SAR-GW01+79053500000-5f3d1972-2-2]

Если какая-нибудь проверка не проходит успешно, то сервис возвращает код ошибки в виде JSON следующего формата:

{
  Code: <Код ошибки>, 
  Desc: <”Текст ошибки”> 
}

Например:

{
  Code: 6,
  Desc: "Invalid source address"
}

Отправка SMS-сообщения на несколько номеров с учетом часового пояса получателя:

Сервис инициирует отправку SMS-сообщения в соответствии со значениями параметров, передаваемых сервису в POST-запросе следующего формата:

https://integrationapi.net/rest/v2/Sms/SendByTimeZoneToAddresses?Login=<Логин>&Password=<Пароль>&SourceAddress=<Адрес отправителя>&DestinationAddresses=<Номер(а) получателя(ей)>&Data=<Текст сообщения>&Validity=<Время жизни сообщения>&SendDate=<Дата отправки сообщения>

Ниже приведен пример запроса:

https://integrationapi.net/rest/v2/Sms/SendByTimeZoneToAddresses?Login=test_login&Password=test123&SourceAddress=TESTSMS&&DestinationAddresses=79001234567&DestinationAddresses=79059999999&Data=testdata&Validity=10&sendDate=2011-01-28T16:00:00

Параметры POST-запроса на отправку SMS-сообщения c учетом часового пояса

Параметр Тип данных Описание
Login
обязательный
string Логин, полученный при регистрации
Password
обязательный
string Пароль, соответствующий логину
DestinationAddresses
обязательный
string Номер получателя сообщения, в международном формате: код страны и код сети плюс номер телефона. Пример: 79031234567; +79031234567; 89031234567.
Data
обязательный
string Текст сообщения (не более 2000 символов)
SourceAddress
обязательный
string Адрес отправителя (не более 11 латинских символов или 15 цифр)
SendDate
обязательный
DateTime Дата и время отправки (пример 2010-0601T19:14:00) в UTC. Если в запросе передается этот параметр, то сообщение будет отправлено только при наступлении полученных даты и времени с учетом текущего часового пояса получателя.
Validity integer Время жизни сообщения (в минутах)

Перед отправкой SMS-сервис выполняет проверку запроса:

  • наличие обязательных параметров
  • валидность логина/пароля
  • баланс пользователя на отправку SMS (достаточность средств на балансе определяется тарифом текущего пользователя на отправку SMS для мобильного оператора указанного в запросе номера)
  • валидность указанного в запросе номеров
  • валидность адреса отправителя
  • длина сообщения

Если все проверки пройдены успешно, сервис отправляет сообщения в SMS-центр и возвращает IDы отправленных сообщений с дополнительными параметрами.

Формат ответа:

HTTP/1.1 200 OK 
Cache-Control: private 
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8 
<ID сообщения> 

Например:

HTTP/1.1 200 OK   
Cache-Control: private   
Connection: Keep-Alive  
Content-Type: application/json; charset=utf-8   
["579700854169272359"]   

В случаях, когда длина отправляемого сообщения превышает 70 символов на кириллице или 160 символов на латинице, ответ от сервиса будет в виде последовательно расположенных ID сегментов сообщения. Для нескольких сообщений IDы сегментов будут расположены последовательно – сначала последовательно все сегменты одного сообщения, затем – все сегменты другого, например:

[“SAR-GW01+79160000000-5f3b1972-2-1,”SAR-GW01+79160000000-5f3b1972-2-2,
“SAR-GW01+79053500000-5d3b1972-2-1,”SAR-GW01+79053500000-5d3b1972-2-2"]

Например:

HTTP/1.1 200 OK   
Cache-Control: private   
Connection: Keep-Alive  
Content-Type: application/json; charset=utf-8   
["SAR-GW01+79160000000-5f3b1972-2-1","SAR-GW01+79160000000-5f3b1972-2-2",
"SAR-GW01+79053500000-5f3d1972-2-1","SAR-GW01+79053500000-5f3d1972-2-2"]

В случае непрохождения других проверок сервис возвращает код ошибки в виде JSON следующего формата:

{  
    Code: <Код ошибки>, 
    Desc: <”Текст ошибки”>  
}

Например:

{  
    Code: 6,  
    Desc: "Invalid source address"  
}  

Получение статуса отправленного SMS-сообщения

Внимание

В случае, если сообщение было отправлено более 48 часов назад, то статус сообщения будет 255.

Сервис возвращает статус отправленного SMS-сообщения в соответствии со значениями параметров, передаваемых сервису в GET-запросе следующего формата:

https://integrationapi.net/rest/v2/Sms/State? 
Login=<Логин>&
Password=<Пароль>&
messageId=<ID сообщения> 

Ниже приведен пример запроса для односегментного сообщения (длина которого не превышает 70 символов на кириллице или 160 символов на латинице):

https://integrationapi.net/rest/v2/Sms/State?Login=test_login&Password=test123&messageId=GW0261BA732

Для сообщений, длина которых превышает 70 символов на кириллице и 160 на латинице, запрос должен формироваться для каждого сегмента сообщений, например:

https://integrationapi.net/rest/v2/Sms/State?Login=test_login&Password=test123&messageID=SAR-W+84333

Параметры GET-запроса статуса отправленного сообщения (сегмента сообщения)

Параметр Тип данных Описание
Login string Логин, полученный при регистрации
Password string Пароль, соответствующий логину
messageId string ID сообщения (сегмента сообщения). Для одного запроса будет выполнен возврат статуса только одного сообщения (сегмента сообщения).

После получения запроса сервис проверит валидность логина/пароля и наличие отправленного сообщения (сегмента сообщения) с присланным IDом.

Если все проверки пройдены успешно, то сервис вернет статус отправленного 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
}

Если какая-нибудь проверка не проходит успешно, то сервис возвращает код ошибки в виде JSON следующего формата:

{
  Code: <Код ошибки>, 
  Desc: <”Текст ошибки”> 
}

Например:

{
  Code: 1,
  Desc: "MessageID can not be null or empty Parameter name: messageId" 
}

Параметры ответа на запрос статуса сообщения

Наименование поля Описание
State Статус сообщения
TimeStampUtc Дата и время получения отчета (Гринвич GMT00:00)
StateDescription Описание статуса
CreationDateUtc Дата создания
SubmittedDateUtc Дата отправки
ReportedDateUtc Дата доставки
Price Цена за сообщение

Получение SMS-сообщений за период

Сервис возвращает входящие SMS-сообщения за период в соответствии со значениями параметров, передаваемых сервису в GET-запросе следующего формата:

https://integrationapi.net/rest/v2/Sms/In?
Login=<Логин>&
Password=<Пароль>&
minDateUTC=<Дата и время начала периода>& 
maxDateUTC=<Дата и время окончания периода> 

Ниже приведен пример запроса:

https://integrationapi.net/rest/v2/Sms/In?Login=test_login&Password=test123&minDateUTC=2011-01-01T00:00:00&maxDateUTC=2011-01-11T00:00:00

Параметры GET-запроса на получение сообщений за период

Параметр Тип данных Описание
Login string Логин, полученный при регистрации
Password string Пароль, соответствующий логину
maxDateUTC DateTime Дата и время окончания периода, за который происходит выборка входящих сообщений (например, 2010-06-02T19:14:00).
minDateUTC DateTime Дата и время начала периода, за который происходит выборка входящих сообщений (например, 2010-06-01T19:14:00).

Перед получением входящих сообщений, сервис проверяет запрос на:

  • Наличие обязательных параметров
  • Валидность логина/пароля
  • Значение minDateUTC - разница между текущей датой и minDateUTC не может быть больше одного года
  • Значение maxDateUTC и minDateUTC - maxDateUTC должно быть больше чем minDateUTC

Если все проверки пройдены успешно, то сервис вернет перечень сообщений и их параметров за период в JSON-файла следующего формата:

HTTP/1.1 200 OK
Cache-Control: private
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
[
  {
    "Data":{Текст сообщения},
    "SourceAddress":{Адрес отправителя},
    "DestinationAddress":{Номер получателя},
    "ID":{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)\/"
  }
] 

Если какая-нибудь проверка не проходит успешно, то сервис возвращает код ошибки в виде 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/v2/Sms/Statistics? 
Login=<Логин>&
Password=<Пароль>&
startDateTime=<Дата и время начала периода>&
endDateTime=<Дата и время конца периода>

Ниже приведен пример запроса:

https://integrationapi.net/rest/v2/Sms/Statistics?Login=test_login&Password=test123&startDateTime=2017-07-18T23:59:00&endDateTime=2017-08-25T23:59:00

Параметры GET-запроса на формирование статистики за период

Параметр Тип данных Описание
Login string Логин, полученный при регистрации
Password string Пароль, соответствующий логину
startDateTime DateTime Дата и время конца периода, за который необходимо получить статистику, например 2017-07-18T23:59:00.
endDateTime DateTime Дата и время конца периода, за который необходимо получить статистику, например 2017-08-25T23: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
}

Если какая-нибудь проверка не проходит успешно, то сервис возвращает код ошибки в виде JSON следующего формата:

{
  Code: <Код ошибки>, 
  Desc: <”Текст ошибки”>
}

Например:

{
  Code: 2, 
  Desc: "Нельзя указывать диапазон дат более 90 дней." 
}

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

Внимание

Для корректной работы переотправки необходимо запросить имя отправителя для SMS, идентичное имени отправителя Viber.

Отправка Viber-сообщения на один номер без учета часового пояса получателя

Сервис инициирует отправку Viber-сообщения в соответствии со значениями параметров, передаваемых сервису в POST-запросе следующего формата:

https://integrationapi.net/rest/v2/Viber/Send?Login=<Логин>&Password=<Пароль>&SourceAddress=<Адрес отправителя>&DestinationAddress=<Номер получателя>&Data=<Текст сообщения>&Validity=<Время жизни сообщения>&Optional=<Доп. Параметр>

Ниже приведен пример запроса:

https://integrationapi.net/rest/v2/Viber/Send?Login=Test&Password=Test&SourceAddress=DTSMS&DestinationAddress=79001234567&Data=testdata&Validity=86400&Optional=123456

Параметры запроса на отправку Viber-сообщения

Параметр Тип данных Описание
Login
обязательный
string Логин, полученный при регистрации
Password
обязательный
string Пароль, соответствующий логину
DestinationAddress
обязательный
string Номер получателя сообщения, в международном формате: код страны + код сети + номер телефона. Пример: 79031234567; +79031234567
Data
обязательный
string Текст сообщения, сообщение не должно быть длиннее 1000 символов. Строки разделяются через символ новой строки %0A.
SourceAddress
обязательный
string Адрес отправителя сообщения. До 11 латинских или цифровых символов.
Optional string Дополнительный параметр
Validity integer Время жизни сообщения (мин, от 1 до 1440)

Перед отправкой Viber-сообщения сервис проверяет запрос на:

  • Наличие обязательных параметров
  • Валидность логина/пароля
  • Достаточно ли баланса пользователя на отправку Viber-сообщения
  • Валидность указанного в запросе номера
  • Валидность адреса отправителя
  • Длину сообщения

Если все проверки пройдены успешно, то сервис отправит сообщение и вернет ID отправленного сообщения со следующими параметрами:

Формат ответа:

HTTP/1.1 200 OK
Cache-Control: private
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
<ID сообщения>

Например:

HTTP/1.1 200 OK
Cache-Control: private
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
["GW0261BBD6B3"]

Если какая-нибудь проверка не проходит успешно, то сервис возвращает код ошибки в виде JSON следующего формата:

{
  Code: <Код ошибки>
  Desc: <”Текст ошибки”>
}

Например:

{
  Code: 1
  Desc: "error-address-format"
}

Отправка Viber-сообщения на несколько номеров без учета часового пояса получателя

Сервис инициирует отправку Viber-сообщения на несколько номеров в соответствии со значениями параметров, передаваемых сервису в POST-запросе следующего формата:

https://integrationapi.net/rest/v2/Viber/SendBulk?Login=<Логин>&Password=<Пароль>&SourceAddress=<Адрес отправителя>&DestinationAddresses=<Номер(а) получателя>&Data=<Текст сообщения>&Validity=<Время жизни сообщения>&Optional=<Доп. параметр(ы)>

Ниже приведен пример запроса:

https://integrationapi.net/rest/v2/Viber/SendBulk?Login=Test&Password=Test&SourceAddress=TESTSMS&DestinationAddresses=79001234567&DestinationAddresses=79059999999&Data=testdata&Validity=86400&Optionals=123456&Optionals=789012

Параметры POST-запроса на отправку Viber-сообщения на несколько номеров

Параметр Тип данных Описание
Login
обязательный
string Логин, полученный при регистрации
Password
обязательный
string Пароль, соответствующий логину
DestinationAddresses
обязательный
string Номер получателя сообщения, в международном формате: код страны + код сети + номер телефона. Пример: 79031234567; +79031234567
Data
обязательный
string Текст сообщения, сообщение не должно быть длиннее 1000 символов. Строки разделяются через символ новой строки %0A.
SourceAddress
обязательный
string Адрес отправителя сообщения. До 11 латинских или цифровых символов.
Optionals string Дополнительный параметр (или параметры в случае нескольких получателей)
Validity integer Время жизни сообщения (мин, от 1 до 1440)

Перед отправкой Viber сервис проверяет запрос на:

  • Наличие обязательных параметров
  • Валидность логина/пароля
  • Достаточно ли баланса пользователя на отправку Viber
  • Валидность указанных в запросе номеров (если хоть один номер не проходит валидацию, то сообщения не отправляются)
  • Валидность адреса отправителя
  • Длину сообщения

Если все проверки пройдены успешно, то сервис отправит сообщение и вернет ID отправленного сообщения со следующими параметрами:

Формат ответа:

HTTP/1.1 200 OK
Cache-Control: private
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
<ID сообщения>

Например:

HTTP/1.1 200 OK
Cache-Control: private
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
["GW0261BBD6B3"]

Если какая-нибудь проверка не проходит успешно, то Сервис возвращает код ошибки в виде JSON следующего формата:

{
  Code: <Код ошибки>
  Desc: <”Текст ошибки”>
}

Например:

{
  Code: 1
  Desc: "error-address-format"
}

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

Сервис инициирует отправку Viber-сообщения в соответствии со значениями параметров, передаваемых сервису в POST-запросе следующего формата:

https://integrationapi.net/rest/v2/Viber/SendWithResend?Login=<Логин>&Password=<Пароль>&SourceAddress=<Адрес отправителя>&DestinationAddress=<Номер получателя>&Data=<Текст сообщения>&Validity=<Время жизни сообщения>&Optional=<Доп. Параметр>

Ниже приведен пример запроса:

https://integrationapi.net/rest/v2/Viber/SendWithResend?Login=Test&Password=Test&&SourceAddress=DTSMS&DestinationAddress=79001234567&Data=testdata&Validity=86400&Optional=123456

Параметры запроса на отправку Viber-сообщения**

Параметр Тип данных Описание
Login
обязательный
string Логин, полученный при регистрации
Password
обязательный
string Пароль, соответствующий логину
DestinationAddress
обязательный
string Номер получателя сообщения, в международном формате: код страны + код сети + номер телефона. Пример: 79031234567; +79031234567
Data
обязательный
string Текст сообщения, сообщение не должно быть длиннее 1000 символов. Строки разделяются через символ новой строки %0A.
SourceAddress
обязательный
string Адрес отправителя сообщения. До 11 латинских или цифровых символов. Для корректной работы переотправки адрес отправителя SMS должен быть идентичен используемому адресу отправителя Viber
Optional string Дополнительный параметр
Validity integer Время жизни сообщения (мин, от 1 до 1440)

Перед отправкой Viber-сообщения сервис проверяет запрос на:

  • Наличие обязательных параметров
  • Валидность логина/пароля
  • Достаточно ли баланса пользователя на отправку Viber-сообщения
  • Валидность указанного в запросе номера
  • Валидность адреса отправителя
  • Длину сообщения

Если все проверки пройдены успешно, то сервис отправит сообщение и вернет ID отправленного сообщения со следующими параметрами:

Формат ответа:

HTTP/1.1 200 OK
Cache-Control: private
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
<ID сообщения>

Например:

HTTP/1.1 200 OK
Cache-Control: private
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
 ["GW0261BBD6B3"]

Если какая-нибудь проверка не проходит успешно, то сервис возвращает код ошибки в виде JSON следующего формата:

{
  Code: <Код ошибки>
  Desc: <”Текст ошибки”>
}

Например:

{
  Code: 1
  Desc: "error-address-format"
}

Отправка Viber-сообщения на несколько номеров с переотправкой по SMS

Сервис инициирует отправку Viber-сообщения на несколько номеров в соответствии со значениями параметров, передаваемых сервису в POST-запросе следующего формата:

https://integrationapi.net/rest/v2/Viber/SendWithResendBulk?Login=<Логин>&Password=<Пароль>&SourceAddress=<Адрес отправителя>&DestinationAddresses=<Номер(а) получателя>&Data=<Текст сообщения>&Validity=<Время жизни сообщения>&Optionals=<Доп. параметр(ы)>

Ниже приведен пример запроса:

https://integrationapi.net/rest/v2/Viber/SendWithResendBulk?Login=Test&Password=Test&SourceAddress=TESTSMS&DestinationAddresses=79001234567&DestinationAddresses=79059999999&Data=testdata&Validity=86400&Optionals=123456&Optionals=789012

Параметры POST-запроса на отправку Viber-сообщения на несколько номеров**

Параметр Тип данных Описание
Login
обязательный
string Логин, полученный при регистрации
Password
обязательный
string Пароль, соответствующий логину
DestinationAddresses
обязательный
string Номер получателя сообщения, в международном формате: код страны + код сети + номер телефона. Пример: 79031234567; +79031234567
Data
обязательный
string Текст сообщения, сообщение не должно быть длиннее 1000 символов. Строки разделяются через символ новой строки %0A.
SourceAddress
обязательный
string Адрес отправителя сообщения. До 11 латинских или цифровых символов. Для корректной работы переотправки адрес отправителя SMS должен быть идентичен используемому адресу отправителя Viber
Optionals string Дополнительный параметр(или параметры в случае нескольких получателей)
Validity integer Время жизни сообщения (мин, от 1 до 1440)

Перед отправкой Viber сервис проверяет запрос на:

  • Наличие обязательных параметров
  • Валидность логина/пароля
  • Достаточно ли баланса пользователя на отправку Viber
  • Валидность указанных в запросе номеров (если хоть один номер не проходит валидацию, то сообщения не отправляются)
  • Валидность адреса отправителя
  • Длину сообщения

Если все проверки пройдены успешно, то сервис отправит сообщение и вернет ID отправленного сообщения с дополнительными параметрами.

Формат ответа:

HTTP/1.1 200 OK
Cache-Control: private
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
<ID сообщения>

Например:

HTTP/1.1 200 OK
Cache-Control: private
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
["GW0261BBD6B3"]

Если какая-нибудь проверка не проходит успешно, то Сервис возвращает код ошибки в виде JSON следующего формата:

{
  Code: <Код ошибки>
  Desc: <”Текст ошибки”>
}

Например:

{
  Code: 1
  Desc: "error-address-format"
}

Получение статуса отправленного Viber-сообщения

Сервис возвращает статус отправленного Viber-сообщения в соответствии со значениями параметров, передаваемых сервису в GET-запросе следующего формата:

https://integrationapi.net/rest/v2/Viber/State?Login=<Логин>&Password=<Пароль>&messageId=<ID сообщения>

Параметры GET-запроса статуса отправленного сообщения

Параметр Тип данных Описание
Login string Логин, полученный при регистрации
Password string Пароль, соответствующий логину
messageId string ID сообщения

После получения запроса сервис проверяет валидность связки логина и пароля и наличие отправленного сообщения с присланным IDом. Если все проверки пройдены успешно, то сервис вернет статус отправленного Viber-сообщения в 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":<Стоимость>,
  "ResentSms":[
    {
      "State":<Код статуса переотправленного смс-сообщения>,
      "CreationDateUtc":<Дата создания переотправленного смс-сообщения>,
      "SubmittedDateUtc":<Дата отправки переотправленного смс-сообщения>,
      "ReportedDateUtc":<Дата доставки переотправленного смс-сообщения>,
      "TimeStampUtc":"<Дата и время получения отчета по переотправленному смс-сообщению>",
      "StateDescription":"<Описание статуса переотправленного смс-сообщения>",
      "Price":<Стоимость переотправленного смс-сообщения>,
      "Id":<ID переотправленного смс-сообщения>
    }
  ]
}

Если какая-нибудь проверка не проходит успешно, то сервис возвращает код ошибки в виде JSON следующего формата:

{
  Code: <Код ошибки>
  Desc: <”Текст ошибки”>
}

Например:

{
  Code: 1
  Desc: "MessageID can not be null or empty Parameter name: messageId"
}

Параметры ответа на запрос статуса сообщения**

Наименование поля Описание
State Статус сообщения
TimeStampUtc Дата и время получения отчета (Гринвич GMT00:00)
StateDescription Описание статуса
CreationDateUtc Дата создания
SubmittedDateUtc Дата отправки
ReportedDateUtc Дата доставки
Price Цена за сообщение
ResentSms Данные о SMS-сообщениях, которые были отправлены в рамках переотправки текущего Viber-сообщения

Коды ошибок. Статусы SMS и Viber

Коды ошибок

REST error code HTTP status code Описание
- 200 Operation complete
1 400 Argument cannot be null or empty
2 400 Invalid argument
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

Статусы SMS

State Описание
-1 Отправлено (передано в мобильную сеть)
-2 В очереди
47 Удалено
-98 Остановлено
0 Доставлено абоненту
10 Неверно введен адрес отправителя
11 Неверно введен адрес получателя
41 Недопустимый адрес получателя
42 Отклонено смс центром
46 Просрочено (истек срок жизни сообщения)
48 Отклонено платформой
69 Отклонено
99 Неизвестный
255 По запросу возвращается этот статус, если сообщения еще не успело попасть в БД, либо сообщение старше 48 часов.

Статусы Viber-сообщений

State Описание
0 Отправляется
1 Отправлено
2 Доставлено (не прочитано)
3 Доставлено (прочитано)
4 Не доставлено
5 Ошибка
6 Неизвестно
7 Просрочено
8 Переход по ссылке

Коды возврата обработки сообщения в рамках запроса (Viber-сообщения)

Код Описание
error-address-format неправильный формат номера абонента
error-address-not-specified номер абонента не указан
error-address-unknown отправка на номерную емкость, к которой относится номер абонента не разрешена клиенту в конфигурации платформы провайдера
error-content-not-specified содержимое сообщения не указано
error-subject-format неправильный формат подписи
error-subject-not-specified подпись не указана
error-subject-unknown указанная подпись не разрешена клиенту в конфигурации платформы провайдера
error-system системная ошибка
error-validity-period-seconds-format неправильно указано значение времени ожидания доставки
ok исходящее сообщение успешно принято на отправку