HTTP API Документация

Документация API

API 2.0 SMS Aero — позволяет интегрировать систему SMS-оповещений в ваш сайт или CRM-систему. Сообщайте клиентам об изменении баланса, доставке заказа, прибытии такси или других важных событиях автоматически. Все методы доступны с помощью запросов типа GET и POST.

Внимание! Перед отправкой все SMS проходят ручную модерацию, которая занимает до 5-10 минут. Чтобы отключить модерацию, заключите договор с SMS Aero в разделе Реквизиты и договоры.
Тип ответа & Тип запроса

Для работы с API SMS Aero используйте HTTPS-соединение.

https://gate.smsaero.ru/v2

Возможные форматы ответа: JSON, XML.

Для выбора типа ответа необходимо в заголовках запроса указать accept.

Формат ответа Значение
json accept application/json
xml accept application/xml

По умолчанию сервис возвращает ответ типа application/json.

Аутентификация

Для аутентификации запроса используется HTTP Basic Auth — отправка логина и пароля в заголовке HTTPS-запроса. В качестве логина используется параметр user — ваш логин в системе, в качестве пароля — API-ключ, который можно получить в личном кабинете.

Тестовый метод для проверки авторизации пользователяauth

https://email:api_key@gate.smsaero.ru/v2/auth

Ответ приходит в формате JSON или XML:

{
    "success": true,
    "data": null,
    "message": "Successful authorization."
}

Значения переменных в ответе:

Параметр Описание
message Сообщение о успешной/неудачной авторизации.
Отправка SMS-сообщений

Отправка SMS-сообщенийsms/send

Параметр Формат Применение Описание
number string Обязательно (на выбор). Номер телефона.
numbers array Обязательно (на выбор). Номера телефонов.
sign string Обязательно. Имя отправителя.
text string Обязательно. Текст сообщения.
dateSend integer Необязательно. Дата для отложенной отправки сообщения в формате unixtime.
callbackUrl string Необязательно.

URL для отправки статуса сообщения в формате https://your.site, в ответ система ждет статус 200.

callbackFormat string Необязательно.

При значении callbackFormat=JSON, на callbackUrl будут отправлены данные в формате JSON, в противном случае используется x-www-form-urlencoded.

shortLink integer Необязательно. При значении shortLink=1, все ссылки будут автоматически сокращены.
При использовании callbackUrl на указанный URL методом POST будут отправлены id, status, extendStatus сообщения, в ответ система ждет HTTP CODE 200, иначе система будет пытаться отправить статус в течение 24 часов.

Пример отправки одного сообщения:

https://email:api_key@gate.smsaero.ru/v2/sms/send?number=79990000000&text=your+text&sign=SMS Aero

Пример отправки нескольких сообщений:

https://email:api_key@gate.smsaero.ru/v2/sms/send?numbers[]=79990000000&numbers[]=79990000001&text=your+text&sign=SMS Aero

Ответ приходит в формате JSON или XML:

{
    "success": true,
    "data": [
        {
            "id": 1,
            "from": "SMS Aero",
            "number": "79990000000",
            "text": "your text",
            "status": 0,
            "extendStatus": "queue",
            "channel": "FREE SIGN",
            "cost": 1.95,
            "dateCreate": 1510656981,
            "dateSend": 1510656981
        },
        {
            "id": 2,
            "from": "SMS Aero",
            "number": "79990000001",
            "text": "your text",
            "status": 0,
            "extendStatus": "queue",
            "channel": "FREE SIGN",
            "cost": 1.95,
            "dateCreate": 1510656981,
            "dateSend": 1510656981
        }
    ],
    "message": null
}

Значения переменных в ответе:

Параметр Описание
id Идентификатор сообщения в системе.
from Имя отправителя.
number Номер, на который отправлено сообщение.
text Текст сообщения.
status Статус сообщения: 0 — в очереди, 1 — доставлено, 2 — не доставлено, 3 — передано, 8 — на модерации, 6 — сообщение отклонено, 4 — ожидание статуса сообщения.
extendStatus Описание статуса: queue, delivery, undelivered, sent, moderation, reject, wait.
channel Канал отправки.
dateCreate Дата создания в формате Unix time.
dateSend Дата отправки в формате Unix time.
В примерах параметром from=SMS Aero является имя по умолчанию. Это имя можно использовать только для тестирования сервиса. Рекомендуем запросить новое имя отправителя сразу после регистрации.

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

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

При использовании параметра callbackFormat=JSON, на указанный callbackUrl при каждом изменении статуса будет отправляться JSON-объект, содержащий идентификатор сообщения и его текущий статус:

{
    "id": 123456789,
    "status": 1,
    "extendStatus": "delivery"
}
Проверка статусов сообщений

Проверка статуса SMS-сообщенияsms/status

Параметр Формат Применение Описание
id integer Обязательно. Идентификатор сообщения, который вернул сервис при отправке

Пример получения статуса сообщения методом GET:

https://email:api_key@gate.smsaero.ru/v2/sms/status?id=1

Ответ приходит в формате JSON или XML:

{
	"success": true,
	"data": {
		"id": 1,
		"from": "SMS Aero",
		"number": 79990000000,
		"text": "your text",
		"status": 1,
		"extendStatus": "delivery",
		"channel": "FREE SIGN",
		"cost": "1.95",
		"dateCreate": 1510656981,
		"dateSend": 1510656981,
		"dateAnswer": 1510656987
	},
	"message": null
}

Значения переменных в ответе:

Параметр Описание
id Идентификатор сообщения в системе.
from Имя отправителя.
number Номер, на который отправлено сообщение.
text Текст сообщения.
status Статус сообщения: 0 — в очереди, 1 — доставлено, 2 — не доставлено, 3 — передано, 8 — на модерации, 6 — сообщение отклонено, 4 — ожидание статуса сообщения.
extendStatus Описание статуса.
channel Канал отправки.
dateCreate Дата создания в формате Unix-time.
dateSend Дата отправки в формате Unix-time.
dateAnswer Дата получения конечного статуса сообщения в формате Unix-time.

Получение списка отправленных сообщенийsms/list

Параметр Формат Применение Описание
number string Необязательно. Фильтровать сообщения по номеру телефона.
text string Необязательно. Фильтровать сообщения по тексту.
page integer Необязательно. Номер страницы.
Запрос выдает 50 сообщений за раз, для навигации по страницам используйте параметр page. Параметр должен быть передан методом GET.

Пример получения списка сообщений методом GET:

https://email:api_key@gate.smsaero.ru/v2/sms/list

Ответ приходит в формате JSON или XML:

