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

Общие принципы отправки

На определенный адрес сервера отправляются XML документы (описание XML документов, их назначение и адреса сервера приведены ниже). При этом используется POST метод.

Заголовки отправляемых данных должны содержать:

Content-type: text/xml; charset=utf-8

Кодировка XML документов UTF-8. Передаваемый XML документ не должен содержать переводов строки. Переводы строк в самих данных должны быть заменены на “\n".

Пример передачи XML документа на php

$src = '<?xml version="1.0" encoding="utf-8"?> <request> <security> <login value="логин" /> <password value="пароль" /> </security> </request>'; // XML-документ $href = 'https://clk2.prontosms.ru/script.php'; // адрес сервера $ch = curl_init(); curl_setopt ($ch, CURLOPT_HTTPHEADER, array ('Content-type: text/xml','charset=utf-8','Expect:')); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt ($ch, CURLOPT_CRLF, true); curl_setopt ($ch, CURLOPT_POST, true); curl_setopt ($ch, CURLOPT_POSTFIELDS, $src); curl_setopt ($ch, CURLOPT_URL, $href); $result = curl_exec($ch); curl_close($ch); echo $result;

ОтправкаSMS, Flash SMS, WAP-Push

Адрес сервера:

https://clk2.prontosms.ru/xml/

XML-документ:

Где

  • type_send_1 – тип отправляемого сообщения viber или sms

  • type_send_2 – тип досылаемого сообщения, в случае если отправляемое сообщение не будет доставлено viber или sms.

  • type – тип SMS сообщения:

  • flashsms – flash SMS

  • silence – невидимые SMS (для проверки статуса абонента)

  • sms – обычнаяSMS

  • wappush – WAP-Push

  • vcard – визитнаякарточка (vCard)

  • sender_viber – отправитель Viber сообщения

  • text_viber - текст Viber сообщения

  • button_viber - текст кнопки Viber сообщения

  • action_viber - ссылка для кнопки Viber сообщения

  • image_viber - адрес картинки для Viber сообщения

  • sender – отправитель SMS. Именно это значение будет выводиться на телефоне абонента в поле от кого SMS.

  • phone – номер абонента, которому адресована SMS.

  • loginvalue -ваш логин в системе

  • passwordvalue - ваш пароль в системе

  • number_sms - номер сообщения в пределах отправляемого XML документа.

  • client_id_sms - число. Необязательный параметр, позволяет избежать повторной отправки. Если раннее с этого аккаунта уже было отправлено SMS с таким номером, то повторная отправка не производится, а возвращается номер ранее отправленного SMS.

  • time_send – дата и время отправки в формате:

YYYY-MM-DD HH:MM

где, YYYY-год, MM-месяц, DD-день,HH-часы, MM-минуты.

Если не задано, то SMSотправляется сразу же.

  • validity_period – дата и время, после которых не будут делаться попытки доставить SMS в формате:

YYYY-MM-DD HH:MM

где, YYYY-год, MM-месяц, DD-день,HH-часы, MM-минуты.

Если не задано, то SMS имеет максимальный срок жизни.

  • validity_period_viber – дата и время, после которых не будут делаться попытки доставить Viber сообщение в формате:

YYYY-MM-DD HH:MM

где, YYYY-год, MM-месяц, DD-день,HH-часы, MM-минуты.

Если не задано, то Viber сообщение имеет максимальный срок жизни (один день).

Далее поля выбираются в зависимости от типа отправляемого SMS (type):

  • text – текст обычного SMS или описание WAP ссылки.

  • url–ссылка для WAP Push или vCard

  • name - имя для vCard

  • cell – номер телефона для vCard

  • work - номер рабочего телефона для vCard

  • fax - номер факса для vCard

  • email - e-mail для vCard

  • position – должность контакта для vCard

  • organization - организация для vCard

  • post_office_box - абонентский ящик для  vCard

  • street – улица для  vCard

  • city – город для  vCard

  • region–область для  vCard

  • postal_code–индекс для  vCard

  • country - страна для vCard

  • additional - дополнительная информация для vCard

