SOAP

Обзор API

Предупреждение

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

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

  • аутентификацию;
  • получение баланса пользователя текущей сессии;
  • получение входящих сообщений пользователя текущей сессии;
  • отправка SMS c учетом часового пояса получателя;
  • отправка SMS абонентам и возвращение системных идентификаторов SMS;
  • отправка SMS абонентам и возвращение системных идентификаторов SMS с учетом часового пояса получателя;
  • получение статуса отправленного SMS и время обновления статуса;
  • получение статистики по SMS-рассылкам за заданный промежуток времени;
  • отправка Viber адресатам и возвращение системных идентификаторов сообщений.
  • отправка Viber-сообщений адресатам и возвращение системных идентификаторов сообщений с переотправкой по SMS;
  • получение статуса отправленного viber-сообщения.

API сервиса отправки SMS организовано в соответствии с принципами SOAP. Протокол используется для обмена произвольными сообщениями в формате XML. SOAP может использоваться с любым протоколом прикладного уровня: SMTP, FTP, HTTP, HTTPS и др.

WSDL-документ для SOAP доступен по адресу:

https://ws.devinotele.com/SmsService.asmx?WSDL

Точка подключения:

https://ws.devinotele.com/SmsService.asmx

Предупреждение

Все запросы необходимо выполнять в кодировке UTF-8. Количество запросов 10 запросов/1 сек.

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

<soap:Code>
  <soap:Value>soap:Receiver</soap:Value>
</soap:Code>
<soap:Reason>
  <soap:Text xml:lang="en">
      Server was unable to process request. ---
      &gt; Invalid user login or password
  </soap:Text>
</soap:Reason>

Аутентификация

Перед началом работы с методами сервиса необходимо получить идентификатор сессий. Он получается путем вызова GetSessionID и передачи логина/пароля. Если логин и пароль валидены, то возвращается идентификатор сессии, время жизни которого - 2 часа. Он является первым параметром и используется во всех запросах к этому сервису. Полученный идентификатор сессии действителен в течение 120 минут.

Протокол HTTP не имеет состояний. Это означает, что веб-сервер обрабатывает каждый HTTP-запрос со стороны внешнего приложения или сайта независимо, а сервер не сохраняет данные о значениях переменных, использованных в предшествующих запросах. Поэтому данные, полученные при авторизации. Пользователя, должны быть переданы и при осуществлении запроса получения баланса авторизованного пользователя.

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

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <GetSessionID xmlns="http://ws.devinosms.com">
     <login>string</login>
     <password>string</password>
    </GetSessionID>
  </soap12:Body>
</soap12:Envelope>
Content-Type для параметров запроса:
Content-Type: application/soap+xml; charset=utf-8

Табл. 1. Описание параметров GetSessionID

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

Пример ответа. В случае успешного прохождения аутентификации присланных данных сервис отправки SMS пришлет ответ со следующими параметрами:

HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <GetSessionIDResponse xmlns="http://ws.devinosms.com">
      <GetSessionIDResult>string</GetSessionIDResult>
    </GetSessionIDResponse>
  </soap12:Body>
</soap12:Envelope>

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

Сервис возвращает значение баланса авторизованного пользователя по SessionID. Овердрафт при этом учитывается. Пример запроса:

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <GetBalance xmlns="http://ws.devinosms.com">
       <sessionID>string</sessionID>
    </GetBalance>
  </soap12:Body>
</soap12:Envelope>

Табл. 2. Описание параметров GetBalance

Параметр Тип данных Обязательность Описание
SessionID String Да Идентификатор сессии, полученный при аутентификации

Сервис проверяет валидность полученного SessionID (проверяет актуальность и наличие в Системе) и, в случае успеха, авторизует Пользователя и в ответе присылает баланс пользователя следующего вида. Пример ответа:

HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <GetBalanceResponse xmlns="http://ws.devinosms.com">
      <GetBalanceResult>decimal</GetBalanceResult>
    </GetBalanceResponse>
  </soap12:Body>
</soap12:Envelope>

Отправка SMS

Отправка SMS с учетом часового пояса получателя