{
	"success": true,
	"data": {
		0: {
			"id": 41637294,
			"from": "news",
			"number": "79087913177",
			"text": "test",
			"status": 1,
			"extendStatus": "delivery",
			"channel": "FREE SIGN",
			"cost": "1.95",
			"dateCreate": 1510656981,
			"dateSend": 1510656981,
			"dateAnswer": 1510656987
		},
		...
		"links": {
			"self": "/v2/sms/list?page=1",
			"first": "/v2/sms/list?page=1",
			"prev": "",
			"next": "/v2/sms/list?page=2",
			"last": "/v2/sms/list?page=2"
		},
	"message": null
}

Значения переменных в ответе:

Параметр Описание
id Идентификатор сообщения в системе.
from Имя отправителя.
number Номер, на который отправлено сообщение.
text Текст сообщения.
status Статус сообщения: 0 — в очереди, 1 — доставлено, 2 — не доставлено, 3 — передано, 8 — на модерации, 6 — сообщение отклонено, 4 — ожидание статуса сообщения.
extendStatus Описание статуса.
channel Канал отправки: FREE SIGN — бесплатное имя, PAY SIGN — платное имя, SERVICE — сервисные сообщения.
dateCreate Дата создания в формате Unix time.
dateSend Дата отправки в формате Unix time.
timeStart Дата начала временного промежутка в формате Unix time.
timeEnd Дата окончания временного промежутка в формате Unix time.
dateAnswer Дата получения конечного статуса сообщения в формате Unix time.

Запрос получения записей с 51 по 100 имеет следующий вид:

https://email:api_key@gate.smsaero.ru/v2/sms/list?page=2

Значения переменных в ответе:

Параметр Описание
id Идентификатор сообщения в системе.
from Имя отправителя.
number Номер, на который отправлено сообщение.
text Текст сообщения.
status Статус сообщения: 0 — в очереди, 1 — доставлено, 2 — не доставлено, 3 — передано, 8 — на модерации, 6 — сообщение отклонено, 4 — ожидание статуса сообщения.
extendStatus Описание статуса.
channel Канал отправки: FREE SIGN — бесплатное имя, PAY SIGN — платное имя, SERVICE — сервисные сообщения.
dateCreate Дата создания в формате Unix time.
dateSend Дата отправки в формате Unix time.
dateAnswer Дата получения конечного статуса сообщения в формате Unix time.
links Ссылки для перехода на другие страницы.
self Ссылка на текущую страницу.
first Ссылка на первую страницу.
prev Ссылка на предыдущую страницу.
next Ссылка для перехода на следующую страницу.
last Ссылка для перехода на последнюю страницу.
Запрос баланса & тарифа

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

Для получения сведений о состоянии счета необходимо отправить GET или POST-запрос вида:

https://email:api_key@gate.smsaero.ru/v2/balance

Ответ приходит в формате JSON или XML:

{
	"success": true,
	"data": {
		"balance": 1389.26
	},
	"message": null
}

Значения переменных в ответе:

Параметр Описание
balance Текущий баланс.

Запрос тарифаtariffs

Для получения сведений о текущем тарифе необходимо отправить GET или POST-запрос вида:

https://email:api_key@gate.smsaero.ru/v2/tariffs

Ответ приходит в формате JSON или XML:

{
	"success": true,
	"data": {
		"PAY SIGN": {
			"MEGAFON": 2.79,
			"MTS": 2.79,
			"BEELINE": 2.89,
			"t2": 2.96,
			"OTHER": 3.49
		},
		"SERVICE": {
			"MEGAFON": 2.39,
			"MTS": 1.89,
			"BEELINE": 2.25,
			"t2": 1.85,
			"OTHER": 3.49
		},
		"FREE SIGN": {
			"MEGAFON": 5.89,
			"MTS": 3.59,
			"BEELINE": 3.69,
			"t2": 3.49,
			"OTHER": 3.49
		},
		"AUTH": {
			"MEGAFON": 1.89,
			"MTS": 1.89,
			"BEELINE": 2.25,
			"t2": 1.85,
			"OTHER": 3.49
		}
	},
	"message": null
}

Общий вид ответа:

{
	"success": true,
	"data": {
		"channel": {
			"operator": price,
			...
		},
	},
	"message": null
}

Значения переменных в ответе:

Параметр Описание
channel Канал.
operator Оператор.
price Цена.
Пополнение баланса

Карты пользователя cards

Для получения сведений о платежных картах нужно отправить GET или POST-запрос вида:

https://email:api_key@gate.smsaero.ru/v2/cards

Ответ приходит в формате JSON или XML:

{
	"success": true,
	"data": {
		"0": {
			"id": 6274,
			"number": Visa*****1234
		},
		"1": {
			"id": 6780,
			"number": MasterCard*****4321
		}
	},
	"message": null
}

Значения переменных в ответе:

Параметр Описание
id Идентификационный номер карты.
number Номер карты.

Пополнение баланса balance/add

Параметр Формат Применение Описание
sum integer Обязательно. Сумма пополнения.
cardId integer Обязательно. Идентификационный номер карты.
https://email:api_key@gate.smsaero.ru/v2/balance/add?sum=100&cardId=12345

Ответ приходит в формате JSON или XML:

{
	"success": true,
	"data": {
		"sum": 100
	},
	"message": "payment successful"
}

Значения переменных в ответе:

Параметр Описание
sum Сумма пополнения.
Работа с именами

Получить список имен sign/list

Для получения списка SMS-имен необходимо отправить GET или POST-запрос вида:

https://email:api_key@gate.smsaero.ru/v2/sign/list

Для получения списка Viber-имен необходимо отправить GET или POST-запрос вида:

https://email:api_key@gate.smsaero.ru/v2/viber/sign/list
Запрос выдает 50 сообщений за раз, для навигации по страницам используйте параметр page. Параметр должен быть передан методом GET

Ответ приходит в формате JSON или XML:

{
	"success": true,
	"data": {
		"totalCount": "36",
		"0": {
			"id": 179077,
			"name": "GOOD SIGN",
			"status": 1,
			"extendStatus": "active",
			"statusOperators": {
				"1": {
					"operator": 1,
					"extendOperator": "MEGAFON",
					"status": 0,
					"extendStatus": "moderation"
				},
				"4": {
					"operator": 4,
					"extendOperator": "MTS",
					"status": 2,
					"extendStatus": "reject"
				},
				"5": {
					"operator": 5,
					"extendOperator": "BEELINE",
					"status": 1,
					"extendStatus": "approve"
				},
				"6": {
					"operator": 6,
					"extendOperator": "t2",
					"status": 1,
					"extendStatus": "approve"
				}
			}
		},
		"1": {
			"id": 70719,
			"name": "BAD SIGN",
			"status": 2,
			"extendStatus": "reject",
			"rejectReason": "Причина ..."
		}
	},
	"message": null
}

Значения переменных в ответе:

Параметр Описание
totalCount Общие количество имен.
id Номер.
name Имя.
status Статус.
extendStatus Пояснение по статусу.
rejectReason Причина отклонения.
statusOperators -> operator Операторы, на которых требуется отдельное одобрение. Возможные значения: 1 — МегаФон, 2 — МТС, 5 — билайн, 6 — t2.
statusOperators -> extendOperator Пояснение по оператору.
statusOperators -> status Статус имени по оператору. Возможные значения: 0 — на модерации, 1 — одобрено, 2 — отклонено.
statusOperators -> extendStatus Пояснение по статусу.
Работа с группами

Добавление группы group/add

Параметр Формат Применение Описание
name string Обязательно. Имя группы.

Для создания новой группы необходимо отправить GET или POST-запрос вида:

https://email:api_key@gate.smsaero.ru/v2/group/add?name=Test+Name

Ответ приходит в формате JSON или XML:

{
	"success": true,
	"data": {
		"id": 218243,
		"name": "Test Name"
	},
	"message": null
}

Значения переменных в ответе:

Параметр Описание
id Идентификатор.
name Имя группы.

Удаление группы group/delete

Параметр Формат Применение Описание
id integer Обязательно. Идентификатор группы.

Для удаления группы необходимо отправить GET или POST-запрос вида:

https://email:api_key@gate.smsaero.ru/v2/group/delete?id=123

Ответ приходит в формате JSON или XML:

{
	"success": true,
	"data": null,
	"message": "Group delete."
}

Удаление всех групп group/delete-all

Для удаления всех групп необходимо отправить GET или POST-запрос вида:

https://email:api_key@gate.smsaero.ru/v2/group/delete-all

Ответ приходит в формате JSON или XML:

{
	"success": true,
	"data": null,
	"message": "All groups deleted."
}

Получение списка групп group/list

Параметр Формат Применение Описание
page string Необязательно. Пагинация.

Для получения списка групп необходимо отправить GET или POST-запрос вида:

https://email:api_key@gate.smsaero.ru/v2/group/list?page=1
Запрос выдает 50 сообщений за раз, для навигации по страницам используйте параметр page. Параметр должен быть передан методом GET.

Ответ приходит в формате JSON или XML:

{
	"success": true,
	"data": {
		0: {
			"id": "217809",
			"name": "group"
		},
		...
		"links": {
			"self": "/v2/group/list?page=1",
			"first": "/v2/group/list?page=1",
			"prev": "",
			"next": "/v2/group/list?page=2",
			"last": "/v2/group/list?page=2"
		},
	"message": null
}

Значения переменных в ответе:

Параметр Описание
id Идентификатор.
name Имя группы.
links Ссылки для перехода на другие страницы.
self Ссылка на текущую страницу.
first Ссылка на первую страницу.
prev Ссылка на предыдущую страницу.
next Ссылка для перехода на следующую страницу.
last Ссылка для перехода на последнюю страницу.
Работа с контактами

Добавление контакта contact/add

Параметр Формат Применение Описание
number string Обязательно. Номер абонента.
groupId integer Необязательно. Идентификатор группы.
birthday integer Необязательно. Дата рождения абонента в формате Unix time.
sex string: male/female Необязательно. Пол.
lname string Необязательно. Фамилия абонента.
fname string Необязательно. Имя абонента.
sname string Необязательно. Отчество абонента.
param1 string Необязательно. Свободный параметр.
param2 string Необязательно. Свободный параметр.
param3 string Необязательно. Свободный параметр.

Для добавления контакта необходимо отправить GET или POST-запрос вида:

https://email:api_key@gate.smsaero.ru/v2/contact/add?number=79131234567&lname=Иванов&fname=Иван&sname=Иванович&sex=male&groupId=123

Ответ приходит в формате JSON или XML:

{
	"success": true,
	"data": {
		"id": 144769496,
		"number": "79131234567",
		"lname": "Иванов",
		"fname": "Иван",
		"sname": "Иванович",
		"param1": "",
		"param2": "",
		"param3": "",
		"sex": "male",
		"operator": 4,
		"extendOperator": "MTS",
		"groups": [
			{
				"id": 123,
				"name": "test"
			}
		],
	},
	"message": null
}

Значения переменных в ответе:

Параметр Описание
id Идентификатор.
number Номер абонента.
lname Фамилия абонента.
fname Имя абонента.
sname Отчество абонента.
param1 Свободный параметр.
param2 Свободный параметр.
param3 Свободный параметр.
sex Пол абонента.
operator Идентификатор оператора: 1 — МегаФон, 4 — МТС, 5 — билайн, 6 — t2.
extendOperator Название оператора.
groups Данные о группе, к которой принадлежит абонент: id — идентификатор группы, name — имя группы.

Удаление контакта contact/delete

Параметр Формат Применение Описание
id integer Обязательно. Идентификатор абонента.

Для удаления контакта необходимо отправить GET или POST-запрос вида:

https://email:api_key@gate.smsaero.ru/v2/contact/delete?id=123

Ответ приходит в формате JSON или XML:

{
	"success": true,
	"data": null,
	"message": "Contact delete."
}

Удаление всех контактов contact/delete-all

Для удаления всех контактов необходимо отправить GET или POST-запрос вида:

https://email:api_key@gate.smsaero.ru/v2/contact/delete-all

Ответ приходит в формате JSON или XML:

{
	"success": true,
	"data": null,
	"message": "Contact delete."
}

Список контактов contact/list

Параметр Формат Применение Описание
number string Необязательно. Номер абонента.
groupId integer Необязательно. Идентификатор группы.
birthday integer Необязательно. Дата рождения абонента в формате unixtime.
sex string: male/female Необязательно. Пол.
operator string: MEGAFON, MTS, BEELINE, t2, OTHER Необязательно. Оператора контакта.
lname string Необязательно. Фамилия абонента.
fname string Необязательно. Имя абонента.
sname string Необязательно. Отчество абонента.

Для получения списка контактов необходимо отправить GET или POST-запрос вида:

https://email:api_key@gate.smsaero.ru/v2/contact/list
Запрос выдает 50 сообщений за раз, для навигации по страницам используйте параметр page. Параметр должен быть передан методом GET.

Ответ приходит в формате JSON или XML:

{
	"success": true,
	"data": {
		0: {
			"id": 123,
			"number": "79131234567",
			"lname": "Иванов",
			"fname": "Иван",
			"sname": "Иванович",
			"param1": "",
			"param2": "",
			"param3": "",
			"sex": "undefined",
			"operator": 5,
			"extendOperator": "BEELINE",
			"groups": [
				{
					"id": 123,
					"name": "TEST1"
				},
				{
					"id": 1234,
					"name": "TEST2"
				}
			],
			"hlrStatus": 1,
			"extendHlrStatus": "available"
		},
		...
		"links": {
			"self": "/v2/contact/list?page=1",
			"next": "/v2/contact/list?page=2",
			"last": "/v2/contact/list?page=3"
		}
	},
	"message": null
}

Значения переменных в ответе:

Параметр Описание
id Идентификатор.
number Номер абонента.
lname Фамилия абонента.
fname Имя абонента.
sname Отчество абонента.
param1 Свободный параметр.
param2 Свободный параметр.
param3 Свободный параметр.
sex Пол абонента.
operator Идентификатор оператора: 1 — МегаФон, 4 — МТС, 5 — билайн, 6 — t2.
extendOperator Название оператора.
groups Данные о группе к которой принадлежит абонент: id — идентификатор группы, name — имя группы.
links Ссылки для перехода на другие страницы.
self Ссылка на текущую страницу.
first Ссылка на первую страницу.
prev Ссылка на предыдущую страницу.
next Ссылка для перехода на следующую страницу.
last Ссылка для перехода на последнюю страницу.
Черный список

Добавление в черный список blacklist/add

Параметр Формат Применение Описание
number string Необязательно (по выбору). Номер абонента.
numbers array Необязательно (по выбору). Номера телефонов.
birthday integer Необязательно. Дата рождения абонента в формате. Unix time
sex string: male/female Необязательно. Пол.
lname string Необязательно. Фамилия абонента.
fname string Необязательно. Имя абонента.
sname string Необязательно. Отчество абонента.
param1 string Необязательно. Свободный параметр.
param2 string Необязательно. Свободный параметр.
param3 string Необязательно. Свободный параметр.

Для добавления контакта в чёрный список необходимо отправить GET или POST-запрос вида:

https://email:api_key@gate.smsaero.ru/v2/blacklist/add?number=79131234567

Ответ приходит в формате JSON или XML:

{
	"success": true,
	"data": {
		"id": 123,
		"number": "79131234567",
		"fname": null,
		"lname": null,
		"sname": null,
		"bday": null,
		"sex": null,
		"param": null,
		"param2": null,
		"param3": null
	},
	"message": null
}

Значения переменных в ответе:

Параметр Описание
id Идентификатор абонента.
birthday Дата рождения абонента.
sex Пол абонента: 0 — male, 1 — female.
lname Фамилия абонента.
fname Имя абонента.
sname Отчество абонента.
param1 Свободный параметр.
param2 Свободный параметр.
param3 Свободный параметр.

Удаление из черного спискаblacklist/delete

Параметр Формат Применение Описание
id integer Обязательно. Идентификатор абонента.

Для удаления контакта из черного списка необходимо отправить GET или POST-запрос вида:

https://email:api_key@gate.smsaero.ru/v2/blacklist/delete?id=123

Ответ приходит в формате JSON или XML:

{
	"success": true,
	"data": null,
	"message": "Contact removed from blacklist."
}

Список контактов в черном списке blacklist/list

Параметр Формат Применение Описание
number string Необязательно. Номер абонента.

Для получения списка контактов из черного списка необходимо отправить GET или POST-запрос вида:

https://email:api_key@gate.smsaero.ru/v2/blacklist/list
Запрос выдает 50 сообщений за раз, для навигации по страницам используйте параметр page. Параметр должен быть передан методом GET.

Ответ приходит в формате JSON или XML:

{
	"success": true,
	"data": {
		0: {
			"id": "123",
			"number": "79131234567",
			"fname": null,
			"lname": null,
			"sname": null,
			"bday": null,
			"sex": null,
			"param": null,
			"param2": null,
			"param3": null
		},
		...
		"links": {
			"self": "/v2/blacklist/list?page=1"
		},
	},
	"message": null
}

Значения переменных в ответе:

Параметр Описание
id Идентификатор абонента.
number Номер абонента.
birthday Дата рождения абонента.
sex Пол абонента: 0 — male, 1 — female.
lname Фамилия абонента.
fname Имя абонента.
sname Отчество абонента.
param1 Свободный параметр.
param2 Свободный параметр.
param3 Свободный параметр.
links Ссылки для перехода на другие страницы.
self Ссылка на текущую страницу.
first Ссылка на первую страницу.
prev Ссылка на предыдущую страницу.
next Ссылка для перехода на следующую страницу.
last Ссылка для перехода на последнюю страницу.
Проверка HLR-статуса номера телефона

Создание запроса на проверку HLR hlr/check

Параметр Формат Применение Описание
number string Необязательно (по выбору). Номер абонента.
numbers array Необязательно (по выбору). Номера телефонов.

Для создания запроса на проверку необходимо отправить GET или POST-запрос вида:

https://email:api_key@gate.smsaero.ru/v2/hlr/check?number=79131234567


Ответ приходит в формате JSON или XML:

{
	"success": true,
	"data": {
		"id": 123,
		"number": "79131234567",
		"hlrStatus": 4,
		"extendHlrStatus": "in work"
	},
	"message": null
}

Значения переменных в ответе:

Параметр Описание
id Идентификатор запроса.
number Номер абонента.
hlrStatus HLR-статус: 1 — доступен, 2 — недоступен, 3 — не существует, 4 — в работе.
extendHlrStatus Расширенное описание HLR-статуса.

Получение статуса HLR hlr/status

Параметр Формат Применение Описание
id integer Обязательно. Идентификатор запроса.

Для получения статуса HLR необходимо отправить GET или POST-запрос вида:

https://email:api_key@gate.smsaero.ru/v2/hlr/status?id=123

Ответ приходит в формате JSON или XML:

{
	"success": true,
	"data": {
		"id": 123,
		"number": "79131234567",
		"hlrStatus": 1,
		"extendHlrStatus": "available"
	},
	"message": null
}

Значения переменных в ответе:

Параметр Описание
id Идентификатор запроса.
number Номер абонента.
hlrStatus HLR-статус.
extendHlrStatus Расширенное описание HLR-статуса.

Определение оператора number/operator

Параметр Формат Применение Описание
number string Необязательно (по выбору). Номер абонента.
numbers array Необязательно (по выбору). Номера телефонов.

Для определения оператора необходимо отправить GET или POST-запрос вида:

https://email:api_key@gate.smsaero.ru/v2/number/operator?number=79131234567

Ответ приходит в формате JSON или XML:

{
	"success": true,
	"data": {
		"number": "79131234567",
		"operator": 4,
		"extendOperator": "MTS"
	},
	"message": null
}

Значения переменных в ответе:

Параметр Описание
number Номер абонента.
operator Идентификатор оператора: 1 — МегаФон, 4 — МТС, 5 — билайн, 6 — t2.
extendOperator Название оператора.
WhatsApp-рассылка

Отправка WhatsApp-сообщенийwhatsapp/send

Параметр Применение Описание
sign

Обязательно. 

Имя отправителя.

address

Обязательно.

Телефон клиента.

contentType

 

text — для текстового сообщения, image — для изображения, document, video, audio.

text

Обязательно когда contentType=text.

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

attachmentUrl

Обязательно когда contentType=image, document, video, audio. 

Ссылка на файл.

attachmentName

Обязательно когда 
contentType=image, document, video, audio.

Текст для вложения.

timeStart

Необязательно.

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

Параметры ниже работают только для шаблона.
Параметр Применение Описание
buttons

 Необязательно.

Массив с кнопками.

buttons[0][text]

Обязательно если передан объект buttons.

Текст кнопки.

buttons[0][buttonType]

Обязательно если передан объект buttons.

Тип кнопки: QUICK_REPLY, URL, PHONE

buttons[0][payload]

Обязательно если тип кнопки QUICK_REPLY.

 

buttons[0][url]

Обязательно если тип кнопки URL.

 URL на который ведёт нажатие кнопки.

buttons[0][phone]

Обязательно если тип кнопки PHONE.

 Номер телефона на который можно позвонить нажав на кнопку.

header

Необязательно.

Объект для заголовка сообщения.

header[text]

 

Для текстового заголовка.

header[imageUrl]

 

Для заголовка-изображения.

header[videoUrl] 

 

Для видио-заголовка.

header[documentUrl]  

Для документа-заголовка.

footer

Необязательно.

Объект с подписью.

footer[text]  

Текст подписи.

Ответ приходит в формате JSON или XML:  

{
    "success": true,
    "data": {
        "id": 42318,
        "status": 6
    },
    "message": null
}


Значения переменных в ответе:

Параметр Описание
id

ID сообщения, использовать для получения детальной информации по сообщения.

status

Статус сообщения: 1 — отправлено, 2 — доставлено, 3 — прочитано, 4 — отклонено, 5 — не доставлено, 6 — в очереди на отправку, 7 — ошибка, 8 — в процессе отправки, 9 — идет возврат средств по сообщению.

 

Получение детальной информации по сообщению whatsapp/status

Ответ приходит в формате JSON или XML: 

{
    "success": true,
    "data": {
        "id": 42318,
        "status": 6,
        "subject": "SMSAero_WA",
        "address": "71111111111",
        "contentType": "image",
        "text": null,
        "files": {
            "attachmentUrl": "https://smsaero.ru//upload/chatfiles/3kvoDmNNSm8kalT2YrzrlV4ZzZPhBN8t.jpg",
            "attachmentName": "test"
        },
        "location": {
            "caption": null,
            "longitude": null,
            "latitude": null,
            "locationAddress": null
        },
        "header": null,
        "footer": null,
        "buttons": null,
        "cost": "0.00",
        "isHSM": 0,
        "type": 3,
        "idTemplate": null,
        "isAnswer": 0,
        "userInfo": null,
        "timeCreate": 1688574503,
        "timeSend": 1688574503,
        "timeUpdate": 1688574516,
        "isPackageMessage": 0,
        "isApi": 1,
        "idChat": 8924,
        "idWorker": null,
        "subjectName": null,
        "worker": null
    },
    "message": null
}


Значения переменных в ответе:

Параметр Описание
id

ID сообщения.

status

Статус сообщения:1 — отправленно, 2 — доставлено, 3 — прочитано, 5 — не доставлено, 6 — в очереди на отправку, 7 — ошибка, 8 — отправляется, 9 — в процессе возврата средств.

subject

API имя которое используется для отправки в сервис Whatsapp.

address

С кем идет диалог.

contentType

Тип сообщения: text — текст, image — изображение, document — документ, video — видио файл, audio — аудио файл, location — геопозиция, button — кнопки.

text

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

files

Файлы во вложение.

location

Данные геопозиции.

header

Объект структуры заголовка.

footer

Объект структуры подписи.

buttons

Объект структуры кнопок.

cost

Стоимость сообщения.

isHSM

1 — сообщение отправленно как шаблон, 0 — сообщение отправленно как произвольный текст. 

type

Тип сообщения: 1 — сервсиный, 2 — авторизационный, 3 — маркетинговый, 4 — входящий.

idTemplate

 ID шаблона по которому была отправка.

isAnswer

0 — сообщение отправлено пользователю, 1 — сообщение от пользователя.

userInfo

Объект с информацией о пользователе.

timeCreate

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

timeSend

Время отправки сообщения пользователю.

timeUpdate

Время последнего обновления статуса.

isPackageMessage

1 — сообщение было отправленно в рамках бесплатных сообщений, 0 — сообщение было отправленно по общему тарифу.

idChat

ID диалога.

idWorker

 ID отвечавшего сотрудника.

subjectName

Имя подписи зарегистрированное в системе SMS Aero.

 

Информация по диалогам whatsapp/get-chats

Параметр Применение Описание
status

Необязательно. 

1 — открытые диалоги, 2 — закрытые диалоги.

limit

Необязательно.

Сколько сообщений выводить за раз.

offset

Необязательно.

Начинать выводить с offset сообщения.

Ответ приходит в формате JSON или XML:

{
    "success": true,
    "count": "1",
    "data": [{
        "id": 8902,
        "type": 4,
        "address": "71111111111",
        "status": 1,
        "subject": "SMSAero_WA",
        "timeOpen": 1688312268,
        "timeLastAnswer": 1688312268,
        "timeClosed": 1688398668,
        "isPaid": 0,
        "subjectName": "SMS Aero",
        "lastIdWorker": null
    }, ]
}


Значения переменных в ответе:

Параметр Описание
count

Количество диалогов всего.

id

ID диалога.

type

Тип диалога: 1 — сервсиный, 2 — авторизационный, 3 — маркетинговый, 4 — входящий.

address

С кем идет диалог.

status

1 — открытый диалог, 2 — закрытый.

subject

 API имя, которое используется для отправки в сервис Whatsapp.

timeOpen

Когда открыт диалог.

timeLastAnswer

Время последнего сообщения.

timeClosed

Время когда закроется/закрылся диалог.

isPaid

Диалог оплачен.

subjectName

Имя подписи зарегистрированное в системе SMS Aero.

lastIdWorker

ID сотрудника, который последним отвечал на сообщение пользователя.

 

Список сообщений по диалогу whatsapp/get-chat-msg

Параметр Применение Описание
id Обязательно. ID диалога, можно получить с помощью метода http://gate.smsaero.ru/v2/whatsapp/get-chats.

Ответ приходит в формате JSON или XML:

{
    "success": true,
    "data": {
        "infoChat": {
            "id": 8904,
            "type": 4,
            "address": "71111111111",
            "status": 1,
            "subject": "SMSAero_WA",
            "timeOpen": 1688371487,
            "timeLastAnswer": 1688371487,
            "timeClosed": 1688457887,
            "isPaid": 0,
            "subjectName": "SMS Aero",
            "lastIdWorker": null
        },
        "msg": [{
            "id": 41953,
            "status": 2,
            "subject": "SMSAero_WA",
            "address": "71111111111",
            "contentType": "text",
            "text": "Текст сообщения",
            "files": {
                "attachmentUrl": null,
                "attachmentName": null
            },
            "location": {
                "caption": null,
                "longitude": null,
                "latitude": null,
                "locationAddress": null
            },
            "header": null,
            "footer": null,
            "buttons": null,
            "cost": "0.00",
            "isHSM": 0,
            "type": 4,
            "idTemplate": null,
            "isAnswer": 1,
            "userInfo": {
                "userName": "Иван",
                "firstName": null,
                "lastName": null,
                "avatarUrl": null
            },
            "timeCreate": 1688371487,
            "timeSend": null,
            "timeUpdate": 1688371487,
            "isPackageMessage": 0,
            "idChat": 8904,
            "idWorker": null,
            "subjectName": null
        }]
    }
}


Значения переменных в ответе:

Параметр Описание
infoChat

Объект с информацией о диалоге, описание параметров соответствует описания http://gate.smsaero.ru/v2/whatsapp/get-chats 

msg

 Массив сообщений.

id

ID сообщения.

status

Статус сообщения: 1 — отправленно, 2 — доставлено, 3 — прочитано, 5 — не доставлено, 6 — в очереди на отправку, 7 — ошибка, 8 — отправляется, 9 — в процессе возврата средств.

subject

 API имя которое используется для отправки в сервис Whatsapp.

address

С кем идет диалог.

contentType

Тип сообщения: text — текст, image — изображение, document — документ, video — видио файл, audio — аудио файл, location — геопозиция, button — кнопки.

text

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

files

 Файлы во вложение.

location

Данные геопозиции.

header

Объект структуры заголовка.

footer

Объект структуры подписи.

buttons

 Объект структуры кнопок.

cost 

Стоимость сообщения.

isHSM

1 — сообщение отправленно как шаблон, 0 — как произвольный текст.

type

Тип сообщения: 1 — сервсиное, 2 — авторизационное, 3 — маркетинговое, 4 — входящее.

idTemplate

 ID шаблона по которому была отправка.

isAnswer

0 — сообщение отправлено пользователю, 1 — сообщение от пользователя.

userInfo

Объект с информацией о пользователе.

timeCreate

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

timeSend

Время отправки сообщения пользователю.

timeUpdate

Время последнего обновления статуса.

isPackageMessage 

1 — сообщение было отправленно в рамках бесплатных сообщений, 0 — сообщение было отправленно по общему тарифу.

idChat

ID диалога.

idWorker

ID отвечавшего сотрудника.

subjectName

Имя подписи зарегистрированное в системе SMS Aero.

 

Список всех сообщений whatsapp/get-all-msg

 

Параметр Применение Описание
limit

Необязательно. 

Сколько сообщений выводить за раз.

offset

Необязательно.

Начинать выводить с offset сообщения.

timeFrom

Необязательно.

Фильтровать сообщения начиная с времени timeFrom.

timeTo

Необязательно.

Фильтровать сообщения до времени timeTo.

address

Необязательно.

Фильтровать сообщения по адресу получчателя.

Ответ приходит в формате JSON или XML:

{
    "success": true,
    "data": {
        "count": "40864",
        "msg": [{
            "id": 42077,
            "status": 2,
            "subject": "SMSAero_WA",
            "address": "71111111111",
            "contentType": "button",
            "text": null,
            "files": {
                "attachmentUrl": null,
                "attachmentName": null
            },
            "location": {
                "caption": null,
                "longitude": null,
                "latitude": null,
                "locationAddress": null
            },
            "header": null,
            "footer": null,
            "buttons": null,
            "cost": "0.00",
            "isHSM": 0,
            "type": 4,
            "idTemplate": null,
            "isAnswer": 1,
            "userInfo": {
                "userName": "Никита",
                "firstName": null,
                "lastName": null,
                "avatarUrl": null
            },
            "timeCreate": 1688396995,
            "timeSend": null,
            "timeUpdate": 1688396995,
            "isPackageMessage": 0,
            "idChat": 8912,
            "idWorker": null,
            "subjectName": null
        }]
    },
    "message": null
}


Значения переменных в ответе:

Параметр Описание
count

 Всего сообщений.

msg

Массив сообщений.

id

ID сообщения.

status

Статус сообщения: 1 — отправленно, 2 — доставлено, 3 — прочитано, 5 — не доставлено, 6 — в очереди на отправку, 7 — ошибка, 8 — отправляется, 9 — в процессе возврата средств.

subject

API имя которое используется для отправки в сервис Whatsapp.

address

С кем идет диалог.

contentType

 Тип сообщения: text — текст, image — изображение, document — документ, video — видио файл, audio — аудио файл, location — геопозиция, button — кнопки.

text

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

files

Файлы во вложение.

location

Данные геопозиции.

header

Объект структуры заголовка.

footer

Объект структуры подписи.

buttons

 Объект структуры кнопок.

cost

Стоимость сообщения.

isHSM

1 — сообщение отправленно как шаблон, 0 — как произвольный текст.

type

 Тип сообщения: 1 — сервсиный, 2 — авторизационный, 3 — маркетинговый, 4 — входящий.

idTemplate

ID шаблона по которому была отправка.

isAnswer

0 — сообщение отправлено пользователю, 1 — сообщение от пользователя.

userInfo

Объект с информацией о пользователе.

timeCreate

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

timeSend

Время отправки сообщения пользователю.

timeUpdate

 Время последнего обновления статуса.

isPackageMessage

1 — сообщение было отправленно в рамках бесплатных сообщений, 0 — сообщение было отправленно по общему тарифу.

idChat

ID диалога.

idWorker

 ID отвечавшего сотрудника.

subjectName

 Имя подписи зарегистрированное в системе SMS Aero.

Viber-рассылка

Создание Viber-рассылки viber/send

Параметр Формат Применение Описание
number string Обязательно (на выбор). Номер телефона.
numbers array Обязательно (на выбор). Номера телефонов. Максимальное количество 50.
groupId integer Обязательно (на выбор). ID группы, по которой будет произведена рассылка. Для выбора всех контактов необходимо передать значение all.
sign string Обязательно. Имя отправителя.
channel string Обязательно. Канал отправки Viber.
text string Обязательно. Текст сообщения.
imageSource string Необязательно.

Картинка кодированная в base64 формат, не более 300 kb. Отправка поддерживается только в форматах: png, jpg, gif.

Перед кодированной картинкой необходимо указывать ее формат. Пример: jpg#TWFuIGlzIGRpc3Rpbmd1aXNoZ.

Отправка доступна только методом POST. Параметр передается совместно с textButton и linkButton.

textButton string Необязательно. Текст кнопки. Максимальная длина 30 символов. Параметр передается совместно с imageSource и linkButton.
linkButton string Необязательно. Ссылки для перехода при нажатии кнопки. Ссылка должна быть с указанием http:// или https://. Параметр передается совместно с imageSource и textButton.
dateSend integer Необязательно. Дата для отложенной отправки рассылки в формате Unix time.
signSms string Необязательно. Имя для SMS-рассылки. Используется при выборе канала "Viber-каскад" channel=CASCADE. Параметр обязателен.
textSms string Необязательно. Текст сообщения для SMS-рассылки. Используется при выборе канала "Viber-каскад" channel=CASCADE. Параметр обязателен.
priceSms integer Необязательно. Максимальная стоимость SMS-рассылки. Используется при выборе канала "Viber-каскад" channel=CASCADE. Если параметр не передан, максимальная стоимость будет рассчитана автоматически.
timeout float Необязательно. Тайм-аут отправки SMS. Возможные значения: 0.25 — 15 минут, 0.5 — 30 минут, 1 — 1 час, 3 — 3 часа, 6 — 6 часов, 12 — 12 часов, 24 — 24 часа.

Каналы отправки значение channel:

Значение Описание
OFFICIAL Официальный Viber.
CASCADE Viber-каскад.

Тайм-аут отправки SMS, значение timeout:

Значение Описание
0.25 15 минут.
0.5 30 минут.
1 1 час.
3 3 часа.
6 6 часов.
12 12 часов.
24 24 часа.
При создании запланированной рассылки, обратите внимание, что имя и аватар могут быть заменены на актуальные в момент фактической отправки Viber-сообщений.

Пример создания Viber-рассылки:

GET запрос:

https://email:api_key@gate.smsaero.ru/v2/viber/send?groupId=1&numbers[]=79990000000&numbers[]=79990000001&text=your+text&sign=Hello!&channel=OFFICIAL

POST запрос с изображением, текстом кнопки и ссылкой:

curl -d curl -d 'numbers[]=79136535500&text=your+text&sign=Бонус&channel=OFFICIAL&imageSource=jpg#/9j/4AAQSkZJRgAB5UUUVRof/Z&textButton=Текст_кнопки&linkButton=https://you-link.com' https://email:api_key@gate.smsaero.ru/v2/viber/send

Ответ приходит в формате JSON или XML:

{
	"success": true,
	"data": {
		"id": 1,
		"dateCreate": 1511153253,
		"dateSend": 1511153253,
		"count": 3,
		"sign": "Hello!",
		"channel": "OFFICIAL",
		"text": "your text",
		"cost": 2.25,
		"status": 1,
		"extendStatus": "moderation",
		"countSend": 0,
		"countDelivered": 0,
		"countWrite": 0,
		"countUndelivered": 0,
		"countError": 0
	},
	"message": null
}

Значения переменных в ответе:

Параметр Описание
id Идентификатор Viber-рассылки в системе.
dateCreate Дата создания в формате unixtime.
dateSend Дата отправки в формате unixtime.
count Количество сообщений.
sign Имя отправителя.
channel Канал отправки.
text Текст сообщения.
cost Стоимость Viber-рассылки.
status Статус сообщения: 0 — отклонена, 1 — на модерации, 2 — в работе, 3 — выполнена, 4 — запланирована, 5 — недостаточно средств.
extendStatus Описание статуса.
countSend Количество переданных.
countDelivered Количество доставленных.
countWrite Количество прочитанных.
countUndelivered Количество недоставленных.
countError Количество ошибок.

Статистика по Viber-рассылке viber/statistic

Параметр Формат Применение Описание
sendingId integer Обязательно. Идентификатор Viber-рассылки в системе.

Пример запроса статистики по Viber-рассылки:

https://email:api_key@gate.smsaero.ru/v2/viber/statistic?sendingId=1
{
	"success": true,
	"data": {
		0: {
			"number": "79990000000",
			"status": 0,
			"extendStatus": "send",
			"dateSend": 1511153341
		},
		1: {
			"number": "79990000001",
			"status": 2,
			"extendStatus": "write",
			"dateSend": 1511153341
		},
		2: {
			"number": "79990000003",
			"status": 2,
			"extendStatus": "write",
			"dateSend": 1511153341
		},
		"links": {
			"self": "/v2/viber/statistic?sendingId=1&page=1"
		}
	},
	"message": null
}

Значения переменных в ответе:

Параметр Описание
number Номер, на который отправлено сообщение.
status Статус сообщения: 0 — отправлено, 1 — доставлено, 2 — прочитано, 3 — не доставлено, 4 — ошибка.
extendStatus Описание статуса.
dateSend Дата отправки в формате unixtime.
links Ссылки для перехода на другие страницы.
self Ссылка на текущую страницу.
first Ссылка на первую страницу.
prev Ссылка на предыдущую страницу.
next Ссылка для перехода на следующую страницу.
last Ссылка для перехода на последнюю страницу.

Список Viber-рассылок viber/list

Пример запроса списка Viber-рассылок:

https://email:api_key@gate.smsaero.ru/v2/viber/list
{
	"success": true,
	"data": {
		0: {
			"id": 1,
			"dateCreate": 1511153253,
			"dateSend": 1511153253,
			"count": 3,
			"sign": "Hello!",
			"channel": "OFFICIAL",
			"text": "your text",
			"cost": 2.25,
			"status": 1,
			"extendStatus": "moderation",
			"countSend": 0,
			"countDelivered": 0,
			"countWrite": 0,
			"countUndelivered": 0,
			"countError": 0
		},
		...
		"links": {
			"self": "/v2/viber/list?page=1",
			"next": "/v2/viber/list?page=2",
			"last": "/v2/viber/list?page=3"
		}
	},
	"message": null
}

Значения переменных в ответе:

Параметр Описание
id Идентификатор Viber-рассылки в системе.
dateCreate Дата создания в формате unixtime.
dateSend Дата отправки в формате unixtime.
count Количество сообщений.
sign Имя отправителя.
channel Канал отправки.
text Текст сообщения.
cost Стоимость Viber-рассылки.
status Статус сообщения: 0 — отклонена, 1 — на модерации, 2 — в работе, 3 — выполнена, 4 — запланирована, 5 — недостаточно средств.
extendStatus Описание статуса.
countSend Количество переданных.
countDelivered Количество доставленных.
countWrite Количество прочитанных.
countUndelivered Количество недоставленных.
countError Количество ошибок.
links Ссылки для перехода на другие страницы.
self Ссылка на текущую страницу.
first Ссылка на первую страницу.
prev Ссылка на предыдущую страницу.
next Ссылка для перехода на следующую страницу.
last Ссылка для перехода на последнюю страницу.

Список доступных имен для Viber-рассылок viber/sign/list

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

https://email:api_key@gate.smsaero.ru/v2/viber/sign/list
{
	"success": true,
	"data": {
		{
			"name": "good sign",
			"status": 1,
			"type": "USER",
			"extendStatus": "active",
		},
		{
			"name": "bad sign",
			"status": 2,
			"type": "USER",
			"extendStatus": "reject",
			"rejectReason": "Reject reason"
		},
		{
			"name": "ИНФОГИД",
			"status": 1,
			"type": "INFO"
			"extendStatus": "active"
		},
		{
			"name": "РусИнформ",
			"status": 1,
			"type": "INFO"
			"extendStatus": "active"
		},
		{
			"name": "LIMONI",
			"status": 1,
			"type": "INFO",
			"extendStatus": "active"
		},
		{
			"name": "Hello!",
			"status": 1,
			"type": "INFO",
			"extendStatus": "active"
		},
		{
			"name": "Формула Красоты",
			"status": 1,
			"type": "INFO",
			"extendStatus": "active"
		}
	},
	"message": null
}

Значения переменных в ответе:

Параметр Описание
name Имя.
status Статус: 0 — на модерации, 1 — активна, 2 — отклонена, 4 — на модерации у Viber.
type Тип имени: INFO — сервисная инфоподпись, USER — оформленное имя.
extendStatus Расширенное описание статуса.
rejectReason Причина отклонения.
Отправка кода в Telegram

Отправка кода в Telegramtelegram/send

Параметр Формат Применение Описание
number string Обязательно (на выбор). Номер телефона.
numbers array Обязательно (на выбор). Номера телефонов.
code int Обязательно. Код Telegram (от 4 до 8 цифр).
sign string Необязательно. Имя отправителя SMS.
text string Необязательно. Текст сообщения SMS.
При использовании параметров: text, sign, в случае недоставки кода в Telegram, будет отправлено SMS с указанными значениями.

Пример отправки кода в Telegram без SMS:

https://email:api_key@gate.smsaero.ru/v2/telegram/send?number=79990000000&code=1234

Пример отправки каскада: код в Telegram + SMS:

https://email:api_key@gate.smsaero.ru/v2/telegram/send?number=79990000000&code=1234&text=Ваш+код+1234&sign=SMS+Aero

Ответ приходит в формате JSON или XML:

{
    "success": true,
    "data": {
       "id": 1,
       "number": "79990000000",
       "telegramCode": "1234",
       "smsText": "Ваш код 1234",
       "smsFrom": "SMS Aero",
       "idSms": null,
       "status": 0,
       "extendStatus": "queue",
       "cost": "1.00",
       "dateCreate": 1732796285
     },
    "message": null
}

Значения переменных в ответе:

Параметр Описание
id Идентификатор сообщения в системе.
number Номер, на который отправлено сообщение.
telegramCode Кода в Telegram.
smsText Текст SMS сообщения.
smsFrom Имя SMS отправителя.
idSms Идентификатор SMS сообщения в системе.
status Статус сообщения: 0 — в очереди, 1 — доставлено, 2 — не доставлено, 3 — передано, 8 — на модерации, 6 — сообщение отклонено, 4 — ожидание статуса сообщения.
extendStatus Описание статуса.
cost Стоимость сообщения.
dateCreate Дата создания в формате Unix time.

Проверка статуса кода в Telegramtelegram/status

Параметр Формат Применение Описание
id integer Обязательно. Идентификатор сообщения, который вернул сервис при отправке

Пример получения статуса Telegram-кода:

https://email:api_key@gate.smsaero.ru/v2/telegram/status?id=1

Ответ приходит в формате JSON или XML:

{
    "success": true,
    "data": {
       "id": 1,
       "number": "79990000000",
       "telegramCode": "1234",
       "smsText": "Ваш код 1234",
       "smsFrom": "SMS Aero",
       "idSms": null,
       "status": 1,
       "extendStatus": "delivery",
       "cost": "1.00",
       "dateCreate": 1732796285
     },
    "message": null
}

Значения переменных в ответе:

Параметр Описание
id Идентификатор сообщения в системе.
number Номер, на который отправлено сообщение.
telegramCode Код в Telegram.
smsText Текст SMS сообщения.
smsFrom Имя SMS отправителя.
idSms Идентификатор SMS сообщения в системе.
status Статус сообщения: 0 — в очереди, 1 — доставлено, 2 — не доставлено, 3 — передано, 8 — на модерации, 6 — сообщение отклонено, 4 — ожидание статуса сообщения.
extendStatus Описание статуса.
cost Стоимость сообщения.
dateCreate Дата создания в формате Unix time.
Мобильная авторизация

Аутентификация пользователя через проверку подлинности номера телефона.

Проверка выполняется оператором через push-уведомление, которое отправляется на устройство пользователя через SIM-карту (SIM-PUSH). Если подтверждение по SIM-PUSH не удалось (недоступно или не было получено), выполняется попытка аутентификации с помощью одноразового кода (SMS OTP).

Процесс для абонента: 

  1. Абонент вводит номер телефона на сайте или в мобильном приложении.
  2. Абонент получает либо запрос на подтверждение (SIM-PUSH), либо SMS с одноразовым кодом. 
  3. Абонент подтверждает вход: нажатием «Подтвердить» (SIM-PUSH) или вводом OTP-кода в соответствующее поле (SMS OTP).

Тестирование

Методы мобильной авторизации поддерживают тестовый режим. Для тестирования не требуется оформлять имя отправителя. Используйте тестовый API-ключ, полученный в разделе «Настройки → API и SMPP» личного кабинета, и значение SMS Aero в параметре sign.

В тестовом режиме SMS не отправляются, списание средств не выполняется, код подтверждения всегда 1234.


Аутентификация по номеру телефонаmobile-id/send

https://gate.smsaero.ru/v2/mobile-id/send
Параметр Формат Применение Описание
number string Обязательно Телефон абонента (MSISDN).
sign string Обязательно

Имя отправителя для Мобильной авторизации (должно быть активным в личном кабинете).

При использовании тестового API-ключа допускается значение SMS Aero.

callbackUrl string Обязательно Webhook URL для статусов (POST, JSON). Ожидается HTTP 200.

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

curl -X POST 'https://gate.smsaero.ru/v2/mobile-id/send' \
  -u 'login:api_key' \
  -H 'Content-Type: application/json' \
  -d '{
    "number": "79XXXXXXXXX",
    "sign": "MID_SIGN",
    "callbackUrl": "https://your.site/webhooks/mobile-id"
  }'

Пример ответа:

{
  "success": true,
  "data": {
    "id": 17,
    "number": "79XXXXXXXXX",
    "status": 0,
    "cost": 0,
    "timeCreated": 1772784233,
    "timeSend": 1772784233
  },
  "message": null
}

После send ориентируйтесь на data.status (статусы описаны ниже).

Подтверждение одноразового кода (SMS OTP)mobile-id/verify

Параметр

Формат

Применение

Описание

id

integer

Обязательно

Идентификатор запроса, полученный в ответе mobile-id/send (поле data.id).

sign

string

Обязательно

Имя отправителя.

code

string

Обязательно

Одноразовый код из SMS.

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

curl -X POST 'https://gate.smsaero.ru/v2/mobile-id/verify' \
  -u 'login:api_key' \
  -H 'Content-Type: application/json' \
  -d '{
    "id": 16,
    "sign": "MID_SIGN",
    "code": "1234"
  }'

