Skip to main content
Altcraft Docs LogoAltcraft Docs Logo
User guide iconUser guide
Developer guide iconDeveloper guide
Admin guide iconAdmin guide
English
  • Русский
  • English
Login
    Getting StartedAdministrator documentationFunctional characteristics
      Technology descriptionarrow
    • Architecture OverviewComponent Description
        Deployment schemesarrow
      • Basic schemeFail-safe schemeTypical Placement in Infrastructure
    System requirements
      Admin Panelarrow
      • Account areaarrow
        • Accountsarrow
        • Account UsersAccount Virtual SendersAccount Database Indexes
        TariffsExternal data configurationLDAPTasksSchedule JobsGlobal Stop ListsWebversion Store Policies
        Settingsarrow
      • Databases
          Accessarrow
        • AdminsAPI tokens
        Notifiers
          MTAarrow
        • Default rulesRetry rulesLock rulesBounce patternsStrategiesKeysISPsPools
      Nodes
        Sendersarrow
      • EmailSMSEvent generatorIntegration with Altcraft Cloud SMTPIntegration with Sendsay
        Reportsarrow
      • Audit JournalData Usage
        Toolsarrow
      • ARF decoderURL decoderSMID decoderLicense
      Platform installationarrow
    • Automatic installationManual installationRunning the platform in a Docker container
      Platform configurationarrow
    • Configuration fileDomain settingsLDAP access configurationSending Email via SMTP relayPixel and push domain configurationCluster and Replication SetupSystem notifications configurationProcesses UNIX sockets configurationHTTPS ConfigurationMigrating from MongoDB Community Edition to Percona Server for MongoDBAdding sender IP addressesDeduplication request settingsPostgreSQL database for Market dataProxy server settingsKeycloak Integration with AltcraftGetting HTTP service statusesConfiguring MongoDB log rotation
        Configuration of system constants and directoriesarrow
      • Filtering bot actionsDirectory of gender markers
      Platform maintenancearrow
    • Personnel requirementsPlatform maintenance processesPlatform updatingBackup and recoveryTransferring the platform to a new serverCreating, deleting, and populating tables for statistics in ClickHouseUsing the aktool utilityUsers and directories engaged by the platformPlatform service monitoringProcess and mailing monitoring via Prometheus
      Custom channels guidearrow
    • OverviewCreating and configuring a channelEntity field configurationTemplate languageEntities
        Pipesarrow
      • Pipe: Basic ConceptsResultErrorsLogPackUnpackHTTP RequestStore SetStore GetSelectorSQLEventerScheduler
        Pipelinesarrow
      • Pipeline: Basic ConceptsMessageScheduleListenerModerateStop
      Extraarrow
    • System page customizationSend Message IDClickHouse History Migration GuideInstructions for migrating history to ClickHouseUtility for importing push subscriptions to Firebase projectUtility for importing push subscriptions to Firebase projectENS: настройка интеграции
    Processing HTTP/HTTPS traffic
      Administrator APIarrow
      • Accounts admin apiarrow
        • Restricted accessarrow
        • Account Activation and DeactivationAccount Freeze and Unfreeze
        Get accounts listAdd a new accountDelete the account
        Account usersarrow
      • Update an Existing AccountAdd a new userDelete a userGet a list of usersSending a Welcome Email
        Nodesarrow
      • Synchronize node MTA configurationGet nodes listGet node MTA statusActivate node MTADeactivate node MTA
        Senders admin apiarrow
      • Create or update AKMTA senderGet AKMTA sender informationAssign account to senderGet senders listDelete senderRestore sender
          Sender queuearrow
        • Get sender queue informationHold sender queueRelease sender queueClear sender queue
        Virtual sendersarrow
      • Get virtual senders listGet virtual sender informationCreate virtual senderUpdate virtual senderClone virtual senderDelete virtual sender
    Documentation Archive
  • Extra
  • ENS: настройка интеграции

ENS: настройка интеграции

Описание​

