Mindbox
Клиент

Получение данных клиента

В инструкции описаны примеры POST-запросов. Интеграция с Mindbox не будет работать, если использовать запросы из примеров ниже без редактирования.

Операции именно под вашу задачу создает и описывает в техническом задании менеджер проекта, если у вас нет такого документа, то обратитесь к вашему менеджеру.

Описание метода

Осуществляется с помощью POST-запроса. Название операции настраивается в системе Mindbox. Подробней про вызов методов в Mindbox API можно прочитать здесь.

Метод возвращает данные клиента в зависимости от настроек в системе.

Формат запроса

POST https://api.mindbox.ru/v3/operations/{синхронная/асинхронная операция}?endpointId={уникальный идентификатор сайта/мобильного приложения/и т.п.}&operation={название операции}&deviceUUID={уникальный идентификатор устройства} Accept: application/xml Content-Type: application/xml Authorization: SecretKey {секретный_ключ_точки_интеграции} <operation> <customer> <ids> <webSiteUserId>{Идентификатор клиента}</webSiteUserId> </ids> </customer> </operation>

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

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

POST https://api.mindbox.ru/v3/operations/sync?endpointId=MindboxRu&operation=getCustomer Accept: application/xml Content-Type: application/xml Authorization: SecretKey {секретный_ключ_точки_интеграции} <operation> <customer> <ids> <webSiteUserId>5384275</webSiteUserId> </ids> </customer> </operation>

Ответ

Ответ может содержать несколько независимых узлов на корневом уровне в зависимости от настроек операции:

  • customer — данные клиента;
  • retailOrderStatistics - сумма заказов клиента из сегментации;
  • balances - балльный баланс клиента (см. Получение баланса клиента);
  • discountCards - дисконтные карты клиента;
  • endpoints — список мобильных приложений и устройств клиента. Возвращается, только если у клиента есть устройства (см. Мобильные приложения и устройства клиента);
  • personalOffers - актуальные персональные предложения;
  • productList - данные о продуктах в списке продуктов.

Клиент найден

<result> <status>Success</status> <customer> <processingStatus>Found</processingStatus> <ids> <mindboxId>{ID клиента в БД mindbox}</mindboxId> <myWebSiteId>{ID пользователя на сайте}</myWebSiteId> </ids> <sex>{пол - male/female}</sex> <email>{Email клиента}</email> <isEmailInvalid>{Email клиента невалиден - true/false}</isEmailInvalid> <isEmailConfirmed>{Email клиента подтвержден - true/false}</isEmailConfirmed> <pendingEmail>{Email, ожидающий подтверждения после смены}</pendingEmail> <mobilePhone>{Мобильный телефон}</mobilePhone> <isMobilePhoneInvalid>{Мобильный телефон невалиден - true/false}</isMobilePhoneInvalid> <isMobilePhoneConfirmed>{Мобильный телефон подтвержден - true/false}</isMobilePhoneConfirmed> <pendingMobilePhone>{Мобильный телефон, ожидающий подтверждения после смены}</pendingMobilePhone> <lastName>{Имя клиента}</lastName> <firstName>{Фамилия клиента}</firstName> <birthDate>{Дата рождения в формате YYYY-MM-DD}</birthDate> <area> <ids> <externalId>{Идентификатор географической зоны клиента}</externalId> </ids> <name>{Название географической зоны клиента}</name> </area> <subscriptions> <subscription> <pointOfContact>{Канал коммуникации Email/SMS/тд}</pointOfContact> <topic>{Тематика рассылок}</topic> <isSubscribed>{Статус подписки true/false}</isSubscribed> </subscription> </subscriptions> <customFields> <Дополнительное поле>{Значение дополнительного поля}</Дополнительное поле> </customFields> <changeDateTimeUtc>{Дата регистрации/редактирования в формате YYYY-MM-DD hh:mm:ss.fff}</changeDateTimeUtc> </customer> </result>

Клиент не найден

<result> <status>Success</status> <customer> <processingStatus>NotFound</processingStatus> </customer> </result>

Статус обработки/поиска клиента (processingStatus) может иметь различные значения для проверки наличия клиента:

  • Found - клиент успешно найден
  • NotFound - клиент не найден

Мобильные приложения и устройства клиента

Узел endpoints возвращает список мобильных приложений клиента и зарегистрированных в них устройств. Используется для диагностики недоставки push-уведомлений.

Узел endpoints не возвращается, если у клиента нет зарегистрированных устройств. Максимум 5 устройств (devices) на приложение (endpoint).

Как обновляются данные о приложении

Данные устройства обновляются только в двух случаях:

  • пользователь проявил активность в приложении;
  • при попытке отправить push-уведомление выяснилось, что токен недействителен (например, приложение удалено).

**В фоновом режиме **Mindbox SDK не обновляет статус. Пока пользователь не откроет приложение, ни активность, ни статус токена не обновятся.

Подробнее о недействительных токенах приложения и других ошибках при отправке push-уведомлений в чек-листе.

Контракт ответа

