Документация (JSON)

URL: /[type]/api.ashx
type - тип запроса: get или post

Параметры
  • command - команда
    1. send - послать SMS
    2. status - получить статус SMS
    3. info - получить информацию о номере телефона
    4. balance - получить информацию о балансе пользователя

  • key - ключ доступа к АПИ

  • sender - отправитель SMS - для отправки

  • body - текст SMS - для отправки
    nwln - переход на новую строку
    prbl - пробел

  • phone - получатель/получатели SMS - для отправки

  • id - id ранее высланной SMS - для получения статуса

  • translit - признак, означающий что текст отправляемого SMS сообщения будет транслитерирован (translit=1 - выполнять транслитерацию) - для отправки (необязательный параметр)

  • date_beg - дата и время отправки сообщения, необязательный атрибут, указывается для отложенной отправки сообщений (в формате гггг.мм.дд чч:мм:сс) - для отправки (необязательный параметр)

  • date_end - дата и время, после которой сообщение теряет актуальность и если оно еще не было отправлено абоненту, отправляться не будет (в формате гггг.мм.дд чч:мм:сс) - для отправки (необязательный параметр)

Ответ представляет собой JSON объект с полями:
  • success - флаг успешности выполнения операции - true или false

  • msg - результат операции или сообщение об ошибке

  • info - информация о номере абонента (регион, UTC, оператор)

  • phone - номер телефона, с которым выполнялась операция

Примеры
  • send
    1. Запрос - /get/api.ashx?command=send&key=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX&sender=TEST1&phone=7XXXXXXXXXX,7XXXXXXXXXX&body=Text
    2. Успешное выполнение при отправке нескольких SMS - [{"phone":"7XXXXXXXXXX","success":true,"msg":"1419098"},{"phone":"7XXXXXXXXXX","success":true,"msg":"1419099"}]
      Успешное выполнение при отправке одной SMS - {"success":true,"msg":"1419098"}
    3. Ошибка при отправке нескольких SMS - [{"phone":"7XXXXXXXXXX","success":false,"msg":"Не указан отправитель"},{"phone":"7XXXXXXXXXX","success":false,"msg":"Не указан отправитель"}]
      Ошибка при отправке одной SMS - {"success":false,"msg":"Не указан отправитель"}

  • status
    1. Запрос - /get/api.ashx?command=status&id=37777,37778&key=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
    2. Успешное выполнение при отправке нескольких SMS - [{"id":37777,"status":"Доставлена","success":true},{"id":37778,"status":"Доставлена","success":true}]
      Успешное выполнение при отправке одной SMS - {"success":true,"msg":"Доставлена"}
    3. Ошибка - {"success":false,"msg":"Неверный ключ пользователя или Вам запрещен доступ с этого IP-адреса"}
    4. Возможные статусы SMS:
      • В очереди (1)
      • У оператора (2)
      • Доставлено (3)
      • Ошибка (-1)
      • Удалено (-2)
      • Просрочено (-3)
      • Неизвестна схема отправки (-4)
      • Не доставлено (-5)
      • В черном списке (-6)
      • Приостановлена (-8)
      • Остановлена (0)
      • Отклонена (-10)
      • Спам (-11)

  • info
    1. Запрос - /get/api.ashx?command=info&key=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX&phone=7XXXXXXXXXX
    2. Успешное выполнение - {"success":true,"info":{"Location":"Москва и Московская область","Utc":0,"Provider":"МегаФон"}}
    3. Ошибка - {"success":false,"msg":"Неверный ключ пользователя или Вам запрещен доступ с этого IP-адреса"}

  • balance
    1. Запрос - /get/api.ashx?command=balance&key=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
    2. Успешное выполнение - {"success":true,"msg":17.5}
    3. Ошибка - {"success":false,"msg":"Неверный ключ пользователя или Вам запрещен доступ с этого IP-адреса"}

Как начать (написанные классы для работы с сервисом)

Для C#-разработчикa: ApiSmsCS.zip
Для PHP-разработчика: ApiSmsPhp.zip
Для Python-разработчика: ApiSmsPython.zip
Для Perl-разработчика: ApiSmsPerl.zip
Для 1C разработчика: ApiSms1Сv8.zip

Документация (XML)

URL: /post/apixml.ashx

Отправка сообщений с помощью XML

Общение с сервисом осуществляется при помощи отправки XML запросов в кодировке UTF-8 на заданный адрес сервиса по протоколу HTTP/HTTPS методом POST, проверка типа контента не осуществляется. Каждый запрос может состоять из отправляемых сообщений или запросов для получения статусов. Авторизация пользователя происходит путем передачи учетных сведений в теге package, обязательна при выполнении любых запросов.

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

<?xml version="1.0" encoding="utf-8" ?>