Для того чтобы сообщение получателю было доставлено в срок, задается отложенная отправка SendMessageByTimeZone. Часовой пояс вычисляется на основе номера получателя и, в зависимости от него, сообщение отправляется через заданный временной интервал, чтобы осуществилась доставка по местному времени получателя.

Пример запроса:

POST /smsservice.asmx HTTP/1.1
Host: ws.devinotele.com
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
 <soap12:Body>
    <SendMessageByTimeZone xmlns="http://ws.devinosms.com">
      <sessionID>string</sessionID>
      <sourceAddress>string</sourceAddress>
      <destinationAddress>string</destinationAddress>
      <data>string</data>
      <sendDate>dateTime</sendDate>
      <validity>int</validity>
    </SendMessageByTimeZone>
 </soap12:Body>
</soap12:Envelope>

Табл. 3. Описание параметров SendMessageByTimeZone

Параметр Тип данных Обязательность Описание
SessionID String Да Идентификатор сессии, полученный при аутентификации (36 символов).
DestinationAddress String Да Номер получателя сообщения в международном формате: код страны + код сети + номер телефона. Пример: 79031234567, +79031234567, 89031234567
Data String Да Текст сообщения, сообщение не должно быть длиннее 2000 символов
SourceAddress String Да Адрес отправителя сообщения. До 11 латинских символов или до 15 цифровых. Как получить адресотправителя см. в начале документа.
SendDate DateTime Да Дата и время отправки (пример 2010-0601T19:14:00). Сообщение будет отправлено только при наступлении полученных даты и времени с учетом текущего часового пояса получателя.
Validity Int Нет Время жизни сообщения (мин), по умолчанию 2880 мин.

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

  • наличие обязательных параметров;
  • валидность сессии Пользователя (аутентификацию и определение, не истекло ли его время жизни SessionID);
  • достаточно ли Баланса Пользователя на отправку SMS (достаточность определяется на основании тарифа Пользователя на отправку SMS для мобильного оператора указанного в запросе номера);
  • валидность указанного в запросе номера;
  • валидность адреса отправителя;
  • длину сообщения.

Если все проверки пройдены успешно, то сервис отправит сообщение в SMS-центр и вернет идентификатор отправленного сообщения с параметрами как в примере ответа. Размер 1 сообщения составляет: 70 русских символов или 160 символов латиницей. Сервис может возвратить более 1 идентификатора, если текст сообщения выходит за пределы 1 sms.

Пример ответа:

HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
 <soap12:Body>
    <SendMessageByTimeZoneResponse xmlns="http://ws.devinosms.com">
      <SendMessageByTimeZoneResult>
        <string>string</string>
        <string>string</string>
      </SendMessageByTimeZoneResult>
    </SendMessageByTimeZoneResponse>
  </soap12:Body>
</soap12:Envelope>

Отправка SMS адресатам и возвращение системных идентификаторов сообщений

Данный метод поддерживает массовую отправку сообщений (до 1000 сообщений) в одном запросе.

Пример запроса:

POST /smsservice.asmx HTTP/1.1
Host: ws.devinotele.com
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <SendMessage xmlns="http://ws.devinosms.com">
      <sessionID>string</sessionID>
      <message>
          <Data>string</Data>
          <DelayUntilUtc>dateTime</DelayUntilUtc>
          <DestinationAddresses>
            <string>string</string>
            <string>string</string>
          </DestinationAddresses>
          <SourceAddress>string</SourceAddress>
          <ReceiptRequested>boolean</ReceiptRequested>
          <Validity>int</Validity>
      </message>
    </SendMessage>
  </soap12:Body>
</soap12:Envelope>

Табл. 4. Описание параметров SendMessage

Параметр Тип данных Обязательность Описание
SessionID String Да Идентификатор сессии, полученный при аутентификации (36 символов).
Data String Да Текст сообщения, сообщение не должно быть длиннее 2000 символов
DelayUntilUtc DateTime Нет Время отправки. Если не заполнено, то отправляется немедленно.
Destination Addresses String [] Да Номер получателя сообщения в международном формате: код страны + код сети + номер телефона. Пример: 79031234567, +79031234567, 89031234567
SourceAddress String Да Адрес отправителя сообщения. До 11 латинских символов или до 15 цифровых.
ReceiptRequested Boolean Нет Запрос о доставке
Validity Int Нет Время жизни сообщения (мин), по умолчанию 2880 мин.