Сервис ENS является внешним клиентским сервисом, доступ к которому напрямую отсутствует. Взаимодействие платформы с ENS осуществляется исключительно через системные очереди RabbitMQ. Интеграция с сервисом позволяет осуществлять отправку сообщений через Email, SMS и push-каналы.

Платформа не выполняет вызовы напрямую к ENS. Клиент должен самостоятельно настроить ENS-сервис на чтение из очередей платформы и запись в них, согласно соглашениям по структуре и маршрутам сообщений.

Интеграция предусматривает два направления взаимодействия:

  • Отправка сообщений — платформа публикует события в очереди, откуда ENS забирает сообщения.
  • Приём статусов/ошибок — ENS публикует в ответ статусные события и ошибки в другую очередь, откуда их читает платформа.

Каналы Email и SMS настраиваются через механизм сендеров. Push-канал настраивается через механизм пользовательских (кастомных) каналов.


Email и SMS​

Каналы Email и SMS используют механизм сендеров. Для каждого типа создаётся отдельный сендер, который затем подключается к виртуальному сендеру аккаунта.

Отправка сообщений​

ENS-сервис должен подписаться на соответствующие exchanger'ы RMQ и забирать сообщения по следующим параметрам:

ТипExchangeRouting key
Emailfintechiq.ens.sendfintechiq.ens.email.send
SMSfintechiq.ens.sendfintechiq.ens.sms.send

Параметры Exchange и Routing Key задаются в настройках сендера. При необходимости их можно изменить без изменения кода или повторной интеграции.

Email: пример структуры сообщения​

{
"legal_entity_id": "GUID",
"template": {
"template_name": "string",
"brand_name": "string",
"strictly": true
},
"email_from": {
"name": "string",
"address": "email@example.com"
},
"client": {
"external_data": "FSMID",
"template_variable_values": {
"content": "Email body text here"
},
"email_to": [
{
"name": "Recipient Name",
"address": "recipient@example.com",
"isBcc": false
}
]
}
}

Email: параметры запроса​

Имя параметраТипОбязательностьОписаниеОграничения
legal_entity_idGUIDДаИдентификатор юридического лица. Указывается в настройках сендера в панели администрирования.-
templateobjectДаОбъект с данными для генерации шаблона.-
template.template_namestringДаНаименование шаблона. Используется один шаблон для всех отправок. Указывается в настройках сендера.-
template.brand_namestringДаНаименование бренда. Указывается в настройках объекта сендера.-
template.strictlybooleanНетЕсли true — происходит строгая проверка всех переменных в template_variable_values. Всегда true.-
email_fromobjectДаИнформация об отправителе.-
email_from.namestringНетИмя отправителя (From Name).-
email_from.addressstringДаАдрес отправителя (From Email).Максимальная длина 256 символов. Адрес должен содержать символ '@' с символами до и после него.
clientobjectДаИнформация о клиенте для отправки сообщения.-
client.external_datastringНетЛюбые данные, которые вызывающий сервис передаёт в ENS и которые возвращаются в callback-уведомлениях.Максимальная длина 192 символа. Используется, например, для FSMID идентификатора.
client.template_variable_valuesСловарь <string,string>ДаЗначения переменных шаблона. При отсутствии переменных передаётся пустой объект { }.-
client.email_toarray[object]ДаМассив с данными о получателях. Допустим только один получатель.-
client.email_to.namestringНетИмя получателя (To Name).-
client.email_to.addressstringДаАдрес получателя (To Email).Максимальная длина 256 символов. Адрес должен содержать символ '@' с символами до и после него.
client.email_to.isBccbooleanНетПризнак скрытой копии (BCC). По умолчанию значение — false.-

SMS: пример структуры сообщения​

{
"legal_entity_id": "GUID",
"template": {
"template_name": "string",
"brand_name": "string",
"strictly": true
},
"client": {
"external_data": "FSMID",
"template_variable_values": {
"content": "SMS text here"
},
"phone": "9191234567"
}
}

SMS: параметры запроса​

