Отменить или отозвать заказ заказчика
Стенд по умолчанию — test. Сценарий изменяет данные. Порядок работы для агента.
Нужны идентификатор заказа и доступ к нему от имени заказчика. Перед записью на рабочем стенде получите подтверждение пользователя. По возможности согласуйте отзыв исполняемого заказа с исполнителем.
Получите карточку через POST /api/orders/v0/transferOrder/getFlatForCustomer с идентификатором в data.exactOrderIds. Выберите нужный заказ в data.orders и проверьте его status. Если карточки нет, остановитесь и уточните заказ или организацию.
Отменить черновик
Если заказ находится в draft, получите причины через GET /api/dicts/order/v0/reasonOrderCancel. Согласуйте причину с пользователем и возьмите её reasonKey из data.reasons. Вызовите POST /api/orders/draft/cancel/v0 с идентификатором в data.id и обязательным кодом в data.cancelReasonKey. Комментарий можно передать в data.cancelComment. Если причина не определена, остановитесь.
Отозвать заказ в исполнении
Если исполнитель назначен и заказ находится в onExecute, получите и согласуйте причину из GET /api/dicts/order/v0/reasonOrderRevokeFwd. Если причина не определена, остановитесь. При вызове POST /api/orders/onExecute/revokeByForwarder/v0 передайте data.id и обязательный data.cancelReasonKey.
data.cancelActiveTasks управляет отменой активных задач АРУ. Задачи рейса могут быть отозваны отдельно, если первая погрузка ещё не завершена, даже при cancelActiveTasks: false. Перед отзывом согласуйте с пользователем оба последствия.
Проверить результат
Перечитайте карточку. После отмены черновика ожидается статус cancel, после отзыва исполнения — revoke. Если исходный статус не подходит или API отклонил действие, сообщите текущий статус и остановитесь.