DEVICE API
Общие положения
Для взаимодействия с Device API требуется ключ доступа (auth_key) типа терминала: "ККМ-сервис 2.0" или "Промежуточный сервер".
Получить auth_key можно 2 способами: - через ЛК HEADO - через метод setCashbox в составе Management API.
Обращение к Device API выполняется через URI:
- https://api.heado.ru/device/
- https://gamma.heado.ru/device/
(для ключей домена gamma)
Уровень доступа к данным, ограничен на уровне устройства и торговой точки, которому принадлежит
Регистрация продаж/возвратов
purchaseRegisterBatch;
purchaseRegisterBatch(receipts)
POST Web-адрес запроса:
- https://api.heado.ru/device/<Auth_Key>
- https://gamma.heado.ru/device/<Auth_Key> (для ключей домена gamma)
Метод предназначен для пакетной загрузки чеков продажи или возврата.
Максимальный размер пакета - 100 чеков.
В случае успешной загрузки возвращает количество загруженных чеков и время их регистрации в HEADO.
При ошибке возвращает код и описание ошибки
Attention
Для регистрации чеков возврата параметр **amount и значения *value** атрибутов чека передавать с отрицательным значением.*
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
receipts | 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)) : ФИО продавца для конкретной позиции (необходим для мотивации продавцов из разнных отделов). -- category (string(2000)) : Иерархическая структура категорий/подкатегорий товара и дополнительные метки. Структура передается последовательно, начиная с первого уровня с использованием разделителя '&&'. Общая длина строки 2000 символов (длина каждой категории/метки не более 120 символов) -- extId (string(40)) : Уникальный «Внешний идентификатор товара» из справочника торговой системы предприятия, состоящий из цифр или латинских букв },.. ] - attributes (array) : [ Массив свободных атрибутов чека (карты лояльности, платёжные системы и т.п.) для дополнительной аналитики.{ -- name (string(20)) : Название атрибута (английские мнемоники), -- value (decimal(12,4)) : Значение атрибута (<0 при возврате) },.. ] - poskey Ключ маппинга к устройству и торговой точки (опционально, при его отсутствии чек будет зарегистрирован по ключу авторизации) -- Общий формат: @store_ext_id/pos_ext_id --- store_ext_id (string(40)) - Уникальный «Внешний идентификатор торговой точки» из торговой системы предприятия, состоящий из латинских букв или цифр --- pos_ext_id (string(64))- «Внешний идентификатор устройства» (кассы/сервера) из торговой системы предприятия, состоящий из латинских букв или цифр -- Пример: @111/123 |
Рекомендуемые атрибуты чека:
Возможно использовать свои названия под разработку доп. KPI.
Пример запроса purchaseRegisterBatch
purchaseRegister;
purchaseRegister( token, amount, cart [, poskey ] )
POST Web-адрес запроса:
- https://api.heado.ru/device/<Auth_Key>
- https://gamma.heado.ru/device/<Auth_Key> (для ключей домена gamma)
Отчёты по торговой точке
reports;
reports(id [, params ] )
POST Web-адрес запроса:
- https://api.heado.ru/device/<Auth_Key>
- https://gamma.heado.ru/device/<Auth_Key> (для ключей домена gamma)
Метод предназначен для получения отчётов по торговой точке к которой относится использованный в запросе auth_key.
При ошибке возвращает код и описание ошибки.
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
id | string(20) | - 'metrics' - Получение общего отчёта "Показатели" (страница 4 инструкции) - 'bysellers' - Получение отчёта "Продавцы" (страница 5 инструкции) - 'bytradepoints' - Получение отчёта "Рейтинг торговых точек" (страница 6 инструкции) |
params | object | { "filter": { } , "range" : [ { "type": |
Пример запроса reports(metrics[, params ]):
Пример ответа reports(metrics[, params ])
Пример запроса reports(bysellers[, params ])
Пример ответа reports(bysellers[, params ])
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 |
|
Передача фактов торговой точки
regısterEvent
regısterEvent (name,ts [,params])
POST Web-адрес запроса:
- https://api.heado.ru/device/<Auth_Key>
- https://gamma.heado.ru/device/<Auth_Key> (для ключей домена gamma)
Метод предназначен для отправки сигнала о событии: открытие/закрытие торговой точки
При ошибке возвращает код и описание ошибки.
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
name | string | ‘shift/start’ сигнал открытия смены ‘shift/stop’ сигнал закрытия смены |
ts | string | ‘shift/start’, ‘Y-m-d H:i:s’ /Локальное время открытия смены/ ‘shift/stop’, ‘Y-m-d H:i:s’ /Локальное время закрытия смены/ |
params | string | в params можно передавать массив метаданных: - seller : string ФИО - localtimezone: offset ± hours |
Пример запроса registerEvent (сигнал открытия)
Управление планами
planSet;
planSet( metric, plan, year [, month, day, day_corr_plan ] )
POST Web-адрес запроса:
- https://api.heado.ru/device/<Auth_Key>
- https://gamma.heado.ru/device/<Auth_Key> (для ключей домена gamma)
Метод устанавливает/удаляет плановые значения торговой точки к которой относится использованный в запросе auth_key.
При ошибке возвращает код и описание ошибки.
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
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, то выставляется план на месяц, иначе - на день |
day_corr_plan (необязательный) | int | Коррекционное значение плана на день (если указан день) |
Параметры ответа
planPublish;
planPublish( auto )
POST Web-адрес запроса:
- https://api.heado.ru/device/<Auth_Key>
- https://gamma.heado.ru/device/<Auth_Key> (для ключей домена gamma)
Метод публикует установленные плановые значения торговой точки к которой относится использованный в запросе auth_key.
При ошибке возвращает код и описание ошибки.
Параметры запроса:
NAME | TYPE | DESCRIPTION |
---|---|---|
auto | boolean | - true - Использовать сервисную аналитику распределения по периодам. - false - Не использовать аналитику (равномерное распределение по нижним периодам) |
Параметры ответа: