API-ключ для интеграции рассылки SMS | WEBCOM
Подождите

API

API позволяет отправлять сообщения через ваши проекты и сервисы по протоколам HTTP/HTTPS и SMPP.

ИНТЕГРАЦИЯ ПО API ГАРАНТИРОВАННОЕ КАЧЕСТВО

separator

СКОРОСТЬ ДОСТАВКИ

Высокая пропускная способность и выделенные подключения к операторам позволяют доставлять сообщения в считанные секунды

НАДЕЖНОСТЬ ПЛАТФОРМЫ

Несколько дата центров и защита от DDoS-атак обеспечивают доступность платформы 99,99% времени

БЕЗОПАСНОСТЬ РАБОТЫ

Использование безопасного SSL протокола и MD5-хеширования обеспечивает дополнительную защиту передаваемых данных

ПРОСТОТА ИНТЕГРАЦИИ

Подробное описание протоколов интеграции и помощь наших специалистов обеспечат быструю и легкую интеграцию

ИНТЕГРАЦИЯ ПО API ГАРАНТИРОВАННОЕ КАЧЕСТВО

Так выглядит типичный запрос для отправки SMS через API, где:

login — Ваш логин
signature — Ваша подпись
phone — номер телефона получателя
text — текст SMS сообщения
sender — Ваше имя отправителя
timestamp — время отправки сообщения

API-1

Отправка SMS

Адрес сервера для запросов: http://my.webcom.mobi/external/get/send.php
В запросе необходимо передать шесть обязательных параметров login, signature, phone, text, sender, timestamp
login — Ваш логин
signature — подпись
phone — Один номер, или список номеров через запятую (не более 50 номеров в одном запросе)
text — Текст СМС сообщения
sender — Имя отправителя (одно из одобренных на вашем аккаунте)
timestamp — Timestamp по UTC
sendingTime — Пример: 2014-05-30 14:06 (необязательный параметр, используется если необходимо запланировать рассылку на будущее время)
Пример запроса:

http://my.webcom.mobi/external/get/send.php?login=testuser&signature=9b278566c511c547c9751679a80b076d&phone=0&text=%D0%A2%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D0%BE%D0%B5+%D0%A1%D0%9C%D0%A1+%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D0%B5+%22Test+SMS%22%21&sender=smstest&timestamp=1492599538

Существует седьмой, необязательный параметр return, который может принимать одно из двух значений: json, xml
Пример запроса:

http://my.webcom.mobi/external/get/send.php?login=testuser&signature=92af320592919b302b163c3ea8e04d5d&phone=0&text=Hello!&sender=smstest&return=json&timestamp=1409887191

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

{"0":{"error":"0", "id_sms":"4092112510348380960001", "cost":"0.5", "count_sms":"1"}}

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

http://my.webcom.mobi/external/get/send.php?login=testuser&signature=92af320592919b302b163c3ea8e04d5d&phone=0&text=Hello!&sender=smstest&return=xml&timestamp=1409887191

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

<?xml version="1.0" encoding="utf-8"?>
<response>
<phones>
<phone phone="0" error="0" id_sms="4092113100349055700001" cost="0.5" count_sms="1" />
</phones>
</response>



login: testuser
API ключ:6ca8c7ff27a4579947e099a4603d005d5a041368

Подпись

Любой запрос должен содержать обязательный параметр timestamp — который в свою очередь должен быть включен в подпись и действителен в течение 86400 секунд.
Запросить timestamp нужно по адресу: http://my.webcom.mobi/external/get/timestamp.php

Подпись (параметр signature) — md5 хэш, который формируется следующим образом:
Все параметры из запроса нужно отсортировать в алфавитном порядке в строку, в конец строки добавить API ключ. При этом последовательность параметров непосредственно в запросе не имеет значения.

Например для запроса http://my.webcom.mobi/external/get/balance.php?login=testuser&signature=60ad612a4bddb3da99d4f89417c5ed68&timestamp=1492600744
таким образом в данном случае подпись будет состоять из параметров login, timestamp и API ключа: 60ad612a4bddb3da99d4f89417c5ed68

Простой пример составления подписи на PHP

Готовый пример простейшей функции для составления подписи на PHP

function Signature( $params, $api_key )
{
    ksort( $params );
    reset( $params );

    return md5( implode( $params ) . $api_key );
}

Есть набор параметров

$params = array(
    'timestamp' => '1492600744',
    'login'     => 'YourLogin',
    'phone'     => '0',
    'sender'    => 'smstest'
    'text'      => 'Long text'
);

Его нужно отсортировать по алфавиту

ksort( $params );
reset( $params );

В результате получится

Array
(
    [login] => YourLogin
    [phone] => 0
    [sender] => smstest
    [text] => Long text
    [timestamp] => 1492600744
)

Получившийся результат преобразовать в строку

implode( $params );

В результате получится

YourLogin0smstestLong text1492600744

В конец строки добавить ваш API ключ — 6ca8c7ff27a4579947e099a4603d005d5a041368

YourLogin0smstestLong text14926010356ca8c7ff27a4579947e099a4603d005d5a041368

Получившийся результат преобразовать в md5 хэш

md5( 'YourLogin0smstestLong text14926010356ca8c7ff27a4579947e099a4603d005d5a041368' );

В результате получится действительная подпись которую нужно подставить в параметр запроса — signature

5eb5d09d73b377bec32da56d48ac9b76

Т.е. итоговый запрос будет в данном случае выглядеть так:

http://my.webcom.mobi/external/get/PAGE.php?login=YourLogin&timestamp=1492601035&phone=0&text=Long%20text&signature=5eb5d09d73b377bec32da56d48ac9b76


Запрос баланса

Адрес сервера для запросов: http://my.webcom.mobi /get/balance.php
login — Ваш логин
signature — подпись
timestamp — Timestamp по UTC
В запросе необходимо передать три обязательных параметра login, signature и timestamp
Существует четвертый, необязательный параметр return, который может принимать одно из двух значений: json, xml
Пример запроса:

http://my.webcom.mobi/external/get/balance.php?login=testuser&signature=040717b352068dd36aa454aca57adf3f&timestamp=1492594301

Существует четвертый, необязательный параметр return, который может принимать одно из двух значений: json, xml
Пример запроса:

http://my.webcom.mobi/external/get/balance.php?login=testuser&signature=a783d576f79b16653795018d3bb98047&return=json&timestamp=1492594301

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

{"money" : "69573.1","currency" : "RUR"}

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

http://my.webcom.mobi/external/get/balance.php?login=testuser&signature=4e45b001907e1d3d5988a2931b6cf872&return=xml&timestamp=1492594301

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

<?xml version="1.0" encoding="utf-8"?>
<response>
   <money>69573.1</money>
   <currency>RUR</currency>
</response>


Запрос списка баз

Адрес сервера для запросов: http://my.webcom.mobi/external/get/base.php

В запросе необходимо передать три обязательных параметра login, signature и timestamp
login — Ваш логин
signature — подпись
timestamp — Timestamp по UTC

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

http://my.webcom.mobi/external/get/base.php?login=testuser&signature=fa4434cebab751f703063daed36c86ae&timestamp=1492601569

Существует сетвертый, необязательный параметр return, который может принимать одно из двух значений: json, xml

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

http://my.webcom.mobi/external/get/base.php?login=testuser&signature=7cd7000c44177cb1f08b64fcb3fc1bb4&return=json&timestamp=1492601569

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

{"125448":{"name":"All qualified leads","time_birth":"12:00:00","day_before":"0" ,"local_time":"1","birth_sender":"" ,"birth_text":"","on_birth":"0","count":"3618","pages":"37"},"125452":{"name":"Valuable clients","time_birth":"12:00:00","day_before":"0" ,"local_time":"1","birth_sender":"" ,"birth_text":"","on_birth":"0","count":"2255","pages":"23"},"125453":{"name":"Partners","time_birth":"12:00:00","day_before":"0" ,"local_time":"1","birth_sender":"" ,"birth_text":"","on_birth":"0","count":"2266","pages":"23"},"125454":{"name":"All leads and clients","time_birth":"12:00:00","day_before":"0" ,"local_time":"0","birth_sender":"Stok&Sekond" ,"birth_text":"","on_birth":"1","count":"11537","pages":"116"}}

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

http://my.webcom.mobi/external/get/base.php?login=testuser&signature=8c6c275f3848b58fc457ddd0a2d0a84b&return=xml&timestamp=1492601569

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

<?xml version="1.0" encoding="utf-8"?>
<response>
<bases>
<base base="125448" name="All qualified leads" time_birth="12:00:00" day_before="0"
                         local_time="1" birth_sender="" birth_text=""
                         on_birth="0" count="3618" pages="37" />
<base base="125452" name="Valuable clients" time_birth="12:00:00" day_before="0"
                         local_time="1" birth_sender="" birth_text=""
                         on_birth="0" count="2255" pages="23" />
<base base="125453" name="Partners" time_birth="12:00:00" day_before="0"
                         local_time="1" birth_sender="" birth_text=""
                         on_birth="0" count="2266" pages="23" />
<base base="125454" name="All leads and clients" time_birth="12:00:00" day_before="0"
                         local_time="0" birth_sender="Stok&Sekond" birth_text=""
                         on_birth="1" count="11537" pages="116" /></bases>
</response>


Запрос списка отправителей

Адрес сервера для запросов: http://my.webcom.mobi/external/get/senders.php

В запросе необходимо передать три обязательных параметра login, signature, timestamp

login — Ваш логин
signature — подпись
timestamp — Timestamp по UTC

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

http://my.webcom.mobi/external/get/senders.php?login=sms_site&signature=e33472a6a3859597d504f34ed068b89c&timestamp=1492659028

Существует четвертый, необязательный параметр return, который может принимать одно из двух значений: json, xml

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

http://my.webcom.mobi/external/get/senders.php?login=sms_site&signature=3656f0d1ede6a59a9077b33d8b40fd8a&return=json&timestamp=1492659028

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

{"smstest":"completed","smstest2":"completed"}

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

http://my.webcom.mobi/external/get/senders.php?login=sms_site&signature=07e2a87f6bb0c5ca9b9b8931421c3e66&return=xml&timestamp=1492659028

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

<?xml version="1.0" encoding="utf-8"?>
<response>
<senders>
<sender sender="smstest" state="completed" />
<sender sender="smstest2" state="completed" />
</senders>
</response>


Запрос номеров из базы

Адрес сервера для запросов: http://my.webcom.mobi/external/get/phone.php

В запросе необходимо передать пять обязательных параметров login, signature, base, page, timestamp

login — Ваш логин
signature — подпись
base — ID базы
page — Номер страницы
timestamp — Timestamp по UTC

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

http://my.webcom.mobi/external/get/phone.php?login=sms_site&signature=28c05afa07da36099ba9acfde888cdb3&base=125454&page=1&timestamp=1492659190

Существует шестой, необязательный параметр return, который может принимать одно из двух значений: json, xml

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

http://my.webcom.mobi/external/get/phone.php?login=sms_site&signature=cf12dc5832aea3ae8dcd79a98a4bde1c&base=125454&page=1&return=json&timestamp=1492659190

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

{"79687931116":{"name":"","last_name":"","middle_name":"" ,"date_birth":"0000-00-00","male":"" ,"note1":"","note2":"","region":"","operator":""},"79874617237":{"name":"","last_name":"","middle_name":"" ,"date_birth":"0000-00-00","male":"" ,"note1":"","note2":"","region":"","operator":""},"79871846995":{"name":"","last_name":"","middle_name":"" ,"date_birth":"0000-00-00","male":"" ,"note1":"","note2":"","region":"","operator":""}}

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

http://my.webcom.mobi/external/get/phone.php?login=sms_site&signature=d4b0de1cd3af639d7679616b420fd83c&base=125454&page=1&return=xml&timestamp=1492659190

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

<?xml version="1.0" encoding="utf-8"?>
<response>
<phones>
<phone phone="7968793****" name="" last_name="" middle_name=""
                                 date_birth="0000-00-00" male="" note1=""
                                 note2="" region="" operator="" />