Имя параметраТипОбязательныйОписаниеОграничения
legal_entity_idGUIDДаИдентификатор юридического лица. Указывается в настройках объекта сендера в панели администрирования.-
templateobjectДаОбъект с данными для генерации шаблона.-
template.template_namestringДаНаименование шаблона. Используется один шаблон для всех отправок. Указывается в настройках сендера.-
template.brand_namestringДаНаименование бренда. Используется один шаблон для всех отправок. Указывается в настройках сендера.-
template.strictlybooleanНетЕсли true — выполняется строгая проверка всех переменных в template_variable_values. Всегда установлено значение true.-
clientobjectДаИнформация о клиенте для отправки сообщения.-
client.external_datastringНетДополнительные данные, передаваемые в ENS, возвращаются в callback-уведомлениях и при получении данных о сообщении через API.Максимальная длина — 192 символа. Используется, например, для передачи FSMID идентификатора.
client.template_variable_valuesСловарь <string,string>ДаЗначения переменных шаблона. Для передачи всего тела сообщения используется переменная content. При отсутствии переменных передаётся {}.-
client.phonestringДаНомер телефона получателя. Только номера РФ (+7), передаются без кода страны.Формат — 10 цифр (например, "9191234567"). При передаче номера не из РФ отправка будет отклонена.

Получение статусов и ошибок​

ENS должен публиковать сообщения о статусах и ошибках в следующую очередь:

  • Exchange: fintechiq.ens.status
  • Тип: headers
  • Заголовки:
    • type — email или sms
    • publisher-id — значение AppId из исходного события
    • result-type — status

Структура успешного статус-события​

{
"AppId": "GUID",
"MessageId": "GUID",
"ContentType": "application/json",
"Timestamp": 1713774123000,
"status": 64,
"external_data": "FSMID"
}

Структура статус-события с ошибкой​

{
"AppId": "GUID",
"MessageId": "GUID",
"ContentType": "application/json",
"Timestamp": 1713774123000,
"status": 512,
"external_data": "FSMID",
"error_details": {
"error_code": 2,
"error_message": "Неправильный шаблон"
}
}

Коды статусов​

КодОписаниеПоведение в платформе
64Доставлено до получателяSMS-провайдер подтвердил успешную доставку сообщения клиенту. Считается событием доставки.
128ДубликатСообщение не отправлялось из-за срабатывания проверки дедупликации. Считается событием недоставки.
512Не доставленоПри отправке произошла ошибка. Детали доступны в полях error_message и error_details. Считается событием недоставки.

Создание и настройка сендера​

Для отправки сообщений необходимо настроить Email-сендер и SMS-сендер, а затем подключить их к виртуальному сендеру аккаунта.

Email-сендер​

В панели администратора перейдите в раздел Сендеры — Email:

Создайте новый сендер с помощью кнопки в правом верхнем углу. Укажите произвольное название сендера и выберите тип — Email: ENS. Далее привяжите аккаунты, в которых будет использоваться этот сендер.

Заполните поля:

  • Ключ маршрутизации
  • Название RMQ exchange для сообщений (используется для отправки Email-сообщений)
  • Название RMQ exchange для статусов (используется для получения статусов Email-сообщений)
  • Publisher ID (идентификатор сервиса (App ID))
  • Идентификатор юридического лица
  • Название шаблона
  • Наименование бренда

SMS-сендер​

В панели администратора перейдите в раздел Сендеры — SMS:

Создайте новый сендер с помощью кнопки в правом верхнем углу. Укажите произвольное название сендера и выберите тип — SMS: ENS. Далее привяжите аккаунты, в которых будет использоваться этот сендер.

Заполните поля:

  • Ключ маршрутизации
  • Название RMQ exchange для сообщений (используется для отправки SMS-сообщений)
  • Название RMQ exchange для статусов (используется для получения статусов SMS-сообщений)
  • Publisher ID (идентификатор сервиса (App ID))
  • Идентификатор юридического лица
  • Название шаблона
  • Наименование бренда

Настройка виртуального сендера​

В панели администратора откройте раздел Управление аккаунтами — Аккаунты. В списке найдите нужный аккаунт и откройте список виртуальных сендеров:

Создайте новый виртуальный сендер с помощью кнопки в правом верхнем углу:

Укажите произвольное название виртуального сендера, при необходимости добавьте описание и задайте группы доступа:

Далее добавьте правило для Email-сендера:

Выберите ваш Email: ENS сендер и настройте правила. Настройка правил подробно описана в этой статье.

Таким же образом надо добавить правило для SMS-сендера:

Сохраните виртуальный сендер с помощью кнопки внизу. Теперь пользователи аккаунта могут использовать его для отправки Email и SMS сообщений.

tip

Виртуальный сендер можно настроить в пользовательском интерфейсе платформы. Подробнее.


Push​

Push-канал использует механизм пользовательских (кастомных) каналов. Для работы необходимо создать RMQ-коннектор и настроить кастомный канал через панель администратора.

Настройка кастомного push-канала​

Шаг 1. Создание RMQ-коннектора​

В панели администратора перейдите в раздел External data configurations (Внешние конфигурации данных) и создайте новый коннектор типа RMQ.

slide-0
slide-1
slide-2

Заполните поля подключения к RabbitMQ-брокеру ENS:

ПолеОписание
NameПроизвольное название коннектора.
Short NameУникальный идентификатор коннектора. Используется в конфигурации канала для ссылки на коннектор. Обязательное поле.
HostАдрес RMQ-брокера ENS.
PortПорт подключения (по умолчанию 5672).
UsernameЛогин для аутентификации.
PasswordПароль для аутентификации. Хранится в защищённом конфиге.
VhostВиртуальный хост. Для push-канала — push.
ProtocolПротокол подключения (tcp).
SSLФлаги SSL / SSL CA и PEM-сертификаты (при необходимости).

Затем сохраните коннектор.

Шаг 2. Создание кастомного канала​

Пользовательские каналы

Более подробная информация по настройке пользовательских каналов и конфигурации его параметров содержится в соответствующем разделе.

В панели администратора перейдите в раздел Settings — Custom Channels (Настройки — Пользовательские каналы) и создайте новый канал.

slide-0
slide-1
slide-2

Укажите параметры канала:

ПараметрОписание
NameНазвание канала (например, ENS Push).
SIDУникальный идентификатор канала (например, rmq_channel).
IconИконка канала (например, mobile alternate).
Camp TypesТипы кампаний, в которых доступен канал: broadcast, regular, trigger, splittest.

Сохраните параметры и переходите к настройке пайплайнов. Они конфигурируются на соседней вкладке Pipelines или внутри JSON-конфигурации канала.

Настройка listener (приём статусов)​

Пайплайн Listener настраивается в UI на вкладке Pipelines или в JSON-конфигурации канала. Он определяет логику обработки входящих сообщений: распаковка JSON, маршрутизация по result_type (status / error / message_registered), генерация событий канала (deliv / undeliv).

В UI внизу формы пайплайна укажите параметры консьюмера:

ПолеЗначениеОписание
Typermq_consumerТип брокерского консьюмера.
Connection ShortnameСозданный RMQ-коннектор.Коннектор к RabbitMQ, созданный на шаге 1.
Queue Namefintechiq.push-manager.statusОчередь для приёма статусов и ошибок от ENS.

В JSON-конфигурации канала это задаётся полями lst_connector и raw_listener:

{
"lst_connector": {
"type": "rmq_consumer",
"connection_shortname": "ens_push",
"queue_name": "fintechiq.push-manager.status"
},
"raw_listener": [
{
"id": 1,
"type": "log",
"params": { "message": "START ENS PUSH LISTENER" },
"outs": { "success": 2 }
},
{
"id": 2,
"type": "unpack",
"params": { "type": "JSON" },
"outs": { "success": 3, "error": 100 }
},
{
"id": 3,
"type": "selector",
"params": {
"outs": [
{ "query": "('$in.headers.result_type' = 'status')", "out": 40 },
{ "query": "('$in.headers.result_type' = 'error')", "out": 50 },
{ "query": "('$in.headers.result_type' = 'message-registered')", "out": 60 }
]
},
"outs": { "success": 999, "error": 999 }
},
{
"id": 40,
"type": "selector",
"params": {
"outs": [
{ "query": "('$in.data.status' = 'Delivered')", "out": 200 },
{ "query": "('$in.data.status' = 'Failed')", "out": 400 }
]
},
"outs": { "success": 999, "error": 999 }
},
{
"id": 200,
"type": "event",
"params": {
"action_type": 50200,
"channel_id": 5500,
"event_type": "deliv",
"event": { "send_message_id": "$in.data.send_message_id" }
},
"outs": { "success": 999, "error": 101 }
},
{
"id": 400,
"type": "event",
"params": {
"action_type": 50400,
"channel_id": 5500,
"event_type": "undeliv",
"event": { "send_message_id": "$in.data.send_message_id" }
},
"outs": { "success": 999, "error": 101 }
},
{
"id": 50,
"type": "log",
"params": {
"message": "error code: $in.data.error.code | error message: $in.data.error.message",
"level": "error"
},
"outs": { "success": 400, "error": 999 }
},
{
"id": 60,
"type": "log",
"params": { "message": "message registered", "level": "info" },
"outs": { "success": 999 }
}
]
}
Настройка message pipeline (отправка)​

Пайплайн Message настраивается в UI на вкладке Pipelines или в JSON-конфигурации канала. Он формирует JSON-сообщение из полей шаблона и подписки, публикует его в RMQ через пайп rmq_publish.

В JSON-конфигурации канала это задаётся полем raw_message:

{
"raw_message": [
{
"id": 1,
"type": "pack",
"params": {
"type": "JSON",
"template": {
"legalEntityId": "$template.legalEntityId",
"brandId": "$template.brandId",
"text": "$template.text",
"head": "$template.head",
"icon": "$template.icon",
"link": "$template.link",
"notification": {
"recipient": {
"id": "$subscription.client_id",
"phoneNumber": "$subscription.phone"
},
"externalId": "$origin.send_message_id"
}
}
},
"outs": { "success": 2, "error": 100 }
},
{
"id": 2,
"type": "rmq_publish",
"params": {
"connector_shortname": "ens_push",
"content_type": "json",
"delivery_mode": 2,
"target": {
"type": "exchange",
"exchange_name": "fintechiq.push-manager.send",
"exchange_type": "topic",
"routing_key": "fintechiq.push-manager.push.by-text.send"
}
},
"outs": { "success": 4, "error": 100 }
}
]
}

Параметры пайпа rmq_publish:

Параметр пайпаЗначениеПримечание
Connector ShortnameShort Name RMQ-коннектора.—
Content Typejson—
Delivery Mode2 (persistent)—
Target Typeexchange или queueОпределяет структуру target
Exchange Namefintechiq.push-manager.sendТребуется при Target Type: exchange
Exchange Typedirect, topic, fanout, headersТип exchange. По умолчанию — direct. Требуется, если exchange на стороне ENS создан с типом, отличным от direct.
Routing Keyfintechiq.push-manager.push.by-text.sendТребуется при Target Type: exchange
Queue Name—Требуется при Target Type: queue
События канала​

События настраиваются в UI на вкладке Events или в JSON-конфигурации канала. Они определяют набор статусов для отслеживания сообщений.

В JSON-конфигурации канала это задаётся полем events:

{
"events": [
{ "id": 50100, "sid": "send", "type": "send", "title": "send" },
{ "id": 50200, "sid": "deliv", "type": "delivered", "title": "delivered" },
{ "id": 50400, "sid": "undeliv", "type": "undeliv", "title": "undeliv" },
{ "id": 50401, "sid": "sbounce", "type": "sbounce", "title": "sbounce" },
{ "id": 50402, "sid": "hbounce", "type": "hbounce", "title": "hbounce" }
]
}
SIDTypeОписание
sendsendСообщение отправлено в ENS
delivdeliveredСообщение доставлено на устройство клиента
undelivundelivСообщение не доставлено
sbouncesbounceSoft bounce
hbouncehbounceHard bounce