Пример ответа:

HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
   <SendMessageResponse xmlns="http://ws.devinosms.com">
      <SendMessageResult>
         <string>string</string>
         <string>string</string>
       </SendMessageResult>
   </SendMessageResponse>
  </soap12:Body>
</soap12:Envelope>

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

Для того чтобы сообщение получателям было доставлено в срок, задается отложенная отправка SendMessageByTimeZoneToAddresses. Часовой пояс вычисляется на основе номера получателя и, в зависимости от него, сообщение отправляется через заданный временной интервал, чтобы осуществилась доставка по местному времени получателя. Данный метод поддерживает массовую отправку сообщений (до 1000 сообщений) в одном запросе.

Пример запроса:

POST / HTTP/1.1
Host: localhost
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"     xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <SendMessageByTimeZoneToAddresses xmlns="http://ws.devinosms.com">
      <sessionID>string</sessionID>
      <sourceAddress>string</sourceAddress>
      <destinationAddresses>
        <string>string</string>
        <string>string</string>
      </destinationAddresses>
      <data>string</data>
      <sendDate>dateTime</sendDate>
      <validity>int</validity>
    </SendMessageByTimeZoneToAddresses>
  </soap12:Body>
</soap12:Envelope>

Табл. 5. Описание параметров SendMessageByTimeZoneToAddresses

Параметр Тип данных Обязательность Описание
SessionID String Да Идентификатор сессии, полученный при аутентификации (36 символов).
Destination Addresses String [] Да Номер получателя сообщения в международном формате: код страны + код сети + номер телефона. Пример: 79031234567, +79031234567, 89031234567
Data String Да Текст сообщения, сообщение не должно быть длиннее 2000 символов
SourceAddress String Да Адрес отправителя сообщения. До 11 латинских символов или до 15 цифровых.
SendDate DateTime Да Дата и время отправки (пример 2010-0601T19:14:00). Сообщение будет отправлено только при наступлении полученных даты и времени с учетом текущего часового пояса получателя.
Validity Int Нет Время жизни сообщения (мин), по умолчанию 2880 мин.

Перед отправкой SMS Сервис проверяет запрос на: * наличие обязательных параметров; * валидность сессии пользователя (аутентификацию и определение, не истекло ли его время жизни SessionID); * достаточно ли баланса пользователя на отправку SMS (достаточность определяется на основании тарифа Пользователя на отправку SMS для мобильного оператора указанного в запросе номера); * валидность указанных в запросе номеров; * валидность адреса отправителя; * длину сообщения.

Если все проверки пройдены успешно, то сервис отправит сообщение в SMS-центр и вернет идентификаторы отправленных сообщений с параметрами как в примере ответа. Размер 1 сообщения составляет: 70 символов кириллицей или 160 символов латиницей. Сервис может вернуть более 1 идентификатора, если текст сообщения выходит за пределы 1 sms.

Пример ответа:

HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <SendMessageByTimeZoneToAddressesResponse xmlns="http://ws.devinosms.com">
      <SendMessageByTimeZoneToAddressesResult>
        <string>string</string>
        <string>string</string>
      </SendMessageByTimeZoneToAddressesResult>
    </SendMessageByTimeZoneToAddressesResponse>
  </soap12:Body>
</soap12:Envelope>

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

Сервис возвращает статус отправленного sms в соответствии со значениями параметров sessionID и messageID.

Пример запроса:

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <GetMessageState xmlns="http://ws.devinosms.com">
      <sessionID>string</sessionID>
      <messageID>string</messageID>
    </GetMessageState>
  </soap12:Body>
</soap12:Envelope>

Табл. 6. Описание параметров GetMessageState

