HTTP API Документация
API 2.0 SMS Aero — позволяет интегрировать систему SMS-оповещений в ваш сайт или CRM-систему. Сообщайте клиентам об изменении баланса, доставке заказа, прибытии такси или других важных событиях автоматически. Все методы доступны с помощью запросов типа GET и POST.
Для работы с 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/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, все ссылки будут автоматически сокращены. |
Пример отправки одного сообщения:
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. |
При отправке кодов подтверждения, паролей и т.п. с бесплатным именем отправителя, необходимо в тексте указывать откуда (источник) отправляется сообщение: название организации, адрес сайта, сервиса, приложения, системы и т.д.
При не соблюдении данных условий операторы связи оставляют за собой право блокировать сообщения.
При использовании параметра 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 | Необязательно. | Номер страницы. |
Пример получения списка сообщений методом 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Ответ приходит в формате 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Ответ приходит в формате 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Ответ приходит в формате 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Ответ приходит в формате 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/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/send
| Параметр | Применение | Описание |
|---|---|---|
| sign |
Обязательно. |
Имя отправителя. |
| address |
Обязательно. |
Телефон клиента. |
| contentType |
|
text — для текстового сообщения, image — для изображения, document, video, audio. |
| text |
Обязательно когда contentType=text. |
Текст сообщения. |
| attachmentUrl |
Обязательно когда contentType=image, document, video, audio. |
Ссылка на файл. |
| attachmentName |
Обязательно когда |
Текст для вложения. |
| 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/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-рассылки:
GET запрос:
https://email:api_key@gate.smsaero.ru/v2/viber/send?groupId=1&numbers[]=79990000000&numbers[]=79990000001&text=your+text&sign=Hello!&channel=OFFICIALPOST запрос с изображением, текстом кнопки и ссылкой:
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 | Причина отклонения. |
Отправка кода в Telegramtelegram/send
| Параметр | Формат | Применение | Описание |
|---|---|---|---|
| number | string | Обязательно (на выбор). | Номер телефона. |
| numbers | array | Обязательно (на выбор). | Номера телефонов. |
| code | int | Обязательно. | Код Telegram (от 4 до 8 цифр). |
| sign | string | Необязательно. | Имя отправителя SMS. |
| text | string | Необязательно. | Текст сообщения 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).
Процесс для абонента:
- Абонент вводит номер телефона на сайте или в мобильном приложении.
- Абонент получает либо запрос на подтверждение (SIM-PUSH), либо SMS с одноразовым кодом.
- Абонент подтверждает вход: нажатием «Подтвердить» (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-ключа допускается значение |
| 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 компонент. Он не имеет прямого канала для обновления браузера/приложения пользователя, поэтому фронтенд должен получать изменения статуса через ваш сервер.
Рекомендуемая схема:
-
Server-side принимает webhook на callbackUrl и сразу отвечает HTTP 200.
-
Server-side валидирует тело webhook и сохраняет актуальный статус по ключу id.
-
Server-side уведомляет клиентское приложение о смене статуса:
-
через Long polling (клиентский polling endpoint вашего сервера),
-
либо через WebSocket (server-side пушит событие в существующее соединение).
-
Клиентское приложение использует 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 | Необязательно. | Номер страницы. |
Параметр должен быть передан методом 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 цифры. |
Вы соглашаетесь с условиями обработки, используя сайт. Подробнее