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

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

Адрес

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

Ключи и роли

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

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

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

Методы

МетодПутьРольНазначение
GET/health—Проверка доступности, без ключа
GET/tokenspanelСписок организаций и сроки их токенов True API
GET/tokens/current?client=…panelДействующий токен организации
POST/tokens/rotate?client=…panelОбновить токен организации
POST/kegs/connectpanelПодключить кеги к оборудованию для розлива
GET/documents/{doc_id}panelСтатус документа подключения кег (CONNECT_TAP)
GET/kegs?client=…retailКеги на учёте: объём, продано, остаток, срок
GET/kegs/{cis}retailСведения по одной кеге
GET/kegs/rests/fiasretailОстаток разливного по ФИАС-адресам
POST/kegs/trackpanelПоставить кеги на учёт
DELETE/kegs/{cis}panelСнять кегу с учёта
GET/codes/check?cis=…retailПроверка кода маркировки и статус продажи
POST/codes/checkretailПроверка списка до 1000 кодов

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

Пример

curl -k -H "X-Api-Key: <ключ>" "https://<адрес>:8443/api/v1/codes/check?cis=<код>"

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

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

Поля запросов и ответов каждого метода, коды ошибок и журнал запросов описаны в справочнике, который поставляется вместе с программой (файл README.txt в архиве, раздел «Входящий API»). Текущая версия программы.

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

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