<result> <status>{Результат выполнения запроса}</status> <endpoints> <endpoint> <endpointName>{Имя точки интеграции приложения}</endpointName> <externalId>{Идентификатор точки интеграции приложения}</externalId> <devices> <device> <uuid>{Идентификатор мобильного устройства}</uuid> <isPushTarget>{Является ли устройство целевым для следующего push-уведомления}</isPushTarget> <model>{Модель устройства}</model> <operatingSystem> <family>{Семейство ОС}</family> <version>{Версия ОС}</version> </operatingSystem> <mobileAppInstallation> <version>{Версия мобильного приложения}</version> <lastUpdateDateTimeUtc>{Дата последней пользовательской активности в приложении или push-уведомления, выявившего неактивность токена}</lastUpdateDateTimeUtc> <status>{Статус токена}</status> <arePushNotificationsAllowed>{Статус разрешения получения push-уведомлений}</arePushNotificationsAllowed> </mobileAppInstallation> </device> </devices> </endpoint> </endpoints> </result>

Описание полей

ПолеОписание
endpointNameИмя точки интеграции мобильного приложения
externalIdВнешний идентификатор точки интеграции.
devices[].uuidУникальный идентификатор устройства
devices[].isPushTargettrue — устройство, на которое будет отправлено push-уведомление. Уникально в пределах одного endpoint
devices[].modelМодель устройства
operatingSystem.family / versionСемейство и версия ОС
mobileAppInstallation.versionВерсия (сборка) приложения
mobileAppInstallation.lastUpdateDateTimeUtcДата последней пользовательской активности либо момент, когда при отправке push-уведомления выявлена неактивность токена. Формат: yyyy-MM-dd HH:mm:ss.fff (UTC)
mobileAppInstallation.statusСтатус токена: Active, Inactive
mobileAppInstallation.arePushNotificationsAllowedРазрешение на получение push-уведомлений на устройстве

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

У пользователя одно устройство:

<result> <status>Success</status> <endpoints> <endpoint> <endpointName>Test: мобильное приложение Android</endpointName> <externalId>2020TestMobileAndroid</externalId> <devices> <device> <uuid>229626a6-b7c1-4c68-84c0-66114b23701e</uuid> <isPushTarget>true</isPushTarget> <model>Generic Tablet</model> <operatingSystem> <family>Other</family> <version>null</version> </operatingSystem> <mobileAppInstallation> <version>2.47.1 (22050)</version> <lastUpdateDateTimeUtc>2026-06-16 16:05:00.000</lastUpdateDateTimeUtc> <status>Active</status> <arePushNotificationsAllowed>true</arePushNotificationsAllowed> </mobileAppInstallation> </device> </devices> </endpoint> </endpoints> </result>

У пользователя несколько устройств в разных приложениях:

<result> <status>Success</status> <endpoints> <endpoint> <endpointName>Test: мобильное приложение Android</endpointName> <externalId>2020TestMobileiOS</externalId> <devices> <device> <uuid>229626a6-b7c1-4c68-84c0-66114b23701e</uuid> <isPushTarget>true</isPushTarget> <model>Apple iPhone 15</model> <operatingSystem> <family>iOS</family> <version>26.3.1</version> </operatingSystem> <mobileAppInstallation> <version>2.47.1</version> <lastUpdateDateTimeUtc>2026-06-14 17:13:00.000</lastUpdateDateTimeUtc> <status>Active</status> <arePushNotificationsAllowed>true</arePushNotificationsAllowed> </mobileAppInstallation> </device> </devices> </endpoint> <endpoints> <endpoint> <endpointName>Mindbox: мобильное приложение Android</endpointName> <externalId>Mindbox-Mobile-Android</externalId> <devices> <device> <uuid>b12c7b3b-f99c-40c0-b600-ee58d89bc58d</uuid> <isPushTarget>true</isPushTarget> <model>Generic Smartphone</model> <operatingSystem> <family>Android</family> <version>15</version> </operatingSystem> <mobileAppInstallation> <version>2.30.2 (20804)</version> <lastUpdateDateTimeUtc>2026-06-13 17:22:00.000</lastUpdateDateTimeUtc> <status>Active</status> <arePushNotificationsAllowed>true</arePushNotificationsAllowed> </mobileAppInstallation> </device> </devices> </endpoint> </endpoints> </result>

Диагностика недоставки уведомлений

Признаки типовых причин можно определить по комбинации полей:

  • Пользователь отключил разрешение на устройстве. lastUpdateDateTimeUtc недавняя дата, а arePushNotificationsAllowed равно false.
  • Приложение может быть удалено. lastUpdateDateTimeUtc старая дата — давно не было активности из приложения. При arePushNotificationsAllowed:false невозможно отправить уведомление для проверки статуса токена.
  • Неактивное устройство стало целевым для push-уведомлений. У клиента два активных устройства на одном приложении. Удаление приложения и запрет на получение уведомлений также считается активностью, из-за чего неактивное приложение может получить PushTarget:true. Обращайте внимание на поля mobileAppInstallation.status и mobileAppInstallation.arePushNotificationsAllowed.
Last modified on