Параметр Тип данных Обязательность Описание
sessionID String Да Идентификатор сессии, полученный при аутентификации (36 символов).
messageID String Да Идентификатор сообщения (сегмента сообщения). Для одного запроса будет выполнен возврат статуса только одного сообщения (сегмента сообщения).

Пример ответа:

HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <GetMessageStateResponse xmlns="http://ws.devinosms.com">
      <GetMessageStateResult>
        <State>int</State>
        <CreationDateUtc>dateTime</CreationDateUtc>
        <SubmittedDateUtc>dateTime</SubmittedDateUtc>
        <ReportedDateUtc>dateTime</ReportedDateUtc>
        <StateDescription>string</StateDescription>
        <Price>decimal</Price>
      </GetMessageStateResult>
    </GetMessageStateResponse>
  </soap12:Body>
</soap12:Envelope>

Табл. 7. Описание возвращаемых параметров

Название Тип Описание
State int Статус. Типы статусов сообщений приведены в примечании.
CreationDateUtc dateTime Дата и время создания (пример 2010-0601T19:14:00) в UTC.
SubmittedDateUtc dateTime Время получения в Devino (в UTC).
ReportedDateUtc dateTime Время получения отчета (в UTC).
StateDescription string Описание статуса (например Description(“Недопустимый адрес получателя”)).
Price decimal Цена

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

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

Пример запроса:

POST /smsservice.asmx HTTP/1.1
Host: ws.devinotele.com
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <GetStatistics xmlns="http://ws.devinosms.com">
     <sessionId>string</sessionId>
     <startDateTime>dateTime</startDateTime>
     <endDateTime>dateTime</endDateTime>
    </GetStatistics>
  </soap12:Body>
</soap12:Envelope>

Табл. 8. Описание параметров GetStatistics

Параметр Тип данных Обязательность Описание
sessionId String Да Идентификатор сессии (36 символов).
startDateTime DateTime Да Дата и время начала периода, за который необходимо получить статистику, например 2012-01-18Т00:00:00. Время в UTC.
endDateTime DateTime Да Дата и время конца периода, за который необходимо получить статистику, например 2012-01-18Т23:59:00. Время в UTC.

После получения запроса сервис проверит валидность присланного идентификатора сессии и даты начала/окончания формирования статистики (включая ограничение на то, что охватываемый диапазон должен не превышать 3 месяцев). Если все проверки пройдены успешно, то сервис вернет статистику по sms со следующими параметрами:

HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <GetStatisticsResponse xmlns="http://ws.devinosms.com">
      <GetStatisticsResult>
        <Sent>int</Sent>
        <Delivered>int</Delivered>
        <Errors>int</Errors>
        <InProcess>int</InProcess>
        <Expired>int</Expired>
        <Rejected>int</Rejected>
      </GetStatisticsResult>
    </GetStatisticsResponse>
  </soap12:Body>
</soap12:Envelope>

Табл. 9. Описание возвращаемых параметров

Название Тип Описание
Sent int Количество отправленных сообщений
Delivered int Количество доставленных сообщений.
Errors int Количество ошибок
InProcess int Количество сообщений «в процессе отправки»
Expired int Количество просроченных сообщений.
Rejected int Количество отклоненных сообщений

Получение входящих сообщений

Система позволяет заводить входящие номера и на них получать sms. Входящий номер заводится через личный кабинет. Сервис возвращает входящие сообщения пользователя в интервале maxDate, minDate(который передан в этом запросе). Пример запроса:

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <GetIncomingMessages xmlns="http://ws.devinosms.com">
      <sessionID>string</sessionID>
      <maxDateUTC>dateTime</maxDateUTC>
      <minDateUTC>dateTime</minDateUTC>
    </GetIncomingMessages>
  </soap12:Body>
</soap12:Envelope>

Табл. 10. Описание параметров GetIncomingMessages

Параметр Тип данных Обязательность Описание
sessionId String Да Идентификатор сессии, полученный при аутентификации
maxDateUTC DateTime Да Значение интервала _по. Пример: 2014-11-01T11:30
minDateUTC DateTime Да Значение интервала с_. Пример: 2014-11-01T11:30 например 2012-01-18Т23:59:00. Время в UTC.