<package login="login" password="123456">

  <message>

    <default sender="SMSINFO"/>

    <msg id="1234" recipient="+79021234567" sender="SMSINFO" date_beg="2008.12.27 15:55:00" date_end="2008.12.27 16:55:00" url="url" type="0">text</msg>

    <msg recipient="+79021234568">text</msg>

  </message>

</package>

  • Default – тег, в котором определяются общие атрибуты, указываемые для всех отправляемых сообщений. Если какой-либо атрибут указан в сообщении, то атрибут данного тега игнорируется.
  • msg – тег сообщения, в качестве параметра указывается текст отправляемого сообщения, может содержать следующие атрибуты:
    • id – (integer) пользовательский числовой идентификатор сообщения, необязательный атрибут, при использовании пользователь должен гарантировать уникальность данного идентификатора в пределах своей учетной записи.
    • recipient – (varchar) получатель сообщения (номер телефона), может использоваться в формате с «+» или без него.
    • sender – (varchar) отправитель сообщения (подпись сообщения), необязательный атрибут.
    • date_beg – (datetime) дата отправки сообщения, необязательный атрибут, указывается для отложенной отправки сообщений.
    • date_end – (datetime) дата после которой сообщение теряет актуальность и если оно еще не было отправлено абоненту, отправляться не будет, необязательный атрибут.
    • translit – (integer) признак, означающий что текст отправляемого SMS сообщения будет транслитерирован (translit=1 - выполнять транслитерацию), необязательный атрибут.
На полученный запрос сервис возвращает в виде параметра статус сообщения, а в атрибутах идентификаторы присвоенные сообщениям.

<?xml version="1.0" encoding="utf-8" ?>

<package>

  <message>

    <msg id="1234" sms_id="0" sms_count="1">201</msg>

    <msg sms_id="1234568" sms_count="1">101</msg>

  </message>

</package>

  • msg – тег сообщения, в качестве параметра возвращается код статуса, может содержать следующие атрибуты:
    • id – (integer) пользовательский числовой идентификатор сообщения, необязательный атрибут, возвращается при указании данного атрибута в запросе.
    • sms_id – (integer) числовой идентификатор сообщения присвоенный шлюзом.
    • sms_count – (integer) реальное количество SMS к отправке


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

<?xml version="1.0" encoding="utf-8" ?>

<package login="login" password="123456">

  <status>

    <msg id="1234"/>

    <msg sms_id="1234568"/>

  </status>

</package>

  • msg – тег сообщения для которого происходит запрос статуса, может содержать следующие атрибуты:
    • id – (integer) пользовательский числовой идентификатор сообщения, необязательный атрибут.
    • sms_id – (integer) числовой идентификатор сообщения присвоенный шлюзом.
В ответ на запрос возвращается XML документ содержащий статусы для запрошенных сообщений, либо соответствующие коды ошибок.

<?xml version="1.0" encoding="utf-8" ?>

<package>

  <status>

    <msg id="1234" sms_id="0" sms_count="1" date_completed="2009-03-14 15:27:03">102</msg>

    <msg sms_id="1234568" sms_count="1">1</msg>

  </status>

</package>

  • msg – тег сообщения для которого происходит запрос статуса, в качестве параметра возвращается код статуса, может содержать следующие атрибуты:
    • id – (integer) пользовательский числовой идентификатор сообщения, необязательный атрибут, возвращается при указании данного атрибута в запросе.
    • sms_id – (integer) числовой идентификатор сообщения присвоенный шлюзом.
    • sms_count – (integer) реальное количество SMS к отправке
    • date_completed – дата присвоения статуса.


Проверка баланса пользователя:

<?xml version="1.0" encoding="utf-8" ?>

<package login="login" password="123456">

  <balance>

  </balance>

</package>


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

<?xml version="1.0" encoding="utf-8" ?>

<package>

  <balance>126,11</balance>

</package>



Коды статусов докмента:

При отправке XML документа могут возвращаться следующие коды ошибок:
ERR_UNKNOWN = 200, // Неизвестная ошибка
ERR_FORMAT = 201, // Неправильный формат документа
ERR_AUTHORIZATION = 202 // Ошибка авторизации

<?xml version="1.0" encoding="utf-8" ?>

<package>

  <error>201</error>

</package>



Коды статусов сообщений:

Данные коды используются при возврате статусов сообщений.
SCHEDULED = 100, // The message is scheduled. Delivery has not yet been initiated.
ENROUTE = 101, // The message is in enroute state.
DELIVERED = 102, // Message is delivered to destination
EXPIRED = 103, // Message validity period has expired.
DELETED = 104, // Message has been deleted.
UNDELIVERABLE = 105, // Message is undeliverable.
ACCEPTED = 106, // Message is in accepted state (i.e. has been manually read on behalf of the subscriber by customer service)
UNKNOWN = 107, // Message is in invalid state The message state is unknown.
REJECTED = 108, // Message is in a rejected state The message has been rejected by a delivery interface.
DISCARDED = 109, // Message discarded

