API#
Документ фиксирует baseline API для беспилотного весового контура.
1. Общие правила#
Статус:
design baselineПрефикс:
/api/v1Envelope:
item/list + meta.request_id/meta.timestampИзоляция:
tenant_id,industry_code=weighbridge,site_id,lane_idANPR policy:
prototype: primary ANPR в
iT-2110-015700;production: primary ANPR в
iT-2210, панель получает готовый результат.
Identity policy:
QR/RFID enrich карточку, но не блокируют автоматический цикл взвешивания.
2. Группы endpoint-ов#
2.1. Weigh Session#
GET /api/v1/weighbridge-session/schemeGET /api/v1/weighbridge-session/listGET /api/v1/weighbridge-session/offline-queuePOST /api/v1/weighbridge-session/commands/detectPOST /api/v1/weighbridge-session/commands/complete-phasePOST /api/v1/weighbridge-session/commands/interlockPOST /api/v1/weighbridge-session/commands/erp-sync
List-фильтры phase-1:
q,vehicle_plate,trip_token,status,lane_id,direction,operation_mode,limit,offset
Ключевые команды:
detect:создает или продолжает
weigh_sessionпо въезду или ANPR;
complete-phase:записывает
tareилиgross, сохраняет evidence refs и пересчитывает состояние;
interlock:фиксирует состояние шлагбаума, светофора и связанных gate-контуров;
erp-sync:публикует очередь синхронизации карточек во внешнюю систему.
2.2. Driver Identity#
GET /api/v1/weighbridge-identity/schemeGET /api/v1/weighbridge-identity/listPOST /api/v1/weighbridge-identity/commands/resolvePOST /api/v1/weighbridge-identity/commands/attach
Правило:
resolveдопускается вызывать как до первой фазы, так и после нее;отсутствие
resolveне блокирует automatic close.
2.3. Media Evidence#
GET /api/v1/weighbridge-media/schemeGET /api/v1/weighbridge-media/listPOST /api/v1/weighbridge-media/commands/ingest
Правило media policy:
gross: верхняя камера обязательна;tare: верхняя камера обязательна только если кузов не пустой или сессия помечена как спорная/manual review.ingestобязан возвращатьstorage_refисходного evidence и при наличииpreview_refдля UI/handover.
2.4. Weigh Alarms#
GET /api/v1/weighbridge-alarms/schemeGET /api/v1/weighbridge-alarms/listPOST /api/v1/weighbridge-alarms/commands/publishPOST /api/v1/weighbridge-alarms/commands/ack
Базовые alarm codes phase-1:
weighbridge_weight_unstableweighbridge_duplicate_entryweighbridge_partial_exitweighbridge_anpr_mismatchweighbridge_camera_unavailableweighbridge_scale_timeout
3. Пример payload#
3.1. POST /api/v1/weighbridge-session/commands/complete-phase#
{
"item": {
"session_id": "wbs-2026-03-10-0001",
"phase": "gross",
"weight_kg": 28420,
"stability_state": "stable",
"plate": "A123AA797",
"camera_media_ids": ["med-plate-out-001", "med-cargo-top-001"],
"captured_at": "2026-03-10T12:15:00Z"
}
}
3.2. POST /api/v1/weighbridge-identity/commands/resolve#
{
"item": {
"session_id": "wbs-2026-03-10-0001",
"rfid_uid": "04AABBCCDD",
"qr_payload": "trip=TR-2026-00045;driver=DRV-1007",
"vehicle_plate": "A123AA797"
}
}
3.3. POST /api/v1/weighbridge-alarms/commands/publish#
{
"item": {
"session_id": "wbs-2026-03-10-0001",
"alarm_code": "weighbridge_anpr_mismatch",
"severity": "high",
"message": "plate mismatch between entry and gross phase"
}
}
4. Принятые правила цикла#
partial session допустима: карточка может быть сохранена после одной фазы и позже закрыта второй;
управление шлагбаумом и светофором входит в базовый автоматический контур через
iU-6130/iU-6135;completedдопустим только при наличии обязательного evidence и двух фаз;manual_reviewиспользуется как controlled fallback вместо silent reject;rejectedприменяется только по явному review-решению и не должен выставляться автоматически при отсутствии evidence;повторный
detectв пределах активного lane/cycle context обязан вернуть существующийsession_idи зафиксировать duplicate condition без создания второй карточки;offline-queueхранит session/media/alarm entities до подтвержденного sync и не должен порождать duplicate session после recovery.
5. Первая реализационная очередь#
В phase-1 обязательны:
weighbridge-session/scheme|list|offline-queue|detect|complete-phase|interlock|erp-syncweighbridge-identity/resolve|attachweighbridge-media/ingestweighbridge-alarms/publish|ack
Во phase-1 не требуется:
сложная ERP-оркестрация beyond queue/export;
авто-классификация груза beyond basic
cargo_top;сложная пропускная логика по расписаниям.