Аномально низкие цены на СМС рассылку для всех новых пользователей

Подробнее

Аномально низкие цены на СМС рассылку для всех новых пользователей

Подробнее

API версии 3.0 предназначен для интеграции опытными программистами. Если у вас возникают проблемы, рекомендуем использовать API версии 2.0, которое значительно проще в интеграции, но обладает меньшим функционалом.

Пример использования API на языке программирования PHP. Подробно

ePochta SMS API (v. 3.0)

Базовые положения

Для активации смс шлюза необходимо в панели управления сервисом ePochta SMS в «Настройках» (https://myatompark.com/sms/profile.php) активировать использование апи 3.0. Для этого в закладке «ePochta SMS», в пункте «Активировать API 3.0» установите «Да».

Внимание! В отличии от XML интерфейса, в версии апи 3.0 тестовый режим включается передачей параметра test=1. Примите во внимание, что данный параметр, если он присутствует, также используется в формировании контрольной суммы.

Принцип работы с API

Методы API вызываются посредством запроса к URL:
http://api.myatompark.com/sms/3.0/METHOD

Параметры можно передавать методами GET, POST.

Пример GET-запроса:
http://api.myatompark.com/sms/3.0/METHOD?key=public_key&sum=CONTROL_SUM&arg1=ARG_1&argN=ARG_N

где:

METHOD *

название метода

KEY *

публичный ключ доступа к API

SUM*

контрольная сумма запроса

ARG_1 ... ARG_N

индивидуальные аргументы метода

*Далее все обязательные параметры обозначаются с помощью *


Все параметры должны иметь кодировку UTF-8. Рекомендуется передавать все параметры методом POST, чтобы он не сохранялся в логах прокси-серверов.
Для подсчета контрольной суммы необходимо:

  1. отсортировать все входящие ключи
  2. сделать конкатенацию значений по этим ключам
  3. сделать конкатенацию полученного значения с приватным ключом
  4. взять MD5 от полученного результата


Полученный от сервера ответ передается в формате  JSON.

Задать публичный и приватный ключи можно на странице настроек сервиса.

Пример подсчета суммы для метода addAddressbook на языке PHP.

$params ['version'] ="3.0";
$params ['action'] = "addAddressbook";
$params ['key'] = $openKey; //you open key
$params ['name'] = "Test addressbook";
$params ['description'] = "Test description";
ksort ($params);
$sum='';
foreach ($params as $k=>$v) 
$sum.=$v;
$sum .= $privateKey; //your private key
$control_sum =  md5($sum);

Пример ответа при успешном вызове метода

Если вызов метода выполнен успешно, то в ответе сервера будет присутствовать поле "result", включающее аргументы, характерные этому методу. Поля "error" в таком ответе не будет. Допускается наличие поля "warnings", содержимое которого состоит из массива объектов-предупреждений, указанных в одной строке поля "warning".

Пример результата успешного выполнения метода:

{
   "result":{
      "id":18628,
      "name":"TEST NAME ADRESSBOOK",
      "phones":0,
      "exceptions":0,
      "creationdate":"2012-04-01 18:44:36",
   }
} 

Пример ответа с ошибкой

Если в ответе сервера присутствует только поле "error", в котором указан числовой код ошибки – это является показателем неуспешного вызова метода. При этом в объекте ответа полностью отсутствует поле "result".

{
   "error":"Wrong public key.",
   "code":"-1",
   "result":"false"
} 
 

Для каждого метода есть свой код ошибки. Ознакомиться с перечнем всех кодов ошибки можно по ссылке.

Методы

Операции с адресной книгой.

Адресная книга представляет собой объект состоящий из:
[id] — Идетификатор
[name] => Имя
[phones] => Количество телефонов
[exceptions] => Количество телефонов в исключении
[creationdate] => Дата создания
[description] => Описание

Создать адресную книгу

Используется метод addAddressbook().
Аргументы:

name*

Имя адресной  книги

description

Примечание для адресной книги

Пример запроса: URL:http://api.myatompark.com/sms/3.0/addAddressbook?key=public_key&sum=control_sum&name=BOOK_NAME&description=BOOK_DESCRIPTION

Ответ:

{
   "result":{
      "addressbook_id":21620
   }
} 
 

В ответе будет возвращен  addressbook_id — уникальный идентификатор новой адресной книги.


Удалить адресную книгу

Используется метод delAddressbook().
Аргументы:

idAddressBook*

Идентификатор удаляемой адресной книги

Пример запроса:
URL:http://api.myatompark.com/sms/3.0/delAddressbook?key=public_key&sum=control_sum&idAddressBook=21619

Ответ:
В случае удачного выполнения объект result будет содержать "successful":true.

{
   "result":{
      "successful":true
   }
} 
  

В случае ошибки:
При удалении книги которая не существует сервер вернёт

{
   "error":"No addressbook",
   "code":"202",
   "result":"false"
} 

  


Редактировать адресную книгу

Используется метод editAddressbook().
Аргументы:

idAddressBook*

Идентификатор редактирование  адресной книги

newName*

Имя книги

newDescr*

Описание книги

Пример запроса:
URL: http://api.myatompark.com/sms/3.0/editAddressbook?key=public_key&sum=control_sum&idAddressBook=21619&newName=name&newDescr=descr

Ответ:

{
   "result":{
      "successful":true
   }
} 
  


Получить адресную книгу

Используется метод getAddressbook().
Аргументы:

idAddressBook

Идентификатор адресной книги

from

Вернуть объекты, начиная с позиции from

offset

Сколько вернуть объектов

Возврат адресной книги возможен:

  • с указанием идентификатора

  Примеры запроса:
URL: http://api.myatompark.com/sms/3.0/getAddressbook?key=public_key&sum=control_sum&idAddressBook=2161

Ответ:

{
   "result":{
      "id":2161,
      "name":"super book",
      "phones":25,
      "exceptions":0,
      "creationdate":"2012-04-01 18:44:36",
      "description":null
   }
} 
  • без указания идентификатора, в этом случае будут возвращены все книги

Примеры запроса:
URL: http://api.myatompark.com/sms/3.0/getAddressbook?key=public_key&sum=control_sum

  • без указания идентификатора, но с указанием смещений, с такими параметрами будут возвращены книги в соответствии заданного смещения.

Примеры запроса:
URL: http://api.myatompark.com/sms/3.0/getAddressbook?key=public_key&sum=control_sum&from=3&offset=3
Ответ:

{
   "result":{
      "count":55,
      "fields":[
         "id",
         "name",
         "phone",
         "date",
         "description"
      ],
      "data":[
         [
            "21597",
            "new book",
            "250",
            "2012-01-17 14:57:37",
            ""
         ],
         [
            "18684",
            "testNAME",
            "0",
            "2012-02-06 15:08:16",
            ""
         ],
         [
            "18661",
            "testNAME2",
            "4",
            "2012-03-27 22:45:47",
            ""
         ]
      ]
   }
} 
  


Поиск адресной книги

Используется метод searchAddressBook().

Аргументы:

searchFields

Объект в формате json для поиска. Поиск возможен по следующим полям:name,phones,date. В поиске можно использовать операции: like,=,>,>=,<,<=.
Пример:

		{
		   "name":{
			  "operation":"like",
			  "value":"test%"
		   }
		}	  

from

Вернуть объекты, начиная с позиции from

offset

Сколько вернуть объектов

Пример запроса:
URL: http://atompark.com/api/sms/3.0/searchAddressBook?key=public_key&sum=control_sum&from=10&offset=3&searchFields={ "name" : { "operation" : "like" , "value" : "test%" } }

 Ответ:

{
   "result":{
      "count":50,
      "fields":[
         "id",
         "name",
         "phone",
         "date",
         "description"
      ],
      "data":[
         [
            "18629",
            "test2",
            "0",
            "2012-01-05 16:34:15",
            "tstdescr"
         ],
         [
            "18684",
            "testNAME",
            "0",
            "2012-02-06 15:08:16",
            ""
         ],
         [
            "18661",
            "testNAME",
            "4",
            "2012-01-27 10:45:47",
            ""
         ]
      ]
   }
} 
  


Клонирование адресной книги

Используется метод cloneaddressbook().
Метод используется для создания копии адресной книги с новым идентификатором
Аргументы:

idAddressBook*

Идентификаторы адресной книги, копию которой надо создать.

Пример запроса:
URL: http://api.myatompark.com/sms/3.0/cloneaddressbook?key=public_key&sum=control_sum&idAddressBook=147

Ответ:

{
   "result":{
      "successful":true,
	  "idAddressBook":36107
   }
} 
 


Операции с телефонами.

Телефон представляет собой объект состоящий из:
[id]=> Идентификатор телефона
[addressbook]=>Идентификатор адресной книги
[phone]=>Телефон
[normalphone]=>Телефон приведенный к международному стандарту *
[variables]=> Переменные для персонализации, разделенные «;» **
[status]=>Статус телефонного номера

* международный стандарт
** например: Test1;Test2;Test3


Добавить телефон в адресную книгу

Используется метод addPhoneToAddressBook().
Аргументы:

idAddressBook*

Идентификатор адресной  книги

phone*

Телефон

variables

Переменная для персонализации

Пример запроса:
URL: http://api.myatompark.com/sms/3.0/addPhoneToAddressBook?key=public_key&sum=control_sum&idAddressBook=2432&phone=380638962555&variables=test

Ответ:

{
   "result":{
      "phone_id":24552302
   }
} 
 

В ответе будет возвращен  phone_id — уникальный идентификатор телефонного номера.


Добавить телефоны в адресную книгу

Используется метод addPhoneToAddressBook().
Аргументы:

idAddressBook*

Идентификатор адресной  книги

data*

Список телефонов с персонализацией в JSON формате. Структура:[["phone1","variables1"],["phone2"],["phone3","variables3"]].

Пример запроса:
URL: http://api.myatompark.com/sms/3.0/addPhoneToAddressBook?key=public_key&sum=control_sum&idAddressBook=2432&data=[["38063169xxx1","test1"],["38063169xxx2","test2"],["38063169xxx3","test3"],["38063169xxx3","test4"],["38063169xxx4"],["38063169xxx5","test5"]]

Ответ:

{
   "result":{
      "successful":true
   }
} 
 


Получить адресную книгу

Используется метод getPhoneFromAddressBook().
Аргументы:

idAddressBook

Идентификатор адресной книги

idPhone

Идентификатор телефона

phone

Телефон

from

Вернуть объекты от from

offset

Сколько вернуть объектов

Все аргументы: являются необязательными.

Пример запроса:
URL: http://api.myatompark.com/sms/3.0/getAddressbook?key=public_key&sum=control_sum&idAddressBook=2161

Ответ:

{
   "result":{
      "count":2,
      "fields":[
         "id",
         "phone",
         "normalPhone",
         "variables",
         "status",
         "code"
      ],
      "data":[
         [
            "24552301",
            "380632587852",
            "380632587852",
            "test variables",
            "0",
            ""
         ],
         [
            "24552302",
            "380632587853",
            "380632587853",
            "test variables",
            "0",
            ""
         ]
      ]
   }
}

  

Пример запроса:
URL: http://api.myatompark.com/sms/3.0/getPhoneFromAddressBook?key=public_key&sum=control_sum&idPhone=24552301

Ответ:

{
   "result":{
      "id":24552301,
      "addressbook":18628,
      "phone":"380632587852",
      "normalphone":"380632587852",
      "variables":"test variables",
      "status":0
   }
} 
  


Удаление телефона из адресной книги.

Используется метод delPhoneFromAddressBook().
Аргументы:

idAddressBook*

Идентификатор адресной книги

idPhone*

Идентификатор телефона

Для удаления всех телефонов с адресной книги необходимо указать идентификатор адресной книги, а для удаления одного телефона необходимо  указать идентификатор телефона.

Пример запроса:
URL: http://api.myatompark.com/sms/3.0/delPhoneFromAddressBook?key=public_key&sum=control_sum&idPhone=24552301

Ответ:


{
   "result":{
      "successful":true
   }
} 
  


Удалить группу телефонов из адресной книги

Используется метод delphonefromaddressbookgroup().
Аргументы:

idPhones*

Идентификаторы телефонных номеров, разделенные запятыми.
Например: 456,523,985,412

Пример запроса:
URL: http://api.myatompark.com/sms/3.0/delphonefromaddressbookgroup?key=public_key&sum=control_sum&idPhones=456,523,985,412

Ответ:

{
   "result":{
      "successful":true
   }
} 
 


Редактирование телефонов в адресной книги.

Используется метод editPhone().
Аргументы:

idPhone*

Идентификатор телефона

phone*

Номер телефона

variables*

Переменная для персонализации

Необходимо указать новый телефон (в международном формате) и новую строку переменных.

Пример запроса:
URL: http://api.myatompark.com/sms/3.0/editPhone?key=public_key&sum=control_sum&idPhone=24552301&phone=380657412569&variables=test

Ответ:

{
   "result":{
      "successful":true
   }
} 
 


Поиск телефонов в адресной книге

Используется метод searchPhones().
Аргументы:

searchFields

Объект в формате json для поиска. Поиск возможен по следующим полям:idAddressBook,phones,normalPhone, variables, status. В поиске можно использовать операции: like,=,>,>=,<,<=.
Пример:

{
   "phone":{
      "operation":"like",
      "value":"38063%"
   }
}	  

from

Вернуть объекты от from

offset

Сколько вернуть объектов

Пример запроса:
URL: http://api.myatompark.com/sms/3.0/searchPhones?key=public_key&sum=control_sum&searchFields={ "variables" : { "operation" : "like" , "value" : "иван%" } }

Ответ:

{
   "result":{
      "count":1,
      "fields":[
         "id",
         "idAddressBook",
         "phone",
         "normalPhone",
         "variables",
         "status",
         "code",
         "maid"
      ],
      "data":[
         [
            "24552295",
            "21597",
            "9999999999",
            "9999999999",
            "Иван Васильевич",
            "0",
            "",
            "0"
         ]
      ]
   }
} 
  
  


Операции с исключениями.

Исключение представляет собой объект состоящий из:
[id] => Идентификатор
[phone] =>Телефон
[added] => Дата добавления
[comment] => Описание


Добавить телефон в исключения

Используется метод addPhoneToExceptions().
Аргументы:

idPhone

Идентификатор телефона

phone

Телефон

reason

Причина добавления

При добавлении телефона в исключения обязательно необходимо передать идентификатор телефона или сам телефон.
Пример запроса:
URL: http://api.myatompark.com/sms/3.0/addPhoneToExceptions?key=public_key&sum=control_sum&idPhone=24552291&reason=test_add

Ответ:

{
   "result":{
      "exseption_id":24552302
   }
} 
 

В ответе будет возвращен  exseption_id — уникальный идентификатор исключения.


Удалить телефон с исключений

Используется метод delPhoneFromExceptions().
Аргументы:

idPhone

Идентификатор телефона

phone

Телефон

idException

Идентификатор исключения

Для удаления телефона с исключения необходимо передать один из выше перечисленных параметров.

Пример запроса:
URL: http://api.myatompark.com/sms/3.0/delPhoneFromExceptions?key=public_key&sum=control_sum&idPhone=24552291

Ответ:

{
   "result":{
      "successful":true
   }
} 

 


Редактировать телефон в исключениях

Используется метод editExceptions().
Аргументы:

idException*

Идентификатор исключения

reason*

Причина

Пример запроса:
URL: http://api.myatompark.com/sms/3.0/delPhoneFromExceptions?key=public_key&sum=control_sum&idPhone=24552291

Ответ:

{
   "result":{
      "successful":true
   }
} 
  


Получить объект исключения

Используется метод getException().
Аргументы:

idException

Идентификатор исключения

phone

Телефон

idAddresbook

Идентификатор адресной книги

from

Вернуть объекты от from

offset

Сколько вернуть объектов

Пример запроса:
URL: http://api.myatompark.com/sms/3.0/delPhoneFromExceptions?key=public_key&sum=control_sum&idPhone=24552291

Ответ:

{
   "result":{
      "id":181042,
      "phone":"380692587852",
      "added":"2012-04-04 10:55:08",
      "comment":"testREASON_PHONE"
   }
} 
  
  

Пример запроса:
URL:http://api.myatompark.com/sms/3.0/getException?key=public_key&sum=control_sum&from=1&offset=2

Ответ:

{
   "result":{
      "count":6,
      "fields":[
         "id",
         "phone",
         "added",
         "comment"
      ],
      "data":[
         [
            "181038",
            "99999999999",
            "2012-03-12 10:44:31",
            "testREAS!!!"
         ],
         [
            "181042",
            "88888888888",
            "2012-04-04 10:55:08",
            "testREASON_PHONE"
         ]
      ]
   }
} 
  


Поиск исключения

Используется метод searchPhonesInExceptions().
Аргументы:

searchFields

Объект в формате json для поиска. Поиск возможен по следующим полям: id, phone, date, descr. В поиске можно использовать операции: like,=,>,>=,<,<=.
Пример

{
   "descr":{
      "operation":"like",
      "value":"testR%"
   }
} 
	  

from

Вернуть объекты от from

offset

Сколько вернуть объектов

Пример запроса:
URL: http://api.myatompark.com/sms/3.0/searchPhones?key=public_key&sum=control_sum&searchFields={ "variables" : { "operation" : "like" , "value" : "иван%" } }

Ответ:

{
   "result":{
      "count":6,
      "fields":[
         "id",
         "phone",
         "added",
         "comment"
      ],
      "data":[
         [
            "181041",
            "91234561",
            "2012-04-04 10:11:40",
            "testREASON_PHONE"
         ],
         [
            "181038",
            "74999404711",
            "2012-03-12 10:44:31",
            "testREASasdON!!!"
         ]
      ]
   }
} 
  
  


Проверка баланса

Используется метод getUserBalance().
Аргументы:

currency

Валюта. Доступные валюты: 'USD','GBP','UAH','RUB','EUR'.

По умолчанию, баланс отображается в выбранной валюте в личном кабинете.

Баланс представляет собой объект:
      "currency" -Валюта.
      "balance_currency" — Баланс в выбранной валюте.

Пример запроса:
URL: http://api.myatompark.com/sms/3.0/getUserBalance?key=public_key&sum=control_sum¤cy=USD

Ответ:

{
   "result":{
      "currency":"USD",
      "balance_currency":2.5
   }
} 

  


Регистрация имени отправителя

Используется метод registerSender().
Аргументы:

name

Отправитель. Не более 14 цифр для цифрового, не более 11 символов для текстового.

country

Страна, в которой необходимо зарегистрировать имя. Для регистрации доступны страны:MD,UA.

Пример запроса:
URL: http://api.myatompark.com/sms/3.0/registerSender?key=public_key&sum=control_sum&name=qwerty&country=UA

Ответ:

{
   "name_id":748,
   "status":0
} 

В ответе будет возвращён статус в поле «status»:
0 – на модерации
1 — одобрено
2 — отклонено


Получить объект имени

Используется метод getSenderStatus().
Аргументы:

idName

Идентификатор имени

name

Имя

country

Страна

from

Вернуть объекты, начиная с позиции from

offset

Сколько вернуть объектов

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

Пример запроса:
URL: http://api.myatompark.com/sms/3.0/getSenderStatus?key=public_key&sum=control_sum&idName=747

или

URL: http://api.myatompark.com/sms/3.0/getSenderStatus?key=public_key&sum=control_sum&name=qwerty&country=ua

Ответ:

{
   "result":{
      "id":747,
      "name":"qwerty",
      "status":"0",
      "country":"UA"
   }
}   
  

URL: http://api.myatompark.com/sms/3.0/getSenderStatus?key=public_key&sum=control_sum&from=10&offset=2

Ответ:

{
   "result":{
      "count":661,
      "fields":[
         "id",
         "country",
         "name",
         "status",
         "description"
      ],
      "data":[
         [
            "11",
            "UA",
            "test",
            "1",
            ""
         ],
         [
            "12",
            "UA",
            "test1",
            "1",
            ""
         ]
      ]
   }
}   
  


Операции с рассылками.


Создать рассылку

Используется метод createCampaign()
Аргументы:

sender

Идентификатор отправителя

text

Текст сообщения

list_id

Идентификатор адресной книги

datetime

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

batch

Для рассылки по частям – количество смс в 1й отправке

batchinterval

Для рассылки по частям – интервал между отправками

sms_lifetime

Время жизни смс (0 = максимум)

control_phone

Контрольный номер телефона

Параметр datetime используется, если рассылку надо отправить не в текущее время, а запланировать. Для моментальной отправки необходимо передать пустой параметр. Пример формата даты при передаче параметра – 2012-05-01 00:20:00
Параметры batch и batchinterval используются, если необходимо рассылку разослать не за один раз, а частями. Если рассылку планируется разослать за одну итерацию, данные параметры следует передавать со значением 0.
Опциональный параметр control_phone задается в случае, если требуется контроль качества доставки на указанный номер телефона. Задается в международном виде.

Пример запроса:
URL: http://api.myatompark.com/sms/3.0/createCampaign?key=public_key&sum=control_sum&sender=Info&text=Testing%20SMS&list_id=1234&datetime=&batch=0&batchinterval=0&sms_lifetime=0&controlnumber=

Ответ:

{
"result":{
"id":1853173,
"price":403.44
}
}
  

Где id – это идентификатор созданной кампании, price – цена рассылки кампании в валюте, установленной в настройках пользователя.


Послать сообщение на произвольный телефон

Используется метод sendSMS()
Аргументы:

sender

Идентификатор отправителя

text

Текст сообщения

phone

Номер получателя

datetime

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

sms_lifetime

Время жизни смс (0 = максимум, 1, 6, 12, 24 часа)

Параметр datetime используется, если рассылку надо отправить не в текущее время, а запланировать. Для моментальной отправки необходимо передать пустой параметр. Пример формата даты при передаче параметра – 2012-05-01 00:20:00

Пример запроса:
URL: http://api.myatompark.com/sms/3.0/sendSMS?key=public_key&sum=control_sum&sender=Info&text=Testing%20SMS&phone=380972920383&datetime=&sms_lifetime=0

Ответ:

{
"result":{
"id":1853174,
"price":0.13
}
}
 

Где id – это идентификатор созданной кампании, price – цена рассылки кампании в валюте, установленной в настройках пользователя.


Отправка сообщений группе получателей

Используется метод sendsmsgroup().
Аргументы:

sender*

идентификатор отправителя.

text*

текст e-mail сообщения.

phones*

телефоны. Передаются в виде JSON строки в виде ["Номер телефона", "Переменная"].
Структура: '[["3806316923xx","Sergey"],["3806316923xx","test"],["3806785214xx"],["3806785214xx"]]'.

datetime*

Дата и время отправки.

sms_lifetime *

Время жизни смс сообщения.

Пример запроса:
URL: http://api.myatompark.com/sms/3.0/sendsmsgroup?key=public_key&sum=control_sum&sender=senderid&text=text&datetime=2013-01-19 00:00:00&sms_lifetime=0&phones=[["3806316923xx","Sergey"],["3806316923xx","test"],["3806785214xx"],["3806785214xx"]]

Ответ:

{
   "result":{
      "id":9097982,
	  "price":0.5592,
	  "currency":"UAH"
   }
} 
 


Выбор маршрута отправки

Используется универсальный параметр sendOption, с помощь которого вы можете задать маршрут для рассылки для каждой страны.
Параметры передаются в виде JSON строки.

Для Украины параметры передаются в виде:

    {
        "sendTypeCountry" : {
            "211" : "national_ua"
        }
    }
    

Возможны варианты отправки:

national_ua

маршрут с регистрацией имени отправителя (требуется обязательная предварительная регистрация имени у операторов, подходит только для национальных смс)

international_ua

маршрут без регистрации имени отправителя (сохраняется указанное имя отправителя, используется для международного трафика смс в Украину и для национальных имен, не одобренных операторов)

ua_sim

отправка от случайного номера (заданное вами имя отправителя подменяется на случайный местный цифровой номер, подходит как для национального, так и для международного трафика)

Внимание! Для России параметры передаются в виде

    {
        "rule" : "route",
        "type" : "direct"
    }
    
, параметр "rule" - дополнительный параметр, который используется только для России и всегда равен "route", параметр "type" служит для выбора маршрута.

Возможны варианты отправки:

direct

маршрут, подключенный напрямую к операторам России (требуется обязательная предварительная регистрация имени у операторов, разрешены только буквенные имена)

direct_fix

маршрут, подключенный напрямую к операторам России (заданное имя отправителя подменяется на фиксированное буквенное имя)

not_direct

маршрут через каналы сторонних операторов (в большинстве случаев, заданное имя отправителя подменяется на случайный цифровой номер)

Пример задания типа рассылки для России и Украины при отправке на несколько номеров на языке PHP.

        // Выбор маршрута для России
        $route ['rule'] = 'route'; 
        $route ['type'] = 'direct'; 
        // Выбор маршрута для Украины
        $route ['sendTypeCountry']['211'] = "international_ua"; 

        // Преобразовываем параметры для России и Украины в формат json
        $params ['sendOption'] = json_encode($route);
    


Получить информацию о рассылке

Используется метод getCampaignInfo()
Аргументы:

id*

Идентификатор кампании, созданной при помощи sendSMS() или createCampaign ()

Пример запроса:
URL: http://api.myatompark.com/sms/3.0/getCampaignInfo?key=public_key&sum=control_sum&id=128891

Ответ:

{
"result":{
"sent":1,
"delivered":1,
"not_delivered":0,
"price":0.13,
"status":3
}
}
 

Где:
sent – отправлено смс
delivered – доставлено смс
not_delivered – недоставлено смс
price – стоимость рассылки
status – состояние рассылки

Переменная status может принимать следующие значения:

0

В очереди отправки

1

Недостаточно денег для рассылки

2

В процессе рассылки

3

Отправлено

4

Нет правильных номеров получателей

5

Частично отправлено

6

Спам

7

Недействительное имя отправителя

8

Пауза

9

Запланирована

10

Ожидает модерации


Получить информацию о статусах смс рассылки

Используется метод getCampaignDeliveryStats()
Аргументы:

id*

Идентификатор кампании, созданной при помощи sendSMS() или createCampaign ()

datefrom*

Необязательный параметр, в случае его указания будут взяты статусы, которые были обновлены после datefrom

Пример запроса:
URL: http://api.myatompark.com/sms/3.0/getCampaignDeliveryStats?key=public_key&sum=control_sum&id=128891

Ответ:

 
{
"result":{
"phone":[
"380972920383"
],
"sentdate":[
"0000-00-00 00:00:00"
],
"donedate":[
"0000-00-00 00:00:00"
],
"status":[
"0"
]
}
}  

Где:
phone – массив телефонов
sentdate – массив времен отправки
donedate – массив времен установления финального статуса
status – массив состояния смс.

Переменные  в status могут принимать следующие значения:

0

В очереди отправки

SENT

Отправлено

DELIVERED

Доставлено

NOT_DELIVERED

Не доставлено

INVALID_PHONE_NUMBER

Неверный номер

SPAM

Спам

Если поле sentdate  содержит значение "0000-00-00 00:00:00", значит, смс еще в очереди отправки. Так же, если donedate  содержит "0000-00-00 00:00:00", значит, финальный статус еще не получен от оператора


Отменить рассылку

Используется метод cancelCampaign()
Аргументы:

id*

Идентификатор кампании, созданной при помощи sendSMS() или createCampaign ()

Отменить рассылку можно в том случае, если еще не началась ее отправка.

Пример запроса:
URL: http://api.myatompark.com/sms/3.0/cancelCampaign?key=public_key&sum=control_sum&id=128891

Ответ:

{
"result":{
"successful":1
}
}


Удалить рассылку

Используется метод deleteCampaign()
Аргументы:

id

Идентификатор кампании, созданной при помощи sendSMS() или createCampaign ()

Пример запроса:
URL: http://api.myatompark.com/sms/3.0/deleteCampaign?key=public_key&sum=control_sum&id=128891

Ответ:

{
"result":{
"successful":1
}
}
  

Если рассылка уже была удалена, данный запрос вернет ошибку. Удаляет рассылку вне зависимости от текущего статуса.


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

Используется метод checkCampaignPrice()
Аргументы:

sender

Идентификатор отправителя

text

Текст сообщения

list_id

Идентификатор адресной книги

Пример запроса:
URL: http://api.myatompark.com/sms/3.0/checkCampaignPrice?key=public_key&sum=control_sum&sender=Info&text=Testing%20SMS&list_id=1234

Ответ:

{
"result":{
"price":1210.32
}
}
  


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

Используется метод checkCampaignPriceGroup().
Аргументы:

sender*

Идентификатор отправителя.

text*

текст e-mail сообщения.

phones*

телефоны. Передаются в виде JSON строки в виде ["Номер телефона", "Переменная"].
Структура: '[["3806316923xx","Sergey"],["3806316923xx","test"],["3806785214xx"],["3806785214xx"]]'.

Пример запроса:
URL: http://api.myatompark.com/sms/3.0/checkCampaignPriceGroup?key=public_key&sum=control_sum&sender=senderid&text=text&phones=[["3806316923xx","Sergey"],["3806316923xx","test"],["3806785214xx"],["3806785214xx"]]

Ответ:

{
   "result":{
      "price":0.5592,
	  "currency":"UAH"
   }
} 
 


Получить список кампаний

Используется метод getCampaignList()
Аргументы отсутствуют.
Пример запроса:
URL: http://api.myatompark.com/sms/3.0/getCampaignList?key=public_key&sum=control_sum

Ответ:

{
"result":{
	"id": [
			"10012",
			"10013"
			],
"from": [
"Sender1",
"Sender2"
],
 "body": [
"Text of SMS1",
"Text of SMS2"
],
 "status" : [
3,
3
]
}
}
  

Поле status  имеет такое же значение, как и в таблице для функции getCampaignInfo()


Получение статусов состояния сообщений по кампаниям

Используется метод getcampaigndeliverystatsgroup().
Аргументы:

id*

Идентификаторы кампаний, разделенные запятыми.

Пример запроса:
URL: http://api.myatompark.com/sms/3.0/getcampaigndeliverystatsgroup?key=public_key&sum=control_sum&id=754,751

Ответ:

{
   "result":{
      "phone":["3806316923xx","3806316923xx"],
	  "sentdate":["0000-00-00 00:00:00","0000-00-00 00:00:00"],
	  "donedate":["0000-00-00 00:00:00","0000-00-00 00:00:00"],
	  "status":["0","0"],"id":[97659179,97659180]
   }
} 
 


Получение полных статусов по кампаниям

Используется метод gettaskinfo().
Аргументы:

taskIds*

Идентификаторы кампаний, разделенные запятыми.

Пример запроса:
URL: http://api.myatompark.com/sms/3.0/gettaskinfo?key=public_key&sum=control_sum&taskIds=97659003,97659005

Ответ:

{
   "result":[
   {
      "id":97659003,
	  "phone":"79503702408",
	  "country":0,
	  "parts":"1",
	  "sentdate":"2012-12-07 10:14:29"
	  "donedate":"0000-00-00 00:00:00",
	  "price":0.123,
	  "status":"0",
	  "variable":"",
	  "currency":"UAH"
   }
   {
	  "id":97659005,
      "phone":"79503703937"
	  "country":0,
	  "parts":"1"
	  "sentdate":"2012-12-07 10:14:29"
	  "donedate":"0000-00-00 00:00:00"
	  "price":0.123,
	  "status":"0",
	  "variable":"",
	  "currency":"UAH"
	}
	]
} 
 

Пример использования на РНР