Раздел API
СКУД и турникеты
Модуль «СКУД и турникеты»: открыть проход (реле Modbus, USB-реле, контроллер по HTTP), пропуска после продажи — коды билетов с числом проходов и сроком, проверка кода по списку агента или на сервере программы, журнал проходов. Коды со сканеров и карты со считывателей, привязанных к проходу, проверяются сами; событие access.passage. Нужен модуль access-control в ключе (кроме эмулятора).
| GET | /api/v1/access/passes | Пропуска |
| POST | /api/v1/access/passes | Добавить пропуска |
| DELETE | /api/v1/access/passes | Удалить пропуска |
| POST | /api/v1/access/gates/{number}/open | Открыть проход |
| POST | /api/v1/access/check | Проверить код и открыть |
| GET | /api/v1/access/gates | Проходы |
| GET | /api/v1/access/events | Журнал проходов |
| DELETE | /api/v1/access/passes/{code} | Удалить пропуск |
Пропуска#
/api/v1/access/passesПоследние добавленные; code — один пропуск
Параметры
| Имя | Где | Тип | Описание |
|---|---|---|---|
code | query | string | |
limit | query | integer int32 |
Ответ 200 application/json
Поля · PassList
passesмассив Pass10 полей · Pass
codestringlabelstringusesinteger int32usedinteger int32validFromstring date-timevalidUntilstring date-timegatesмассив integer int32orderstringcreatedAtstring date-timelastUsedAtstring date-time
Ошибки — problem+json с полем code, см. коды ошибок.
Пример запроса
curl 'http://localhost:7790/api/v1/access/passes'curl 'https://cloud.hw-connector.ru/agent/api/v1/access/passes' \
-H 'X-Api-Key: hwk_…' \
-H 'X-Device-Id: 42'Добавить пропуска#
/api/v1/access/passesПосле продажи — коды билетов: {"passes":[{"code":"…","label":"Ряд 5 место 12","uses":1, "validUntil":"2026-11-05T21:00:00Z","gates":[1,2],"order":"A-1001"}]}. Тот же код заменяет прежний. До 10 000 за раз
Тело запроса application/json обязательное
Поля · PassList
passesмассив Pass10 полей · Pass
codestringlabelstringusesinteger int32usedinteger int32validFromstring date-timevalidUntilstring date-timegatesмассив integer int32orderstringcreatedAtstring date-timelastUsedAtstring date-time
{
"passes": [
{
"code": "string",
"label": "string",
"uses": 1,
"used": 1,
"validFrom": "2026-11-01T19:00:00+03:00",
"validUntil": "2026-11-01T19:00:00+03:00",
"gates": [
1
],
"order": "string",
"createdAt": "2026-11-01T19:00:00+03:00",
"lastUsedAt": "2026-11-01T19:00:00+03:00"
}
]
}Ответ 200 application/json
Поля · Saved
savedinteger int32totalinteger int32
Ошибки — problem+json с полем code, см. коды ошибок.
Пример запроса
curl -X POST 'http://localhost:7790/api/v1/access/passes' \
-H 'Content-Type: application/json' \
--data '{"passes":[{"code":"string","label":"string","uses":1,"used":1,"validFrom":"2026-11-01T19:00:00+03:00","validUntil":"2026-11-01T19:00:00+03:00","gates":[1],"order":"string","createdAt":"2026-11-01T19:00:00+03:00","lastUsedAt":"2026-11-01T19:00:00+03:00"}]}'curl -X POST 'https://cloud.hw-connector.ru/agent/api/v1/access/passes' \
-H 'X-Api-Key: hwk_…' \
-H 'X-Device-Id: 42' \
-H 'Content-Type: application/json' \
--data '{"passes":[{"code":"string","label":"string","uses":1,"used":1,"validFrom":"2026-11-01T19:00:00+03:00","validUntil":"2026-11-01T19:00:00+03:00","gates":[1],"order":"string","createdAt":"2026-11-01T19:00:00+03:00","lastUsedAt":"2026-11-01T19:00:00+03:00"}]}'Удалить пропуска#
/api/v1/access/passesorder — все пропуска заказа (возврат заказа); без него — все
Параметры
| Имя | Где | Тип | Описание |
|---|---|---|---|
order | query | string |
Ответ 200 application/json
Поля · Deleted
deletedinteger int32
Ошибки — problem+json с полем code, см. коды ошибок.
Пример запроса
curl -X DELETE 'http://localhost:7790/api/v1/access/passes'curl -X DELETE 'https://cloud.hw-connector.ru/agent/api/v1/access/passes' \
-H 'X-Api-Key: hwk_…' \
-H 'X-Device-Id: 42'Открыть проход#
/api/v1/access/gates/{number}/openБез проверки кода: «открыть после продажи», кнопка охранника. Ответ — запись журнала; событие access.passage. Без ключа модуля — 402 LICENSE_REQUIRED (кроме эмулятора)
Параметры
| Имя | Где | Тип | Описание |
|---|---|---|---|
numberобязательный | path | integer int32 |
Тело запроса application/json
Поля · OpenRequest
directionstringpulseMsinteger int32reasonstring
{
"direction": "string",
"pulseMs": 1,
"reason": "string"
}Ответ 200 application/json
Поля · Passage
atstring date-timegateinteger int32gateNamestringdirectionstringcodestringgrantedbooleanreasonstringmessagestringsourcestringlabelstringorderstringremaininginteger int32
Ошибки — problem+json с полем code, см. коды ошибок.
Пример запроса
curl -X POST 'http://localhost:7790/api/v1/access/gates/1/open' \
-H 'Content-Type: application/json' \
--data '{"direction":"string","pulseMs":1,"reason":"string"}'curl -X POST 'https://cloud.hw-connector.ru/agent/api/v1/access/gates/1/open' \
-H 'X-Api-Key: hwk_…' \
-H 'X-Device-Id: 42' \
-H 'Content-Type: application/json' \
--data '{"direction":"string","pulseMs":1,"reason":"string"}'Проверить код и открыть#
/api/v1/access/checkКод, который программа прочитала сама (камера киоска, свой сканер). Проверка — как у считывателей прохода: по списку агента или на сервере программы. granted: false и reason — почему нет (UNKNOWN, USED, EXPIRED…)
Тело запроса application/json обязательное
Поля · CheckRequest
typestringзначения:SELLSELL_RETURNBUYBUY_RETURNregisterIdinteger int32- от 1
3 поля · CodeRequest
codestringобязательноеот 1priceinteger int64fractionstring
{
"type": "SELL",
"registerId": 1,
"codes": [
{
"code": "string",
"price": 1,
"fraction": "string"
}
]
}Ответ 200 application/json
Поля · Passage
atstring date-timegateinteger int32gateNamestringdirectionstringcodestringgrantedbooleanreasonstringmessagestringsourcestringlabelstringorderstringremaininginteger int32
Ошибки — problem+json с полем code, см. коды ошибок.
Пример запроса
curl -X POST 'http://localhost:7790/api/v1/access/check' \
-H 'Content-Type: application/json' \
--data '{"type":"SELL","registerId":1,"codes":[{"code":"string","price":1,"fraction":"string"}]}'curl -X POST 'https://cloud.hw-connector.ru/agent/api/v1/access/check' \
-H 'X-Api-Key: hwk_…' \
-H 'X-Device-Id: 42' \
-H 'Content-Type: application/json' \
--data '{"type":"SELL","registerId":1,"codes":[{"code":"string","price":1,"fraction":"string"}]}'Проходы#
/api/v1/access/gatesТурникеты, калитки и замки рабочего места со считывателями и способом проверки кодов
Ответ 200 application/json
Поля · GateList
licensedbooleanpassesinteger int32gatesмассив GateInfo8 полей · GateInfo
numberinteger int32namestringtypestringactivebooleandirectionsмассив stringreadersмассив stringcheckstringinfoсловарь → любое значение
Ошибки — problem+json с полем code, см. коды ошибок.
Пример запроса
curl 'http://localhost:7790/api/v1/access/gates'curl 'https://cloud.hw-connector.ru/agent/api/v1/access/gates' \
-H 'X-Api-Key: hwk_…' \
-H 'X-Device-Id: 42'Журнал проходов#
/api/v1/access/eventsПоследние попытки, новые первыми, до 1000; с перезапуском агента журнал очищается
Параметры
| Имя | Где | Тип | Описание |
|---|---|---|---|
limit | query | integer int32 |
Ответ 200 application/json
Массив · Passage
atstring date-timegateinteger int32gateNamestringdirectionstringcodestringgrantedbooleanreasonstringmessagestringsourcestringlabelstringorderstringremaininginteger int32
Ошибки — problem+json с полем code, см. коды ошибок.
Пример запроса
curl 'http://localhost:7790/api/v1/access/events'curl 'https://cloud.hw-connector.ru/agent/api/v1/access/events' \
-H 'X-Api-Key: hwk_…' \
-H 'X-Device-Id: 42'Удалить пропуск#
/api/v1/access/passes/{code}Возврат билета
Параметры
| Имя | Где | Тип | Описание |
|---|---|---|---|
codeобязательный | path | string |
Ответ 200
Без тела.
Ошибки — problem+json с полем code, см. коды ошибок.
Пример запроса
curl -X DELETE 'http://localhost:7790/api/v1/access/passes/3f6c1d9e-1b2a-4c55-9e0d-6a1f0c2b7d11'curl -X DELETE 'https://cloud.hw-connector.ru/agent/api/v1/access/passes/3f6c1d9e-1b2a-4c55-9e0d-6a1f0c2b7d11' \
-H 'X-Api-Key: hwk_…' \
-H 'X-Device-Id: 42'