Пример ответа: (зависит от исхода верификации)

{
  "success": true,
  "data": {
    "id": 16,
    "number": "79XXXXXXXXX",
    "status": 3,
    "cost": 0,
    "timeCreated": 1772783375,
    "timeSend": 1772783375
  },
  "message": null
}

Финальный результат аутентификации (успех/ошибка) дублируется асинхронно через webhook на callbackUrl (и/или может быть получен через v2/mobile-id/status).

Возможные ошибки (по HTTP):

  • 400 — неверный OTP код (message: invalid otp code)
  • 404 — сессия не найдена/неактуальна (message: session not found)

Получение статуса аутентификацииmobile-id/status

Параметр

Формат

Применение

Описание

id

integer

Обязательно

Идентификатор запроса, полученный в ответе mobile-id/send (поле data.id)

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

curl -X POST 'https://gate.smsaero.ru/v2/mobile-id/status' \
  -u 'login:api_key' \
  -H 'Content-Type: application/json' \
  -d '{ "id": 11 }'

Пример ответа:

{
  "success": true,
  "data": {
    "id": 11,
    "number": "79XXXXXXXXX",
    "status": 3,
    "cost": 6.38,
    "timeCreated": 1771320878,
    "timeSend": 1771320878
  },
  "message": null
}

Статусы (data.status):

status

Значение

0

Ожидает начала (очередь)

8

В процессе

3

Нужен OTP код

1

Пройдено (успех)

2

Не пройдено

16

Ошибка

Webhook со статусом аутентификации

При изменении статуса система делает POST на ваш callbackUrl с Content-Type: application/json.

Тело webhook:

{
  "id": 17,
  "status": 3,
  "number": "79XXXXXXXXX"
}

Для UI важны значения status:

  • 3 — требуется верификация через SMS OTP: подтверждение без ввода кода (SIM-PUSH) не завершило аутентификацию, требуется OTP-код.

  • 2 — верификация не пройдена.

  • 1 — верификация пройдена успешно.

Система считает webhook успешным только при ответе HTTP 200.

Как связать webhook с клиентским приложением

Webhook отправляется на callbackUrl, то есть на ваш server-side компонент. Он не имеет прямого канала для обновления браузера/приложения пользователя, поэтому фронтенд должен получать изменения статуса через ваш сервер.

Рекомендуемая схема:

  1. Server-side принимает webhook на callbackUrl и сразу отвечает HTTP 200.

  2. Server-side валидирует тело webhook и сохраняет актуальный статус по ключу id.

  3. Server-side уведомляет клиентское приложение о смене статуса:

    • через Long polling (клиентский polling endpoint вашего сервера),

    • либо через WebSocket (server-side пушит событие в существующее соединение).

  4. Клиентское приложение использует id, полученный из ответа send, чтобы отобразить корректный экран:

    • при status=3 отображается форма ввода OTP (SMS OTP),

    • при финальных status=1/2 завершается сценарий аутентификации.

Ниже пример последовательности для сценария, когда SIM-PUSH не сработал и выполняется переход на SMS OTP:

sequenceDiagram
autonumber
participant AB as "Абонент"
participant CL as "Клиент"
participant SV as "Сервер"
participant API as "SMS Aero API"

AB->>CL: Вводит номер телефона
CL->>SV: Запрашивает аутентификацию по номеру
SV->>API: POST /v2/mobile-id/send (number, sign, callbackUrl)
API-->>SV: success + data.id

alt SIM-PUSH доступен и подтверждён
  API-->>AB: Запрос подтверждения (SIM-PUSH)
  AB->>CL: Нажимает «Подтвердить»
  API-->>SV: POST callbackUrl (status=1 или status=2)
  SV-->>CL: Отобразить результат аутентификации
else SIM-PUSH не сработал
  API-->>AB: Отправляет SMS OTP (одноразовый код)
  API-->>SV: POST callbackUrl (status=3, требуется SMS OTP)
  SV-->>CL: Показать форму ввода OTP
  AB->>CL: Вводит OTP-код
  CL->>SV: Передаёт введённый code
  SV->>API: POST /v2/mobile-id/verify (id, sign, code)
  API-->>SV: success
  API-->>SV: POST callbackUrl (final status=1 или status=2)
  SV-->>CL: Отобразить результат аутентификации