Пример ответа:

HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
 <GetIncomingMessagesResponse xmlns="http://ws.devinosms.com">
    <GetIncomingMessagesResult>
      <IncomingMessage>
        <Data>string</Data>
        <SourceAddress>string</SourceAddress>
        <DestinationAddress>string</DestinationAddress>
        <CreatedDateUtc>dateTime</CreatedDateUtc>
      </IncomingMessage>
      <IncomingMessage>
        <Data>string</Data>
        <SourceAddress>string</SourceAddress>
        <DestinationAddress>string</DestinationAddress>
        <CreatedDateUtc>dateTime</CreatedDateUtc>
      </IncomingMessage>
    </GetIncomingMessagesResult>
  </GetIncomingMessagesResponse>
 </soap12:Body>
</soap12:Envelope>

Табл. 11 Описание параметров GetIncomingMessages

Название Тип Описание
Data String Текст сообщения
SourceAddress String Адрес отправителя
DestinationAddress String Адрес получателя
CreatedDateUtc DateTime Дата создания
Expired int Количество просроченных сообщений.
Rejected int Количество отклоненных сообщений

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

Отправка Viber адресатам и возвращение системных идентификаторов сообщений

Данный метод поддерживает массовую отправку сообщений (до 1000 сообщений) в одном запросе.

Пример запроса:

POST /ViberService.asmx HTTP/1.1
Host: ws.devinotele.com
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <SendMessage xmlns="http://ws.devinosms.com">
      <sessionID>string</sessionID>
      <message>
          <Data>string</Data>
          <DestinationAddresses>
            <string>string</string>
            <string>string</string>
          </DestinationAddresses>
          <SourceAddress>string</SourceAddress>
          <Validity>int</Validity>
          <Optional>string</Optional>
      </message>
    </SendMessage>
  </soap12:Body>
</soap12:Envelope>

Табл. 12. Описание параметров SendMessage

Параметр Тип данных Обязательность Описание
sessionId String Да Идентификатор сессии (36 символов).
Data String Да Текст сообщения, сообщение не должно быть длиннее 1000 символов
Destination Addresses String [] Да Номер получателя сообщения в международном формате: код страны + код сети + номер телефона. Пример: 79031234567, +79031234567, 89031234567
SourceAddress String Да Адрес отправителя сообщения. До 11 латинских или цифровых символов.
Validity Int Да Время жизни сообщения (мин, от 1 до 1440)
Optional String Нет Дополнительный параметр

Пример ответа:

HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
   <SendMessageResponse xmlns="http://ws.devinosms.com">
      <SendMessageResult>
         <string>string</string>
         <string>string</string>
       </SendMessageResult>
   </SendMessageResponse>
  </soap12:Body>
</soap12:Envelope>

Отправка Viber адресатам и возвращение системных идентификаторов сообщений с переотправкой по sms

Данный метод поддерживает массовую отправку сообщений (до 1000 сообщений) в одном запросе.

Пример запроса:

POST /ViberService.asmx HTTP/1.1
Host: ws.devinotele.com
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <SendMessageWithResend xmlns="http://ws.devinosms.com">
      <sessionID>string</sessionID>
      <message>
          <Data>string</Data>
          <DestinationAddresses>
            <string>string</string>
            <string>string</string>
          </DestinationAddresses>
          <SourceAddress>string</SourceAddress>
          <Validity>int</Validity>
          <Optional>string</Optional>
      </message>
    </SendMessageWithResend>
  </soap12:Body>
</soap12:Envelope>

Табл. 13. Описание параметров SendMessageWithResend

Параметр Тип данных Обязательность Описание
sessionId String Да Идентификатор сессии (36 символов).
Data String Да Текст сообщения, сообщение не должно быть длиннее 1000 символов
Destination Addresses String [] Да Номер получателя сообщения в международном формате: код страны + код сети + номер телефона. Пример: 79031234567, +79031234567, 89031234567
SourceAddress String Да Адрес отправителя сообщения. До 11 латинских или цифровых символов.
Validity Int Да Время жизни сообщения (мин, от 1 до 1440)
Optional String Нет Дополнительный параметр

