Продолжение документации по SMS API.
О том, как получить токен доступа для номера телефона смотрите здесь.
Метод: sms/packets
В этот метод не требуется передавать параметры.
В случае успеха возвращается массив пакетов с параметрами:
Параметр | Описание | Пример |
---|---|---|
packages_id |
Внутренний ИД пакета | 7 |
amount |
Абонентская плата | 50 |
sms_count |
Количество SMS | 100 |
name |
Название пакета | пакет 1 |
id |
ИД пакета (его нужно передавать в метод подключения пакета) | 3654g-drtg3-21542 |
Запрос:
curl -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0", "method":"sms/packets", "id":"1", "params":{}}' \
-X POST https://sms-api.runexis.ru
Ответ:
{"jsonrpc":"2.0", "id":"1", "result":[{"packages_id":"7", ...}], "error":null}
Метод: sms/add-packet
Список передаваемых параметров:
Параметр | Описание | Пример |
---|---|---|
packet |
ИД пакета SMS | 3654g-drtg3-21542 |
number |
Мобильный номер телефона | 79996563311 |
Параметр
number
необходимо передавать в формате строки
Метод возвращает одно из следующих значений или ошибку, если входные параметры не прошли валидацию:
Значение | Описание |
---|---|
1 |
Пакет успешно подключен |
Метод: sms/delete-packet
Список передаваемых параметров:
Параметр | Описание | Пример |
---|---|---|
number |
Мобильный номер телефона | '79996563311' |
Параметр
number
необходимо передавать в формате строки
Метод возвращает одно из следующих значений или ошибку, если входные параметры не прошли валидацию:
Значение | Описание |
---|---|
1 |
Пакет успешно отключен |
Метод: sms/stay
Список передаваемых параметров:
Параметр | Описание | Пример |
---|---|---|
number |
Мобильный номер телефона | 79996563311 |
Метод возвращает массив (или ошибку если входные параметры не прошли валидацию):
Параметр | Описание | Пример |
---|---|---|
count |
Количество оставшихся SMS | 53 |
Метод: sms/send
Список передаваемых параметров:
Параметр | Описание | Пример |
---|---|---|
from |
А-номер (с какого номера отправка) | 79996563311 |
to |
Б-номер (на какой номер отправка) | 79331111111 |
text |
Текст сообщения | |
dlr_level |
Уведомление о доставке (необязательный параметр) | 1 |
reject_long |
Запрет отправки SMS, превышающего максимальную длину: не отправлять (true ) или отправлять (false , по умолчанию) |
|
count_pdu |
Возврат в ответе количества частей SMS (pdu) | true |
Если count_pdu = false
метод возвращает идентификатор сообщения или ошибку, если входные параметры не прошли валидацию:
Значение | Описание |
---|---|
jmx_id |
Идентификатор сообщения (для DLR) |
Если count_pdu = true
метод возвращает массив или ошибку, если входные параметры не прошли валидацию:
Значение | Описание |
---|---|
jmx_id |
Идентификатор сообщения (для DLR) |
pdu |
Количество частей SMS |
Запрос:
curl -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0", "method":"sms/send", "id":"1", "params":{"from":"79991111111","to":"79692222222", "reject_long":true, "text":"test sms"}}' \
-X POST https://sms-api.runexis.ru
Ответ:
{"jsonrpc":"2.0", "id":"1", "result":"48aed09d386e4b3ea762391483ed0498", "error":null}
Отчеты о доставке приходят в форме POST-запросов с телом в формате JSON и типом контента «application/json».
{
"jmx_id": "48aed09d386e4b3ea762391483ed0498",
"status": "ESME_ROK",
}
Поле ответа | Описание |
---|---|
jmx_id |
Уникальный идентификатор сообщения |
status |
Статус доставки сообщения вышестоящему SMSC |
Если адрес DLR был обновлен или добавлен после 15 апреля 2019 г., то DLR будут приходить в новом формате
Новый формат DLR предполагает отправку на Ваш адрес DLR двух запросов, различить которые можно по значению поля level
. Запрос с level = 1
содержит статус приёмки сообщения вышестоящим SMSC, запрос с level = 2
– статус приёмки сообщения конечным получателем (мобильным терминалом).
{
"message_status": "ESME_ROK",
"id": "9e5ab493-a66e-47e6-aec2-a22a1055ec65",
"level": "1",
"jmx_id": "c459163b8d6d489f82d6de6ee6e56397",
}
Поле ответа | Описание |
---|---|
jmx_id |
Уникальный идентификатор сообщения |
message_status |
Статус доставки сообщения вышестоящему SMSC |
id |
Внутренний идентификатор сообщения |
level |
Уровень отчета о доставке |
{
"message_status": "DELIVRD",
"donedate": "1904161748",
"sub": "001",
"err": "ND",
"level": "2",
"id_smsc": "3299386",
"dlvrd": "001",
"subdate": "1904161748",
"id": "4a75068a-1477-4c4f-b75e-eedb66f6b4a6",
"jmx_id": "c459163b8d6d489f82d6de6ee6e56397",
}
Поле ответа | Описание |
---|---|
jmx_id |
Уникальный идентификатор сообщения |
message_status |
Статус доставки сообщения конечному получателю |
id |
Внутренний идентификатор сообщения |
level |
Уровень отчета о доставке |
subdate |
Время и дата фактической отправки сообщения |
donedate |
Время и дата установления сообщением своего финального статуса доставки |
id_smsc |
Идентификатор сообщения от вышестоящего SMSC |
dlvrd |
Количество доставленных сообщений (при отправке списку получателей) |
err |
Может содержать код ошибки от SMSC при неудачной попытке доставки сообщения |
sub |
Количество изначально отправленных сообщений (при отправке списку получателей) |
Чтобы SMSC воспринял доставку DLR как успешную и не пытался доставить его повторно, необходимо чтобы Ваш URL возвращал код статуса HTTP 200
и строку ACK/Jasmin
в теле ответа.
На адрес указанный для приема DLR приходят уведомления двух типов. Второй тип уведомлений в POST содержит примерно такие данные:
[ 'message_status' => 'ESME_ROK',
'id' => '61c54fc4-40d1-429a-8da7-203fef8a7040',
'level' => '1' ]
Такие запросы следует игнорировать.
Метод: sms/add-dlr-url
Список передаваемых параметров:
Параметр | Описание | Пример |
---|---|---|
url |
Адрес обработчика входящих SMS | http://dlr.sms/url |
params |
POST-параметры, которые будут переданы на URL, например данные авторизации | |
number |
Номер телефона (обязательный параметр) |
Метод возвращает одно из следующих значений или ошибку, если входные параметры не прошли валидацию:
Значение | Описание |
---|---|
1 |
Данные успешно сохранены |
Запрос:
curl -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0", "method":"sms/add-dlr-url", "id":"1", "params":{"url":"http://dlr.sms/url"}}' \
-X POST https://sms-api.runexis.ru
Ответ:
{"jsonrpc":"2.0", "id":"1", "result":1, "error":null}
Если указать адрес, не существующий в реальности, то SMS не будут отправляться с параметром
dlr_level
Метод: sms/update-dlr-url
Список передаваемых параметров:
Параметр | Описание | Пример |
---|---|---|
url |
Адрес обработчика входящих SMS | http://dlr.sms/url |
params |
POST-параметры, которые будут переданы на URL, например данные авторизации | |
number |
Номер телефона (обязательный параметр) |
Метод возвращает одно из следующих значений или ошибку, если входные параметры не прошли валидацию:
Значение | Описание |
---|---|
1 |
Данные успешно сохранены |
Метод: sms/delete-dlr-url
Список передаваемых параметров:
Параметр | Описание | Пример |
---|---|---|
number |
Номер телефона (необязательный параметр) |
Метод возвращает одно из следующих значений или ошибку, если входные параметры не прошли валидацию:
Значение | Описание |
---|---|
1 |
Данные успешно сохранены |
Метод: sms/get-dlr-url
Список передаваемых параметров:
Параметр | Описание | Пример |
---|---|---|
number |
Номер телефона (необязательный параметр) |
Метод возвращает массив или ошибку, если входные параметры не прошли валидацию:
Параметр | Описание | Пример |
---|---|---|
url |
Адрес обработчика входящих SMS | http://dlr.sms/url |
params |
POST-параметры, которые будут переданы на URL, например данные авторизации | |
number |
Номер телефона (необязательный параметр) |
Метод: sms/add-sms-url
Список передаваемых параметров:
Параметр | Описание | Пример |
---|---|---|
url |
Адрес обработчика входящих SMS | http://incoming.sms/url |
params |
POST-параметры, которые будут переданы на URL, например данные авторизации | |
number |
Номер телефона (обязательный параметр) |
Метод возвращает одно из следующих значений (или ошибку если входные параметры не прошли валидацию):
Значение | Описание |
---|---|
1 | Данные успешно сохранены |
Запрос:
curl -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0", "method":"sms/add-sms-url", "id":"1", "params":{"url":"http://incoming.sms/url"}}' \
-X POST https://sms-api.runexis.ru
Ответ:
{"jsonrpc":"2.0", "id":"1", "result":1, "error":null}
На адрес, указанный в параметре url
, приходит POST-запрос со следующими параметрами:
Параметр | Описание | Пример |
---|---|---|
src_number |
А-номер (с которого отправлено SMS) | 79991111111 |
dst_number |
Б-номер (на который отправлено SMS) | 79992222222 |
content |
Текст SMS | |
date |
Дата и время отправки | "2021-01-25 14:47:09" |
Метод: sms/update-sms-url
Список передаваемых параметров:
Параметр | Описание | Пример |
---|---|---|
url |
Адрес обработчика входящих SMS | http://incoming.sms/url |
params |
POST-параметры, которые будут переданы на URL, например данные авторизации | |
number |
Номер телефона (обязательный параметр) |
Метод возвращает одно из следующих значений или ошибку, если входные параметры не прошли валидацию:
Значение | Описание |
---|---|
1 |
Данные успешно сохранены |
Метод: sms/delete-sms-url. Список передаваемых параметров:
Параметр | Описание | Пример |
---|---|---|
number |
Номер телефона (обязательный параметр) |
Метод возвращает одно из следующих значений или ошибку, если входные параметры не прошли валидацию:
Значение | Описание |
---|---|
1 |
Данные успешно сохранены |
Метод: sms/get-sms-url
Список передаваемых параметров:
Параметр | Описание | Пример |
---|---|---|
number |
Номер телефона (обязательный параметр) |
Метод возвращает массив или ошибку, если входные параметры не прошли валидацию:
Параметр | Описание | Пример |
---|---|---|
url |
Адрес обработчика входящих SMS | http://incoming.sms/url |
params |
POST-параметры, которые будут переданы на URL, например данные авторизации | |
number |
Номер телефона (необязательный параметр) |