Каждое событие получает уникальный идентификатор (ID) при создании. Значения ID фиксируются в конфигурации канала и используются в pipeline listener для маппинга статусов ENS на события платформы.

Конфигурация шаблона канала​

Поля шаблона настраиваются в UI на вкладке Object fields — Template или в JSON-конфигурации канала.

В JSON-конфигурации канала это задаётся полем template_obj:

{
"template_obj": {
"fields": [
{ "shortname": "head", "type": "string", "required": false, "title": "Заголовок" },
{ "shortname": "text", "type": "text", "required": true, "title": "Тело сообщения" },
{ "shortname": "link", "type": "string", "required": false, "title": "Ссылка перехода по клику" },
{ "shortname": "icon", "type": "string", "required": false, "title": "Иконка" },
{ "shortname": "legalEntityId", "type": "string", "required": true, "title": "Идентификатор юридического лица" },
{ "shortname": "brandId", "type": "string", "required": true, "title": "Идентификатор бренда" }
]
}
}
Поле (shortname)ТипОбязательностьОписание
headstringНетЗаголовок push-уведомления.
texttextДаТело сообщения. Поддерживает форматирование, переменные профиля и ссылки.
linkstringНетСсылка перехода по клику. Должна быть валидным URL.
iconstringНетURL иконки push-уведомления.
legalEntityIdstringДаИдентификатор юридического лица для ENS.
brandIdstringДаИдентификатор бренда для ENS.
Конфигурация подписки​

Поля подписки настраиваются в UI на вкладке Object fields — Subscription или в JSON-конфигурации канала.

В JSON-конфигурации канала это задаётся полем subscr_obj:

{
"subscr_obj": {
"fields": [
{ "shortname": "phone", "type": "int", "title": "Телефон" },
{ "shortname": "client_id", "type": "string", "title": "Идентификатор клиента" }
]
}
}
Поле (shortname)ТипОписание
phoneintНомер телефона. Ровно 10 цифр без префикса "7".
client_idstringИдентификатор клиента во внешней системе.

Подписки передаются в профили клиентов через стандартные механизмы платформы: импорт из файла, API, по расписанию.

tip

После создания канала он появляется в стандартном отчёте "Каналы". Доступные метрики: отправки, доставки, клики (при наличии ссылки в сообщении), ошибки. Подробнее об отчёте по каналам.

Отправка сообщений​

ENS-сервис должен подписаться на exchange и забирать сообщения по следующим параметрам:

ПараметрЗначение
Vhostpush
Exchangefintechiq.push-manager.send
Routing keyfintechiq.push-manager.push.by-text.send

Пример структуры push-сообщения​

{
"legalEntityId": "GUID",
"brandId": "GUID",
"text": "Текст уведомления",
"notification": {
"recipient": {
"id": "client_id",
"phoneNumber": "9191234567"
},
"externalId": "GUID"
}
}

Дополнительно в properties сообщения передаётся app_id — идентификатор Altcraft, используемый при маршрутизации статусов.

Параметры push-запроса​

Имя параметраТипОбязательностьОписаниеОграничения
legalEntityIdguidДаИдентификатор юридического лица. Указывается в настройках шаблона кастомного канала.—
brandIdguidДаИдентификатор бренда. Указывается в настройках шаблона кастомного канала.—
textstringДаТекст push-уведомления.—
notificationobjectДаИнформация об уведомлении и получателе.—
notification.recipient.idstringДаИдентификатор получателя (client_id из подписки профиля).Максимальная длина — 500 символов
notification.recipient.phoneNumberstringДаНомер телефона получателя. Только номера РФ, без кода страны.Ровно 10 цифр (например, 9191234567). Без префикса "7".
notification.externalIdstringДаУникальный идентификатор сообщения. Генерируется автоматически на стороне Altcraft. Возвращается в статус-событиях для сопоставления.Максимальная длина — 500 символов
caution