В ответ может быть выдан один из следующих XML-документов:

В случае возникновения ошибки в отправляемом XML-документе:

error - текст ошибки может принимать следующие значения:

  1. Неправильный формат XML документа

  2. Ваш аккаунт заблокирован

  3. Неправильный логин или пароль

  4. POST данные отсутствуют

В случае получения правильного XML-документа:

Где

  • number_sms - номер сообщения указанный при отправке XML документа.

  • id_sms - номер SMSсообщения. Используется для проверки статуса SMS. Если в процессе отправки SMS произошла ошибка, то id_sms не передается.

  • parts - количество частей SMS.

  • information – статус сообщения («send»), если SMSбыла отправлена. Или сообщение об ошибке, если в процессе отправки SMSпроизошла ошибка:

  1. У нас закончились SMS. Для разрешения проблемы свяжитесь с менеджером.

  2. Закончились SMS.

  3. Аккаунт заблокирован.

  4. Укажите номер телефона.

  5. Номер телефона присутствует в стоп-листе.

  6. Данное направление закрыто для вас.

  7. Данное направление закрыто.

  8. Текст SMS отклонен модератором.

  9. Нет отправителя.

10. Отправитель не должен превышать 15 символов для цифровых номеров и 11 символов для буквенно-числовых.

11. Номер телефона должен быть меньше 15 символов.

12. Нет текста сообщения.

13. Нет ссылки.

14. Укажите название контакта и хотя бы один параметр для визитной карточки.

15. Такого отправителя нет.

16. Отправитель не прошел модерацию.

Запрос статуса SMS сообщения (первый способ)

Адрес сервера:

XML-документ:

Где

  • логин

    • ваш логин в системе.

  • пароль

    • ваш пароль в системе.

  • id_sms

    • номер SMS сообщения, полученный в ответном XML-документа в процессе отправки SMS сообщения.

В ответ может быть выдан один из следующих XML-документов:

В случае возникновения ошибки в отправляемом XML-документе:

error

  • текст ошибки может принимать следующие значения:

  1. Неправильный формат XML документа

  2. Неправильный логин или

  3. POST данные отсутствуют

В случае получения правильного XML-документа:

Где

  • id_sms - номер SMSсообщения, полученный в ответном XML-документа в процессе отправки SMSсообщения.

  • time – время изменнеия статуса.

  • sms, viber – статус сообщения. Название поля зависит от типа отправляемого и досылаемого сообщения.

  • state – последний статус сообщения:

  1. «send» - статус сообщения не получен. В этом случае передается пустой time (time="").

  2. «not_deliver» - сообщение не было доставлено. Конечный статус (не меняется со временем).

  3. «expired» - абонент находился не в сети в те моменты, когда делалась попытка доставки. Конечный статус (не меняется со временем).

  4. «deliver» - сообщение доставлено.

  5. «read» - сообщение прочитано. Конечный статус (не меняется со временем).

  6. «partly_deliver» - сообщение было отправлено, но статус так и не был получен.

 

Получение статуса SMS сообщения (второй способ)

При использовании данного способа необходимо сообщить менеджеру адрес вашего сервера, который будет принимать статусы SMS. XML-документ будет отправлен POST методом.

К примеру, в php XML-документ будет доступен через переменную

Система отправляет XML-документ серверу клиента следующего содержания:

Где

  • id_sms - номер SMSсообщения, полученный в ответном XML-документа в процессе отправки SMSсообщения.

  • time – время изменнеия статуса.

  • state – статус сообщения:

  1. «send» - статус сообщения не получен. В этом случае передается пустой time (time="").

  2. «not_deliver» - сообщение не было доставлено. Конечный статус (не меняется со временем).

  3. «expired» - абонент находился не в сети в те моменты, когда делалась попытка доставки. Конечный статус (не меняется со временем).

  4. «deliver» - сообщение доставлено.

  5. «read» - сообщение прочитано. Конечный статус (не меняется со временем).

  6. «partly_deliver» - сообщение было отправлено, но статус так и не был получен.

 В ответ сервер клиента должен вернуть XML-документ следующего содержания:

Где:

  • id_sms

    • номер SMS сообщения, полученный в ответном XML-документа в процессе отправки SMS сообщения.

  • time

    • время изменения статуса.

Если сервер клиента не передаст id_sms, то статус будет считаться не полученным клиентом. При этому будет сделано 5 попыток доставить статус.

Если сервер клиента не передаст id_sms, то статус будет считаться не полученным клиентом. При этому будет сделано 5 попыток доставить статус.

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

Адрес сервера:

XML-документ:

Где

  • логин

    • ваш логин в системе.

  • пароль

    • ваш пароль в системе.

В ответ может быть выдан один из следующих XML-документов: 1. В случае возникновения ошибки в отправляемом XML-документе:

error

  • текст ошибки может принимать следующие значения:

  1. Неправильный формат XML документа

  2. Неправильный логин или пароль

  3. POST данные отсутствуют

  4. В случае получения правильного XML-документа:

Где:

  • money

    • остаток средств.

  • area

    • направление в котором может быть отправлено данное количество SMS.

  • sms

    • количество доступных SMS сообщений для данного направления.

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

Пример

У вас на балансе 10 y.e.

Стоимость SMS сообщения отправленного в Россию составляет 1 y.e.

Стоимость SMS сообщения отправленного в Украину составляет 2 y.e.

При этом вам вернется XML документ следующего содержания.

Если вы отправите две смс в Россию, то XML-документ изменится следующим образом:

Запрос на получения списка отправителей

Адрес сервера:

XML-документ:

Где:

  • логин

    • ваш логин в системе.

  • пароль

    • ваш пароль в системе.

В ответ может быть выдан один из следующих XML-документов:

В случае возникновения ошибки в отправляемом XML-документе:

error

  • текст ошибки может принимать следующие значения:

  1. Неправильный формат XML документа

  2. Неправильный логин или пароль

  3. POST данные отсутствуют

В случае получения правильного XML-документа:

Где

  • any_originator

    • TRUE/FALSE - может ли клиент отправлять от любого отправителя или только от заранее одобренных. Если TRUE, то клиент может использовать любого отправителя. При этом список отправителей не возвращается. FALSE – можно использовать только отправителей со статусом «completed».

  • state

    • статус отправителя: 1. order – оформляется 2. completed - готов к использованию 3. rejected – отклонен

  • MCC – мобильный код страны

  • MNC - мобильный код оператора

  • template – наименование шаблона

  • comment - комментарий клиента

  • history - комментарий менеджера

  • operator – используемый оператор 

Запрос на добавление отправителей

Адрес сервера:

XML-документ:

Где

  • login value – ваш логин в системе

  • password value - ваш пароль в системе

  • originator – отправитель, которого нужно добавить

  • operator MCC – мобильный код страны

  • operator MNC - мобильный код оператора

  • file href – ссылка на загружаемый файл

  • file id – id загружаемого файла

  • originator INN – ИНН организации

  • originator KPP – КПП организации

  • originator OGRN - ОГРН организации

  • originator  name_counterparty – имя контрагента

  • originator  template - текст шаблона   

  • comment – комментарий.

В ответ может быть выдан один из следующих XML-документов:

В случае возникновения ошибки в отправляемом XML-документе:

  • error - текст ошибки может принимать следующие значения:

  1. Неправильный формат XML документа

  2. Неправильный логин или пароль

  3. POST данные отсутствуют

В случае получения правильного XML-документа:

Где

  • originator – результат добавления отправителя. Может содержать следующие значения:

  1. Отправитель добавлен.

  2. Отправитель поставлен в очередь на регистрацию.

  3. Отправитель может состоять только из 11-ти латинских символов, цифр, пробелов и знаков "\'?><,.-_=+/"!@#$%^&*() " или 15-ти цифр.

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

Адрес сервера:

XML-документ:

Где

  • loginvalue - вашлогинвсистеме

  • passwordvalue - ваш пароль в системе

  • timestart – время (не включительно), с которого запрашиваются входящие SMS.

  • timeend - время (не включительно), по которое запрашиваются входящие SMS. Не обязательный параметр. Если не задан, то будут возвращены все смс.