<phone phone="7987461****" name="" last_name="" middle_name=""
                                 date_birth="0000-00-00" male="" note1=""
                                 note2="" region="" operator="" />
<phone phone="7987184****" name="" last_name="" middle_name=""
                                 date_birth="0000-00-00" male="" note1=""
                                 note2="" region="" operator="" />
</phones>
</response>


Запрос статусов

Адрес сервера для запросов: http://my.webcom.mobi/external/get/status.php

В запросе необходимо передать четыре обязательных параметра login, signature, state, timestamp

login — Ваш логин
signature — подпись
state — ID статуса. Если требуется получить статусы по нескольким СМС, то ID нужно указать через запятую.
timestamp — Timestamp по UTC

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

http://my.webcom.mobi/external/get/status.php?login=sms_site&signature=81279ac5178eadf5c6885ab65236ba3a&state=4091297100348873330001,4091297100348880230003&timestamp=1492660477

Существует пятый, необязательный параметр return, который может принимать одно из двух значений: json, xml

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

http://my.webcom.mobi/external/get/status.php?login=sms_site&signature=082f2d5bd946037cce4fa4da2baf0daa&state=4091297100348873330001,4091297100348880230003&return=json&timestamp=1409887191

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

{"4091297100348873330001" : "not_deliver","4091297100348880230003" : "not_deliver"}

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

http://my.webcom.mobi/external/get/status.php?login=sms_site&signature=082f2d5bd946037cce4fa4da2baf0daa&state=4091297100348873330001,4091297100348880230003&return=xml&timestamp=1409887191

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

<?xml version="1.0" encoding="utf-8"?>
<response>
<statuses>
<status id_sms="4091297100348873330001" status="not_deliver" />
<status id_sms="4091297100348880230003" status="not_deliver" />
</statuses>
</response>


Запрос оператора по номеру

Адрес сервера для запросов: http://my.webcom.mobi/external/get/operator.php

В запросе необходимо передать четыре обязательных параметра login, signature, timestamp и phone

login — Ваш логин
signature — подпись
timestamp — Timestamp по UTC
phone — Номер абонента

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

http://my.webcom.mobi/external/get/operator.php?login=sms_site&signature=01f420c41de6ff481defe5780f0dc218&timestamp=1492660569&phone=179033145252

Существует четвертый, необязательный параметр return, который может принимать одно из двух значений: json, xml

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

http://my.webcom.mobi/external/get/operator.php?login=sms_site&signature=a3e6177117272d7f38581bdb2c8bfd1f&timestamp=1492660569&return=json&phone=179033145252

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

{"currency": "USD","error": 0,"mcc": "000","mnc": "00","ok": true,"operator": "AT&T","phone": "1XXXXXXXXXX","ported": 0,"price": 0.65,"regionCode": 0,"timeZone": 0}


Запрос входящих SMS

Адрес сервера для запросов: http://my.webcom.mobi/external/get/incoming.php

В запросе необходимо передать четыре или пять обязательных параметра login, signature, date и timestamp

login — Ваш логин
signature — подпись
date — дата в формате YYYY-MM-DD
from — дата начала в формате YYYY-MM-DD HH:II:SS (Пример: 2014-05-01 14:06:00)
to — дата конца в формате YYYY-MM-DD HH:II:SS (Пример: 2014-05-30 23:59:59)
timestamp — Timestamp по UTC
(Вы можете использовать параметр «date» ИЛИ параметры «from» И «to» вместе, если же будут использоваться все единовременно, система автоматически выберет только параметр «date»)

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

http://my.webcom.mobi/external/get/incoming.php?login=sms_site&signature=1693195ef1f3ad06a10c4b6d3e024b9c&timestamp=1492660641&date=2017-04-20

Существует необязательный параметр return, который может принимать одно из двух значений: json, xml

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

http://my.webcom.mobi/external/get/incoming.php?login=sms_site&signature=1693195ef1f3ad06a10c4b6d3e024b9c&timestamp=1492660641&return=json&date=2017-04-20

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

{{"5597" : {"date":"2014-10-27 05:47:24", "sender":"179033145252", "phone":"5163251632", "prefix":"51632", "text":"51632 TEST"}}}

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

http://my.webcom.mobi/external/get/incoming.php?login=sms_site&signature=1693195ef1f3ad06a10c4b6d3e024b9c&timestamp=1492660641&return=xml&date=2017-04-20

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

<?xml version="1.0" encoding="utf-8"?>
                        <response>
                           <sms
                        id_sms="5597"
                        date="2014-10-27 05:47:24"
                        sender="179033145252"
                        phone="5163251632"
                        prefix="51632"
                        text="51632 TEST"
                        />
                        </response>


Запрос статусов

Адрес сервера для запросов: http://my.webcom.mobi/external/get/status.php

В запросе необходимо передать четыре обязательных параметра login, signature, state, timestamp

login — Ваш логин
signature — подпись
state — ID статуса. Если требуется получить статусы по нескольким СМС, то ID нужно указать через запятую.
timestamp — Timestamp по UTC

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

http://my.webcom.mobi/external/get/status.php?login=sms_site&signature=3e8c7387ff51ce6b2ce7eb60b8d2abec&state=4091297100348873330001,4091297100348880230003&timestamp=1492660925

Существует пятый, необязательный параметр return, который может принимать одно из двух значений: json, xml

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

http://my.webcom.mobi/external/get/status.php?login=sms_site&signature=082f2d5bd946037cce4fa4da2baf0daa&state=4091297100348873330001,4091297100348880230003&return=json&timestamp=1409887191

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

{"4091297100348873330001" : "not_deliver","4091297100348880230003" : "not_deliver"}

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

http://my.webcom.mobi/external/get/status.php?login=sms_site&signature=082f2d5bd946037cce4fa4da2baf0daa&state=4091297100348873330001,4091297100348880230003&return=xml&timestamp=1409887191

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

<?xml version="1.0" encoding="utf-8"?>
<response>
<statuses>
<status id_sms="4091297100348873330001" status="not_deliver" />
<status id_sms="4091297100348880230003" status="not_deliver" />
</statuses>
</response>


Поиск номера в стоп-листе

Адрес сервера для запросов: http://my.webcom.mobi/external/get/find_on_stop.php

В запросе необходимо передать четыре обязательных параметра login, signature, phone, timestamp

login — Ваш логин
signature — подпись
phone — Искомый номер
timestamp — Timestamp по UTC

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

http://my.webcom.mobi/external/get/find_on_stop.php?login=sms_site&signature=33dd5a751cbdc9639ea1543f403d7e7a&phone=179033145252&timestamp=1409887191

Существует пятый, необязательный параметр return, который может принимать одно из двух значений: json, xml

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

http://my.webcom.mobi/external/get/find_on_stop.php?login=sms_site&signature=33dd5a751cbdc9639ea1543f403d7e7a&phone=179033145252&return=json&timestamp=1409887191

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

{"time_in" : "2014-08-29 11:07:43","description" : "descr"}

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

http://my.webcom.mobi/external/get/find_on_stop.php?login=sms_site&signature=33dd5a751cbdc9639ea1543f403d7e7a&phone=179033145252&return=xml&timestamp=1409887191

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

<?xml version="1.0" encoding="utf-8"?>
<response>
<time_in>2014-08-29 11:07:43</time_in>
<description>descr</description>
</response>


Добавление номера в стоп-лист

Адрес сервера для запросов: http://my.webcom.mobi/external/get/add2stop.php

В запросе необходимо передать четыре обязательных параметра login, signature, phone, timestamp

login — Ваш логин
signature — подпись
phone — Номер который нужно добавить в стоп-лист
timestamp — Timestamp по UTC

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

http://my.webcom.mobi/external/get/add2stop.php?login=sms_site&signature=33dd5a751cbdc9639ea1543f403d7e7a&phone=179033145252&timestamp=1409887191

Существует пятый, необязательный параметр return, который может принимать одно из двух значений: json, xml

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

http://my.webcom.mobi/external/get/add2stop.php?login=sms_site&signature=33dd5a751cbdc9639ea1543f403d7e7a&phone=179033145252&timestamp=1409887191&return=json

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

{"id" : "4419373"}

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

http://my.webcom.mobi/external/get/add2stop.php?login=sms_site&signature=33dd5a751cbdc9639ea1543f403d7e7a&phone=179033145252&timestamp=1409887191&return=xml

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

<?xml version="1.0" encoding="utf-8"?>
<response>
<id>4419374</id>
</response>


Запрос списка шаблонов

Адрес сервера для запросов: http://my.webcom.mobi/external/get/template.php

В запросе необходимо передать три обязательных параметра login, signature, timestamp

login — Ваш логин
signature — подпись

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

http://my.webcom.mobi/external/get/template.php?login=sms_site&signature=9c054d94188c573d85deec99b66418b7&timestamp=1409887191

Существует четвертый, необязательный параметр return, который может принимать одно из двух значений: json, xml

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

http://my.webcom.mobi/external/get/template.php?login=sms_site&signature=9c054d94188c573d85deec99b66418b7&return=json&timestamp=1409887191

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

{"test" : "{"template":"text", "up_time":"2014-08-28 15:22:25"}","test22" : "{"template":"testtt 1321321231321", "up_time":"2014-08-28 15:39:07"}"}

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

http://my.webcom.mobi/external/get/template.php?login=sms_site&signature=9c054d94188c573d85deec99b66418b7&return=xml&timestamp=1409887191

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

<?xml version="1.0" encoding="utf-8"?>
<response>
<templates>
<template name="test" template="text" up_time="2014-08-28 15:22:25" />
<template name="test22" template="testtt 1321321231321" up_time="2014-08-28 15:39:07" />
</templates>
</response>


Добавление шаблона

Адрес сервера для запросов: http://my.webcom.mobi/external/get/add_template.php

В запросе необходимо передать пять обязательных параметров login, signature, name, text, timestamp

login — Ваш логин
signature — подпись
name — Название шаблона
text — Текст шаблона
timestamp — Timestamp по UTC
override — Пример: 0 или 1 (необязательный параметр, используется если необходимо изменить шаблон, если был найден шаблон и overrid равен 1-му, шаблон отредактируется)

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

http://my.webcom.mobi/external/get/add_template.php?login=sms_site&signature=af1c14a612f3821b9157d11694474666&name=test22&text=testtt 1321321231321&timestamp=1409887191

Существует шестой, необязательный параметр return, который может принимать одно из двух значений: json, xml

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

http://my.webcom.mobi/external/get/add_template.php?login=sms_site&signature=af1c14a612f3821b9157d11694474666&name=test22&text=testtt 1321321231321&timestamp=1409887191&return=json

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

{"id" : "4419373"}

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

http://my.webcom.mobi/external/get/add_template.php?login=sms_site&signature=af1c14a612f3821b9157d11694474666&name=test22&text=testtt 1321321231321&timestamp=1409887191&return=xml

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

<?xml version="1.0" encoding="utf-8"?>
<response>
<id>4419374</id>
</response>


Удаление шаблона

Адрес сервера для запросов: http://my.webcom.mobi/external/get/del_template.php

В запросе необходимо передать четыре обязательных параметра: login, signature, name, timestamp

login — Ваш логин
signature — подпись
name — Название шаблона
timestamp — Timestamp по UTC

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

http://my.webcom.mobi/external/get/del_template.php?login=sms_site&signature=a39ae51660df3c5c09149d339c061a55&name=test22&timestamp=1409887191

Существует пятый, необязательный параметр return, который может принимать одно из двух значений: json, xml

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

http://my.webcom.mobi/external/get/del_template.php?login=sms_site&signature=a39ae51660df3c5c09149d339c061a55&name=test22&timestamp=1409887191&return=json

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

{"result" : "deleted"}

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

http://my.webcom.mobi/external/get/del_template.php?login=sms_site&signature=a39ae51660df3c5c09149d339c061a55&name=test22&timestamp=1409887191&return=xml

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