Номер телефона валидируется на стороне CDP перед отправкой в ENS. Если номер не соответствует формату (не 10 цифр или содержит префикс "7"), отправка блокируется и сообщение получает статус ошибки invalid_phone. В RMQ сообщение не публикуется.

Получение статусов и ошибок​

Для получения статусов и ошибок ENS публикует сообщения в headers-exchange. Платформа читает их через RMQ-коннектор, привязанный к кастомному каналу.

  • Exchange: fintechiq.push-manager.status
  • Тип: headers
  • Заголовки маршрутизации:
    • publisher-id — значение app_id из исходного запроса
    • result-type — тип результата: message_registered, status или error

ENS возвращает по одному сообщению за раз.

message_registered​

Подтверждение регистрации сообщения в ENS.

{
"notifications": [
{
"internalId": "GUID",
"externalId": "string"
}
]
}
ПараметрТипОбязательностьОписание
notificationsarrayДаМассив объектов. Ответ запрашивается по одному сообщению за раз.
notifications.internalIdguidОдин из двухВнутренний идентификатор уведомления, сгенерированный ENS.
notifications.externalIdstringОдин из двухИдентификатор уведомления, переданный Altcraft при отправке.

status​

Финальный статус доставки.

{
"internalId": "GUID",
"externalId": "string",
"status": "Delivered",
"statusChangeDate": "2026-05-25T12:00:00Z",
"errorDescription": "string"
}
ПараметрТипОбязательностьОписание
internalIdguidДаВнутренний идентификатор уведомления ENS.
externalIdstringНет (присутствует, если был передан при отправке)Идентификатор уведомления от Altcraft.
statusstringДаСтатус отправки: Delivered или Failed.
statusChangeDatedateTime (ISO 8601)ДаВремя смены статуса.
errorDescriptionstringНет (только при ошибке)Описание ошибки, возникшей при отправке.
Статусы push-сообщений​
СтатусОписаниеСостояние в платформе
DeliveredСообщение доставлено на устройство клиентаДоставлено
FailedОшибка отправки на стороне провайдера или push-manager'аОшибка отправки

error​

Событие ошибки от ENS.

{
"input": "GUID",
"error": {
"code": "string",
"message": "string"
}
}
ПараметрТипОбязательностьОписание
inputguidДаТело исходного запроса, который вызвал ошибку.
error.codestringДаКод ошибки.
error.messagestringДаСообщение об ошибке.

Ошибки логируются на стороне платформы. Поле errorDescription возвращается в статус-событии типа status при значении Failed.

Last updated on Jul 2, 2026
Previous
Utility for importing push subscriptions to Firebase project
Next
Processing HTTP/HTTPS traffic
  • Описание
  • Email и SMS
    • Отправка сообщений
      • Email: пример структуры сообщения
      • Email: параметры запроса
      • SMS: пример структуры сообщения
      • SMS: параметры запроса
    • Получение статусов и ошибок
      • Структура успешного статус-события
      • Структура статус-события с ошибкой
      • Коды статусов
    • Создание и настройка сендера
      • Email-сендер
      • SMS-сендер
      • Настройка виртуального сендера
  • Push
    • Настройка кастомного push-канала
      • Шаг 1. Создание RMQ-коннектора
      • Шаг 2. Создание кастомного канала
        • Настройка listener (приём статусов)
        • Настройка message pipeline (отправка)
        • События канала
        • Конфигурация шаблона канала
        • Конфигурация подписки
    • Отправка сообщений
      • Пример структуры push-сообщения
      • Параметры push-запроса
    • Получение статусов и ошибок
      • message_registered
      • status
        • Статусы push-сообщений
      • error
© 2015 - 2026 Altcraft, LLC. All rights reserved.