ePochta SMS API (v. 3.0) — подключение к удалённому СМС-шлюзу
image image

ePochta SMS API (v. 3.0)

ePochta SMS API (v. 3.0)

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

Для активации смс шлюза необходимо в общих настройках сервиса ePochta SMS на закладке API
активировать
использование API 3.0 (в пункте «Активировать API 3.0» установите «Да»).

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

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

Методы API вызываются посредством запроса к URL:
http://atompark.com/api/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. отсортировать все входящие ключи, добавив к ним параметры version = 3.0, action = вызываемая функция
    (например, addAddressbook) и key = публичный ключ доступа к API
  2. сделать конкатенацию значений по этим ключам
  3. сделать конкатенацию полученного значения с приватным ключом
  4. взять MD5 от полученного результата

Полученный от сервера ответ передается в формате JSON.
Задать публичный и приватный ключи можно на странице настроек сервиса.
Пример подсчета суммы для метода addAddressbook на языке PHP.

1
2
3
4
5
6
7
8
9
10
11
$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”.
Пример результата успешного выполнения метода:

1
2
3
4
5
6
7
8
9
{
"result":{
"id":18628,
"name":"TEST NAME ADRESSBOOK",
"phones":0,
"exceptions":0,
"creationdate":"2012-04-01 18:44:36",
}
}

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

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