end
Тестовые методы

Тестовая отправка сообщений sms/testsend

Метод тестовой отправки сообщения должен быть использован для отладки запросов к API.

При тестовой отправке сообщение не отправляются, баланс не меняется, не производится проверка на достаточность средств и не отображается статистика в личном кабинете.

Пример отправки тестового сообщения:

https://email:api_key@gate.smsaero.ru/v2/sms/testsend?number=79990000000&text=Test+text&sign=BIZNES

Ответ приходит в формате JSON или XML:

{
	"success": true,
	"data": {
			"id": 5,
			"from": "BIZNES",
			"number": "79990000000",
			"text": "Test text",
			"status": 1,
			"extendStatus": "delivery",
			"channel": "FREE SIGN",
			"cost": 2.2,
			"dateCreate": 1532342510,
			"dateSend": 1532342510
		},
	"message": null
}

Значения переменных в ответе соответствуют значениям в методе sms/send

Проверка статуса тестового SMS-сообщения sms/teststatus

Параметр Формат Применение Описание
id integer Обязательно. Идентификатор сообщения, который вернул сервис при отправке.
Используя тестовый метод получения статуса сообщения, можно получить статус только тестового сообщения.

Пример получения статуса сообщения методом GET:

https://email:api_key@gate.smsaero.ru/v2/sms/teststatus?id=5

