Гарантия лучшей цены!
Нашли дешевле? Сделаем дешевле и вернем 10% от разницы.
Узнать подробности
Партнерская программа
Довольны нашим сервисом? Рекомендуйте нас и получайте бонусы.
Узнать подробности

Отправка SMS

login — your_login
API ключ — ab8cfa19877ec8667721408189f42cc4757214a6

Адрес сервера для запросов: http://my.sms34.ru/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.sms34.ru/get/send.php?login=your_login&signature=2c1bdd54a09c0a5988c1f206560a22d8&phone=79601410200&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×tamp=1522311926
                      
Существует седьмой, необязательный параметр return, который может принимать одно из двух значений: json, xml
Пример запроса:
http://my.sms34.ru/get/send.php?login=your_login&signature=726ed76c9ce2cfd1b41df34f4e8b585c&phone=79601410200&text=Hello!&sender=smstest&return=json×tamp=1409887191
					  
Пример ответа:
{"79601410200":{"error":"0", "id_sms":"4092112510348380960001", "cost":"0.5", "count_sms":"1"}}
					  
Пример запроса:
http://my.sms34.ru/get/send.php?login=your_login&signature=726ed76c9ce2cfd1b41df34f4e8b585c&phone=79601410200&text=Hello!&sender=smstest&return=xml×tamp=1409887191
					  
Пример ответа:
<?xml version="1.0" encoding="utf-8"?>
<response>
<phones>
<phone phone="79601410200" error="0" id_sms="4092113100349055700001" cost="0.5" count_sms="1" />
</phones>
</response>
                      

Формирование подписи

login — your_login
API ключ — ab8cfa19877ec8667721408189f42cc4757214a6

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

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

Например для запроса
http://my.sms34.ru/get/balance.php?login=your_login&signature=fcd0fb7bac1e38682ad214f3e3c0f601×tamp=1522310863 
таким образом в данном случае подпись будет состоять из параметров login, timestamp и API ключа: fcd0fb7bac1e38682ad214f3e3c0f601

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

Есть набор параметров
$params = array(
    'timestamp' => '1522310863',
    'login'     => 'YourLogin',
    'phone'     => '79601410200',
    'text'      => 'Long text'
);
                       
Его нужно отсортировать по алфавиту
ksort( $params );
reset( $params );
                       
В результате получится
Array
(
    [login] => YourLogin
    [phone] => 79601410200
    [text] => Long text
    [timestamp] => 1522310863
)
                       
Получившийся результат преобразовать в строку
implode( $params );
                       
В результате получится
YourLogin79601410200Long text1522310863
                       
В конец строки добавить ваш API ключ — ab8cfa19877ec8667721408189f42cc4757214a6
YourLogin79601410200Long text1522310863ab8cfa19877ec8667721408189f42cc4757214a6
                       
Получившийся результат преобразовать в md5 хэш
md5( 'YourLogin79601410200Long text1522310863ab8cfa19877ec8667721408189f42cc4757214a6' );
                       
В результате получится действительная подпись которую нужно подставить в параметр запроса — signature
cefa0219333eab6d0701a824d137a92b
                       
Т.е. итоговый запрос будет в данном случае выглядеть так:
http://my.sms34.ru/get/PAGE.php?login=YourLogin×tamp=1522310863&phone=79601410200&text=Long text&signature=cefa0219333eab6d0701a824d137a92b
                       