В ответ может быть выдан один из следующих XML-документов:

В случае возникновения ошибки в отправляемом XML-документе:

  • error - текст ошибки может принимать следующие значения:

  1. Неправильный формат XML документа

  2. Неправильный логин или пароль

  3. POST данные отсутствуют

В случае получения правильного XML-документа:

Где

  • id_sms–Уникальный номер, состоящий только из цифр.

  • date_receive–Дата и время получения SMS.

  • originator – номер телефона абонента, отправившего SMS.

  • prefix – префикс. Начальная часть текста SMS, по которой было определено, что эта SMSпринадлежит именно этому клиенту. (Используется если один и тот же номер используется разными клиентами.)

  • phone – номер телефона, на который бала отправлена SMS.

  • sms – текст смс

Запрос на получение информации по номеру телефона

Адрес сервера:

XML-документ:

Где

  • loginvalue - вашлогинвсистеме

  • passwordvalue - ваш пароль в системе

  • phone – Номер телефона. 

В ответ может быть выдан один из следующих XML-документов:

В случае возникновения ошибки в отправляемом XML-документе:

  • error - текст ошибки может принимать следующие значения:

  1. Неправильный формат XML документа

  2. Неправильный логин или пароль

  3. POST данные отсутствуют

В случае получения правильного XML-документа:

Где

  • operator – Оператор.

  • region – Регион.

  • time_zone – Смещение времени в часах относительно времени в Москве.

  • phone – номер телефона.

Запрос на получение списка баз

Адрес сервера:

XML-документ:

Где

  • loginvalue - ваш логин в системе

  • passwordvalue - ваш пароль в системе

В ответ может быть выдан один из следующих XML-документов:

В случае возникновения ошибки в отправляемом XML-документе:

  • error - текст ошибки может принимать следующие значения:

  1. Неправильный формат XML документа

  2. Неправильный логин или пароль

  3. POST данные отсутствуют

В случае получения правильного XML-документа:

Где

  • id_base – уникальный номер базы в системе.

  • name_base – название базы.

  • time_birth – Время поздравления.

  • local_time_birth – Считать время поздравления относительно местноговремени абонента(yes) или относительно времени системы (no).

  • day_before– За сколько дней до дня рождения поздравлять.

  • originator_birth – Отправитель поздравления.

  • on_birth –Включены ли поздравления yes – включены, no - выключены.

  • base –Текст поздравления.

Запрос на изменение параметров/добавление/удаление баз

Адрес сервера:

XML-документ:

Где

  • loginvalue - вашлогинвсистеме

  • passwordvalue - вашпарольвсистеме

  • id_base – уникальный номер базы в системе. Если не указан произойдет добавление базы. При этом нужно указать параметр number_base.

  • number_base – Номер базы в XMLзапросе. Указывается только при создании новой базы. Используется для сопоставления IDдобавленных баз (если их было не сколько в запросе).

  • name_base – название базы.

  • time_birth – Время поздравления.

  • local_time_birth – Считать время поздравления относительно местноговремени абонента(yes) или относительно времени системы (no).

  • originator_birth – Отправитель поздравления.

  • on_birth –Включены ли поздравления yes – включены, no - выключены.

  • base –Текст поздравления.

 В ответ может быть выдан один из следующих XML-документов:

 В случае возникновения ошибки в отправляемом XML-документе:

error - текст ошибки может принимать следующие значения:

  1. Неправильный формат XML документа

  2. Неправильный логин или пароль

  3. POST данные отсутствуют

В случае получения правильного XML-документа:

Запрос на получение списка абонентов базы

Адрес сервера:

XML-документ:

Где

  • login value – ваш логин всистеме

  • password value - ваш пароль в системе

  • baseid_base – Номер базы в системе.

  • basepage – Номер страницы. Весь список номеров базы делится на страницы. Запросить целиком базу нельзя. Можно лишь запросить отдельную страницу. Нумерация начинается с единички.

  • last_update – минимальная дата и время регистрации (или последнего изменения) данных абонента, которых Вам нужно запросить.

