Локальный API программы

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

Адрес

https://<адрес-компьютера>:8443/api/v1
  • В новой установке API выключен: включите «Настройки» → «Входящий API» → «Принимать запросы от панели и магазинов» и перезапустите программу.
  • Порт по умолчанию — 8443. Формат — JSON в UTF-8, поля в snake_case. С версии 2.2.1 подключение кег и постановка на учёт отклоняют поля с другими именами (например, connectDate) ошибкой 400, а не пропускают их молча.
  • Сертификат самоподписанный: клиент не проверяет цепочку, а закрепляет открытый ключ сертификата (pinning).
  • API рассчитан на локальную сеть или VPN. Не открывайте его в интернет.

Ключи и роли

Каждый запрос, кроме GET /health, передаёт ключ в заголовке X-Api-Key. Ключи хранятся в файле api_keys.json рядом с программой; при первом открытии окна ключей файл создаётся со случайными ключами. Для каждого ключа задаются роль, доступные организации и, при необходимости, разрешённые IP-адреса.

  • panel — все методы: токены, подключение и учёт кег, состояние документов, проверка кодов.
  • retail — чтение кег и остатков и проверка кодов, только по перечисленным организациям.

Методы, которые обращаются в ГИС МТ, работают только для организаций с действующим правом (пробный период или оплаченная подписка организации в кабинете). Без права такие запросы отклоняются с причиной (403 license_denied, подробности — в руководстве).

Лимиты: 120 запросов в минуту на ключ panel, 60 — на ключ retail; после 30 неудачных попыток аутентификации в минуту адрес временно блокируется (ответ 429 с Retry-After).

Методы

Пути указаны от базового адреса. Справочник версии 2.2.0: 13 методов, 14 HTTP-операций с HEAD /health.

МетодНазначениеРоль ключаКарточка
GET, HEAD /healthПроверка доступности. Доступность API, версия программы и среда ГИС МТбез ключаПараметры, ответы и ошибки
GET /tokensОрганизации и состояние токенов. Организации программы и состояние токенов (без значений токенов)panelПараметры, ответы и ошибки
GET /tokens/currentДействующий токен организации. Действующий UUID-токен организации; получает новый, если до конца меньше 5 минpanelПараметры, ответы и ошибки
POST /tokens/rotateПеревыпустить токен. Принудительный перевыпуск токена организацииpanelПараметры, ответы и ошибки
POST /kegs/connectПодключить кеги к оборудованию (CONNECT_TAP). Подписать и отправить в ГИС МТ документ CONNECT_TAP (подключение кег к оборудованию)panelПараметры, ответы и ошибки
GET /documents/{doc_id}Статус документа CONNECT_TAP. Статус документа CONNECT_TAPpanelПараметры, ответы и ошибки
GET /kegsКеги на учёте. Кеги на учёте программыretail и panelПараметры, ответы и ошибки
GET /kegs/{cis}Одна кега или сведения ГИС МТ о коде. Кега на учёте с last_info; refresh=true — обновить из ГИС МТ; не на учёте + client — живой запрос в ГИС МТretail и panelПараметры, ответы и ошибки
GET /kegs/rests/fiasОстатки разливного по адресам ФИАС. Остатки разливного по адресам ФИАС: адрес -> товар -> кегиretail и panelПараметры, ответы и ошибки
POST /kegs/trackПоставить кеги на учёт. Поставить на учёт программы кеги, уже подключённые в ГИС МТpanelПараметры, ответы и ошибки
DELETE /kegs/{cis}Снять кегу с учёта. Снять кегу с учёта программыpanelПараметры, ответы и ошибки
GET /codes/checkПроверка кода маркировки. Сведения ГИС МТ об одном коде и статус продажиretail и panelПараметры, ответы и ошибки
POST /codes/checkПроверка списка кодов. То же для списка до 1000 кодовretail и panelПараметры, ответы и ошибки

Параметр client — название организации, как оно задано в профиле программы. Коды маркировки принимаются в любом распространённом виде: с разделителем GS, в скобочной записи, с префиксом сканера.

Пример

Pin сертификата — в окне программы «⋯» → «Сертификат и подключение API…» (там же адрес API и готовая команда). Проверка доступности, без ключа:

curl.exe --insecure --pinnedpubkey "sha256//<pin из окна программы>" https://localhost:8443/api/v1/health

Чтение с ключом — организации и состояние токенов (ключ с ролью panel). Значение ключа храните в файле mge-api-key.txt строкой X-Api-Key: <ключ>, а не в командной строке:

curl.exe --insecure --pinnedpubkey "sha256//<pin>" -H @mge-api-key.txt https://localhost:8443/api/v1/tokens

--insecure выключает только проверку цепочки самоподписанного сертификата и допустим только вместе с --pinnedpubkey: без закрепления соединение не защищено от подмены сервера. С другого компьютера вместо localhost — адрес из вкладки «API-журнал». Сертификат и закрепление.

Быстрый старт в руководстве — следующие шаги и примеры для PowerShell и 1С.

Ошибки возвращаются в JSON с кодом и описанием: 400 — некорректный запрос, 401 — нет или неверный ключ, 403 — нет доступа к организации или нет права организации (license_denied), 429 — превышен лимит, 502/503 — ошибка ГИС МТ, подписи или нет токена.

Полный справочник

Руководство интегратора — подключение и закрепление сертификата, карточка каждого метода с полями, ошибками и примерами, повторы и длительные операции, примеры cURL, PowerShell и 1С. Версия справочника по умолчанию выбирается по версии программы на странице загрузок.

На странице загрузок — программа версии 2.1.0. Справочника этой версии нет, по умолчанию показан справочник 2.2.0 — самой ранней из описанных версий; методы и поля более ранних версий могут отличаться.

  • Версия 2.2.1 подготовлено к выпуску — на странице загрузок этой версии пока нет
  • Версия 2.2.0 подготовлено к выпуску — на странице загрузок этой версии пока нет (по умолчанию)

Вошедшим в личный кабинет тот же справочник с быстрым стартом доступен в разделе «API и документация».

API приёма чеков

Отдельный серверный API для передачи чеков продаж из 1С, ОФД и других систем (для актов списания ЕГАИС) ещё не опубликован. Его описание появится в этом разделе вместе с запуском; локальный API программы он не заменяет.