1
2
3
4
5
{
"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
Ответ:

1
2
3
4
5
{
"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.

1
2
3
4
5
{
"result":{
"successful":true
}
}

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

1
2
3
4
5
{
"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
Ответ:

1
2
3
4
5
{
"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
Ответ:

1
2
3
4
5
6
7
8
9
10
{
"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
Ответ:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
{
"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,=,>,>=,<,<=. Пример:

1
2
3
4
5
6
{
"name":{
"operation":"like",
"value":"test%"
}
}

from

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

offset

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

Пример запроса:
URL: s/3.0/searchAddressBook?key=public_key&sum=control_sum&from=10&offset=3&searchFields={ “name”
: { “operation” : “like” , “value” : “test%” } }

Ответ:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
{
"result":{
"count":50,
"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",
""
]
]
}
}

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

Название

Значение

idAddressBook*

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

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

1
2
3
4
5
6
{
"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
Ответ:

1
2
3
4
5
{
"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”]]
Ответ:

1
2
3
4
5
{
"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
Ответ:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{
"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
Ответ:

1
2
3
4
5
6
7
8
9
10
{
"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
Ответ:

1
2
3
4
5
{
"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
Ответ:

1
2
3
4
5
{
"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
Ответ:

1
2
3
4
5
{
"result":{
"successful":true
}
}

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

Название

Значение

searchFields

1
2
3
4
5
6
{
"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” : “иван%” } }

Ответ:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{
"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
Ответ:

1
2
3
4
5
{
"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
Ответ:

1
2
3
4
5
{
"result":{
"successful":true
}
}

Редактировать телефон в исключениях
Используется метод editExceptions().
Аргументы:

Название

Значение

idException*

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

reason*

Причина

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

1
2
3
4
5
{
"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

Ответ:

1
2
3
4
5
6
7
8
{
"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
Ответ:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
"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().
Аргументы:

Название

Значение

idException

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

searchFields

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

1
2
3
4
5
6
{
"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” : “иван%” } }

Ответ:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
"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
Ответ:

1
2
3
4
5
6
{
"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
Ответ:

1
2
3
4
{
"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
Ответ:

1
2
3
4
5
6
7
8
{
"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
Ответ:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{
"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

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

userapp

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

type

Для России возможно задать тип рассылки параметром type.
Типы рассылок:

Тип

Описание

2

отправка смс через прямые подклюения к операторам (разрешены только альфа имена)

3

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

4

отправка смс через прямой канал с фиксированно-буквенным именем отправителя

asender

альтернативный отправитель смс

Параметр datetime используется, если рассылку надо отправить не в текущее время, а запланировать. Для
моментальной отправки необходимо передать пустой параметр. Пример формата даты при передаче параметра –
2012-05-01 00:20:00
Параметры batch и batchinterval используются, если необходимо рассылку разослать не за один раз, а частями.
Если рассылку планируется разослать за одну итерацию, данные параметры следует передавать со значением 0.
Опциональный параметр control_phone задается в случае, если требуется контроль качества доставки на указанный
номер телефона. Задается в международном виде.
Дополнительный параметр userapp можно использовать для указания источника рассылки. Если вы хотите знать,
сколько сообщений было отправлено через ваше приложение/модуль/сервис – укажите его название в этом параметре,
статистика будет доступна по запросу.
ВНИМАНИЕ! Этот параметр не участвует в формировании контрольной суммы. Параметр имеет смысл
передавать для
функций создания рассылки, т.е. для:
createcampaign
sendsms
sendsmsgroup
Пример запроса:
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=
Ответ:

1
2
3
4
5
6
{
"result":{
"id":1853173,
"price":403.44
}
}

Где id – это идентификатор созданной кампании, price – цена рассылки кампании в валюте, установленной в
настройках пользователя.
Послать сообщение на произвольный телефон
Используется метод sendSMS()
Аргументы:

Название

Значение

sender

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

text

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

phone

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

datetime

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

sms_lifetime

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

type

Для России возможно задать тип рассылки параметром type.
Типы рассылок:

Тип

Описание

2

отправка смс через прямые подклюения к операторам (разрешены только альфа имена)

3

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

4

отправка смс через прямой канал с фиксированно-буквенным именем отправителя

asender

альтернативный отправитель смс

Параметр 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
Ответ:

1
2
3
4
5
6
{
"result":{
"id":1853174,
"price":0.13
}
}

Где id – это идентификатор созданной кампании,price – цена рассылки кампании
в валюте, установленной в настройках пользователя.
Отправка сообщений группе получателей
Используется метод sendsmsgroup().
Аргументы

Название

Значение

sender*

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

text*

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

phones*

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

datetime*

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

sms_lifetime *

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

type

Для России возможно задать тип рассылки параметром type.
Типы рассылок:

Тип

Описание

2

отправка смс через прямые подклюения к операторам (разрешены только альфа имена)

3

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

4

отправка смс через прямой канал с фиксированно-буквенным именем отправителя

asender

альтернативный отправитель смс

Пример запроса:
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”]]

Ответ:

1
2
3
4
5
6
7
{
"result":{
"id":9097982,
"price":0.5592,
"currency":"UAH"
}
}

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

1
2
3
4
5
{
"sendTypeCountry" : {
"211" : "national_ua"
}
}

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

Название

Значение

national_ua

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

international_ua

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

ua_sim

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

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

1
2
3
4
{
"rule" : "route",
"type" : "direct"
}

, параметр “rule” – дополнительный параметр, который используется только для России и всегда равен
“route”, параметр “type” служит для выбора маршрута.

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

Название

Значение

direct

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

direct_fix

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

not_direct

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

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

1
2
3
4
5
6
7
8
// Выбор маршрута для России
$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
Ответ:

1
2
3
4
5
6
7
8
9
{
"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

Ответ:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"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
Ответ:

1
2
3
4
5
{
"result":{
"successful":1
}
}

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

Название

Значение

id

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

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

1
2
3
4
5
{
"result":{
"successful":1
}
}

Если рассылка уже была удалена, данный запрос вернет ошибку. Удаляет рассылку вне зависимости от текущего статуса.
Проверить стоимость рассылки по заданному сообщению и списку
Используется метод checkCampaignPrice()
Аргументы:

Название

Значение

sender

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

text

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

list_id

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

type

Для России возможно задать тип рассылки параметром type.
Типы рассылок:

Тип

Описание

2

отправка смс через прямые подклюения к операторам (разрешены только альфа имена)

3

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

4

отправка смс через прямой канал с фиксированно-буквенным именем отправителя

asender

альтернативный отправитель смс

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

1
2
3
4
5
{
"result":{
"price":1210.32
}
}

Получение стоимости отправки
Используется метод checkCampaignPriceGroup().
Аргументы:

Название

Значение

sender*

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

text*

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

phones*

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

type

Для России возможно задать тип рассылки параметром type.
Типы рассылок:

Тип

Описание

2

отправка смс через прямые подклюения к операторам (разрешены только альфа имена)

3

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

4

отправка смс через прямой канал с фиксированно-буквенным именем отправителя

asender

альтернативный отправитель смс

Пример запроса:
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”]]
Ответ:

1
2
3
4
5
6
{
"result":{
"price":0.5592,
"currency":"UAH"
}
}

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
"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
Ответ:

1
2
3
4
5
6
7
8
{
"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
Ответ:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{
"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"
}
]
}

Скачать коды ошибок
Пример использования на РНР

vector

vector
image

Нужна помощь?

Задайте вопрос специалисту технической поддержки