В ответ может быть выдан один из следующих XML-документов:

В случае возникновения ошибки в отправляемом XML-документе:

error - текст ошибки может принимать следующие значения:

  1. Неправильный формат XML документа

  2. Неправильный логин или пароль

  3. POST данные отсутствуют

  4. Базы с таким номером не существует

В случае получения правильного XML-документа:

Где

  • page – номер страницы

  • num_pages – всего страниц

  • phone – номер телефона абонента

  • region – регион

  • operator – оператор

  • name – Имя абонента

  • surname – Фамилия абонента

  • patronymic – Отчество абонента

  • date_birth – Дата рождения

  • male – Пол. «m» - мужской, «f»- женский

  • addition_1 – Первое дополнительное поле.

  • addition_2 – Второе дополнительное поле.

  • last_update – дата и время регистрации (или последнего изменения) данных абонента.

Запрос на добавление/редактирование/удаление абонентов базы

Адрес сервера:

XML-документ:

Где

  • loginvalue - вашлогинвсистеме

  • passwordvalue - вашпарольвсистеме

  • baseid_base – Номер базы в системе.

  • phone – номер телефона абонента. Если абонент с таким номером уже существует, то он будет отредактирован.

  • region – регион. Необязательное поле. Если не задано определяется автоматически.

  • operator – оператор. Необязательное поле. Если не задано определяется автоматически.

  • name – Имя абонента. Необязательное поле.

  • surname – Фамилия абонента. Необязательное поле.

  • patronymic –Отчество абонента. Необязательное поле.

  • date_birth –Дата рождения. Необязательное поле.

  • male –Пол. «мужской» или «женский». Необязательное поле.

  • addition_1 –Первое дополнительное поле. Необязательное поле.

  • addition_2 –Второе дополнительное поле. Необязательное поле. 

В ответ может быть выдан один из следующих XML-документов:

В случае возникновения ошибки в отправляемом XML-документе:

  • error - текст ошибки может принимать следующие значения:

  1. Неправильный формат XML документа

  2. Неправильный логин или пароль

  3. POST данные отсутствуют

  4. Базы с таким номером не существует

В случае получения правильного XML-документа:

Запрос на получение списка номеров из СТОП-листа

Адрес сервера:

XML-документ:

Где

  • loginvalue - ваш логин в системе

  • passwordvalue - ваш пароль в системе

В ответ может быть выдан один из следующих XML-документов:

В случае возникновения ошибки в отправляемом XML-документе:

  • error - текст ошибки может принимать следующие значения:

  1. Неправильный формат XML документа

  2. Неправильный логин или пароль

  3. POST данные отсутствуют

В случае получения правильного XML-документа:

Где

  • phone – Номер телефона из СТОП-листа.

Запрос на добавление/удаление абонентов в СТОП-лист

Адрес сервера:

XML-документ:

Где

  • loginvalue - ваш логин в системе

  • passwordvalue - ваш пароль в системе

  • add_stopphone – номер телефона абонента, которого нужно добавить в СТОП-лист.

  • delete_stopphone – номер телефона абонента, которого нужно удалить из СТОП-листа.

В ответ может быть выдан один из следующих XML-документов:

В случае возникновения ошибки в отправляемом XML-документе:

  •  error - текст ошибки может принимать следующие значения:

  1. Неправильный формат XML документа

  2. Неправильный логин или пароль

  3. POST данные отсутствуют

В случае получения правильного XML-документа:

Запрос на получение списка запланированных SMS

Адрес сервера:

XML-документ:

Где

  • loginvalue - вашлогинвсистеме

  • passwordvalue - ваш пароль в системе

  • scheduledpage – Номер страницы. Весь список запланированных SMS делится на страницы. Запросить список целиком нельзя. Можно лишь запросить отдельную страницу. Нумерация начинается с единички.

В ответ может быть выдан один из следующих XML-документов:

В случае возникновения ошибки в отправляемом XML-документе:

  • error - текст ошибки может принимать следующие значения:

  1. Неправильный формат XML документа

  2. Неправильный логин или пароль

  3. POST данные отсутствуют

