Отправка SMS#

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

POST https://direct.i-dgtl.ru/api/v1/message

Метод позволяет отправлять массив одиночных сообщений (от 1 до 1000)

Headers#

Name

Type

Description

Authorization*

string

Basic {TOKEN_1}

Content-Type*

string

application/json

Request Body#

Name

Type

Description

channelType*

string

Канал отправки (SMS)

senderName*

string

Имя отправителя. Допускаются SMS-имена в статусе «Одобрено» с датой начала действия не позднее, чем время отправки запроса

destination*

string

Номер абонента

content*

string

Сообщение; строка в кодировке UTF-8 без Byte Order Mark

tags

array

Теги сообщения (массив строк). Каждый тег должен соответствовать выражению ^\w+$ (допускаются буквы в любом регистре, цифры и нижнее подчеркивание «_»)

useLocalTime

boolean

Флаг, отвечающий за таймзону, в которой будет отправлено сообщение:
true – отправка в таймзоне абонента
false – отправка по МСК
По умолчанию true

localSendTime

string

Нижняя граница допустимого времени отправки сообщения (с учетом значенияuseLocalTime)
Дата в формате „YYYY-MM-DD hh:mm:ss“ в диапазоне от (текущее время в UTC - 12 часов) до (текущее время в UTC + 7 дней)
По умолчанию сообщение будет отправлено сразу

localCompletionTime

string

Верхняя граница допустимого времени отправки сообщения (с учетом useLocalTime) в диапазоне от localSendTime до (текущее время в UTC + 70 дней)

ttl

integer

Время жизни сообщения в секундах. По истечении ttl сообщению устанавливается финальный статус.
60 ≤ ttl ≤ 86400

hours

array

Допустимые часы отправки (массив чисел). В массиве могут быть переданы целые числа от 0 до 23, каждое из которых соответствует разрешенному для отправки часовому интервалу с учетом useLocalTime; значения должны быть уникальны.

days

array

Допустимые дни отправки (массив чисел). В массиве могут быть переданы целые числа от 1 (пн) до 7 (вс), каждое из которых соответствует разрешенному для отправки дню недели; значения должны быть уникальны.

shortUrl

boolean

Флаг, отвечающий за сокращение ссылок в сообщении:
true- ссылки в тексте сообщения будут сокращены
По умолчанию false

callbackUrl

string

Адрес для отправки callback

callbackEvents

array

События, по которым будут отправлены callback (массив строк). При наличии callbackUrl и отсутствии callbackEvents в запросе, будет отправлен callback по событию delivered

externalMessageId

string

Внутренний id сообщения в вашей системе. До 100 символов.

В случае успешного запроса возвращается ответ, в котором перечислены идентификаторы сообщений (в том числе ваши, если были переданы) и коды результата. При значении errors = false гарантируется, что все переданные сообщения успешно созданы.

{
  "errors": false,
  "items": [
    {
      "messageUuid": "063474ec-a34f-4558-90c5-984395000004",
      "externalMessageId": "id123",
      "code": 201
    },
    {
      "messageUuid": "063564ec-a34f-4558-90c5-984395000005",
      "externalMessageId": "id124",
      "code": 201
    }
  ]
}

Использование невалидного токена / отсутствие заголовка авторизации.

{
    "error": {
        "code": 4010,
        "msg": "Not Authenticated"
    }
}

=============================================
{
    "error": {
        "code": 4012,
        "msg": "Bad credentials"
    }
}

Недостаточно средств на балансе.

{
    "error": {
        "code": 402,
        "msg": "Insufficient funds"
    }
}

Использование неподходящего токена.

{
    "error": {
        "code": 4030,
        "msg": "Access Denied"
    }
}

Невалидные параметры в теле запроса или превышение максимального количества объектов.

