Skip to content

Открыть ячейку ​

POST /v1/terminals/{code}/cells/{number}/open

Отправляет постамату команду открыть дверцу. Нужен ключ с правом записи.

Ответ приходит раньше, чем открывается дверца. Команда уходит на машину через брокер, машина получает её и отвечает событием — поэтому метод отдаёт 202 Accepted, а не 200. Говорить человеку «открыто» по этому ответу нельзя: он будет стоять перед закрытой дверцей. Что произошло на самом деле, показывает статус команды.

Параметры адреса ​

ПараметрТипОписание
codeстрокаКод постамата — тот, что указан в договоре и на самой машине
numberчислоНомер ячейки на фасаде

Тело запроса ​

ПолеТипОбязательноеОграниченияОписание
reasonстроканетдо 200 знаковЗачем открыли.
ttl_secondsчислонетот 10, до 300Сколько секунд команда действительна.

reason. Сохраняется в журнале команд и в движении товара. Поле не обязательное, но заполнять его стоит: по журналу без причины нельзя понять, была ли это выдача заказа или проверка замков.

ttl_seconds. Верхняя граница не для красоты: команда открытия, доставленная через час, — это открытая дверца в пустом помещении. Больше пяти минут ждать нечего, постамат на связи отвечает за секунды.

Пример запроса ​

bash
curl -X POST 'https://api.tetrabox.ru/v1/terminals/postamat-01/cells/13/open' \
  -H 'Authorization: Bearer tbx_live_7f3c9a1e2b8d4c5f6a0e9d8c7b6a5f4e3d2c1b0a' \
  -H 'Content-Type: application/json' \
  -d '{"reason":"выдача заказа 4417","ttl_seconds":60}'

Ответ ​

Ответ 202 Accepted:

json
{
  "command_id": "01JA7F3K9P2QWERTYUIOPASDFG",
  "status": "sent",
  "expires_at": "2026-10-10T09:15:22.000Z"
}

Поля ответа ​

ПолеОписание
command_idИдентификатор команды. По нему смотрят, что с ней стало
statussent — ушла на постамат, failed — брокер недоступен
expires_atДо какого момента команда действительна

Ошибки ​

КодМашинный кодКогда
400bad_requestтело не прошло проверку: смотрите detail
401unauthorizedключ не передан, отозван либо неверен
403insufficient_scopeключу можно только читать — нужен ключ с правом записи
404terminal_not_foundпостамата нет либо он принадлежит другой компании
404cell_not_foundячейки с таким номером нет у этого постамата
409cell_lockedячейка заблокирована оператором: в detail причина
409cell_serviceячейка служебная — открывается только нашим оператором
409terminal_offlineпостамат не на связи: в detail время последней связи

Формат тела отказа одинаков у всех методов — Коды ошибок.

Почему отказ при «не на связи» ​

Команда молчащей машине не ставится в очередь и не доставляется позже: открытая дверца в пустом помещении через час — это не «запоздалая выдача», а оставленный без присмотра ящик. Поэтому сервер отвечает 409 сразу, а не делает вид, что команда принята.

Из этого следует правило для вашего приложения: перед открытием проверяйте online у постамата и показывайте человеку состояние машины, а не кнопку, которая отдаст ошибку.

Идемпотентность ​

Повторный запрос создаёт новую команду: у открытия нет ключа идемпотентности, потому что «открыть ещё раз» — осмысленное действие (дверцу захлопнули, человек не успел). Если вам нужно не допустить двойного открытия, храните command_id у себя и проверяйте его статус, прежде чем слать второй запрос.

Вопросы по интеграции: info@tetrabox.ru