В случае получения правильного XML-документа:

Где

  • page – номер страницы

  • num_pages – всего страниц

  •  id_sms – номерSMS. Используется для удаления запланированной SMS.

  • time_put_turn– Время добавления в планировщик.

  • operator – отправитель SMS. Именно это значение будет выводиться на телефоне абонента в поле от кого SMS.

  • phone – номер абонента, которому адресована SMS.

  • type – тип отправляемого SMSсообщения:

  • sms – обычнаяSMS

  • flashsms – flash SMS

  • wappush – WAP-Push

  • vcard – визитнаякарточка (vCard)

  • text_sms–Текст SMS-сообщения.

  • count_sms–Количество частей SMS-сообщения.

  • name_delivery–Название рассылки.

  • time_send – дата и время отправки в формате:

YYYY-MM-DDHH:MM

где, YYYY-год, MM-месяц, DD-день,HH-часы, MM-минуты.

  • validity_period – дата и время, после которых не будут делаться попытки доставить SMS в формате:

YYYY-MM-DDHH:MM:SS

где, YYYY-год, MM-месяц, DD-день,HH-часы, MM-минуты, SS-секунды. 

Запрос на удаление запланированной SMS

Адрес сервера:

XML-документ:

Где

  • loginvalue - ваш логин в системе

  • passwordvalue - ваш пароль в системе

  • delete_scheduleid_sms – номер запланированной SMS, которую нужно удалить. Можно получить при запросе списка запланированных SMS.

В ответ может быть выдан один из следующих XML-документов:

В случае возникновения ошибки в отправляемом XML-документе:

  • error - текст ошибки может принимать следующие значения:

  1. Неправильный формат XML документа

  2. Неправильный логин или пароль

  3. POST данные отсутствуют

В случае получения правильного XML-документа:

Запрос на получение времени изменения чего либо

 Адрес сервера:

XML-документ:

Где

  • login value - ваш логин в системе

  • password value - ваш пароль в системе

  • obgect – base – базы данных, stop-стоп лист 

В ответ может быть выдан один из следующих XML-документов:

В случае возникновения ошибки в отправляемом XML-документе:

  • error - текст ошибки может принимать следующие значения:

  1. Неправильный формат XML документа

  2. Неправильный логин или пароль

  3. POST данные отсутствуют

  4. Базы с таким номером не существует

В случае получения правильного XML-документа:

Где

  • time_update – время последнего изменения объекта

Запрос проверки времени

Адрес сервера:

XML-документ:

Где

  • login value – ваш логин в системе

  • password value - ваш пароль в системе

В ответ может быть выдан один из следующих XML-документов:

В случае возникновения ошибки в отправляемом XML-документе:

  • error - текст ошибки может принимать следующие значения:

  1. Неправильный формат XML документа

  2. Неправильный логин или пароль

  3. POST данные отсутствуют

В случае получения правильного XML-документа:

Где

  • time – локальное время пользователя.

При этом время рассчитывается как время на сервере минус разница часовых поясов пользователя и сервера.

Пример

Сервер находиться в Москве и серверное время у него московское, в момент запроса оно составляло: 15:34:27.

А пользователь числился в Новосибирске и разница часовых поясов (между сервером и пользователём) у него равнялось +3.

При этом вам вернется XML документ следующего содержания:

Запрос на загрузку файлов

Адрес сервера:

Для загрузки файла на сервер необходимо отправить POST данные содержащие переменные login, password, file. В ответ будет выдан id сохраненного файла, который в дальнейшем вы можете использовать в xml-запросах.

Пример php кода для загрузки файла:

    Где

  • $tmpfname – путь до файла отгрузки (Пример: C:\Program Files\file\test.jpg)

  • $requist['login'] – ваш логин в системе

  • $requist['passsword'] – ваш пароль в системе.

   Ответ:

  • id – id вашего сохраненного файла.

   Возможные ошибки:

  1. Не удалось скопировать файл!

  2. Неверный логин или пароль!