---
title: "Уведомление о событии"
method: POST
path: "/your-path"
---

# Уведомление о событии

`POST /your-path`

Запрос делается: с сервера MAXMA на ваш сервер. URL для вызова может быть любым.

Вызывается, когда происходит событие, на которое вы подписаны. Содержит код произошедшего события и его атрибуты.

## Request body

- object[]
  - `event` string, required — Код произошедшего события. Коды событий и рсшифровки приведены в [таблице "События"](#section/Obshie-svedeniya/Sobytiya).
  - `eventId` string, required — Уникальный идентификатор события. Можно использовать для того, чтобы игнорировать ранее обработанное, но повторно полученное событие.
  - `eventTime` string, date-time, required — Дата и время произошедшего события
  - `source` 'api' | 'internal', required — Источник изменения. Возможные значения: - api - изменение сделано извне по API; - internal - изменение произошло внутри системы.
  - `EVENT_CLIENT_EMAIL_SUBSCRIBED` SubscriptionEventPayload
    - `client` ClientQuery, required — Данные о клиенте
      - `phoneNumber` string — Номер телефона клиента
      - `card` string — Номер карты
      - `externalId` string — Внешний идентификатор
    - `email` string, required — Адрес электронной почты
  - `EVENT_CLIENT_EMAIL_UNSUBSCRIBED` SubscriptionEventPayload
    - `client` ClientQuery, required — Данные о клиенте
      - `phoneNumber` string — Номер телефона клиента
      - `card` string — Номер карты
      - `externalId` string — Внешний идентификатор
    - `email` string, required — Адрес электронной почты
  - `EVENT_CLIENT_NEW` object
    - `clientData` ClientData, required — Информация о клиенте
      - `phoneNumber` string — Номер телефона клиента
      - `card` string — Номер карты
      - `externalId` string — Внешний идентификатор
      - `email` string — Адрес электронной почты
      - `surname` string — Фамилия отдельно
      - `name` string — Имя отдельно
      - `patronymicName` string — Отчество отдельно
      - `fullName` string — Фамилия, имя и отчество
      - `gender` 0 | 1 | 2 — Пол клиента. Поддерживаемые значения: - 0 - пол неизвестен, - 1 - мужской, - 2 - женский
      - `birthdate` string, date — Дата рождения. Формат даты: ```1967-11-21```. Если нам известны только день и месяц рождения, а год рождения клиент не предоставил, год в этом поле будет - 1900, например, ```1900-11-21```.
      - `level` number — Уровень клиента в программе лояльности
      - `isEmailSubscribed` boolean — Флаг, подписан ли клиент на маркетинговые рассылки по электронной почте
      - `isPhoneSubscribed` boolean — Флаг, подписан ли клиент на маркетинговые рассылки по SMS или Viber
      - `isChatSubscribed` boolean — Флаг, подписан ли клиент на коммуникацию с чат-ботами
      - `extraFields` object — Дополнительные параметры клиента
  - `EVENT_CLIENT_CHANGED` object
    - `client` ClientQuery, required — Данные о клиенте
      - `phoneNumber` string — Номер телефона клиента
      - `card` string — Номер карты
      - `externalId` string — Внешний идентификатор
    - `clientData` ClientData, required — Информация о клиенте
      - `phoneNumber` string — Номер телефона клиента
      - `card` string — Номер карты
      - `externalId` string — Внешний идентификатор
      - `email` string — Адрес электронной почты
      - `surname` string — Фамилия отдельно
      - `name` string — Имя отдельно
      - `patronymicName` string — Отчество отдельно
      - `fullName` string — Фамилия, имя и отчество
      - `gender` 0 | 1 | 2 — Пол клиента. Поддерживаемые значения: - 0 - пол неизвестен, - 1 - мужской, - 2 - женский
      - `birthdate` string, date — Дата рождения. Формат даты: ```1967-11-21```. Если нам известны только день и месяц рождения, а год рождения клиент не предоставил, год в этом поле будет - 1900, например, ```1900-11-21```.
      - `level` number — Уровень клиента в программе лояльности
      - `isEmailSubscribed` boolean — Флаг, подписан ли клиент на маркетинговые рассылки по электронной почте
      - `isPhoneSubscribed` boolean — Флаг, подписан ли клиент на маркетинговые рассылки по SMS или Viber
      - `isChatSubscribed` boolean — Флаг, подписан ли клиент на коммуникацию с чат-ботами
      - `extraFields` object — Дополнительные параметры клиента
  - `EVENT_CLIENT_BONUSES_CHANGED` object
    - `client` ClientQuery, required — Данные о клиенте
      - `phoneNumber` string — Номер телефона клиента
      - `card` string — Номер карты
      - `externalId` string — Внешний идентификатор
    - `clientBonuses` ClientBonuses, required — Информация о бонусном счете
      - `totalAmount` number — Всего бонусов у клиента (available + pending)
      - `availableAmount` number — Количество доступных для расходования бонусов
      - `pendingAmount` number — Количество бонусов, которые начислены, но пока недоступны
    - `bonusesDelta` object, required — Информация об изменении бонусного счета
      - `availableDelta` number — Разница, на которую произошло изменение доступных бонусов: - положительное значение, если произошло увеличение кол-ва бонусов; - отрицательное значение, если произошло уменьшение кол-ва бонусов; - ноль, если изменения этого значения не было.
      - `pendingDelta` number — Разница, на которую произошло изменение бонусов в ожидании: - положительное значение, если произошло увеличение кол-ва бонусов; - отрицательное значение, если произошло уменьшение кол-ва бонусов; - ноль, если изменения этого значения не было.
  - `EVENT_PURCHASE_NEW` object
    - `client` ClientQuery — Данные о клиенте
      - `phoneNumber` string — Номер телефона клиента
      - `card` string — Номер карты
      - `externalId` string — Внешний идентификатор
    - `shop` ShopQuery, required — Данные о торговой точке
      - `code` string, required — Код
      - `name` string, required — Название
    - `cashier` CashierQuery — Данные о кассире
      - `code` string, required — Код или табельный номер
      - `name` string, required — Имя
    - `txid` string, required — Уникальный идентификатор покупки
    - `executedAt` string, date-time, required — Дата и время выполнения покупки
    - `totalAmount` number, float, required — Сумма покупки
    - `totalDiscount` number, float, required — Сумма скидки
    - `discounts` PurchaseDiscounts, required — Детализация по скидкам
      - `initial` number, float, required — Скидка кассы
      - `bonuses` number, float, required — Скидка по бонусам
      - `promocode` number, float, required — Скидка по промокоду
      - `offer` number, float, required — Скидка по акции
      - `rounding` number, float, required — Округление
    - `bonuses` PurchaseBonuses — Детализация по начисленным бонусам
      - `applied` integer, required — Применено
      - `collected` integer, required — Накоплено
    - `promocode` string — Промокод, который был использован при покупке
    - `rows` PurchaseRow[]
      - `externalId` string — Внешний идентификатор товара или услуги
      - `title` string — Наименование товара или услуги
      - `sku` string, required — Артикул или код товара или услуги
      - `qty` number, float, required — Количество
      - `price` number, float, required — Цена продажи
      - `buyingPrice` number, float — Закупочная цена
      - `totalAmount` number, float, required — Итого по строке (до вычета скидок)
      - `totalDiscount` number, float, required — Сумма скидки
      - `discounts` PurchaseDiscounts, required — Детализация по скидкам
        - `initial` number, float, required — Скидка кассы
        - `bonuses` number, float, required — Скидка по бонусам
        - `promocode` number, float, required — Скидка по промокоду
        - `offer` number, float, required — Скидка по акции
        - `rounding` number, float, required — Округление
      - `bonuses` PurchaseBonuses — Детализация по начисленным бонусам
        - `applied` integer, required — Применено
        - `collected` integer, required — Накоплено

## Response `200`

Запрос обработан успешно

## Other responses

- `403` — Запрос не обработан из-за ошибки авторизации
- `500` — Ошибка на сервере, запрос нужно повторить

## Changes

- **2026-07-14** `0537ea8c86c1` — 4 breaking, 6 warning, 3 info
  - added the new required request property `items/EVENT_PURCHASE_NEW/rows/items/discounts`
  - the `items/EVENT_CLIENT_CHANGED/clientData/birthdate` request property type/format changed from `string`/`date-time` to `string`/`date`
  - the `items/EVENT_CLIENT_NEW/clientData/birthdate` request property type/format changed from `string`/`date-time` to `string`/`date`
  - the `items/EVENT_PURCHASE_NEW/rows/items/totalDiscount` request property type/format changed from `object`/`` to `number`/`float`
  - …9 more
- **2024-12-16** `c256ca0b20c0` — 6 breaking, 4 info
  - added the new required request property `items/EVENT_CLIENT_BONUSES_CHANGED/bonusesDelta`
  - added the new required request property `items/EVENT_PURCHASE_NEW/rows/items/price`
  - added the new required request property `items/EVENT_PURCHASE_NEW/rows/items/qty`
  - added the new required request property `items/EVENT_PURCHASE_NEW/rows/items/sku`
  - …6 more
- **2022-09-21** `34e504f1835a` — 1 info
  - added the new optional request property `items/EVENT_PURCHASE_NEW`
- **2022-09-20** `6c0589e6b583` — 1 info
  - api tag `Методы` removed
- **2022-09-20** `e41b0af43ac3` — 1 info
  - api tag `Методы` added

[Full history](https://skmtc.dev/cloudloyalty/apis/maxma-webhooks/changes/your-path/post.md)

---

[API](https://skmtc.dev/cloudloyalty/apis/maxma-webhooks.md) · [All operations](https://skmtc.dev/cloudloyalty/apis/maxma-webhooks/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/cloudloyalty/maxma-webhooks/revisions/0537ea8c86c1/schema)