ERR_UNKNOWN = 200, // Неизвестная ошибка
ERR_ID = 201, // Неправильный ID сообщения
ERR_SENDER = 202, // Неправильный идентификатор отправителя
ERR_RECIPIENT = 203, // Неправильный номер получателя
ERR_LENGTH = 204, // Слишком длинное или пустое сообщение
ERR_USER_DISABLE = 205, // Пользователь отключен
ERR_BILLING = 206, // Ошибка биллинга
ERR_OVERLIMIT = 207 // Превышение лимита выделенных сообщений


Как начать (написанные классы для работы с сервисом)

Для C#-разработчикa: XmlSmsCs.zip

Документация (XML)

URL: /get/group.ashx

Параметры
  • command - команда
    1. creategroup - создать новую базу
    1. editgroup - изменить имя существующей базы
    1. delgroup - удалить базу
    1. createabonent - добавить абонента в базу
    1. editabonent - изменить абобнента ВНИМАНИЕ!!! ВСЕ ПОЛЯ ДОЛЖНЫ БЫТЬ УКАЗАНЫ
    1. delabonent - удалить абонента
    1. getabonentbyphone - получить идентификатор абонента по его номеру

  • key - ключ доступа к АПИ

  • group_id - идентификатор базы, с которой выполняется операция
  • phone - номер телефона
  • birth - дата рождения
  • comment - примечание №1
  • comment2 - примечание №2
  • family - фамилия
  • name - имя
  • patronim - отчество
  • gender - пол (1-мужской, 0-женский, -1-неизвестен)
  • abonent_id - идентификатор абонента
Ответ представляет собой JSON объект с полями:
  • error - флаг ошибки при выполнении операции - true или false

  • msg - сообщение об ошибке

  • abonent_id - идентификатор абонента (int)

  • patronim - отчество абонента

  • group_id - идентификатор базы (int)

Примеры
  • creategroup
    1. Запрос - /get/group.ashx?command=creategroup&key=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX&name=ГРУППА №1
    2. Успешное выполнение при создании базы - {"error":false,"msg":"","group_id":143}
    3. Ошибка при создании базы - {"error":true,"msg":"Неверный ключ доступа или вам запрещен доступ с этого IP адреса"}

  • editgroup
    1. Запрос - /get/group.ashx?command=editgroup&key=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX&name=НОВОЕ НАЗВАНИЕ БАЗЫ&group_id=143
    2. Успешное выполнение при изменении названия базы - {"error":false,"msg":""}
    3. Ошибка при изменении названия базы - {"error":true,"msg":"Неверный ключ доступа или вам запрещен доступ с этого IP адреса"}

  • delgroup
    1. Запрос - /get/group.ashx?command=delgroup&key=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX&group_id=143
    2. Успешное выполнение при удалении базы - {"error":false,"msg":""}
    3. Ошибка при удалении базы - {"error":true,"msg":"Неверный ключ доступа или вам запрещен доступ с этого IP адреса"}

  • createabonent
    1. Запрос - /get/group.ashx?command=createabonent&key=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX&group_id=143&phone=79XXXXXXXXX&birth=01.02.1989&comment=Прим.1&comment2=Прим.2&family=Тестов&name=Тест&patronim=Тестович&gender=1
    2. Успешное выполнение при добавлении абонента в базу - {"error":false,"msg":"", "abonent_id": 100500}
    3. Ошибка при добавлении абонента в базу - {"error":true,"msg":"Неверный ключ доступа или вам запрещен доступ с этого IP адреса"}

  • editabonent
    1. Запрос - /get/group.ashx?command=editabonent&key=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX&abonent_id=100500&phone=79XXXXXXXXX&birth=01.02.1989&comment=Прим.1&comment2=Прим.2&family=Тестов&name=Тест&patronim=Тестович&gender=1
    2. Успешное редактирвоание абонента - {"error":false,"msg":""}
    3. Ошибка при редактировании абонента - {"error":true,"msg":"Неверный ключ доступа или вам запрещен доступ с этого IP адреса"}

  • delabonent
    1. Запрос - /get/group.ashx?command=delabonent&key=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX&abonent_id=100500
    2. Успешное удаление абонента - {"error":false,"msg":""}
    3. Ошибка при удалении абонента - {"error":true,"msg":"Неверный ключ доступа или вам запрещен доступ с этого IP адреса"}

  • getabonentbyphone
    1. Запрос - /get/group.ashx?command=getabonentbyphone&key=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX&group_id=100500&phone=7XXXXXXXXXX
    2. Абонент найден/не найден - {"error":false,"msg":"", "abonent_id" : 123, "patronim": "отчество"}/{"error":false,"msg":"", "abonent_id" : -1}
    3. Ошибка при выполнении операции - {"error":true,"msg":"Неверный ключ доступа или вам запрещен доступ с этого IP адреса"}