Management API
Общие положения
Для взаимодействия с Management API требуется ключ доступа (auth_key ) типа терминала: "Административный терминал". Получить auth_key можно через ЛК HEADO
URI для запросов (POST):
-
https://gamma.heado.ru/management/<Auth_Key>
- для ключей домена gamma
Уровень доступа к данным, ограничен на уровне
Конфигурация торговой сети
address.check
Метод позволяет проверить и нормализовать почтовый адрес из произвольной (неформализованной) строки.
При невозможности формализовать адрес возвращает ошибку -32404 Искомое не найдено
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
address | mixed | Произвольная строка почтового адреса или их массив |
Пример запроса address.check
cashbox.create
Метод позволяет зарегистрировать устройство (касса, POS, ECR, ККМ) в аккаунте HEADO и получить auth_key устройства для работы с Device API.
При ошибке возвращает код и описание ошибки
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
store_ext_id | string(40) | Уникальный «Внешний идентификатор торговой точки» из торговой системы предприятия, состоящий из латинских букв или цифр |
cashbox_ext_id | string(64) | Внешний идентификатор устройства в HEADO |
name | string(200) | Название устройства (Кассы,Сервера,ПК) |
params | object | параметр type (boolean) имеет 2 значения: - gui - используется для взаимодействия с Device API и для установки ПО HEADO на рабочее место торгового предприятия для отображения показателей; - server - используется для взаимодействия с Device API и для установки ПО HEADO на сервер торгового предприятия (используется как мидсервер, без графического интерфейса) |
Пример запроса cashbox.create
cashbox.list
Метод для получения списка торговых точек и устройств в аккаунте HEADO.
При ошибке возвращает код и описание ошибки
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
filter | object | Можно применить фильтрацию (опционально): - network_ext_id (string(60)): Внешний идентификатор «Торговой сети» в торговой системe - store_ext_id (string(40): Уникальный «Внешний идентификатор торговой точки» из торговой системы предприятия, состоящий из латинских букв или цифр |
Пример запроса cashbox.list
cashbox.get
Метод для данных по конкретному устройству в аккаунте HEADO.
Полный список устройств, можно получить через метод cashbox.list
При ошибке возвращает код и описание ошибки
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
cashbox_ext_id | object | Можно применить фильтрацию (опционально): - cashbox_ext_id (string(64)): Внешний идентификатор «устройства» в HEADO |
Пример запроса cashbox.get
cashbox.update
Метод позволяет изменить название и внешний идентификатор устройства (касса, POS, ECR, ККМ) в аккаунте HEADO и получить auth_key устройства для работы с Device API.
При ошибке возвращает код и описание ошибки
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
cashbox_ext_id | string(64) | Внешний идентификатор «устройства» в HEADO |
params | object | Возможно изменить 2 параметра: -name - string(200) Новое название устройства; - new_ext_id - string(64) Новый внешний идентификатор устройства в HEADO |
Пример запроса cashbox.update
Пример ответа cashbox.update
setCashbox
Метод позволяет зарегистрировать Торговую точку/Устройство (касса, POS, ECR, ККМ) в аккаунте HEADO и получить auth_key устройства для работы с Device API.
- Если задан существующий *store_ext_id* то новое устройство регистрируется в составе (подчиненности) этому store_ext_id.
- Если задан несуществующий *store_ext_id, то регистрируется **новая торговая точка и *устройство** в составе (подчиненности) этому store_ext_id.
- При вызове с существующими store_ext_id и extId (устройства) регистрация нового устройства не происходит, метод возвращает cashbox_id и auth_key для существующего устройства.
Метод может быть использован для изменения названия торговой точки.
При вызове с существующим *store_ext_id* название торговой точки будет заменено новым значением name.
При ошибке возвращает код и описание ошибки
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
location | object | Содержит следующие поля: - country (string(60)): Название страны по КЛАДР или ФИАС - city (string(60)): Название города по КЛАДР или ФИАС - street (string(100): Название улицы по КЛАДР или ФИАС - house (string(20): Дом, включая корпуса, литеры и т.п. (например 10/1а) - store_ext_id (string(40): Уникальный «Внешний идентификатор торговой точки» из торговой системы предприятия, состоящий из латинских букв или цифр - name (string(100)): Название торговой точки (можно изменить, отправив новое значение) |
extid(устройства) | string(64) опционально | Идентификатор устройства (касса, POS, ECR, ККМ), уникальный в пределах торговой точки. ВАЖНО: Не передавать при регистрации устройства для передачи групповых данных о продажах (сервер торговой точки, группы торговых точек) |
Пример запроса setCashbox*
store.create
Метод регистрирует новую Торговую точку с указанным количеством устройств (касса, POS, ECR, ККМ) в аккаунте HEADO и возвращает в массиве cashbox_id и auth_key устройства для работы с Device API. При ошибке возвращает код и описание ошибки
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
store_ext_id | string(40) | Уникальный «Внешний идентификатор торговой точки» из торговой системы предприятия, состоящий из латинских букв или цифр |
params | object | name (string(100)): Название торговой точки cashboxcount (uint = 0): Кол-во устройств создаваемых автоматически при создании торговой точки (до 30 устройств).Если = 0, то устройства будут созданы автоматически при получении чека Объект location: Содержит следующие поля: - type (string): тип адреса торговой точки postal (формальный почтовый адрес), postal-normalize (почтовый адрес, требующий формализации), internet (электронный, создается по согласованию с HEADO) - country (string(60)): Название страны по КЛАДР или ФИАС - city (string(60)): Название города по КЛАДР или ФИАС - street (string(100): Название улицы по КЛАДР или ФИАС - house (string(20): Дом, включая корпуса, литеры и т.п. (например 10/1а) - meta (object: Произвольная структура метаданных |
Пример запроса store.create
store.list
Метод для получения списка торговых точек. Область видимости определяется ключем auth_key устройства, используемого для вызова и параметром network_ext_id запроса. При ошибке возвращает код и описание ошибки
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
filter | object | Параметры фильтрации опциональны. - network_ext_id (string(60)): Внешний идентификатор «Торговой сети» в торговой системe - status (boolean): статус торговой точки. enabled - Включен, disabled (выключена) - store_ext_id (string(40): Уникальный «Внешний идентификатор торговой точки» из торговой системы предприятия, состоящий из латинских букв или цифр - limit: установленный лимит записей в ответе -- offset: смещение выводимых записей (по умолчанию 0) -- count: количество выводимых записей (по умолчанию 500) |
Пример запроса store.list (filter)*
store.get
Метод возвращает параметры торговой точки.
При ошибке возвращает код и описание ошибки
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
store_ext_id | string(40) | Уникальный «Внешний идентификатор торговой точки» из торговой системы предприятия, состоящий из латинских букв или цифр |
Пример запроса store.get(store_ext_id)
store.schedule
Метод актуализирует расписание работы торговой точки на каждый день рабочей недели.
При ошибке возвращает код и описание ошибки
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
store_ext_id | string(40) | Уникальный «Внешний идентификатор торговой точки» из торговой системы предприятия, состоящий из латинских букв или цифр |
schedule | Array of Objects | Объект массива: - wday (tinyint) : 1-Понедельник, ... 7 - Воскресенье. Если у торговой точки выходной, то расписание не указывается - from (string(5) ЧЧ:ММ) : Начало работы торговой точки - to (string(5) ЧЧ:ММ): Конец работы торговой точки |
Пример запроса store.schedule
Пример ответа store.schedule*
store.removeTags
store.assignTags
Методы назначают и удаляют теги на торговой точке зарегистрированной в ЛК HEADO.
При ошибке возвращает код и описание ошибки
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
store_ext_id | string(40) | Уникальный «Внешний идентификатор торговой точки» из торговой системы предприятия, состоящий из латинских букв или цифр |
tags | Mixed(String(20), Array of String(200)) | Массив строк-идентификаторов: tags = '@all' - удалить все теги |
Пример запроса store.assignTags(store_ext_id, tags)
store.update
Метод позволяет изменить статус торговой точки (включить/выключить) зарегистрированной в ЛК HEADO.
При ошибке возвращает код и описание ошибки
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
store_ext_id | string(40) | Уникальный «Внешний идентификатор торговой точки» из торговой системы предприятия, состоящий из латинских букв или цифр |
params | object | { name (string(100)): Название торговой точки (можно изменить, отправив новое значение) status (boolean): - enabled - Меняет статус торговой точки на "Включен". - disabled - Меняет статус торговой точки на "Выключен" - test - Меняет статус на "тестовый". Используется для торговых точек, готовящихся к открытию. meta (object): Произвольная структура, объёмом до 32Кб для хранения неупорядоченных данных } |
Пример запроса store.update*
tag.organize
POST Web-адрес запроса:
- https://api.heado.ru/management/<Auth_Key>
- https://gamma.heado.ru/management/<Auth_Key> (для ключей домена gamma)
Метод позволяет группировать мелкие формации тегов в более крупные (Регионы и т.п.)
При ошибке возвращает код и описание ошибки
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
root_tag | string(200) | Корневой метатег (назание групп привязки в "администрировании зон".) |
tags | Array of String(200) | Массив строк-идентификаторов |
Пример запроса tag.organize
tag.list
POST Web-адрес запроса:
- https://api.heado.ru/management/<Auth_Key>
- https://gamma.heado.ru/management/<Auth_Key> (для ключей домена gamma)
Метод возвращает список тегов аккаунта.
При ошибке возвращает код и описание ошибки
Пример запроса tag.list
Пример ответа tag.listtag.get
Метод возвращает параметры указанного тега. Список тегов с указанием внутренних идентификаторов можно получить с помощью tag.list().
При ошибке возвращает код и описание ошибки
Пример запроса tag.get
Передача фактов торговой точки
receipt.processBatch
Метод предназначен для пакетной загрузки чеков продажи или возврата. Максимальный размер пакета - 100 чеков. В случае успешной загрузки возвращает количество загруженных чеков и время их регистрации в HEADO.
При ошибке возвращает код и описание ошибки
Attention
Для регистрации чеков возврата параметр amount и значения value атрибутов чека передавать с отрицательным значением.
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
items | Array of Objects | Объект массива: - amount (decimal(12,4)) : Итоговая сумма по чеку (скидки вычтены). Если >0, то продажа, если <0, то возврат - discount (decimal(12,4)) : Итоговая скидка по чеку (положительное число) - ts ( ISO 8601: YYYY-MM-DDThh:mm:ss±hh:mm) : Точное время чека. Необходимо обязательно передавать метку времени с корректным смещением ±hh от UTC, соответствующим временному поясу торговой точки. - cashier (string(200)) : ФИО Кассира/Продавца (на чек). Доп.в фигурных скобках, можно указать идентификатор кассира - extId (string(40)): Стабильный и уникальный «Внешний идентификатор чека» в торговой системе - positions (array) : [ Товарные позиции в чеке { -- name (string(200)) : Название товара -- count (decimal(12,4)) : Количество товара -- total (decimal(12,4)) : Общая сумма по позиции с учетом скидок -- seller (string(200)) : ФИО продавца для конкретной позиции (необходим для мотивации продавцов из разнных отделов). -- categories (array) : [Массив групп товаров] Иерархическая структура категорий/подкатегорий товара и дополнительные метки. Структура передается последовательно, начиная с первого уровня. Длина каждой категории/метки не более 120 символов -- extId (string(40)) : Уникальный «Внешний идентификатор товара» из справочника торговой системы предприятия, состоящий из цифр или латинских букв. },.. ] - attributes (array) : [ Массив свободных атрибутов чека (карты лояльности, платёжные системы и т.п.) для дополнительной аналитики.{ -- name (string(20)) : Название атрибута (английские мнемоники), -- value (decimal(12,4)) : Значение атрибута (<0 при возврате) },.. ] - path Ключ маппинга к устройству и торговой точки -- Общий формат: @store_ext_id/pos_ext_id --- store_ext_id (string(40)) - Уникальный «Внешний идентификатор торговой точки» из торговой системы предприятия, состоящий из латинских букв или цифр --- pos_ext_id (string(64))- «Внешний идентификатор устройства» (кассы/сервера) из торговой системы предприятия, состоящий из латинских букв или цифр -- *Пример: @111/123 |
Рекомендуемые атрибуты чека:
withcard (value: 0,1) - использование карты лояльности
discount (value: decimal(10,4)) - скидка на покупку
bonus_sp (value: decimal(10,4)) - использование бонусных баллов
procspd (value: int) - время обработки чека, сек. paytype/[cash,card,visa,master, e.t.c.] (value: decimal(10,4)) - разбиение суммы по платежам или указание типа платежа. Возможно использовать свои названия под разработку доп. KPI.
Пример запроса receipt.processBatch
Пример ответа receipt.processBatch
price.inventoryReset
Метод сбрасывает количество товарных запасов в системе, загруженных через метод inventoryUpdateBatch
При ошибке возвращает код и описание ошибки
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
store_ext_ids | string(40) | (опционально) Массив строк-уникальных «Внешних идентификаторов торговых точек» торговой системы предприятия, состоящий из латинских букв или цифр. Параметр используется для сброса переданных товарных запасов на выбранных торговых точках |
Пример запроса price.inventoryReset
inventory.updateBatch
Данный метод предназначен для загрузки состояния запасов на торговой точке на указанный момент времени (до 1000 позиций в запросе). В случае успеха возвращает количество загруженных в HEADO номенклатурных позиций. Дополнительно загружает признак присутствия номенклатурной позиции в ассортиментной матрице торговой точки. Один из параметров запаса должен присутствовать обязательно. Значения отсутствующих параметров остаются в HEADO неизменными. Таким образом метод может быть использован для раздельной загрузки сведений о присутствии номенклатурной позиции в ассортиментной матрице и количества запаса.
При ошибке возвращает код и описание ошибки
Attention
-
Рекомендуем реализовать выгрузку номенклатурного справочника, так как при отсутствии товара в системе HEADO, остатки по ней не будут обновлены.
-
Обновление информации о запасах должно выполняться не реже одного раза в сутки, например передавать остатки на конец завершенного рабочего дня.
-
Первая выгрузка остатков, должна выполняться полностью по действующей номенклатуре при выполнении хотя бы одного из условий (остатков > 0 или включен в матрицу)
-
Каждая последующая выгрузка должна выполнять дифференциально, т.е. только по номенклатуре по которой произошли изменения (включая остаток=0, если товара не осталось на складе по любой причине)
-
После реализации задачи, обязательно выполняется сверка по остаткам товаров.
-
Если в процессе передачи изменений накоплены ошибки, необходимо полностью сбросить информацию о товарных запасов, используя метод price.inventoryReset, а затем выполнить их выгрузку как при первой выгрузке
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
items | Array of Objects - Максимум 1000 элементов | - items: [ { -- store_ext_id (string(40)) - Уникальный «Внешний идентификатор торговой точки» из торговой системы предприятия, состоящий из латинских букв или цифр -- price_ext_id (string(40)) - Уникальный «Внешний идентификатор товара» из справочника торговой системы предприятия, состоящий из цифр или латинских букв. Обязательно должен соответствовать внешнему уникальному идентификатору получаемого из чека. -- snapshot_datetime (string(ISO 8601 datetime)) - дата и время выгрузки актуального состояния инвентаря -- last_sell_ts (string(ISO 8601 datetime)) - (опционально) дата и время последней продажи Следующие параметры не являются обязательным, но один из них должен быть передан обязательно: -- in_matrix (boolean) - признак наличия в товарной матрице торговой точки. 1-входит,0-не входит. -- qty (decimal(13,4)) - количество товара на момент выгрузки состояния -- sell_price (decimal(12,4)) - цена продажи за единицу -- prime_cost (decimal(12,4)) - себестоимость товара "без НДС" за единицу (Стоимость всего остатка / количество = средневзвешенная цена) -- min_stock_level (unsigned decimal(13,4)) (опционально) - минимальный товарный запас в единицах учета, если задано на группу товаров, то транслировать значение для группы на все товары группы. -- stock_in_days (unsigned smallint) (опционально) - норма товарного запаса в днях, если задано на группу товаров, то транслировать значение для группы на все товары группы. -- operations (Array of Objects) (опционально) - массив операций, которые произошли на конкретным SKU между snapshot_datetime [ { --- type (string) - тип операции: "income"(Приход), "writeoff"(Списание), "move"(Перемещение), "return"(Возврат) --- qty (decimal(13,4)) - количество товара --- ts (string(ISO 8601 datetime) - дата и время операции ] },... - ] |
Пример запроса inventory.updateBatch
Пример ответа inventory.updateBatch
store.registerEvent
Данный метод предназначен для загрузки в сервис HEADO событий(движения SKU, открытие/закрытие торговой точки), относящихся к торговой точке. События используются для подтверждения выполнения задач в их жизненном цикле
При ошибке возвращает код и описание ошибки
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
store_ext_id | string(40) | Уникальный «Внешний идентификатор торговой точки» из торговой системы предприятия, состоящий из латинских букв или цифр |
pos_ext_id | string(64) | |
(Опционально) | «Внешний идентификатор устройства» (кассы/сервера) из торговой системы предприятия, состоящий из латинских букв или цифр | |
name | string | ** - shift/start** - событие открытия торговой точки (например: открытие самой первой кассовой смены) ** - shift/stop** - событие закрытия торговой точки (например: закрытие самой последней кассовой смены) ** - sku/writeoff** - Списание товара - sku/move - Перемещение товара - sku/income - Приход товара - sku/return - Возврат товара |
ts | string(40) (Опционально) | Дата/время события |
ext_id | string(20): (ISO8601) | Идентификатор события (уникальный для sku/writeoff в пределах Клиента/Сети) генерируемого в торговой системе |
params | associative array | { owner: { // Объект владельца (ответственного) транзакции name: (string(200)), // ФИО ext_id: (string(40) (Опционально)), // Идентификатор ответственного в торговой системе }, sku: { // Объект SKU ext_id: (string(40)), // идентификатор SKU в торговой системе qty: (decimal(10,4)) // Количество единиц списываемого товара } } |
Пример запроса store.registerEvent (списание sku)
Пример запроса store.registerEvent (открытие смены)
Пример ответа store.registerEvent
Управление номенклатурой
price.categoryReset
Метод очищает все позиции справочника номенклатуры от присвоенных категорий из ранее загруженного дополнительного номенклатурного справочника. Выполняется в случае, если далее будет обновляться не весь номенклатурный справочник.
При ошибке возвращает код и описание ошибки
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
store_ext_ids | string(40) | (опционально) Массив строк-уникальных «Внешних идентификаторов торговых точек» торговой системы предприятия, состоящий из латинских букв или цифр. Параметр используется для сброса загруженных категорий на выбранных торговых точках |
Пример запроса priceCategoryReset:
Пример ответа priceCategoryReset
price.updateBatch
Данный метод предназначен для пакетного обновления параметров номенклатурных позиций (справочника товаров). В случае отсутствия позиции с переданным **extId (номенклатуры) создается новая. Максимальное количество позиций в одном запросе 1000. В случае успешного выполнения возвращает количество загруженных/обновленных номенклатурных позиций.**
При ошибке возвращает код и описание ошибки
Attention
-
Если требуется полностью сбросить обновить категории/метки перед вызовом price.UpdateBatch выполните успешный вызов price.categoryReset.
-
Реализация метода обязательна для интеграций, использующих методы, ссылающиеся на extId (номенклатурной позиции), вызов которых возможен до регистрации первой продажи номенклатурной позиции. Например inventoryUpdateBatch, registerEvent. Выполнение по расписанию, период в соответствии с изменением номенклатуры, но не реже одного раза в неделю.
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
items | Array of Objects - Максимум 1000 элементов | Объект массива: - name (string(200)) : Название товара - params (array) : объект параметров товарной позиции { -- extid (string(40)) - Уникальный «Внешний идентификатор товара» из справочника торговой системы предприятия, состоящий из цифр или латинских букв. Обязательно должен соответствовать внешнему уникальному идентификатору получаемого из чека. -- sku_id (string(40)) - «Человекочитаемый идентификатор товара» для отображения сотрудникам при постановке задач (используется, если extid товара сложный для восприятия) -- categories (array) (опционально) - [Массив групп товаров] Иерархическая структура категорий/подкатегорий товара и дополнительные метки. Структура передается последовательно, начиная с первого уровня. Длина каждой категории/метки не более 120 символов Опционально: перед доп.меткой в квадратных скобках, через запятую можно указать идентификаторы торговых точек (store_ext_id) на которую применяется данная метка на товара (например метка акции для одного или нескольких магазинов) Пример: [1,3]Акция. -- price (decimal(10,4)) (опционально) - Цена позиции (допускается передавать 0) --vat (decimal(4,2)) (опционально) - Ставка НДС в процентах (например 20.00 для 20%) -- units (опционально) - единица измерения: --- alc_volume (опционально) - объем единицы товара в декалитрах, используемый в журнале учета объема розничной продажи алкогольной продукции --- net_weight (опционально) - вес нетто единицы товара выраженный в килограммах --- gross_weight (опционально) - общий вес единицы товара выраженный в килограммах --- volume (опционально) - объем единицы товара выраженный в кубических метрах --- area (опционально) - площадь единицы товара выраженная в квадратных метрах --- length (опционально) - длина единицы товара выраженная в метрах --- height (опционально) - высота единицы товара выраженная в метрах --- width (опционально) - ширина единицы товара выраженная в метрах --- items (опционально) - количество унитарных единиц в единице товара -- ean (array)(опционально) - Массив штрих-кодов EAN8/13 до 100 элементов в массиве -- meta (array)(опционально) - мета данные, позволяет передавать произвольную структуру данных длиной до 32к символов для сквозного хранения слабоупорядоченных структур. |
Параметры запроса (архивная версия):
NAME | TYPE | DESCRIPTION |
---|---|---|
items | Array of Objects - Максимум 1000 элементов | Объект массива: - name (string(200)) : Название товара - params (array) : объект параметров товарной позиции { -- extid (string(40)) - Уникальный «Внешний идентификатор товара» из справочника торговой системы предприятия, состоящий из цифр или латинских букв. Обязательно должен соответствовать внешнему уникальному идентификатору получаемого из чека. -- categories (array) (опционально) - [Массив групп товаров] Иерархическая структура категорий/подкатегорий товара и дополнительные метки. Структура передается последовательно, начиная с первого уровня. Длина каждой категории/метки не более 120 символов Опционально: перед доп.меткой в квадратных скобках, через запятую можно указать идентификаторы торговых точек (store_ext_id) на которую применяется данная метка на товара (например метка акции для одного или нескольких магазинов) Пример: [1,3]Акция. -- price (decimal(10,4)) (опционально) - Цена позиции (допускается передавать 0) -- vat (decimal(4,2)) (опционально) - Ставка НДС в процентах (например 20.00 для 20%) -- unit_type (опционально) - единица измерения: - 1 - шт - 10 - литры - 11 - мл - 12 - ДАЛ (декалитры) - 20 - кг - 21 - граммы - 30 - метры - 31 - квадратные метры -- unit_ratio (decimal(10,4)) (опционально) - Коэффициент, пакетное соотношение проданного количества к unit_type -- ean (array)(опционально) - Массив штрих-кодов EAN8/13 до 100 элементов в массиве -- meta (array)(опционально) - мета данные, позволяет передавать произвольную структуру данных длиной до 32к символов для сквозного хранения слабоупорядоченных структур. |
Пример запроса priceUpdateBatch
Пример ответа priceUpdateBatch
Управление показателями
kpi.list
Метод возвращает список показателей аккаунта.
При ошибке возвращает код и описание ошибки
Пример запроса kpi.list
Пример ответа kpi.listkpi.types
Метод возвращает список типов показателей.
При ошибке возвращает код и описание ошибки
Пример запроса kpi.types
Пример ответа kpi.typeskpi.add
POST Web-адрес запроса:
Метод создает в аккаунте новый показатель, в случае успеха возвращает внутренний идентификатор созданного показателя.
При ошибке возвращает код и описание ошибки
Attention
Состав фильтра показателя формируется в момент вызова метода, не зарегистрированные в HEADO сущности, на которые ссылаются фильтры не будут включены в показатель.
В этом случае, для регистрации сущности, можно использовать метод priceUpdateBatch
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
name | string(128) | Название показателя |
type | string | Тип показателя из списка "Типов показателей" |
order | uint = 0 | Сортировка показателя (чем меньше - тем первее), 0 - по умолчанию. Если указать -1, автоматически подставится максимальное значение упорядочивания в списке показателей + 1 . |
ext_id | string(40) | Уникальный «Внешний идентификатор показателя» из торговой системы предприятия, состоящий из латинских букв или цифр |
params | object | { Объект расширенных настроек показателя (опционально) -- status: (int) >0 - Выключен, 1 - включен, 2 - Архивный (Из архивного статуса показатель не возвращается этим методом) -- showOnDevices: (boolean) true - Отображать Показатель в интерфейсе пользователя, false - не отображать -- filter_roles: (array of string) [ Массив ролей, кто может видеть показатель (если не указан, видеть будут все) --- 'PartnerAdminRole', // Админинистратор --- 'PartnerTopManagerRole', Топ-менеджер --- 'PartnerDivisionManagerRole', Дивизиональный директор --- 'PartnerHeadRole', Региональный директор --- 'PartnerZoneManagerRole', Зональный директор --- 'PartnerLogisticsRole', Логист --- 'PartnerManagerRole', Директор магазина --- 'PartnerSellerRole', Продавец --- 'PartnerAuxiliaryRole', Вспомогательная роль --- 'PartnerMonitorRole', Оператор контроля --- 'PartnerPayerRole' Плательщик --- 'PartnerCategoryManagerRole' Категорийный менеджер ], *-- zone: (object) { Зона привязки *--- type: (int) 1 - Аккаунт, 2 - Сеть, 3 - Торговая точка, 20 - Теги --- id: (bigint) Внутренний идентификатор торговой точки в системе HEADO(для Аккаунта = 0 ) --- ext_id: (string) Уникальный «Внешний идентификатор торговой точки» из торговой системы предприятия, состоящий из латинских букв или цифр (для Аккаунта = 0) -- } * **-- workPeriod: (object) { Период активности расчета показателя до момента выхода в Архивный статус (передавать период необходимо не позже начала его действия, т.е. заранее) --- from: (date iso8601 Y-m-d), Начало периода (считает с 00 часов указанной даты) --- to: (date iso8601 Y-m-d) Конец периода (Передавать следует именно следующий день, окончания периода) -- } * **-- filters: (object) Объект настроек фильтров показателя (опционально) --- reset: [true,false] - сбросить старые значения фильтра, --- positions: [ { Фильтрация по номенклатурным позициям ---- ext_id: (string(40)), Уникальный «Внешний идентификатор товара» из справочника торговой системы предприятия, состоящий из цифр или латинских букв.Обязательно должен соответствовать внешнему уникальному идентификатору получаемого из чека. ---- name: (string(200)), Название номенклатурной позиции (Будет искать по нему, в случае отсутствия стабильного идентификатора ext_id) ---- price_threshold: (decimal(10,4)), //Цена товара в период проведения акции },.. До 1000 позиций ], **--- categories: [ { ---- name: (string (200)), },.. До 1000 категорий ], --- attributes: [ { Фильтрация по атрибутам чека ---- name: (string(20)), Название атрибута ---- value: (string(10)) Значение атрибута },.. Не более 100 атрибутов ] -- sku_monitor_control: (boolean) Опциональный признак контроля SKU меток для монитора с помощью этого показателя -- sku_pricetag_control: (boolean) Опциональный признак контроля в дисциплинах (true=включен, false=отключен) -- forecast_disable: (boolean) Опциональный признак отключения прогнозов (true=отключены, false=включены) -- format_value: (string) round(#,2) - # - значение, можно использовать функции round, ceil, floor |
} |
Пример запроса kpi.add
Пример ответа kpi.add
kpi.delete
Метод удаляет показатель по внутреннему идентификатору. Список показателей с указанием внутренних идентификаторов можно получить с помощью kpi.list.
При ошибке возвращает код и описание ошибки
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
kpi_id | bigint | Удаляемый идентификатор показателя |
Пример запроса kpi.delete
Пример ответа kpi.delete
kpi.update
POST Web-адрес запроса:
Метод обновляет существующий в аккаунте показатель, в случае успеха возвращает внутренний идентификатор обновленного показателя. Выбор показателя для обновления строго по внутреннему идентификатору, список показателей с указанием внутренних идентификаторов можно получить с помощью kpi.list.
При ошибке возвращает код и описание ошибки
Attention
Состав фильтра показателя формируется в момент вызова метода, не зарегистрированные в HEADO сущности, на которые ссылаются фильтры не будут включены в показатель.
В этом случае, для регистрации сущности, можно использовать метод priceUpdateBatch
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
id | bigint | Прямой идентификатор показателя в системе HEADO (обязателен при отсутствия параметра ext_id) |
ext_id | string(40) | Уникальный «Внешний идентификатор показателя» из торговой системы предприятия, состоящий из латинских букв или цифр |
name | string(200) | Новое название показателя |
order | uint | Новое место в сортировке (опционально). Значение "-1" в определении максимального значения не участвует |
params | object | { // Объект расширенных настроек показателя (опционально) -- status: (int) // 0 - Выключен, 1 - включен, 2 - Архивный (Из архивного статуса показатель не возвращается этим методом) -- showOnDevices: (boolean) // true - Отображать Показатель на устройствах, false - не отображать -- filter_roles: (array of string) [ \ Массив ролей, кто может видеть показатель. Для сброса достаточно передать пустой массив Если параметр НЕ передаётся, то сброса не будет. --- 'PartnerAdminRole', // Админинистратор --- 'PartnerTopManagerRole', // Топ-менеджер --- 'PartnerDivisionManagerRole', // Дивизиональный директор --- 'PartnerHeadRole', // Региональный директор --- 'PartnerZoneManagerRole', // Зональный директор --- 'PartnerLogisticsRole', // Логист --- 'PartnerManagerRole', // Директор магазина --- 'PartnerSellerRole', // Продавец --- 'PartnerAuxiliaryRole', // Вспомогательная роль --- 'PartnerMonitorRole', // Оператор контроля --- 'PartnerPayerRole' // Плательщик --- 'PartnerCategoryManagerRole' // Категорийный менеджер ], -- zone: (object) { // Зона привязки --- type: (int) // 1 - Аккаунт, 2 - Сеть, 3 - Торговая точка, 20 - Теги --- id: (bigint) // Внутренний идентификатор торговой точки в системе HEADO (для Аккаунта = 0 ) --- ext_id: (string) // Уникальный «Внешний идентификатор торговой точки» из торговой системы предприятия, состоящий из латинских букв или цифр (для Аккаунта = 0) -- } * -- workPeriod: (object) { // Период работы показателя до момента выхода в Архивный статус --- from: (date iso8601 Y-m-d), // От --- to: (date iso8601 Y-m-d) // До -- } * -- filters: (object) // Объект настроек фильтров показателя (опционально) --- reset: [true,false] - сбросить старые значения фильтра, --- positions: [ { // Фильтрация по номенклатурным позициям ---- ext_id: (string(40)), // Уникальный «Внешний идентификатор товара» из справочника торговой системы предприятия, состоящий из цифр или латинских букв. Обязательно должен соответствовать внешнему уникальному идентификатору получаемого из чека ---- name: (string(200)), //Название номенклатурной позиции (Будет искать по нему, в случае отсутствия стабильного идентификатора ext_id) ---- price_threshold: (decimal(10,4)), //Цена товара в период проведения акции },.. // До 1000 позиций ], --- categories: [ { ---- name: (string (200)), },.. // До 1000 категорий], --- attributes : [ { // Фильтрация по атрибутам чека ---- name: (string(20)), // Название атрибута ---- value: (string(10)); // Значение атрибута },.. // Не более 100 атрибутов ] ] -- sku_monitor_control: (boolean) // Опциональный признак контроля SKU меток для монитора с помощью этого показателя -- sku_pricetag_control: (boolean) // Опциональный признак контроля в дисциплинах [true=включен, false=отключен] -- forecast_disable: (boolean) // Опциональный признак отключения прогнозов [true=отключены, false=включены] -- format_value: (string) // round(#,2) - # - значение, можно использовать функции round, ceil, floor } |
Пример запроса kpi.update
kpi.setValues
Метод устанавливает значение показателя. До 1000 показателей в одном запросе. Использует для передачи в HEADO значения показателя из внешней системы с возможностью отображения в интерфейсе HEADO. Выбор показателя для установки значения строго по внутреннему идентификатору, список показателей с указанием внутренних идентификаторов можно получить с помощью kpi.list.
При ошибке возвращает код и описание ошибки
Attention
-
Необходимо отправлять итоговые значения за указанный час. Система самостоятельно посчитает итоговые значения за разные часы.
-
В настройках показателя, обязательно включить опцию "Значения из внешнего источника данных"
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
kpis | Array of Objects - Максимум 1000 элементов | [ { --- kpi_id: (bigint) - прямой идентификатор показателя в системе HEADO (параметр игнорируется при наличии kpi_ext_id), --- kpi_ext_id: (string(40)) - Уникальный «Внешний идентификатор показателя» из торговой системы предприятия, состоящий из латинских букв или цифр, --- store_ext_id: (@string) - Уникальный «Внешний идентификатор торговой точки» из торговой системы предприятия, состоящий из латинских букв или цифр, --- ts: (string: ISO 8601 YYYY-MM-DD[Thh:mm]) - Дата/время регистрируемого значения, --- value: (decimal(10,4)) - Значение показателя за указанный час (система агрегирует значения кратные одному часу), --- weight: (decimal(10,4) = 1) - Вес показателя (для корректной работы AVG-показателей, по умолчанию = 1), -- },... ] |
Пример запроса kpi.setValues
kpiGroups.list
Метод возвращает список групп показателей аккаунта.
При ошибке возвращает код и описание ошибки
Параметры запроса:
Пример запроса kpiGroups.list
Пример ответа kpiGroups.list
kpiGroups.add
Метод позволяет создать группу для показателей.
Выбор показателя и группы строго по внутренним идентификаторам:
- Метод kpi.addToGroups - добавляет показатель в группу показателей
- Метод kpi.list - возвращает список идентификаторов и настроек показателей
- Метод kpiGroups.list - возвращает список идентификаторов и настроек групп показателей
При ошибке возвращает код и описание ошибки
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
name | string | Название группы показателей |
order | int(3) | Порядок сортировки группы показателя (чем меньше - тем первее) |
role | string | Системный идентификатор роли (если 0, то все). Список ролей описан в параметрах метода account.create |
Пример запроса kpiGroups.add
Пример ответа kpiGroups.add
kpi.addToGroups
Метод позволяет добавить показатель в существующие группы показателей.
Выбор показателя и группы строго по внутренним идентификаторам:
- Метод kpi.list - возвращает список идентификаторов и настроек показателей
- Метод kpiGroups.list - возвращает список идентификаторов и настроек групп показателей
При ошибке возвращает код и описание ошибки
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
id | bigint | Идентификатор показателя |
groups | bigint | Массив идентификаторов групп |
Пример запроса kpi.addToGroups
kpi.removeFromGroups
Метод позволяет удалить принадлежность показателей из существующих групп показателей.
Выбор показателя и группы строго по внутренним идентификаторам:
- Метод kpi.list - возвращает список идентификаторов и настроек показателей
- Метод kpiGroups.list - возвращает список идентификаторов и настроек групп показателей
При ошибке возвращает код и описание ошибки
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
id | bigint | Идентификатор показателя |
groups | bigint | Массив идентификаторов групп |
Пример запроса kpi.removeFromGroups
Пример ответа kpi.removeFromGroups
Управление планами
store.planSet
Метод устанавливает/удаляет плановые значения торговой точки на нужный период. После установки всех плановых значений, необходимо вызвать метод store.planPublish для публикации плана и актуализации их значений.
При ошибке возвращает код и описание ошибки
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
store_ext_id | string(40) | Уникальный «Внешний идентификатор торговой точки» из торговой системы предприятия, состоящий из латинских букв или цифр |
metric | string(40) | Мнемоника, либо прямой идентификатор правила: - income: Выручка - average: Средний чек - count: Кол-во продаж - category: Выручка по СТМ - complexity: Комлексность чека по кол-ву товаров - p/<идентификатор показателя> - прямой идентификатор показателя в системе HEADO |
plan | DECIMAL(13,4) | - Если >=0, то установка планового значения = plan - Если <0, то удаление |
year | int | Год |
month (необязательный) | int | Месяц, если не указан или =-1, то выставляется план на год |
day (необязательный) | int | День, если не указан или =-1, то выставляется план на месяц, иначе - на день |
Пример запроса store.planSet:
Примеры ответа store.planSet:
store.planSetBatch
Метод устанавливает/удаляет плановые значения торговых точек на нужный период. После установки всех плановых значений, необходимо вызвать метод store.planPublish для публикации плана и актуализации их значений.
При ошибке возвращает код и описание ошибки
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
items | Array of Objects - Максимум 1000 элементов | Объект массива: - store_ext_id (string(40)): - Уникальный «Внешний идентификатор торговой точки» из торговой системы предприятия, состоящий из латинских букв или цифр - kpi_id (decimal(10,4)): - прямой идентификатор показателя в системе HEADO (необязателен при наличии параметра kpi_ext_id) - kpi_ext_id (string(40)): - Уникальный «Внешний идентификатор показателя» из торговой системы предприятия, состоящий из латинских букв или цифр - plan (decimal(10,4)): - - Если >=0, то установка планового значения = plan - - Если <0, то удаление - corr_plan (decimal(12,4)): Корректировка дневного плана - year (uint): - Год - month (tinyint): опционально - Месяц, если не указан или =-1, то выставляется план на год - day (tinyint): опционально - День, если не указан или =-1, то выставляется план на месяц, иначе - на день |
Пример запроса store.planSetBatch
Параметры ответа store.planSetBatch
store.planPublish
Метод публикует планы для актуализаций значений, после их установки методом store.planSet.
При ошибке возвращает код и описание ошибки
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
store_ext_id | string(40) | Уникальный «Внешний идентификатор торговой точки» из торговой системы предприятия, состоящий из латинских букв или цифр |
auto | boolean | - true - Использовать сервисную аналитику распределения по периодам. - false - Не использовать аналитику (равномерное распределение по нижним периодам) |
year | number* | Год (e.g. "2024") - опционально |
month | number* | Месяц (e.g. 1) - опционально |
Пример *запроса store.planPublish
Параметры ответа store.planPublish
Отчеты по торговой точке
reports
Метод возвращает значения показателей по торговой точке за указанный период.
При ошибке возвращает код и описание ошибки
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
id | string(20) | 'salesplans' - Получение отчёта о планах Торговой точки |
filter | obgect | { "storeId": /* Уникальный «Внешний идентификатор торговой точки» из торговой системы предприятия, состоящий из латинских букв или цифр */ } |
range | obgect | { "from": "Y-m-d" /Дата от/, "to": "Y-m-d" /* Дата до */ } |
Пример запроса reports
Пример ответа reports
Управление пользователями
staffManning
Метод загружает штатное расписания сотрудников.
При ошибке возвращает код и описание ошибки
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
items | Array of Objects | - items: [ { -- store_ext_id (string(40)) - Уникальный «Внешний идентификатор торговой точки» из торговой системы предприятия, состоящий из латинских букв или цифр. -- staff: { fio (string(60)), - ФИО Сотрудника ext_id (string(40)) (опционально), - Уникальный «Внешний идентификатор сотрудника» в торговой системе предприятия, состоящий из цифр или латинских букв }, -- date: , - Дата записи по ISO8604 (Y-m-d) -- workhours: [ { // Список рабочих периодов в указанный рабочий день --- from: <ЧЧ:ММ>, --- to: <ЧЧ:ММ> --},... ], -- breaks: (опционально) [ { // Периоды перерывов в указанный рабочий день. В случае отсутствия, система будет восстанавливать перерывы между рабочими периодами. --- from: <ЧЧ:ММ>, --- to: <ЧЧ:ММ> --},... ], },... - ] |
Пример запроса staffManning
account.create
account.update
Данные методы создают и обновляют аккаунт пользователя в системе для доступа в ЛК HEADO.
При ошибке возвращает код и описание ошибки
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
login | string(200) | Email. Обязателен при создании аккаунта и при отсутсвии ext_id (ид сотрудника) |
ext_id | string(40) | (Опционально) Уникальный идентификатор сотрудника. Обязательно при обновлении, если отсутствует Login |
data | object | { // Все поля опциональны (но как минимум одно должно быть указано) -- name: (string(200)), -- phone: (string(15)), -- email: (string(200)), -- ext_id (string(40)), // Новый уникальный идентификатор сотрудника -- status: ([ 0, 1, 2 ]), // 0 - Not active, 1 - Active, 2 - Block -- password: (string(128)),с -- manager_login: (string(200)), // Логин назначаемого менеджера -- role: ([ --- 'PartnerTopManagerRole', // Топ-менеджер --- 'PartnerDivisionManagerRole', // Дивизиональный директор --- 'PartnerHeadRole', // Региональный директор --- 'PartnerZoneManagerRole', // Зональный директор --- 'PartnerLogisticsRole', // Логист --- 'PartnerManagerRole', // Директор магазина --- 'PartnerSellerRole', // Продавец --- 'PartnerAuxiliaryRole', // Вспомогательная роль --- 'PartnerMonitorRole', // Оператор контроля --- 'PartnerPayerRole' // Плательщик --- 'PartnerCategoryManagerRole' // Категорийный менеджер -- meta (опционально) Произвольная структура данных, длиной до 32к символов для сквозного хранения слабоупорядоченных структур. -- access: (boolean), // allow - доступ разрешен и deny - доступ запрещен ])} |
Пример запроса account.create ( login [, data ] ):
Пример ответа account.create ( login [, data ] ):
account.list
Данный метод возвращает список аккаунтов пользователей в системе HEADO с возможностью их фильтрации по ролям:
- 'PartnerTopManagerRole', - Топ-менеджер
- 'PartnerDivisionManagerRole', - Дивизиональный директор
- 'PartnerHeadRole', - Региональный директор
- 'PartnerZoneManagerRole', - Зональный директор
- 'PartnerLogisticsRole', - Логист
- 'PartnerManagerRole', - Директор магазина
- 'PartnerSellerRole', - Продавец
- 'PartnerAuxiliaryRole', - Вспомогательная роль
- 'PartnerMonitorRole', - Оператор контроля
- 'PartnerPayerRole' - Плательщик
- 'PartnerCategoryManagerRole' - Категорийный менеджер
При ошибке возвращает код и описание ошибки
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
filter | object | Все поля опциональны (но как минимум одно должно быть указано) -- role: имя роли -- network_ext_id: Внешний идентификатор Сети -- limit: установленный лимит --- offset: смещение выводимых записей --- count: количество выводимых записей (по умолчанию 100) |
Пример запроса account.list (filter):
Пример ответа account.list (filter):
account.assignZones
account.removeZones
Данные методы назначают и удаляют зоны видимости аккаунта пользователя к торговым точкам в системе HEADO
При ошибке возвращает код и описание ошибки
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
login | string(200) | |
zones | object | [{ -- type: ([account, network, tag, address, category]), // Тип зоны: account: Аккаунт, network: Сеть, tag: Тег, address: Торг.точки, category: категория Сети -- id: (string(200)), // Внутренний идентификатор торговой точки в системе HEADO. Отсутствует у account -- ext_id: (string(40)), // Уникальный «Внешний идентификатор торговой точки» из торговой системы предприятия, состоящий из латинских букв или цифр. Может быть использовано с [network,address] -- control: (boolean), // (опционально) true(1), false(0) состояние зоны "Под контролем". }] |
Примеры запросов account.assignZones(login, zones)
Пример ответа account.assignZones(login, zones)
account.sendInvite
Данный метод позволяет выслать почтовые приглашения на активацию аккаунта пользователей в системе HEADO. Список аккаунтов можно получить, через метод account.list
При ошибке возвращает код и описание ошибки
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
login | string(200) | Email - логин |
data | unsigned int | Добавленное время экспирации приглашения в секундах (не больше 30 дней) |
Пример запроса account.sendInvite(login, expiry)
Пример ответа account.sendInvite(login, expiry)