Готовый пример простейшей функции для составления подписи на PHP
function Signature( $params, $api_key )
{
    ksort( $params );
    reset( $params );

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

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

login — your_login
API ключ — ab8cfa19877ec8667721408189f42cc4757214a6

Адрес сервера для запросов: http://my.sms34.ru/get/balance.php
В запросе необходимо передать три обязательных параметра login, signature и timestamp

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

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

http://my.sms34.ru/get/balance.php?login=your_login&signature=7465b4a1b9933213b048901d6c4a4e32×tamp=1522311420
                      
Существует четвертый, необязательный параметр return, который может принимать одно из двух значений: json, xml

Пример запроса:
http://my.sms34.ru/get/balance.php?login=your_login&signature=e912c648224457a8b68fa3a06bfb490f&return=json×tamp=1522311420
                      
Пример ответа:
{"money" : "69573.1","currency" : "RUR"}
                      
Пример запроса:
http://my.sms34.ru/get/balance.php?login=your_login&signature=83754ff46cdaa075919af74633d7b164&return=xml×tamp=1522311420
                      
Пример ответа:
<?xml version="1.0" encoding="utf-8"?>
<response>
   <money>69573.1</money>
   <currency>RUR</currency>
</response>
                      

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

login — your_login
API ключ — ab8cfa19877ec8667721408189f42cc4757214a6

Адрес сервера для запросов: http://my.sms34.ru/get/base.php
В запросе необходимо передать три обязательных параметра login, signature и timestamp

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

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

http://my.sms34.ru/get/base.php?login=your_login&signature=ff4ccec97b82b35b26132ac849636c27×tamp=1522311618
                      
Существует четвертый, необязательный параметр return, который может принимать одно из двух значений: json, xml

Пример запроса:
http://my.sms34.ru/get/base.php?login=your_login&signature=83e24e99153d83eeccdceb350853c740&return=json×tamp=1522311618
                      
Пример ответа:
{"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.sms34.ru/get/base.php?login=your_login&signature=49db1d561cbfd537466db2e44c3096ac&return=xml×tamp=1522311618
                      
Пример ответа:
<?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>                      

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

login — your_login
API ключ — ab8cfa19877ec8667721408189f42cc4757214a6

Адрес сервера для запросов: http://my.sms34.ru/get/senders.php
В запросе необходимо передать три обязательных параметра login, signature и timestamp

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

Пример запроса:
http://my.sms34.ru/get/senders.php?login=your_login&signature=5bffe1e483dad388e9c17834d176312a×tamp=1522311693
                      
Существует четвертый, необязательный параметр return, который может принимать одно из двух значений: json, xml

Пример запроса:
http://my.sms34.ru/get/senders.php?login=your_login&signature=df3389004e4a76802bd8d6b8640afdcf&return=json×tamp=1522311693
                      
Пример ответа:
{"smstest":"completed","smstest2":"completed"}
					  
Пример запроса:
http://my.sms34.ru/get/senders.php?login=your_login&signature=81491e7a6dacece638a7f38e24bf9389&return=xml×tamp=1522311693
                      
Пример ответа:
<?xml version="1.0" encoding="utf-8"?>
<response>
<senders>
<sender sender="smstest" state="completed" />
<sender sender="smstest2" state="completed" />
</senders>
</response>                     

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

login — your_login
API ключ — ab8cfa19877ec8667721408189f42cc4757214a6

Адрес сервера для запросов: http://my.sms34.ru/get/phone.php
В запросе необходимо передать пять обязательных параметра login, signature, base, page, timestamp

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

Пример запроса:
http://my.sms34.ru/get/phone.php?login=your_login&signature=000186dfb693119808c21d5977875e74&base=125454&page=1×tamp=1522311760
                      
Существует шестой, необязательный параметр return, который может принимать одно из двух значений: json, xml

Пример запроса:
http://my.sms34.ru/get/phone.php?login=your_login&signature=beda87a84660efd0b0fb13042f9a5995&base=125454&page=1&return=json×tamp=1522311760
                      
Пример ответа:
{"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.sms34.ru/get/phone.php?login=your_login&signature=5103944d3d0a502a1ed2b45a1a04cae2&base=125454&page=1&return=xml×tamp=1522311760
                      
Пример ответа:
<?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>
                   

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

login — your_login
API ключ — ab8cfa19877ec8667721408189f42cc4757214a6

Адрес сервера для запросов: http://my.sms34.ru/get/status.php
В запросе необходимо передать четыре обязательных параметра login, signature, state, timestamp

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

Пример запроса:
http://my.sms34.ru/get/status.php?login=your_login&signature=dfb3c43db2e05adf03140301049c874a&state=4091297100348873330001,4091297100348880230003×tamp=1522312048
                      
Существует пятый, необязательный параметр return который может принимать одно из двух значений: json, xml

Пример запроса:
http://my.sms34.ru/get/status.php?login=your_login&signature=58e95077406896d63913d85d71aea885&state=4091297100348873330001,4091297100348880230003&return=json×tamp=1409887191
                      
Пример ответа:
{"4091297100348873330001" : "not_deliver","4091297100348880230003" : "not_deliver"}
					  
Пример запроса:
http://my.sms34.ru/get/status.php?login=your_login&signature=58e95077406896d63913d85d71aea885&state=4091297100348873330001,4091297100348880230003&return=xml×tamp=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>
                   

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

login — your_login
API ключ — ab8cfa19877ec8667721408189f42cc4757214a6

Адрес сервера для запросов: http://my.sms34.ru/get/operator.php
В запросе необходимо передать четыре обязательных параметра login, signature, phone, timestamp

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

Пример запроса:
http://my.sms34.ru/get/operator.php?login=your_login&signature=39b2512a724e68e9210073b030529015×tamp=1522312128&phone=79601410200
                      
Существует четвертый, необязательный параметр return, который может принимать одно из двух значений: json, xml

Пример запроса:
http://my.sms34.ru/get/operator.php?login=your_login&signature=83ccd14164f1d8c7792375b20f8fba56×tamp=1522312128&return=json&phone=79601410200
                      
Пример ответа:
{"operator" : "AT&T"}
					  

Пример запроса:
http://my.sms34.ru/get/operator.php?login=your_login&signature=1310b7cab7c4f9573e25ca736f7107a0×tamp=1522312128&return=xml&phone=79601410200
                      
Пример ответа:
<?xml version="1.0" encoding="utf-8"?>
<response>
   <operator>AT&T</operator>
</response>
					  

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

login — your_login
API ключ — ab8cfa19877ec8667721408189f42cc4757214a6

Адрес сервера для запросов: http://my.sms34.ru/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.sms34.ru/get/incoming.php?login=your_login&signature=fbbd6f155c6893f19af1c3597264cd97×tamp=1522312311&date=2018-03-29
                      
Существует необязательный параметр return, который может принимать одно из двух значений: json, xml

Пример запроса:
http://my.sms34.ru/get/incoming.php?login=your_login&signature=fbbd6f155c6893f19af1c3597264cd97×tamp=1522312311&return=json&date=2018-03-29
					  
Пример ответа:
{{"5597" : {"date":"2014-10-27 05:47:24", "sender":"79601410200", "prefix":"51632", "text":"51632 TEST"}}}
					  
Пример запроса:
http://my.sms34.ru/get/incoming.php?login=your_login&signature=fbbd6f155c6893f19af1c3597264cd97×tamp=1522312311&return=xml&date=2018-03-29
					  
Пример ответа:
<?xml version="1.0" encoding="utf-8"?>
                        <response>
                           <sms
                        id_sms="5597"
                        date="2014-10-27 05:47:24"
                        sender="79601410200"
                        prefix="51632"
                        text="51632 TEST"
                        />
                        </response>
                      

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

login — your_login
API ключ — ab8cfa19877ec8667721408189f42cc4757214a6

Адрес сервера для запросов: http://my.sms34.ru/get/find_on_stop.php
В запросе необходимо передать четыре обязательных параметра login, signature, phone, timestamp

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

Пример запроса:
http://my.sms34.ru/get/find_on_stop.php?login=your_login&signature=64eb69acb6110886e8f9f64e01c85458&phone=79601410200×tamp=1409887191
                      
Существует пятый, необязательный параметр return, который может принимать одно из двух значений: json, xml

Пример запроса:
http://my.sms34.ru/get/find_on_stop.php?login=your_login&signature=64eb69acb6110886e8f9f64e01c85458&phone=79601410200&return=json×tamp=1409887191
					  
Пример ответа:
{"time_in" : "2014-08-29 11:07:43","description" : "descr"}
					  
Пример запроса:
http://my.sms34.ru/get/find_on_stop.php?login=your_login&signature=64eb69acb6110886e8f9f64e01c85458&phone=79601410200&return=xml×tamp=1409887191
					  
Пример ответа:
<?xml version="1.0" encoding="utf-8"?>
<response>
<time_in>2014-08-29 11:07:43</time_in>
<description>descr</description>
</response>
                      

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

login — your_login
API ключ — ab8cfa19877ec8667721408189f42cc4757214a6

Адрес сервера для запросов: http://my.sms34.ru/get/add2stop.php
В запросе необходимо передать четыре обязательных параметра login, signature, phone, timestamp

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

Пример запроса:
http://my.sms34.ru/get/add2stop.php?login=your_login&signature=64eb69acb6110886e8f9f64e01c85458&phone=79601410200×tamp=1409887191
                      
Существует пятый, необязательный параметр return, который может принимать одно из двух значений: json, xml

Пример запроса:
http://my.sms34.ru/get/add2stop.php?login=your_login&signature=64eb69acb6110886e8f9f64e01c85458&phone=79601410200×tamp=1409887191&return=json
					  
Пример ответа:
{"id" : "4419373"}
					  
Пример запроса:
http://my.sms34.ru/get/add2stop.php?login=your_login&signature=64eb69acb6110886e8f9f64e01c85458&phone=79601410200×tamp=1409887191&return=xml
					  
Пример ответа:
<?xml version="1.0" encoding="utf-8"?>
<response>
<id>4419374</id>
</response>
                      

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

login — your_login
API ключ — ab8cfa19877ec8667721408189f42cc4757214a6

Адрес сервера для запросов: http://my.sms34.ru/get/template.php
В запросе необходимо передать три обязательных параметра login, signature, timestamp

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

Пример запроса:
http://my.sms34.ru/get/template.php?login=your_login&signature=b653d6165ff9533cd0568654eb81ee36×tamp=1409887191
                      
Существует четвертый, необязательный параметр return, который может принимать одно из двух значений: json, xml

Пример запроса:
http://my.sms34.ru/get/template.php?login=your_login&signature=b653d6165ff9533cd0568654eb81ee36&return=json×tamp=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.sms34.ru/get/template.php?login=your_login&signature=b653d6165ff9533cd0568654eb81ee36&return=xml×tamp=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>
                      

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

login — your_login
API ключ — ab8cfa19877ec8667721408189f42cc4757214a6

Адрес сервера для запросов: http://my.sms34.ru/get/add_template.php
В запросе необходимо передать пять обязательных параметров login, signature, name, text, timestamp

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

Пример запроса:
http://my.sms34.ru/get/add_template.php?login=your_login&signature=53ae7ed6b81c58fc662f4967b7fef6b1&name=test22&text=testtt 1321321231321×tamp=1409887191
                      
Существует шестой необязательный параметр return, который может принимать одно из двух значений: json, xml

Пример запроса:
http://my.sms34.ru/get/add_template.php?login=your_login&signature=53ae7ed6b81c58fc662f4967b7fef6b1&name=test22&text=testtt 1321321231321×tamp=1409887191&return=json
					  
Пример ответа:
{"id" : "4419373"}
					  
Пример запроса:
http://my.sms34.ru/get/add_template.php?login=your_login&signature=53ae7ed6b81c58fc662f4967b7fef6b1&name=test22&text=testtt 1321321231321×tamp=1409887191&return=xml
					  
Пример ответа:
<?xml version="1.0" encoding="utf-8"?>
<response>
<id>4419374</id>
</response>
                      

Общая статистика за месяц

login — your_login
API ключ — ab8cfa19877ec8667721408189f42cc4757214a6

Адрес сервера для запросов: http://my.sms34.ru/get/stat_by_month.php
В запросе необходимо передать четыре обязательных параметра login, signature, month, timestamp

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

Пример запроса:
http://my.sms34.ru/get/stat_by_month.php?login=your_login&signature=64b70cd757812b0315b72a202cde3031&month=2018-03×tamp=1522312794
                      
Существует пятый необязательный параметр return, который может принимать одно из двух значений: json, xml

Пример запроса:
http://my.sms34.ru/get/stat_by_month.php?login=your_login&signature=0191175c33ecc51d78fabd5dca807998&month=2014-08&return=json×tamp=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.sms34.ru/get/stat_by_month.php?login=your_login&signature=0191175c33ecc51d78fabd5dca807998&month=2014-08&return=xml×tamp=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 запрос

login — your_login
API ключ — ab8cfa19877ec8667721408189f42cc4757214a6

Адрес сервера для запросов: http://my.sms34.ru/get/hlr.php
В запросе необходимо передать четыре обязательных параметра login, signature, phone, timestamp

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

Пример запроса:
http://my.sms34.ru/get/hlr.php?login=your_login&phone=79601410200&signature=b653d6165ff9533cd0568654eb81ee36×tamp=1409887191
                      

Пример запроса:
http://my.sms34.ru/get/hlr.php?login=your_login&phone=79601410200&signature=b653d6165ff9533cd0568654eb81ee36×tamp=1409887191&return=json
					  

Пример запроса:
http://my.sms34.ru/get/hlr.php?login=your_login&phone=79601410200&signature=b653d6165ff9533cd0568654eb81ee36×tamp=1409887191&return=xml
					  

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

login — your_login
API ключ — ab8cfa19877ec8667721408189f42cc4757214a6

Адрес сервера для запросов: http://my.sms34.ru/get/hlr_stat.php
В запросе необходимо передать пять обязательных параметров login, from, to, signature и timestamp

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

Пример запроса:
http://my.sms34.ru/get/hlr_stat.php?login=your_login&from=2014-04-06&to=2014-05-06&signature=b653d6165ff9533cd0568654eb81ee36×tamp=1409887191
                      

Пример запроса:
http://my.sms34.ru/get/hlr_stat.php?login=your_login&from=2014-04-06&to=2014-05-06&signature=b653d6165ff9533cd0568654eb81ee36×tamp=1409887191&return=json
					  

Пример запроса:
http://my.sms34.ru/get/hlr_stat.php?login=your_login&from=2014-04-06&to=2014-05-06&signature=b653d6165ff9533cd0568654eb81ee36×tamp=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 — Недостаточно средств

Подключение

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

Пример настроек для подключения (формат kannel):
host = 89.208.16.179
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 (), message_state (числовой ) и network_error_code (), а также передается текст статуса в следующем формате:
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-запросов (значения ):

Код Название Описание
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 Отклонено оператором Оператор отклонил сообщение без указания точного кода ошибки.
Такое бывает, например, когда номер не принадлежит ни одному мобильному оператору, т.е. с несуществующим кодом, либо по какой-то другой причине оператор не может доставить сообщение.

Спецификация XML шлюза

XML (eXtensible Markup Language) - Расширяемый язык разметки. Спецификация XML описывает XML-документы и частично описывает поведение XML-обработчиков. Язык называется расширяемым, поскольку он не фиксирует разметку, используемую в документах: разработчик волен создать разметку в соответствии с потребностями к конкретной области, будучи ограниченным лишь синтаксическими правилами языка.
Протокол XML подразумевает обмен запросами на языке XML. Обмен информацией происходит через соединение TCP/IP по протоколу HTTP или HTTPS (HTTP over SSL) методом POST.
Cкачать полную спецификацю протокола.