<?xml version="1.0" encoding="utf-8"?>
<response>
<result>deleted</result>
</response>


Общая статистика за месяц по дням

Адрес сервера для запросов: http://my.webcom.mobi/external/get/stat_by_month.php

В запросе необходимо передать четыре обязательных параметра login, signature, month, timestamp

login — Ваш логин
signature — подпись
month — Год и месяц в формате YYYY-MM
timestamp — Timestamp по UTC

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

http://my.webcom.mobi/external/get/stat_by_month.php?login=sms_site&signature=e4b0b459d29752161913cb3eb5db617d&month=2017-04&timestamp=1492662445

Существует пятый, необязательный параметр return, который может принимать одно из двух значений: array, json, xml

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

http://my.webcom.mobi/external/get/stat_by_month.php?login=sms_site&signature=a700de8fe83ce44f971a542352b90326&month=2014-08&return=json&timestamp=1409887191

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

{"2014-08-01":{"deliver":{"cost":"0.500", "parts":"1"},"2014-08-06":{"deliver":{"cost":"0.600", "parts":"1"},"not_deliver":{"cost":"0.600", "parts":"1"},"2014-08-07":{"deliver":{"cost":"1.200", "parts":"2"},"not_deliver":{"cost":"1.800", "parts":"3"},"2014-08-08":{"not_deliver":{"cost":"0.700", "parts":"1"},"deliver":{"cost":"0.600", "parts":"1"},"2014-08-09":{"not_deliver":{"cost":"506.800", "parts":"768"},"deliver":{"cost":"858.700", "parts":"1304"},"expired":{"cost":"80.500", "parts":"122"},"2014-08-11":{"not_deliver":{"cost":"32.700", "parts":"50"},"expired":{"cost":"7.900", "parts":"12"},"deliver":{"cost":"57.000", "parts":"86"},"2014-08-13":{"expired":{"cost":"0.600", "parts":"1"},"2014-08-14":{"deliver":{"cost":"8080.850", "parts":"18071"},"not_deliver":{"cost":"4695.000", "parts":"10546"},"expired":{"cost":"992.250", "parts":"2217"},"2014-08-15":{"deliver":{"cost":"1738.300", "parts":"3909"},"expired":{"cost":"194.300", "parts":"436"},"not_deliver":{"cost":"1057.700", "parts":"2380"},"2014-08-19":{"expired":{"cost":"2564.350", "parts":"5703"},"not_deliver":{"cost":"2565.800", "parts":"5681"},"deliver":{"cost":"4248.100", "parts":"9416"},"2014-08-25":{"not_deliver":{"cost":"621.250", "parts":"1345"},"deliver":{"cost":"978.550", "parts":"2116"},"expired":{"cost":"109.900", "parts":"237"},"2014-08-26":{"deliver":{"cost":"10.500", "parts":"21"},"not_deliver":{"cost":"4.500", "parts":"9"},"expired":{"cost":"1.000", "parts":"2"},"2014-08-27":{"deliver":{"cost":"1339.950", "parts":"2836"},"expired":{"cost":"160.400", "parts":"340"},"not_deliver":{"cost":"836.050", "parts":"1769"},"2014-08-28":{"expired":{"cost":"357.000", "parts":"714"},"deliver":{"cost":"2901.500", "parts":"5803"},"not_deliver":{"cost":"1796.000", "parts":"3592"},"2014-08-29":{"not_deliver":{"cost":"0.500", "parts":"1"}}

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

http://my.webcom.mobi/external/get/stat_by_month.php?login=sms_site&signature=a700de8fe83ce44f971a542352b90326&month=2014-08&return=xml&timestamp=1409887191

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

<?xml version="1.0" encoding="utf-8"?>
<response>
<statiscics>
<date date="2014-08-01" deliver_cost="0.500" deliver_parts="1" />
<date date="2014-08-06" deliver_cost="0.600" deliver_parts="1" not_deliver_cost="0.600" not_deliver_parts="1" />
<date date="2014-08-07" deliver_cost="1.200" deliver_parts="2" not_deliver_cost="1.800" not_deliver_parts="3" />
<date date="2014-08-08" not_deliver_cost="0.700" not_deliver_parts="1" deliver_cost="0.600" deliver_parts="1" />
<date date="2014-08-09" not_deliver_cost="506.800" not_deliver_parts="768" deliver_cost="858.700" deliver_parts="1304" expired_cost="80.500" expired_parts="122" />
<date date="2014-08-11" not_deliver_cost="32.700" not_deliver_parts="50" expired_cost="7.900" expired_parts="12" deliver_cost="57.000" deliver_parts="86" />
<date date="2014-08-13" expired_cost="0.600" expired_parts="1" />
<date date="2014-08-14" deliver_cost="8080.850" deliver_parts="18071" not_deliver_cost="4695.000" not_deliver_parts="10546" expired_cost="992.250" expired_parts="2217" />
<date date="2014-08-15" deliver_cost="1738.300" deliver_parts="3909" expired_cost="194.300" expired_parts="436" not_deliver_cost="1057.700" not_deliver_parts="2380" />
<date date="2014-08-19" expired_cost="2564.350" expired_parts="5703" not_deliver_cost="2565.800" not_deliver_parts="5681" deliver_cost="4248.100" deliver_parts="9416" />
<date date="2014-08-25" not_deliver_cost="621.250" not_deliver_parts="1345" deliver_cost="978.550" deliver_parts="2116" expired_cost="109.900" expired_parts="237" />
<date date="2014-08-26" deliver_cost="10.500" deliver_parts="21" not_deliver_cost="4.500" not_deliver_parts="9" expired_cost="1.000" expired_parts="2" />
<date date="2014-08-27" deliver_cost="1339.950" deliver_parts="2836" expired_cost="160.400" expired_parts="340" not_deliver_cost="836.050" not_deliver_parts="1769" />
<date date="2014-08-28" expired_cost="357.000" expired_parts="714" deliver_cost="2901.500" deliver_parts="5803" not_deliver_cost="1796.000" not_deliver_parts="3592" />
<date date="2014-08-29" not_deliver_cost="0.500" not_deliver_parts="1" />
</statiscics>
</response>


HLR запрос

Адрес сервера для запросов: http://my.webcom.mobi/external/get/hlr.php

В запросе необходимо передать четыре обязательных параметра login, phone, signature и timestamp

login — Ваш логин
signature — подпись
phone — один или несколько номеров через запятую, но не более ста номеров в запросе
timestamp — Timestamp по UTC

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

http://my.webcom.mobi/external/get/hlr.php?login=sms_site&phone=179033145252&signature=d29899e110dcfc6a4e27aec9dfac54e4&timestamp=1492662550

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

http://my.webcom.mobi/external/get/hlr.php?login=sms_site&phone=179033145252&signature=d29899e110dcfc6a4e27aec9dfac54e4&timestamp=1492662550&return=json

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

http://my.webcom.mobi/external/get/hlr.php?login=sms_site&phone=179033145252&signature=d29899e110dcfc6a4e27aec9dfac54e4&timestamp=1492662550&return=xml


Статистика HLR запросов

Адрес сервера для запросов: http://my.webcom.mobi/external/get/hlr_stat.php

В запросе необходимо передать пять обязательных параметров login, from, to, signature и timestamp

login — Ваш логин
signature — подпись
from — начальная дата в формате YYYY-MM-DD
to — конечная дата в формате YYYY-MM-DD
timestamp — Timestamp по UTC

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

http://my.webcom.mobi/external/get/hlr_stat.php?login=sms_site&from=2014-04-06&to=2014-05-06&signature=9c054d94188c573d85deec99b66418b7&timestamp=1409887191

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

http://my.webcom.mobi/external/get/hlr_stat.php?login=sms_site&from=2014-04-06&to=2014-05-06&signature=9c054d94188c573d85deec99b66418b7&timestamp=1409887191&return=json

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

http://my.webcom.mobi/external/get/hlr_stat.php?login=sms_site&from=2014-04-06&to=2014-05-06&signature=9c054d94188c573d85deec99b66418b7&timestamp=1409887191&return=xml


Коды ошибок

000 — Сервис отключен
1 — Не указана подпись
2 — Не указан логин
3 — Не указан текст
4 — Не указан телефон
5 — Не указан отправитель
6 — Не корректная подпись
7 — Не корректный логин
8 — Не корректное имя отправителя
9 — Не зарегистрированное имя отправителя
10 — Не одобренное имя отправителя
11 — В тексте содержатся запрещенные слова
12 — Ошибка отправки СМС
13 — Номер находится в стоп-листе. Отправка на этот номер запрещена
14 — В запросе более 50 номеров
15 — Не указана база
16 — Не корректный номер
17 — Не указаны ID СМС
18 — Не получен статус
19 — Пустой ответ
20 — Номер уже существует
21 — Отсутствует название
22 — Шаблон уже существует
23 — Не указан месяц (Формат: YYYY-MM)
24 — Не указана временная метка
25 — Ошибка доступа к базе
26 — База не содержит номеров
27 — Нет валидных номеров
28 — Не указана начальная дата
29 — Не указана конечная дата
30 — Не указана дата (Формат: YYYY-MM-DD)
31 — Направление закрыто для пользователя
32 — Недостаточно средств



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

Для подключения возможности отправки Viber-сообщений (в том числе гибридных SMS+Viber), пожалуйста, обратитесь в службу поддержки, написав на support@webcom.mobi.
После этого, вам будет предоставлен отдельный субаккаунт, с которого отправляются стандартные HTTP-запросы, как и в SMS-сообщениях.
Адрес сервера для запросов: http://my.webcom.mobi/external/get/send.php
В запросе необходимо передать шесть обязательных параметров login, signature, phone, text, sender, timestamp
login — Ваш логин
signature — подпись
phone — Один номер, или список номеров через запятую (не более 50 номеров в одном запросе)
text — Текст СМС сообщения
sender — Имя отправителя (одно из одобренных на вашем аккаунте)
timestamp — Timestamp по UTC
sendingTime — Пример: 2014-05-30 14:06 (необязательный параметр, используется если необходимо запланировать рассылку на будущее время)
Пример запроса:

http://my.webcom.mobi/external/get/send.php?login=testuser&signature=9b278566c511c547c9751679a80b076d&phone=0&text=%D0%A2%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D0%BE%D0%B5+%D0%A1%D0%9C%D0%A1+%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D0%B5+%22Test+SMS%22%21&sender=smstest&timestamp=1492599538

Существует седьмой, необязательный параметр return, который может принимать одно из двух значений: json, xml
Пример запроса:

http://my.webcom.mobi/external/get/send.php?login=testuser&signature=92af320592919b302b163c3ea8e04d5d&phone=0&text=Hello!&sender=smstest&return=json&timestamp=1409887191

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

{"0":{"error":"0", "id_sms":"4092112510348380960001", "cost":"0.5", "count_sms":"1"}}

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

http://my.webcom.mobi/external/get/send.php?login=testuser&signature=92af320592919b302b163c3ea8e04d5d&phone=0&text=Hello!&sender=smstest&return=xml&timestamp=1409887191

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

<?xml version="1.0" encoding="utf-8"?>
<response>
<phones>
<phone phone="0" error="0" id_sms="4092113100349055700001" cost="0.5" count_sms="1" />
</phones>
</response>



login: testuser
API ключ:6ca8c7ff27a4579947e099a4603d005d5a041368

Подпись

Любой запрос должен содержать обязательный параметр timestamp — который в свою очередь должен быть включен в подпись и действителен в течение 86400 секунд.
Запросить timestamp нужно по адресу: http://my.webcom.mobi/external/get/timestamp.php

Подпись (параметр signature) — md5 хэш, который формируется следующим образом:
Все параметры из запроса нужно отсортировать в алфавитном порядке в строку, в конец строки добавить API ключ. При этом последовательность параметров непосредственно в запросе не имеет значения.

Например для запроса http://my.webcom.mobi/external/get/balance.php?login=testuser&signature=60ad612a4bddb3da99d4f89417c5ed68&timestamp=1492600744
таким образом в данном случае подпись будет состоять из параметров login, timestamp и API ключа: 60ad612a4bddb3da99d4f89417c5ed68

Простой пример составления подписи на PHP

Готовый пример простейшей функции для составления подписи на PHP

function Signature( $params, $api_key )
{
    ksort( $params );
    reset( $params );

    return md5( implode( $params ) . $api_key );
}

Есть набор параметров

$params = array(
    'timestamp' => '1492600744',
    'login'     => 'YourLogin',
    'phone'     => '0',
    'sender'    => 'smstest'
    'text'      => 'Long text'
);

Его нужно отсортировать по алфавиту

ksort( $params );
reset( $params );

В результате получится

Array
(
    [login] => YourLogin
    [phone] => 0
    [sender] => smstest
    [text] => Long text
    [timestamp] => 1492600744
)

Получившийся результат преобразовать в строку

implode( $params );

В результате получится

YourLogin0smstestLong text1492600744

В конец строки добавить ваш API ключ — 6ca8c7ff27a4579947e099a4603d005d5a041368

YourLogin0smstestLong text14926010356ca8c7ff27a4579947e099a4603d005d5a041368

Получившийся результат преобразовать в md5 хэш

md5( 'YourLogin0smstestLong text14926010356ca8c7ff27a4579947e099a4603d005d5a041368' );

В результате получится действительная подпись которую нужно подставить в параметр запроса — signature

5eb5d09d73b377bec32da56d48ac9b76

Т.е. итоговый запрос будет в данном случае выглядеть так:

http://my.webcom.mobi/external/get/PAGE.php?login=YourLogin&timestamp=1492601035&phone=0&text=Long%20text&signature=5eb5d09d73b377bec32da56d48ac9b76


Запрос баланса

Адрес сервера для запросов: http://my.webcom.mobi /get/balance.php
login — Ваш логин
signature — подпись
timestamp — Timestamp по UTC
В запросе необходимо передать три обязательных параметра login, signature и timestamp
Существует четвертый, необязательный параметр return, который может принимать одно из двух значений: json, xml
Пример запроса:

http://my.webcom.mobi/external/get/balance.php?login=testuser&signature=040717b352068dd36aa454aca57adf3f&timestamp=1492594301

Существует четвертый, необязательный параметр return, который может принимать одно из двух значений: json, xml
Пример запроса:

http://my.webcom.mobi/external/get/balance.php?login=testuser&signature=a783d576f79b16653795018d3bb98047&return=json&timestamp=1492594301

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

{"money" : "69573.1","currency" : "RUR"}

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

http://my.webcom.mobi/external/get/balance.php?login=testuser&signature=4e45b001907e1d3d5988a2931b6cf872&return=xml&timestamp=1492594301

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

<?xml version="1.0" encoding="utf-8"?>
<response>
   <money>69573.1</money>
   <currency>RUR</currency>
</response>


Запрос списка баз

Адрес сервера для запросов: http://my.webcom.mobi/external/get/base.php

В запросе необходимо передать три обязательных параметра login, signature и timestamp
login — Ваш логин
signature — подпись
timestamp — Timestamp по UTC

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

http://my.webcom.mobi/external/get/base.php?login=testuser&signature=fa4434cebab751f703063daed36c86ae&timestamp=1492601569

Существует сетвертый, необязательный параметр return, который может принимать одно из двух значений: json, xml

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

http://my.webcom.mobi/external/get/base.php?login=testuser&signature=7cd7000c44177cb1f08b64fcb3fc1bb4&return=json&timestamp=1492601569

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

{"125448":{"name":"All qualified leads","time_birth":"12:00:00","day_before":"0" ,"local_time":"1","birth_sender":"" ,"birth_text":"","on_birth":"0","count":"3618","pages":"37"},"125452":{"name":"Valuable clients","time_birth":"12:00:00","day_before":"0" ,"local_time":"1","birth_sender":"" ,"birth_text":"","on_birth":"0","count":"2255","pages":"23"},"125453":{"name":"Partners","time_birth":"12:00:00","day_before":"0" ,"local_time":"1","birth_sender":"" ,"birth_text":"","on_birth":"0","count":"2266","pages":"23"},"125454":{"name":"All leads and clients","time_birth":"12:00:00","day_before":"0" ,"local_time":"0","birth_sender":"Stok&Sekond" ,"birth_text":"","on_birth":"1","count":"11537","pages":"116"}}

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

http://my.webcom.mobi/external/get/base.php?login=testuser&signature=8c6c275f3848b58fc457ddd0a2d0a84b&return=xml&timestamp=1492601569

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

<?xml version="1.0" encoding="utf-8"?>
<response>
<bases>
<base base="125448" name="All qualified leads" time_birth="12:00:00" day_before="0"
                         local_time="1" birth_sender="" birth_text=""
                         on_birth="0" count="3618" pages="37" />
<base base="125452" name="Valuable clients" time_birth="12:00:00" day_before="0"
                         local_time="1" birth_sender="" birth_text=""
                         on_birth="0" count="2255" pages="23" />
<base base="125453" name="Partners" time_birth="12:00:00" day_before="0"
                         local_time="1" birth_sender="" birth_text=""
                         on_birth="0" count="2266" pages="23" />
<base base="125454" name="All leads and clients" time_birth="12:00:00" day_before="0"
                         local_time="0" birth_sender="Stok&Sekond" birth_text=""
                         on_birth="1" count="11537" pages="116" /></bases>
</response>


Запрос списка отправителей

Адрес сервера для запросов: http://my.webcom.mobi/external/get/senders.php

В запросе необходимо передать три обязательных параметра login, signature, timestamp

login — Ваш логин
signature — подпись
timestamp — Timestamp по UTC

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

http://my.webcom.mobi/external/get/senders.php?login=sms_site&signature=e33472a6a3859597d504f34ed068b89c&timestamp=1492659028

Существует четвертый, необязательный параметр return, который может принимать одно из двух значений: json, xml

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

http://my.webcom.mobi/external/get/senders.php?login=sms_site&signature=3656f0d1ede6a59a9077b33d8b40fd8a&return=json&timestamp=1492659028

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

{"smstest":"completed","smstest2":"completed"}

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

http://my.webcom.mobi/external/get/senders.php?login=sms_site&signature=07e2a87f6bb0c5ca9b9b8931421c3e66&return=xml&timestamp=1492659028

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

<?xml version="1.0" encoding="utf-8"?>
<response>
<senders>
<sender sender="smstest" state="completed" />
<sender sender="smstest2" state="completed" />
</senders>
</response>


Запрос номеров из базы

Адрес сервера для запросов: http://my.webcom.mobi/external/get/phone.php

В запросе необходимо передать пять обязательных параметров login, signature, base, page, timestamp

login — Ваш логин
signature — подпись
base — ID базы
page — Номер страницы
timestamp — Timestamp по UTC

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

http://my.webcom.mobi/external/get/phone.php?login=sms_site&signature=28c05afa07da36099ba9acfde888cdb3&base=125454&page=1&timestamp=1492659190

Существует шестой, необязательный параметр return, который может принимать одно из двух значений: json, xml

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

http://my.webcom.mobi/external/get/phone.php?login=sms_site&signature=cf12dc5832aea3ae8dcd79a98a4bde1c&base=125454&page=1&return=json&timestamp=1492659190

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

{"79687931116":{"name":"","last_name":"","middle_name":"" ,"date_birth":"0000-00-00","male":"" ,"note1":"","note2":"","region":"","operator":""},"79874617237":{"name":"","last_name":"","middle_name":"" ,"date_birth":"0000-00-00","male":"" ,"note1":"","note2":"","region":"","operator":""},"79871846995":{"name":"","last_name":"","middle_name":"" ,"date_birth":"0000-00-00","male":"" ,"note1":"","note2":"","region":"","operator":""}}

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

http://my.webcom.mobi/external/get/phone.php?login=sms_site&signature=d4b0de1cd3af639d7679616b420fd83c&base=125454&page=1&return=xml&timestamp=1492659190

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

<?xml version="1.0" encoding="utf-8"?>
<response>
<phones>
<phone phone="7968793****" name="" last_name="" middle_name=""
                                 date_birth="0000-00-00" male="" note1=""
                                 note2="" region="" operator="" />
<phone phone="7987461****" name="" last_name="" middle_name=""
                                 date_birth="0000-00-00" male="" note1=""
                                 note2="" region="" operator="" />
<phone phone="7987184****" name="" last_name="" middle_name=""
                                 date_birth="0000-00-00" male="" note1=""
                                 note2="" region="" operator="" />
</phones>
</response>


Запрос статусов

Адрес сервера для запросов: http://my.webcom.mobi/external/get/status.php

В запросе необходимо передать четыре обязательных параметра login, signature, state, timestamp

login — Ваш логин
signature — подпись
state — ID статуса. Если требуется получить статусы по нескольким СМС, то ID нужно указать через запятую.
timestamp — Timestamp по UTC

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

http://my.webcom.mobi/external/get/status.php?login=sms_site&signature=81279ac5178eadf5c6885ab65236ba3a&state=4091297100348873330001,4091297100348880230003&timestamp=1492660477

Существует пятый, необязательный параметр return, который может принимать одно из двух значений: json, xml

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

http://my.webcom.mobi/external/get/status.php?login=sms_site&signature=082f2d5bd946037cce4fa4da2baf0daa&state=4091297100348873330001,4091297100348880230003&return=json&timestamp=1409887191

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

{"4091297100348873330001" : "not_deliver","4091297100348880230003" : "not_deliver"}

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

http://my.webcom.mobi/external/get/status.php?login=sms_site&signature=082f2d5bd946037cce4fa4da2baf0daa&state=4091297100348873330001,4091297100348880230003&return=xml&timestamp=1409887191

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

<?xml version="1.0" encoding="utf-8"?>
<response>
<statuses>
<status id_sms="4091297100348873330001" status="not_deliver" />
<status id_sms="4091297100348880230003" status="not_deliver" />
</statuses>
</response>


Запрос оператора по номеру

Адрес сервера для запросов: http://my.webcom.mobi/external/get/operator.php

В запросе необходимо передать четыре обязательных параметра login, signature, timestamp и phone

login — Ваш логин
signature — подпись
timestamp — Timestamp по UTC
phone — Номер абонента

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

http://my.webcom.mobi/external/get/operator.php?login=sms_site&signature=01f420c41de6ff481defe5780f0dc218&timestamp=1492660569&phone=179033145252

Существует четвертый, необязательный параметр return, который может принимать одно из двух значений: json, xml

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

http://my.webcom.mobi/external/get/operator.php?login=sms_site&signature=a3e6177117272d7f38581bdb2c8bfd1f&timestamp=1492660569&return=json&phone=179033145252

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

{"currency": "USD","error": 0,"mcc": "000","mnc": "00","ok": true,"operator": "AT&T","phone": "1XXXXXXXXXX","ported": 0,"price": 0.65,"regionCode": 0,"timeZone": 0}

Запрос статусов

Адрес сервера для запросов: http://my.webcom.mobi/external/get/status.php

В запросе необходимо передать четыре обязательных параметра login, signature, state, timestamp

login — Ваш логин
signature — подпись
state — ID статуса. Если требуется получить статусы по нескольким СМС, то ID нужно указать через запятую.
timestamp — Timestamp по UTC

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

http://my.webcom.mobi/external/get/status.php?login=sms_site&signature=3e8c7387ff51ce6b2ce7eb60b8d2abec&state=4091297100348873330001,4091297100348880230003&timestamp=1492660925

Существует пятый, необязательный параметр return, который может принимать одно из двух значений: json, xml

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

http://my.webcom.mobi/external/get/status.php?login=sms_site&signature=082f2d5bd946037cce4fa4da2baf0daa&state=4091297100348873330001,4091297100348880230003&return=json&timestamp=1409887191

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

{"4091297100348873330001" : "not_deliver","4091297100348880230003" : "not_deliver"}

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

http://my.webcom.mobi/external/get/status.php?login=sms_site&signature=082f2d5bd946037cce4fa4da2baf0daa&state=4091297100348873330001,4091297100348880230003&return=xml&timestamp=1409887191

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

<?xml version="1.0" encoding="utf-8"?>
<response>
<statuses>
<status id_sms="4091297100348873330001" status="not_deliver" />
<status id_sms="4091297100348880230003" status="not_deliver" />
</statuses>
</response>


Поиск номера в стоп-листе

Адрес сервера для запросов: http://my.webcom.mobi/external/get/find_on_stop.php

В запросе необходимо передать четыре обязательных параметра login, signature, phone, timestamp

login — Ваш логин
signature — подпись
phone — Искомый номер
timestamp — Timestamp по UTC

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

http://my.webcom.mobi/external/get/find_on_stop.php?login=sms_site&signature=33dd5a751cbdc9639ea1543f403d7e7a&phone=179033145252&timestamp=1409887191

Существует пятый, необязательный параметр return, который может принимать одно из двух значений: json, xml

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

http://my.webcom.mobi/external/get/find_on_stop.php?login=sms_site&signature=33dd5a751cbdc9639ea1543f403d7e7a&phone=179033145252&return=json&timestamp=1409887191

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

{"time_in" : "2014-08-29 11:07:43","description" : "descr"}

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

http://my.webcom.mobi/external/get/find_on_stop.php?login=sms_site&signature=33dd5a751cbdc9639ea1543f403d7e7a&phone=179033145252&return=xml&timestamp=1409887191

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

<?xml version="1.0" encoding="utf-8"?>
<response>
<time_in>2014-08-29 11:07:43</time_in>
<description>descr</description>
</response>


Добавление номера в стоп-лист

Адрес сервера для запросов: http://my.webcom.mobi/external/get/add2stop.php

В запросе необходимо передать четыре обязательных параметра login, signature, phone, timestamp

login — Ваш логин
signature — подпись
phone — Номер который нужно добавить в стоп-лист
timestamp — Timestamp по UTC

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

http://my.webcom.mobi/external/get/add2stop.php?login=sms_site&signature=33dd5a751cbdc9639ea1543f403d7e7a&phone=179033145252&timestamp=1409887191

Существует пятый, необязательный параметр return, который может принимать одно из двух значений: json, xml

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

http://my.webcom.mobi/external/get/add2stop.php?login=sms_site&signature=33dd5a751cbdc9639ea1543f403d7e7a&phone=179033145252&timestamp=1409887191&return=json

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

{"id" : "4419373"}

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

http://my.webcom.mobi/external/get/add2stop.php?login=sms_site&signature=33dd5a751cbdc9639ea1543f403d7e7a&phone=179033145252&timestamp=1409887191&return=xml

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

<?xml version="1.0" encoding="utf-8"?>
<response>
<id>4419374</id>
</response>


Запрос списка шаблонов

Адрес сервера для запросов: http://my.webcom.mobi/external/get/template.php

В запросе необходимо передать три обязательных параметра login, signature, timestamp

login — Ваш логин
signature — подпись

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

http://my.webcom.mobi/external/get/template.php?login=sms_site&signature=9c054d94188c573d85deec99b66418b7&timestamp=1409887191

Существует четвертый, необязательный параметр return, который может принимать одно из двух значений: json, xml

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

http://my.webcom.mobi/external/get/template.php?login=sms_site&signature=9c054d94188c573d85deec99b66418b7&return=json&timestamp=1409887191

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

{"test" : "{"template":"text", "up_time":"2014-08-28 15:22:25"}","test22" : "{"template":"testtt 1321321231321", "up_time":"2014-08-28 15:39:07"}"}

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

http://my.webcom.mobi/external/get/template.php?login=sms_site&signature=9c054d94188c573d85deec99b66418b7&return=xml&timestamp=1409887191

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

<?xml version="1.0" encoding="utf-8"?>
<response>
<templates>
<template name="test" template="text" up_time="2014-08-28 15:22:25" />
<template name="test22" template="testtt 1321321231321" up_time="2014-08-28 15:39:07" />
</templates>
</response>


Добавление шаблона

Адрес сервера для запросов: http://my.webcom.mobi/external/get/add_template.php

В запросе необходимо передать пять обязательных параметров login, signature, name, text, timestamp

login — Ваш логин
signature — подпись
name — Название шаблона
text — Текст шаблона
timestamp — Timestamp по UTC
override — Пример: 0 или 1 (необязательный параметр, используется если необходимо изменить шаблон, если был найден шаблон и overrid равен 1-му, шаблон отредактируется)

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

http://my.webcom.mobi/external/get/add_template.php?login=sms_site&signature=af1c14a612f3821b9157d11694474666&name=test22&text=testtt 1321321231321&timestamp=1409887191

Существует шестой, необязательный параметр return, который может принимать одно из двух значений: json, xml

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

http://my.webcom.mobi/external/get/add_template.php?login=sms_site&signature=af1c14a612f3821b9157d11694474666&name=test22&text=testtt 1321321231321&timestamp=1409887191&return=json

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

{"id" : "4419373"}

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

http://my.webcom.mobi/external/get/add_template.php?login=sms_site&signature=af1c14a612f3821b9157d11694474666&name=test22&text=testtt 1321321231321&timestamp=1409887191&return=xml

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

<?xml version="1.0" encoding="utf-8"?>
<response>
<id>4419374</id>
</response>


Удаление шаблона

Адрес сервера для запросов: http://my.webcom.mobi/external/get/del_template.php

В запросе необходимо передать четыре обязательных параметра: login, signature, name, timestamp

login — Ваш логин
signature — подпись
name — Название шаблона
timestamp — Timestamp по UTC

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

http://my.webcom.mobi/external/get/del_template.php?login=sms_site&signature=a39ae51660df3c5c09149d339c061a55&name=test22&timestamp=1409887191

Существует пятый, необязательный параметр return, который может принимать одно из двух значений: json, xml

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

http://my.webcom.mobi/external/get/del_template.php?login=sms_site&signature=a39ae51660df3c5c09149d339c061a55&name=test22&timestamp=1409887191&return=json

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

{"result" : "deleted"}

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

http://my.webcom.mobi/external/get/del_template.php?login=sms_site&signature=a39ae51660df3c5c09149d339c061a55&name=test22&timestamp=1409887191&return=xml

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

<?xml version="1.0" encoding="utf-8"?>
<response>
<result>deleted</result>
</response>


Общая статистика за месяц по дням

Адрес сервера для запросов: http://my.webcom.mobi/external/get/stat_by_month.php

В запросе необходимо передать четыре обязательных параметра login, signature, month, timestamp

login — Ваш логин
signature — подпись
month — Год и месяц в формате YYYY-MM
timestamp — Timestamp по UTC

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

http://my.webcom.mobi/external/get/stat_by_month.php?login=sms_site&signature=e4b0b459d29752161913cb3eb5db617d&month=2017-04&timestamp=1492662445

Существует пятый, необязательный параметр return, который может принимать одно из двух значений: array, json, xml

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

http://my.webcom.mobi/external/get/stat_by_month.php?login=sms_site&signature=a700de8fe83ce44f971a542352b90326&month=2014-08&return=json&timestamp=1409887191

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

{"2014-08-01":{"deliver":{"cost":"0.500", "parts":"1"},"2014-08-06":{"deliver":{"cost":"0.600", "parts":"1"},"not_deliver":{"cost":"0.600", "parts":"1"},"2014-08-07":{"deliver":{"cost":"1.200", "parts":"2"},"not_deliver":{"cost":"1.800", "parts":"3"},"2014-08-08":{"not_deliver":{"cost":"0.700", "parts":"1"},"deliver":{"cost":"0.600", "parts":"1"},"2014-08-09":{"not_deliver":{"cost":"506.800", "parts":"768"},"deliver":{"cost":"858.700", "parts":"1304"},"expired":{"cost":"80.500", "parts":"122"},"2014-08-11":{"not_deliver":{"cost":"32.700", "parts":"50"},"expired":{"cost":"7.900", "parts":"12"},"deliver":{"cost":"57.000", "parts":"86"},"2014-08-13":{"expired":{"cost":"0.600", "parts":"1"},"2014-08-14":{"deliver":{"cost":"8080.850", "parts":"18071"},"not_deliver":{"cost":"4695.000", "parts":"10546"},"expired":{"cost":"992.250", "parts":"2217"},"2014-08-15":{"deliver":{"cost":"1738.300", "parts":"3909"},"expired":{"cost":"194.300", "parts":"436"},"not_deliver":{"cost":"1057.700", "parts":"2380"},"2014-08-19":{"expired":{"cost":"2564.350", "parts":"5703"},"not_deliver":{"cost":"2565.800", "parts":"5681"},"deliver":{"cost":"4248.100", "parts":"9416"},"2014-08-25":{"not_deliver":{"cost":"621.250", "parts":"1345"},"deliver":{"cost":"978.550", "parts":"2116"},"expired":{"cost":"109.900", "parts":"237"},"2014-08-26":{"deliver":{"cost":"10.500", "parts":"21"},"not_deliver":{"cost":"4.500", "parts":"9"},"expired":{"cost":"1.000", "parts":"2"},"2014-08-27":{"deliver":{"cost":"1339.950", "parts":"2836"},"expired":{"cost":"160.400", "parts":"340"},"not_deliver":{"cost":"836.050", "parts":"1769"},"2014-08-28":{"expired":{"cost":"357.000", "parts":"714"},"deliver":{"cost":"2901.500", "parts":"5803"},"not_deliver":{"cost":"1796.000", "parts":"3592"},"2014-08-29":{"not_deliver":{"cost":"0.500", "parts":"1"}}

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

http://my.webcom.mobi/external/get/stat_by_month.php?login=sms_site&signature=a700de8fe83ce44f971a542352b90326&month=2014-08&return=xml&timestamp=1409887191

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

<?xml version="1.0" encoding="utf-8"?>
<response>
<statiscics>
<date date="2014-08-01" deliver_cost="0.500" deliver_parts="1" />
<date date="2014-08-06" deliver_cost="0.600" deliver_parts="1" not_deliver_cost="0.600" not_deliver_parts="1" />
<date date="2014-08-07" deliver_cost="1.200" deliver_parts="2" not_deliver_cost="1.800" not_deliver_parts="3" />
<date date="2014-08-08" not_deliver_cost="0.700" not_deliver_parts="1" deliver_cost="0.600" deliver_parts="1" />
<date date="2014-08-09" not_deliver_cost="506.800" not_deliver_parts="768" deliver_cost="858.700" deliver_parts="1304" expired_cost="80.500" expired_parts="122" />
<date date="2014-08-11" not_deliver_cost="32.700" not_deliver_parts="50" expired_cost="7.900" expired_parts="12" deliver_cost="57.000" deliver_parts="86" />
<date date="2014-08-13" expired_cost="0.600" expired_parts="1" />
<date date="2014-08-14" deliver_cost="8080.850" deliver_parts="18071" not_deliver_cost="4695.000" not_deliver_parts="10546" expired_cost="992.250" expired_parts="2217" />
<date date="2014-08-15" deliver_cost="1738.300" deliver_parts="3909" expired_cost="194.300" expired_parts="436" not_deliver_cost="1057.700" not_deliver_parts="2380" />
<date date="2014-08-19" expired_cost="2564.350" expired_parts="5703" not_deliver_cost="2565.800" not_deliver_parts="5681" deliver_cost="4248.100" deliver_parts="9416" />
<date date="2014-08-25" not_deliver_cost="621.250" not_deliver_parts="1345" deliver_cost="978.550" deliver_parts="2116" expired_cost="109.900" expired_parts="237" />
<date date="2014-08-26" deliver_cost="10.500" deliver_parts="21" not_deliver_cost="4.500" not_deliver_parts="9" expired_cost="1.000" expired_parts="2" />
<date date="2014-08-27" deliver_cost="1339.950" deliver_parts="2836" expired_cost="160.400" expired_parts="340" not_deliver_cost="836.050" not_deliver_parts="1769" />
<date date="2014-08-28" expired_cost="357.000" expired_parts="714" deliver_cost="2901.500" deliver_parts="5803" not_deliver_cost="1796.000" not_deliver_parts="3592" />
<date date="2014-08-29" not_deliver_cost="0.500" not_deliver_parts="1" />
</statiscics>
</response>

Коды ошибок

000 — Сервис отключен
1 — Не указана подпись
2 — Не указан логин
3 — Не указан текст
4 — Не указан телефон
5 — Не указан отправитель
6 — Не корректная подпись
7 — Не корректный логин
8 — Не корректное имя отправителя
9 — Не зарегистрированное имя отправителя
10 — Не одобренное имя отправителя
11 — В тексте содержатся запрещенные слова
12 — Ошибка отправки СМС
13 — Номер находится в стоп-листе. Отправка на этот номер запрещена
14 — В запросе более 50 номеров
15 — Не указана база
16 — Не корректный номер
17 — Не указаны ID СМС
18 — Не получен статус
19 — Пустой ответ
20 — Номер уже существует
21 — Отсутствует название
22 — Шаблон уже существует
23 — Не указан месяц (Формат: YYYY-MM)
24 — Не указана временная метка
25 — Ошибка доступа к базе
26 — База не содержит номеров
27 — Нет валидных номеров
28 — Не указана начальная дата
29 — Не указана конечная дата
30 — Не указана дата (Формат: YYYY-MM-DD)
31 — Направление закрыто для пользователя
32 — Недостаточно средств



Подключение

Через наш SMS-шлюз возможно отправлять сообщения по протоколу SMPP версии 3.4.
Адрес SMPP-сервера: 89.208.21.131, порт: 2775.
Пример настроек для подключения (формат kannel):

host = 89.208.21.131
port = 2775
Mode of Сonnections: Transceiver
SMPP System ID: login*
SMPP Password: password*
SMPP System type: NULL
SMPP Version: 3.4
SMS per second: 30 
Enquire_link: 60 sec.
Transaction timeout: 30 sec.
Source Address TON: 0 
Source Address NPI: 0
Destination Address TON: 1
Destination Address NPI: 1

*Ваш логин и пароль, полученный при регистрации в сервисе.

При подключении необходимо обратить внимание на частоту отправки пакета ENQUIRE_LINK. Для исключения избыточной нагрузки и защиты от ошибок в ПО клиентов наша система ограничивает отправку данного пакета не чаще, чем раз в 10 секунд, но рекомендуется ставить 30-60 секунд.

Данный раздел содержит только краткое описание SMPP-протокола. Подробности смотрите в спецификации.

 Скачать спецификацию протокола


Множественные подключения

По умолчанию сервер обрабатывает одновременно с одного логина только одно подключение для более корректной отдачи статусов, поэтому при повторном подключении ранее подключенное соединение с таким же логином будет автоматически завершаться. Если же необходимо иметь несколько одновременных подключений для повышения скорости отправки, то можно в настройках всех подключений задать следующий параметр (multi connection):

system-type = "MCON2"
или
system-type = "MCON9"

Значение после MCON может быть от 1 до 9 и задает количество одновременных подключений.

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


Отправка SMS

Для отправки SMS-сообщения используйте команду SUBMIT_SM согласно спецификации.

Поддерживаются следующие кодировки:
* 7-битная GSM для латинского текста с поддержкой европейских символов ? (coding = 0);
* 8-битная ISO-8859-1 (ASCII) для латинского текста или бинарных данных ? (coding = 1);
* UCS2 (UCS-2BE или UTF-16BE) для национальных алфавитов (например, русского) ? (coding = 2).

Поле coding кодируется двумя битами в составном поле data_coding, поэтому data_coding = coding * 4.

Для использования кодировки ISO-8859-1 (ASCII) вместо GSM при подключении нужно указать:

system-type = "ISO"


Проверка статуса

Получать статус доставки отправленного SMS-сообщения по SMPP-протоколу можно как в автоматическом режиме, получая от сервера ответную PDU-команду DELIVER_SM сразу после изменения статуса, так и по запросу отдельной командой QUERY_SM. Для автоматического получения статуса необходимо подключаться в режиме transceiver или receiver и при отправке SMS указать флаг запроса статуса (registered_delivery). Кроме этого, возможно получать статусы на HTTP-обработчик.

При автоматическом возврате статуса в команде DELIVER_SM передаются параметры receipted_message_id (<id>), message_state (числовой <status>) и network_error_code (<err>), а также передается текст статуса в следующем формате:

id:<id> sub:<sub> dlvrd:<dlvrd> submit date:<submit date> done date:<done date>stat:<status> err:<err>

Описание параметров:

Параметр Значение
id Идентификатор сообщения, назначенный сервером при отправке.
sub Количество SMS частей в отправленном сообщении.
dlvrd Количество доставленных SMS.
submit date Дата отправки.
done date Дата изменения статуса.
status Статус сообщения в виде строки (DELIVRD, EXPIRED, UNDELIV).
err Код ошибки, если сообщение не может быть доставлено (список).


Пример результата строки статуса (Delivery Report):

id:854019 sub:001 dlvrd:001 submit date:1108202241 done date:1108202241 stat:DELIVRD err:000

По умолчанию для длинных сообщений, разбиваемых на несколько SMS, сервер возвращает только один статус (DELIVER_SM) для всего склеенного сообщения и одинаковые ID в ответе SUBMIT_SM_RESP для всех SMS-частей данного сообщения. Для включения режима обработки и возврата статусов для каждой SMS-части отдельно установите следущий параметр в настройках:

system-type = "SINGLE"

Если необходимо указать несколько параметров в поле system-type, то укажите их через запятую:

system-type = "ISO,SINGLE"


Получение входящих SMS

Для включения пересылки входящих SMS-сообщений по SMPP-подключению необходимо обратиться в службу технической поддержки.
Входящие сообщения приходят в PDU-команде DELIVER_SM. Для получения необходимо подключаться к SMPP-серверу в режиме transceiver или receiver.


Коды ошибок

Возможные коды ошибок в статусе сообщений или HLR-запросов (значения <err>):

Код Название Описание
0 Нет ошибки Абонент существует и доступен.
1 Абонент не существует Указанный номер телефона не существует.
6 Абонент не в сети Телефон абонента отключен или находится вне зоны действия сети.
11 Нет услуги SMS Означает, что абонент не может принять SMS-сообщение. Например, услуга не подключена, или абонент находится в роуминге, где не активирован прием сообщений, или у оператора абонента не налажен обмен SMS с текущим роуминговым оператором. Также это может быть городской номер без приема сообщений.
13 Абонент заблокирован Возникает, например, если на счету абонента нулевой или отрицательный баланс, и он находится в роуминге, или заблокирован оператором за продолжительную неуплату либо добровольно самим абонентом. Также данная ошибка может возвращаться при повреждении SIM-карты либо неправильном вводе PIN и PUK-кодов SIM-карты.
21 Нет поддержки SMS Аппарат абонента не поддерживает прием SMS-сообщений.
200 Виртуальная отправка Данное уведомление появляется под статусом сообщения в случае отправки сообщения в режиме тестирования (при установленной в настройках галочке «Режим тестирования (виртуальная отправка без оплаты)»).
220 Переполнена очередь у оператора Указанная ошибка может возникать в случае, когда абонент недоступен для приема SMS, но сообщения продолжают приходить оператору и происходит переполнение внутренней очереди сообщений для данного абонента. В редких случаях возможно появление ошибки в результате сбоя в сети самого оператора или переполнении общей очереди сообщений. Во всех подобных ситуациях система с определенными интервалами несколько раз пытается отправить указанные сообщения повторно.
240 Абонент занят Возникает при передаче голосового сообщения абоненту, если линия занята или абонент отменил вызов.
241 Ошибка конвертации звука При преобразовании текста или звукового файла в конечный формат для передачи абоненту голосового сообщения произошла ошибка конвертации звука.
242 Зафиксирован автоответчик Означает, что во время отправки голосового сообщения на стороне абонента был зафиксирован автоответчик.
243 Не заключен договор Возникает при попытке отправки рассылок рекламного или массового характера без заключенного договора.
244 Рассылки запрещены Означает, что для данного Клиента запрещена отправка массовых и рекламных рассылок.
245 Статус не получен В течение суток статус доставки не был получен от оператора, в этом случае нельзя точно сказать, было сообщение доставлено или нет.
246 Ограничение по времени Если в личном кабинете в пункте «Настройки» во вкладке «Лимиты и ограничения» установлено «Время отправки» и галочка «запретить отправку в другое время», то при попытке отправки SMS-сообщений в период времени, отличный от указанного в поле «Время отправки», отправка сообщений будет запрещаться с указанием данной ошибки.
247 Превышен лимит сообщений Превышен общий суточный лимит сообщений, указанный Клиентом в личном кабинете в пункте «Настройки».
248 Нет маршрута Означает, что на данный номер отправка сообщений недоступна в нашем сервисе. Например, ввели несуществующий мобильный код, либо для указанного номера и текста нет рабочего SMS-шлюза.
249 Неверный формат номера Возникает, когда мобильный код указанного номера и соответствующая этому коду длина номера неверны.
250 Номер запрещен настройками Номер попал под ограничения, установленные Клиентом для мобильных номеров в личном кабинете в пункте «Настройки».
251 Превышен лимит на один номер Превышен суточный лимит сообщений на один номер. Лимит устанавливается Клиентом в личном кабинете в пункте «Настройки». Также такая ошибка возможна при отправке более 50 сообщений одному абоненту, которые были отправлены с перерывом между сообщениями менее 30 секунд.
252 Номер запрещен Возникает, например, при попытке указания Клиентом одного из наших федеральных номеров в качестве получателя SMS-сообщения.
253 Запрещено спам-фильтром Если текст сообщения содержит нецензурные выражения и оскорбления, призывы отправить sms и некоторые другие запрещенные тексты, то отправка сообщения заблокируется. Также запрещено указывать в качестве отправителя короткие платные номера, номер получателя сообщений, названия операторов, чужих интернет-ресурсов, компаний и государственных организаций.
254 Незарегистрированный sender id Данная ошибка возникает при попытке отправки сообщения от незарегистрированного имени отправителя.
255 Отклонено оператором Оператор отклонил сообщение без указания точного кода ошибки.
Такое бывает, например, когда номер не принадлежит ни одному мобильному оператору, т.е. с несуществующим кодом, либо по какой-то другой причине оператор не может доставить сообщение.



Мульти-рассылка СМС из 1С от WEBCOM.MOBI

Модуль для 1С был специально разработан для клиентов, желающих интегрировать возможность рассылки SMS сообщений непосредственно в 1С. Такая интеграция позволит отправлять SMS по базе клиентов или партнеров, содержащейся в программе, подгружать списки контактов в Адресную книгу, планировать рассылку SMS, выбирать получателей SMS по фильтрам и т.п.

Модуль для 1С является удобным и функциональным инструментом массовой SMS рассылки, полностью замещающий собой личный кабинет на сервисе WEBCOM.MOBI.

Возможности обработки:

  • Поддержка почти всех типовых конфигураций 1С (УТ 11, УТ 10.3, БП 3.0, ЗУП 3.0, Розница 2.0, 2.1 и 2.2 и созданные на их базе, УНФ 1.5).
  • Из тех конфигураций, которые не поддерживаются, возможность отправки SMS также есть, только не будет автоматического заполнения по контактной информации;
  • Есть возможность персонализации SMS-сообщений под каждого клиента по формулам;
  • Заполнение абонентов как вручную, так и по справочникам конфигурации (Контрагенты, Контактные лица, Сотрудники, Физические лица, Партнеры, Контактные лица партнеров и т.д.);
  • Заполнение абонентов по xls-файлу, а также возможность массового добавления телефонов из буфера обмена
  • Выборочная отправка SMS из таблицы;
  • Возможность ручной подправки SMS-сообщений перед отправкой;
  • Отслеживание статуса доставки SMS-сообщений после их отправки;
  • Транслитерация сообщений.


Пример для PHP

Скачать файл скрипта для отправки SMS: send_sms.php
Исходный код библиотеки:

$text = 'Your text';  // текст сообщения
$phone = $_POST['phone']  // номер абонента
$text  = $_POST['text'];
$api_key = 'Your API key';  // ваш API ключ из личного кабинета
$login = 'Login';  // ваш логин в системе
$sender = 'Sender';  // ваше имя отправителя
$urlTimeStamp = "https://my.webcom.mobi/external/get/timestamp.php"; 
$curl = curl_init();
curl_setopt_array($curl, [
    CURLOPT_URL => $urlTimeStamp,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_https_VERSION => CURL_https_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_httpsHEADER => []
]);
$response = curl_exec($curl);
$error = curl_error($curl);
curl_close($curl);
$timeStamp = $response;

function Signature( $params, $api_key )
{
    ksort( $params );
    reset( $params );

    return md5( $params . $api_key );
}

$params = [
    'timestamp' => $timeStamp,
    'login'     => $login,
    'phone'     => $phone,
    'sender'    => $sender,
    'text'      => $text  
];

ksort($params);
reset($params);
$params = implode('',array_values($params));

$signature = Signature($params, $api_key);

$url = 'https://my.webcom.mobi/external/get/send.php?login='.$login.'&signature='.$signature.'&phone='.$phone.'&text='.urlencode($text).'&sender='.$sender.'&'.'timestamp='.$timeStamp;

function send($url) {

    $curl = curl_init();

    curl_setopt_array($curl, [
        CURLOPT_URL => $url,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => "",
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 30,
        CURLOPT_https_VERSION => CURL_https_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => "GET",
        CURLOPT_httpsHEADER => []
    ]);

    $response = curl_exec($curl);
    $error = curl_error($curl);

    curl_close($curl);

    if ($error) {
        print_r($error);
    } else {
        return $response;
    }
}

$result = send($url);

Генерация OTP

$host_db = "";
$user_db = "";
$password_db = "";
$name_db = "";

// Подключаемся к DB
$link = mysql_connect($host_db, $user_db, $password_db);
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
mysql_query("set names utf8");

mysql_query("use ". $name_db);

// Получаем IP адрес отправителя
$address = $_SERVER['REMOTE_ADDR'];

extract($_POST);

// Проверяем есть ли в DB этот клиент и правильный ли IP адрес
$query = "SELECT COUNT(*) AS cnt FROM `clients` WHERE `id_client`='" . $id_client . "' and `address`='" . $address . "'";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
$cnt = $row[0];
}

// Если есть
if ($cnt == 1) {

// Генерируем код
$code = rand(10000, 99999);
} else {
// Если нет такого пользователя или не верная пара id_client и IP адрес
echo "{'error':'-1','phone':'" . $phone . "'}";
}

// Получаем текущую дату
$date = new DateTime();
$date = $date->modify(" + 1 day");
$lifetime = $date->format("Y-m-d H:i:s");

// Кладем в базу информацию о номере телефона и код
$query = "INSERT INTO `phone` (`id_client`, `phone`, `code`, `datetime`, `lifetime`) VALUES ('" . $id_client . "','" . $phone . "','" . $code . "',now(),'" . $lifetime . "')";
$result = mysql_query($query);

function Signature( $params, $api_key )
{

ksort( $params );
reset( $params );

return md5( implode( $params ) . $api_key );

}

$text = urlencode ($code);

// Отправляем СМС
$api_key = "f233876916be9898bda5b31ab7c02197bb09b991"; 
$timestamp = file_get_contents("http://my.webcom.mobi/external/get/timestamp.php");

$params = array(
'timestamp' => $timestamp,
'login' => 'roman', 
'phone' => $phone, 
'sender' => 'WEBCOM MOBI',
'text' => $text
);

$signature = Signature( $params, $api_key );

$query = "http://my.webcom.mobi/external/get/send.php?timestamp=" . $timestamp . "&login=roman&phone=" . $phone . "&text=" . $text . "&sender=WEBCOM%20MOBI&signature=" . $signature;
$resp = json_decode(file_get_contents($query));

$data = array();

$data['code'] = $code;
$data['phone'] = $phone;

echo json_encode($data);

Верификация OTP

$host_db = "";
$user_db = "";
$password_db = "";
$name_db = "";

// Подключаемся к DB
$link = mysql_connect($host_db, $user_db, $password_db);
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
mysql_query("set names utf8");

mysql_query("use ". $name_db);

// Получаем IP адрес отправителя
$address = $_SERVER['REMOTE_ADDR'];

extract($_POST);

// Проверяем есть ли в DB этот клиент и правильный ли IP адрес и получаем установленый 
// максимальное время жизни кода у данного клиента
$query = "SELECT `hour` FROM `clients` WHERE `id_client`='" . $id_client . "' and `address`='" . $address . "'";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
$hour = $row[0];
}

// Проверяем если верно установлено время жизни кода 
if ($hour > 0) {
$query = "SELECT `lifetime` FROM `phone` WHERE `phone`='" . $phone . "' and `code`='" . $code . "'";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
$lifetime = $row[0];
}

// Переводим часы в секунды
$hour = $hour * 60;

// Проверяем что время жизни более двух секунд
if (strlen($lifetime) > 2) {
	// Получаем время, прошедшее с момента генерации
	$result = time() - strtotime($lifetime);
	$result = abs($result);
	// Проверяем, живой ли еще код, елсли да, то отправляем подтверждение и номер.
if ($result < $hour) {
	echo "{'access':'true','phone':'" . $phone . "'}";
} else {
	 echo "{'error':'-2','phone':'" . $phone . "'}";
}

}

} else {
echo "{'error':'-1','phone':'" . $phone . "'}";
}



http://223.196.94.133/v2.0/html/insert_whatsapp_api.php?username=username&password=password&mobile_no=91975211111,9186023355&campaign_name=API&message=messagefromAPI&uploaded1=pathtoimage1&uploaded2=pathtoimage2&uploaded3=pathtoimage3&uploaded4=pathtoimage4&uploaded5=pathtoDocument&audio=audiopath&video=videopath

pathtoimage = путь к изображению с http:// (Example: http://xyz.com/images/00001.jpg)

http://223.196.94.133/v2.0/html/whatsapp_fetch_api.php?username=username&requestid=898986795981d8f826013


http://223.196.94.133/v2.0/html/whatsapp_fetch_campaign.php?username=username&password=password&requestid=898986795981d8f826013


Для авторизации используется JSON Web Token (JWT). Для получения токена сформируйте JSON строку с полями username и password, и отправьте ее в теле POST запроса на http://18.194.45.201/api/login.

Токен действителен в течение 24 часов. После вам необходимо снова сделать запрос авторизации и получить токен.
Чтобы увеличить скорость обработки запросов и немного облегчить жизнь серверу, мы рекомендуем вам обновлять токен отдельным запросом. Сделать это можно несколькими способами — от cron задания с сохранением в файл до расшифровки токена и проверки срока годности.

Пример запроса авторизации:

POST http://18.194.45.201/api/login HTTP/1.1
Content-Type: application/json

{
  "username": "Ваш логин",
  "password": "Ваш пароль"
}

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

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Connection: keep-alive
Access-Control-Allow-Origin: *
X-RateLimit-Limit: 100000
X-RateLimit-Remaining: 99999
X-Frame-Options: SAMEORIGIN

{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ",
  "id": "a618473c-0088-405c-8585-60b1d8fc91f8",
  "username": "Ваш логин"
}

• token — JWT, который можно использовать для авторизации в других запросах REST API и не только
• id — ID вашего пользователя в системе
• username — логин, который был передан в запросе


Сервис для работы с сообщениями. Методы этого сервиса позволяют создать и отследить состояние сообщений в системе.

Доступные типы сообщений:

• sms
• viber
• vk
Доступные статусы сообщений:

• pending — ожидает отправки
• paused — приостановлено
• processing — в обработке
• sent — отправлено
• delivered — доставлено
• seen — просмотрено
• failed — ошибка при обработке/отправке сообщения

Создание сообщений

Требуется право advanced.sendings.generate со значением true
Для создания сообщения любого типа используется единая структура запроса, однако значение полей может меняться в зависимости от типа сообщения и других параметров. Чтобы создать сообщение отправьте POST запрос на адрес https://online.sigmasms.ru/api/sendings и укажите в теле JSON объект с параметрами запроса.

Основные параметры запроса:

• recipient — получатель сообщения. Может иметь разные значения.
◦ Укажите строку с получателем для создания одного сообщения.
◦ Укажите массив со строками для создания нескольких сообщений. Подробнее в разделе batch рассылок.
◦ Укажите объект с параметрами recipient.include и recipient.exclude, в которых передайте массивы строк с получателями. Подробнее в разделе bulk рассылок.

• type — тип сообщения
• payload — объект с данными отправления. Содержимое меняется в зависимости от значения параметра type:
◦ Для SMS:
payload.sender — имя отправителя
payload.text — текст сообщения
◦ Для Viber:
payload.sender — имя отправителя
payload.text — текст сообщения
payload.image — UUID файла в системе
payload.button.text — Текст кнопки
payload.button.url — URL кнопки с протоколом (например: https://ya.ru)
◦ Для VK:
payload.sender — имя отправителя
payload.text — текст сообщения
• fallbacks — массив с параметрами для переотправлений
• schedule — параметр для создания отложенной рассылки. При указании этого поля рассылка всегда конвертируется в bulk, поэтому доступные значения этого поля указаны в bulk разделе.

Одно сообщение

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

Чтобы избежать дубликатов сообщений, система сохраняет хэш payload + type + recipient на 5 минут.
Если в течение 5 минут будет сделан запрос на создание сообщения с точно таким же хэшем, система отклонит запрос с ошибкой Duplicate sending.
Данное поведение настраивается для каждого пользователя отдельно, через параметр settings.sendings.allowDuplicates, и по умолчанию равно false.

Рассылка будет конвертирована в bulk, если:
— Указан валидный параметр schedule

Пример создания SMS сообщения:

POST https://online.sigmasms.ru/api/sendings HTTP/1.1
Content-Type: application/json
Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

{
  "recipient": "+79999999999",
  "type": "sms",
  "payload": {
    "sender": "Имя отправителя",
    "text": "Текст сообщения"
  },
  "schedule": "2017-12-11T16:08:24.992Z"
}

Параметры payload для sms сообщений:

• payload.sender — имя отправителя
• payload.text — текст сообщения

Пример создания Viber сообщения:

POST https://online.sigmasms.ru/api/sendings HTTP/1.1
Content-Type: application/json
Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

{
  "recipient": "+79999999999",
  "type": "viber",
  "payload": {
    "sender": "Имя отправителя",
    "text": "Текст сообщения",
    "image": "a618473c-0088-405c-8585-60b1d8fc91f8",
    "button": {
      "text": "Текст кнопки",
      "url": "http://google.com"
    }
  },
  "schedule": {
    "delay": "2017-12-11T16:08:24.992Z"
  }
}

Параметры payload для viber сообщений:

• payload.sender — имя отправителя
• payload.text — текст сообщения
• payload.image — ID файла в системе
• payload.button.text — Текст кнопки
• payload.button.url — URL кнопки (например: https://ya.ru)

Пример создания VK сообщения:

POST https://online.sigmasms.ru/api/sendings HTTP/1.1
Content-Type: application/json
Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

{
  "recipient": "+79999999999",
  "type": "vk",
  "payload": {
    "sender": "Имя отправителя",
    "text": "Текст сообщения"
  },
  "schedule": {
    "delay": 1200
  }
}

Параметры payload для vk сообщений:

• payload.sender — имя отправителя
• payload.text — текст сообщения

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

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Access-Control-Allow-Origin: *
X-RateLimit-Limit: 100000
X-RateLimit-Remaining: 99999
X-Frame-Options: SAMEORIGIN

{
  "id": "aca68fa3-761b-46c0-ba11-217b30a5413e",
  "recipient": "+79999999999",
  "status": "pending",
  "error": null
}

• id — ID сообщения в системе. Вы можете использовать этот ID для отслеживания статуса сообщения.
• recipient — получатель сообщения
• status — статус сообщения на данный момент, или false, если произошла серьезная ошибка
• error — текст ошибки, возникшей при создании сообщения, или null, если ошибки нет


Используйте этот метод, если хотите отправить одно сообщение на несколько (до 1000) номеров. Все сообщения, отправленные этим методом рассылаются сразу после получения запроса.
Для создания такой рассылки, укажите в параметре recipient массив получателей. В случае, если в массиве recipient будет найден UUID, рассылка будет конвертирована в bulk рассылку автоматически.

Вы можете контролировать формат ответа сервера используя GET-параметр return:

• groupId — возвращает только значение groupId, по которому можно фильтровать выдачу запроса списка сообщений (По умолчанию)
• each — возвращает массив с объектами сообщений, как при создании одного сообщения

Рассылка будет конвертирована в single, если:
— В массиве recipient меньше 2х получателей — В массиве recipient нет ни одного UUID

Рассылка будет конвертирована в bulk, если:
— В массиве recipient больше 1000 получателей — Или в массиве recipient нашелся хотя бы один UUID — Или указан валидный параметр schedule

Пример создания batch рассылки, где return = groupId:

POST https://online.sigmasms.ru/api/sendings HTTP/1.1
Content-Type: application/json
Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

{
  "recipient": ["+79998887766", "+79997778866"],
  "type": "sms",
  "payload": {
    "sender": "Имя отправителя",
    "text": "Текст сообщения"
  }
}

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

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Access-Control-Allow-Origin: *
X-RateLimit-Limit: 100000
X-RateLimit-Remaining: 99999
X-Frame-Options: SAMEORIGIN

{
  "groupId": "a46bee3f-57d6-47ee-8162-6d2b951f9322"
}

• groupId — uuid группы, который можно использовать в качестве фильтра при запросе списка соощений

Пример создания batch рассылки, где return = each:

POST https://online.sigmasms.ru/api/sendings?return=each HTTP/1.1
Content-Type: application/json
Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

{
  "recipient": ["+79998887766", "+79997778866"],
  "type": "sms",
  "payload": {
    "sender": "Имя отправителя",
    "text": "Текст сообщения"
  }
}

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

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Access-Control-Allow-Origin: *
X-RateLimit-Limit: 100000
X-RateLimit-Remaining: 99999
X-Frame-Options: SAMEORIGIN

[
{"groupId":"07cf5422-eef8-4112-9e07-38d5ba23fe08","id":"153bd484-8d79-4208-b9d8-6dd1a5039308","recipient":"+79998887766","status":"pending","error":null}
,
{"groupId":"07cf5422-eef8-4112-9e07-38d5ba23fe08","id":"9020b421-c81c-4c11-8ad6-b14aeca0a6cf","recipient":"+79997778866","status":"pending","error":null}
]

• groupId — uuid группы, который можно использовать в качестве фильтра при запросе списка соощений


Используйте этот метод для отправления одного сообщения на большое количество номеров (> 1000) или для рассылки по адресной книге.
Все сообщения, у которых указан валидное значение schedule тоже используют этот метод автоматически.
Сообщения созданные таким методом не рассылаются сразу после запроса, вместо этого система формирует список получателей и ставит задачу на рассылку.

Для того, чтобы создать bulk рассылку, передайте в параметр recipient объект:

• recipient.include — массив с получателями и / или uuid адресных книг, которые будут включены в рассылку
• recipient.exclude — массив с получателями и / или uuid адресных книг, которые будут исключены из рассылки

Рассылка будет конвертирована в batch, если:
— В recipient.exclude не будет значений
— И в recipient.include количество получателей будет меньше 1000 и не будет найдено ни одного UUID
— И параметр schedule — пустой

Bulk рассылки принимают schedule параметр, который может быть:

• Строкой с датой в формате ISO 8601, например 2017-12-11T16:08:24.992Z
• Числом
◦ Timestamp в миллисекундах, который должен превышать значение серверного (например, 1526376438944)
◦ Количество миллисекунд, на которое следует отложить рассылку (например, 30 мин × 60 сек × 1000 мс = 1800000 мс)
• Объектом
◦ schedule.delay — задержка отправления. Принимает те же значения, что указаны выше.
◦ schedule.until — время, до которого должна закончиться рассылка. Принимает те же значения, что указаны выше. Используется для создания «плавной» рассылки и позволяет регулировать скорость отправления сообщений.

Минимальная скорость рассылок — 1 сообщение в секунду, максимальная — 30 сообщений в секунду. Скорость по умолчанию — 15 сообщений в секунду.

Пример создания bulk рассылки:

POST https://online.sigmasms.ru/api/sendings HTTP/1.1
Content-Type: application/json
Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

{
  "recipient": {
    "include": ["a46bee3f-57d6-47ee-8162-6d2b951f9322"],
    "exclude": ["+79998887766", "a618473c-0088-405c-8585-60b1d8fc91f8"]
  },
  "type": "sms",
  "payload": {
    "sender": "Имя отправителя",
    "text": "Текст сообщения"
  },
  "schedule": {
    "delay": "2017-12-11T16:08:24.992Z"
  }
}

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

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Access-Control-Allow-Origin: *
X-RateLimit-Limit: 100000
X-RateLimit-Remaining: 99999
X-Frame-Options: SAMEORIGIN

{
  "groupId": "120f48b9-a9d1-47d4-89ae-e397c9025f0b",
  "taskId": "sendings:bulk:120f48b9-a9d1-47d4-89ae-e397c9025f0b"
}

• groupId — uuid группы, который можно использовать в качестве фильтра при запросе списка соощений
• taskId — uuid задачи, который можно использовать для приостановки и возобновления рассылки


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

Для того, чтобы задать параметры переотправки, укажите в корневом параметре fallbacks массив с объектами переотправлений. Первый элемент этого массива будет использоваться для создания нового сообщения, которому в параметр fallbacks будут переданы остальные элементы массива в том же порядке, а в chainId — id текущего сообщения. Благодаря этому образуется parent-child связь между сообщениями, что позволяет создавать каскадную переотправку и обновление статусов в цепочке.

Используйте $scope fallbacks при FIND или GET запросах сообщений, чтобы получить в ответ поле fallbacks. В случае, если сообщение было переотправлено, в объект(ы) внутри массива будут дописаны значения id и status.

Объект переотправления включает в себя:

• type — тип сообщения
• payload — объект с данными отправления. Заполняется по тому же принципу, как при создании самого сообщения.
• $options — объект с настройками переотправления:
$options.onStatus — массив статусов. Переотправление запустится, если родительское сообщение получает один из указанных здесь статусов.

По умолчанию: [«failed»]
$options.onTimeout — объект с настройками тайм-аута:
$options.onTimeout.timeout — количество секунд, через которое необходимо запустить переотправку.

По умолчанию: 50
$options.onTimeout.except — массив статусов. Переотправление запустится, если по истечении тайм-аута у сообещния на тот момент не будет одного из указанных здесь статусов.
По умолчанию: [«delivered», «seen»]

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

{
  ...
  "fallbacks": [
    {
      "type": "sms",
      "payload": {
        "sender": "имя отправителя",
        "text": "текст сообщения"
      },
      "$options": {
        "onStatus": ["failed"],
        "onTimeout": {
          "timeout": 50,
          "except": ["delivered", "seen"]
        }
      }
    },
    ...
  ]
}


Требуется право advanced.sendings.get со значением me, reseller, или true
— me дает возможность запрашивать только свои сообщения
— reseller дает возможность запрашивать сообщения всех пользователей, которые прикреплены к аккаунту, от имени которого совершается запрос
Чтобы получить всю доступную информацию об отправлении по его ID, отправьте GET запрос на адрес https://online.sigmasms.ru/api/sendings/[id], где вместо [id] подставьте ID вашего сообщения.

Доступные параметры запроса:

• $scope
◦ full — включить все доступные поля в выдачу
◦ payload — включить поле payload в выдачу
◦ fallbacks — включить поле fallbacks в выдачу

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

GET https://online.sigmasms.ru/api/sendings/aca68fa3-761b-46c0-ba11-217b30a5413e HTTP/1.1
Content-Type: application/json
Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

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

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Access-Control-Allow-Origin: *
X-RateLimit-Limit: 100000
X-RateLimit-Remaining: 99999
X-Frame-Options: SAMEORIGIN

{
  "id": "aca68fa3-761b-46c0-ba11-217b30a5413e",
  "chainId": "aca68fa3-761b-46c0-ba11-217b30a5413e",
  "type": "sms",
  "state": {
    "status": "sent",
    "error": null,
    "timestamps": {
      "seen": false,
      "delivered": false
    }
  },
  "createdAt": "2017-12-11T16:08:24.992Z",
  "updatedAt": "2017-12-11T16:08:24.992Z"
}

Параметры сообщения:

• id — ID сообщения в системе
• chainId — ID цепочки сообщений, будет использоваться в системе фолбэков
• type — тип сообщения
• state — объект состояния сообщения
• state.status — статус сообщения
• state.moderation — статус модерации
• state.error — текст ошибки или false, в случае, если ошибки нет
• state.timestamps — объект с временными метками обновления статусов
state.timestamps.delivered — TODO: время доставки сообщения или false
• • state.timestamps.seen — TODO: время просмотра сообщения или false
• payload — объект с телом отправления (доступен при указании $scope значения ‘full’ или ‘payload’). Каждый тип отправления имеет собственный формат payload поля.
◦ sms
◦ viber
• createdAt — время регистрации сообщения в системе
• updatedAt — время последнего обновления сообщения в системе


Требуется право advanced.sendings.find со значением me, reseller, или true
— me дает возможность запрашивать только свои сообщения
— reseller дает возможность запрашивать сообщения всех пользователей, которые прикреплены к аккаунту, от имени которого совершается запрос

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

Доступные параметры запроса:

• $order — сортировка выдачи. Ниже указаны доступные значения.
◦ type
◦ payload.recipient
◦ payload.sender
◦ payload.text
◦ updatedAt
◦ createdAt
• $scope
◦ full — включить все доступные поля в выдачу
◦ payload — включить поле payload в выдачу
◦ state — включить всё поле state в выдачу
◦ fallbacks — включить поле fallbacks в выдачу
• $offset — от 0
• $limit — от 1 до 500
• Любые другие значения будут интерпретированны как параметры для фильтрации

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

GET https://online.sigmasms.ru/api/sendings?$scope=full&$offset=10&$limit=10 HTTP/1.1
Content-Type: application/json
Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

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

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Access-Control-Allow-Origin: *
X-RateLimit-Limit: 100000
X-RateLimit-Remaining: 99999
X-Frame-Options: SAMEORIGIN

{
  "data": [
    {
      "id": "aca68fa3-761b-46c0-ba11-217b30a5413e",
      "chainId": "aca68fa3-761b-46c0-ba11-217b30a5413e",
      "type": "viber",
      "payload": {
        "text": "Текст сообщения",
        "sender": "Имя отправителя",
        "recipient": "+79999999999"
      },
      "fallbacks": [],
      "state": {
        "error": null,
        "status": "seen",
        "moderation": "approved",
        "timestamps": {
          "seen": false,
          "delivered": false
        }
      },
      "createdAt": "2018-01-28T18:14:32.733Z",
      "updatedAt": "2018-01-28T18:14:32.733Z"
    },
    ...
  ],
  "offset": 10,
  "limit": 500,
  "total": 300
}

• data — массив с объектами сообщений
• offset — левая граница выдачи
• limit — правая граница выдачи
• total — общее количество записей в базе

Спасибо за заявку! Мы свяжемся с вами.