Ответ приходит в формате JSON или XML:

{
	"success": true,
	"data": {
		"id": 5,
		"from": "BIZNES",
		"number": "79990000000",
		"text": "Test text",
		"status": 1,
		"extendStatus": "delivery",
		"channel": "FREE SIGN",
		"cost": "2.2",
		"dateCreate": 1532342510,
		"dateSend": 1532342510,
		"dateAnswer": 1510656987
	},
	"message": null
}

Значения переменных в ответе соответствуют значениям в методе sms/status

Получение списка отправленных тестовых сообщений sms/testlist

Параметр Формат Применение Описание
number string Необязательно. Фильтровать сообщения по номеру телефона.
text string Необязательно. Фильтровать сообщения по тексту.
page integer Необязательно. Номер страницы.
Запрос выдает 50 сообщений за раз, для навигации по страницам используйте параметр page.
Параметр должен быть передан методом GET.

Пример получения списка сообщений методом GET:

https://email:api_key@gate.smsaero.ru/v2/sms/testlist

Ответ приходит в формате JSON или XML:

{
	"success": true,
	"data": {
		0: {
			"id": 5,
			"from": "BIZNES",
			"number": "79990000000",
			"text": "Test text",
			"status": 1,
			"extendStatus": "delivery",
			"channel": "FREE SIGN",
			"cost": "2.2",
			"dateCreate": 1532342510,
			"dateSend": 1532342510,
			"dateAnswer": 1510656987
		},
		...
		"links": {
			"self": "/v2/sms/testlist?page=1",
			"first": "/v2/sms/testlist?page=1",
			"prev": "",
			"next": "/v2/sms/testlist?page=2",
			"last": "/v2/sms/testlist?page=2"
		},
	"message": null
}

Значения переменных в ответе соответствуют значениям в методе sms/list.

Коды ошибок

В этом разделе перечислены ошибки которые могут возникнуть при использовании SMS Aero API V2.

Message httpCode Описание Методы
Validation error 400 Невалидный параметр (см. ошибки параметров) Отправка сообщения, получение списка отправленных сообщений, проверка статуса SMS-сообщения, добавление группы, удаление группы, получение списка групп, добавление контакта, список контактов, список контактов в черном списке, создание запроса на проверку HLR, получение статуса HLR, определение оператора, создание Viber-рассылки, cтатистика по Viber-рассылке.
Not enough money 402 Недостаточно денег Отправка сообщения, создание запроса на проверку HLR, cоздание Viber-рассылки.
SMS not found 404 SMS не найдено Проверка статуса SMS-сообщения.
Invalid ip-address 404 IP-адрес, с которого идет запрос, не соответствует IP-адресам указаным в настройках Отправка сообщения, получение списка отправленных сообщений, проверка статуса SMS-сообщения, добавление группы, удаление группы, получение списка групп, добавление контакта, список контактов, список контактов в черном списке, создание запроса на проверку HLR, получение статуса HLR, определение оператора, создание Viber-рассылки, cтатистика по Viber-рассылке.
Group not found 404 Группа не найдена Удаление группы, добавление контакта.
Contact not found 404 Контакт не найден Удаление контакта, удаление из черного списка.
Not deleted 500 Не удалена, внутренняя ошибка сервера Удаление группы, удаление контакта.
Not removed 500 Не удалена, внутренняя ошибка сервера Удаление группы, удаление контакта, удаление из черного списка.
Request not found 404 Запрос не найден Получение статуса HLR.
Sending not found 404 Рассылка не найдена Статистика по Viber-рассылке.
Sending is not complete 403 Рассылка не завершена Статистика по Viber-рассылке.

Ошибки параметров

Параметр Сообщение Описание
id required Обязательный параметр.
id must be integer Параметр должен быть целочисленным.
numbers required param number or numbers Обязательный параметр, number или numbers.
numbers multi send on numbers Множественная отправка на один номер. Установлено ограничение отправки в настройках личного кабинета https://smsaero.ru/cabinet/settings/apikey/ 
numbers must be array Параметр должен быть массивом.
numbers max count {value} Максимальное кол-во номеров {value}, за один запрос.
numbers one or more numbers are incorrect Один или более номеров некорректны.
number/numbers use only number or numbers Можно использовать только number или numbers.
number incorrect Некорректный номер.
number required Номер обязательный параметр.
number required param number or numbers or groupId Номер, номера или номер группы обязательный параметр.
name required Параметр обязателен.
name must be string Параметр должен быть строкой.
name max length {count} Длина параметра не более {count} символов.
name latin letters, numbers and punctuation are allowed Латинские буквы, цифры и знаки препинания разрешены.
name sign already exist Имя с таким значением существует.
name forbidden group name Запрещённое имя группы.
name max count 1000 Максимальное число групп равно 1000.
name group already exists Группа с таким именем уже существует.
sign required Обязательный параметр.
sign incorrect Некорректное имя.
sign must be string Имя должно быть строкой.
sign max length {count} Длина параметра не более {count} символов.
channel required Обязательный параметр.
channel available values: OFFICIAL, CASCADE Допустимые значения: OFFICIAL, CASCADE.
operator available values: MEGAFON, MTS, BEELINE, t2, OTHER Допустимые значения: MEGAFON, MTS, BEELINE, T2 или OTHER.
groupId must be integer Номер группы должен быть целочисленным.
groupId required param number or numbers or groupId Номер группы обязательный параметр.
groupId must be integer or "all" Параметр должен быть целочисленным или строкой all.
groupId no contact В группе нет контактов.
cardId required Обязательный параметр.
cardId must be integer Параметр должен быть целочисленным.
cardId incorrect Некорректные данные карты.
sendingId must be integer Параметр должен быть целочисленным.
sendingId required Обязательный параметр.
fname must be string Имя должно быть строкой.
fname max length 20 Длина имени не более 20 символов.
lname must be string Фамилия должен быть строкой.
lname max length 20 Длина фамилии не более 20 символов.
sname must be string Отчество должно быть строкой.
sname max length 20 Длина отчества не более 20 символов.
birthday must be integer День рождения должен быть целочисленным timestamp.
sex available values: male, female Допустимые значения: male или female.
param1 must be string Параметр должен быть строкой.
param1 max length 20 Длина параметра не более 20 символов.
param2 must be string Параметр должен быть строкой.
param2 max length 20 Длина параметра не более 20 символов.
param3 must be string Параметр должен быть строкой.
param3 max length 20 Длина параметра не более 20 символов.
page must be integer Номер страницы должен быть целочисленным.
text required Обязательный параметр.
text must be string Текст должен быть строкой.
text max length {count} Длина параметра не более {count} символов.
text symbols from cyrillic and latin are used in word Используются символы кириллицы и латиницы в одной строке.
dateSend must be integer Параметр должен быть целочисленным timestamp.
callbackUrl incorrect Некорректная ссылка.
callbackFormat Callback Format is invalid Допустимые значения: JSON.
operator available values: MEGAFON, MTS, BEELINE, t2, OTHER Оператор должен быть: MEGAFON, MTS, BEELINE, T2 или OTHER.
imageSource required Обязательный параметр.
imageSource for send image use POST request Изображение должно отправляться методом POST.
imageSource available extensions: png, jpg, gif Доступные расширения изображения: png, jpg, gif.
imageSource use base64 encoding Изображение должно быть закодировано в base64.
imageSource max size 300 kb Максимальный размер изображения 300 Кб.
textButton required Обязательный параметр.
textButton must be string Параметр должен быть строкой.
textButton max length 30 Максимальная длинна параметра 30 символов.
linkButton required Обязательный параметр.
linkButton incorrect Некорректный параметр.
code required Обязательный параметр.
code code must be 4 numbers Длина кода должна быть 4 цифры.