// Превышение количества сообщений
{
    "error": {
        "code": 4220,
        "msg": "Max count of messages is 1000"
    }
}
-----------------------------------------------------------------------------
// Некорректное значение localSendTime
{
    "error": {
        "code": 4220,
        "msg": "Local send time is less than minimal {minLocalSendTime}"
    }
}
-----------------------------------------------------------------------------
// Некорректное значение localSendTime
{
    "error": {
        "code": 4220,
        "msg": "Local send time is greater than minimal {maxLocalSendTime}"
    }
}
-----------------------------------------------------------------------------
// Некорректное значение localCompletionTime
{
    "error": {
        "code": 4220,
        "msg": "Local completion time is less than minimal {minLocalCompletionTime}"
    }
}
-----------------------------------------------------------------------------
// Некорректное значение localCompletionTime
{
    "error": {
        "code": 4220,
        "msg": "Local completion time is greater than maximal {maxLocalCompletionTime}"
    }
}
-----------------------------------------------------------------------------
// Некорректное значение senderName
{
    "error": {
        "code": 4220,
        "msg": "No active sender name: ({channelType}, {senderName})"
    }
}
-----------------------------------------------------------------------------
// Некорректное значение destination
{
    "error": {
        "code": 4220,
        "msg": "Invalid msisdn"
    }
}
-----------------------------------------------------------------------------
// Некорректное значение content
{
    "error": {
        "code": 4220,
        "msg": "Blank content"
    }
}
-----------------------------------------------------------------------------
// Некорректное значение tags
{
    "error": {
        "code": 4220,
        "msg": "Invalid tags: {tags}"
    }
}
-----------------------------------------------------------------------------
// Некорректное значение ttl
{
    "error": {
        "code": 4220,
        "msg": "Invalid TTL {ttl}"
    }
}
-----------------------------------------------------------------------------
// Некорректное значение hours
{
    "error": {
        "code": 4222,
        "msg": "Invalid hours: {hours}"
    }
}
-----------------------------------------------------------------------------
// Некорректное значение days
{
    "error": {
        "code": 4223,
        "msg": "Invalid days: {days}"
    }
}

Временная недоступность сокращения ссылок. Рекомендуется повторить запрос.

{
    "error": {
        "code": 5030,
        "msg": "Url shortener is unavailable"
    }
}

{% hint style=»warning» %} Рекомендуемое время ожидания ответа: 70 секунд.
Как правило, ответ на запрос возвращается не более чем за несколько секунд, но таймаут величиной в 70 секунд позволяет гарантированно получить ответ на запрос, в том числе в ситуациях повышенной нагрузки. {% endhint %}

{% hint style=»info» %} В качестве имени отправителя при отправке SMS-сообщений допускается использование имен в статусе «Одобрено» с датой начала действия не позднее текущей.

Имя отправителя можно создать как при помощи API, так и в личном кабинете на странице «Имена отправителей» {% endhint %}

{% hint style=»info» %} Для использования личного домена в сокращенных ссылках необходимо обратиться в поддержку {% endhint %}

Возможные варианты перечислений:

Параметр

Варианты

callbackEvents

События для отправки callback

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

Для тестирования отправки SMS без регистрации своего собственного имени отправителя вы можете использовать следующие данные:

  • senderName – sms_promo

  • прочие параметры – произвольные, в соответствии с описанием

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

POST https://direct.i-dgtl.ru/api/v1/message
Authorization: Basic QWxhZGRpbjpv...
Content-Type: application/json
[
  {
    "channelType": "SMS",
    "senderName": "sms_promo",
    "destination": "79818268484",
    "content": "Текст сообщения, которое получит абонент"
  }
]
curl -X POST 'https://direct.i-dgtl.ru/api/v1/message' \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==' \
-d '[{"channelType":"SMS","senderName":"sms_promo","destination":"79818268484","content":"Текст сообщения, которое получит абонент"}]'

{% hint style=»info» %} В примере указан минимальный набор параметров, который позволяет моментально отправить SMS. Вы можете кастомизировать время отправки, настроить коллбэки и добавить теги, используя опциональные параметры, описанные в начале данной страницы. {% endhint %}