Пример ответа:

HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
   <SendMessageWithResendResponse xmlns="http://ws.devinosms.com">
      <SendMessageResult>
         <string>string</string>
         <string>string</string>
       </SendMessageResult>
   </SendMessageWithResendResponse>
  </soap12:Body>
</soap12:Envelope>

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

Сервис возвращает статус отправленного viber-сообщения в соответствии со значениями параметров sessionID и messageID.

Пример запроса:

POST /ViberService.asmx HTTP/1.1
Host: 127.0.0.1
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"   xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <GetMessageState xmlns="http://ws.devinosms.com">
      <sessionID>string</sessionID>
      <messageID>long</messageID>
    </GetMessageState>
  </soap12:Body>
</soap12:Envelope>

Табл. 14. Описание параметров GetMessageState

Параметр Тип данных Обязательность Описание
sessionID String Да Идентификатор сессии, полученный при аутентификации (36 символов).
messageID String Да Идентификатор viber-сообщения. Для одного запроса будет выполнен возврат статуса только одного сообщения.

Пример ответа:

HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"   xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <GetMessageStateResponse xmlns="http://ws.devinosms.com">
      <GetMessageStateResult>
        <State>Enqueued or Sent or Delivered or Read or Undelivered or Failed or Unknown or Expired</State>
        <ResentSms>
          <ViberSmsMessageStateInfo>
            <Id>long</Id>
          </ViberSmsMessageStateInfo>
          <ViberSmsMessageStateInfo>
            <Id>long</Id>
          </ViberSmsMessageStateInfo>
        </ResentSms>
      </GetMessageStateResult>
    </GetMessageStateResponse>
  </soap12:Body>
</soap12:Envelope>

Табл. 15. Описание возвращаемых параметров

Название Тип Описание
State int Статус. Типы статусов сообщений приведены в примечании.
CreationDateUtc dateTime Дата и время создания (пример 2010-0601T19:14:00) в UTC.
SubmittedDateUtc dateTime Время получения в Devino (в UTC).
ReportedDateUtc dateTime Время получения отчета (в UTC).
StateDescription string Описание статуса. Например Description(“Недопустимый адрес получателя”).
Price decimal Цена
ResentSms ViberSmsMessageStateInfo[] Коллекция статусов сообщений, которые были переотправлены по текущему viber-сообщению

Коды ошибок и статусы сообщений

Табл. 16. Статусы сообщений

БД Devino Наименование Описание Подробное описание
-200 Ошибка Errors=-200 Статус для фильтра “Ошибка” в детализации
-100 Протарифицировано Tarificated = -100 Статус для фильтра “Протарифицировано” в детализации
-3 Ошибка ErrorSendingDateTimeInterpretation= -3 Ошибка интерпретации даты и времени отправки
-1 Отправлено Sent = -1 Сообщение отправлено
-2 Отправляется LocalQueued = -2 Сообщение отправляется
-40 Ожидание Queued = -40 Сообщение в статусе «ожидание»
-30 Остановлено Sending_To_Gateway = -30 Отправлено в шлюз
-20 Отправлено/ получателю Sending_To_Recipient = -20 Сообщение отправлено получателю
0 Доставлено Delivered_To_Recipient = 0 Сообщение доставлено
0x0000000B Ошибка Error_Invalid_Destination_Address =0x0000000B Неверно введён адрес получателя
0x0000000A Ошибка Error_Invalid_Source_Address =0x0000000A Неверно введён адрес отправителя
41 Ошибка Error_Incompatible_Destination = 41 Недопустимый адрес получателя
42 Ошибка Error_Rejected = 42 Отклонено
46 Ошибка Error_Expired = 46 Просрочен
47 Ошибка Deleted = 47 Просрочено
48 Ошибка Devino_Rejected = 48 Ошибка
0x000000FF Неизвестный Unknown = 0x000000FF Внутренняя ошибка
0x00000008 Ошибка System_Error = 0x00000008 Внутренняя ошибка