Обновление статуса заказа

MVP

POST /v1/order/dbs/status/update

POST/v1/order/dbs/status/update

Обновляет текущий статус заказа в системе Витрины. Позволяет мерчанту информировать платформу об изменениях в ходе обработки заказа.

Тело запроса

merchant_order_id
string
required

Идентификатор заказа продавца.

status
string
required

Новый статус доставки.

NEW: Новый

CONFIRMED: Подтверждён

PACKED: Упакован

DELIVERING: Доставляется

READY_FOR_PICKUP: Готов к выдаче на ПВЗ

DELIVERED: Доставлен

CANCELLED: Отменён

Допустимые значения
NEWCONFIRMEDPACKEDDELIVERINGREADY_FOR_PICKUPDELIVEREDCANCELLED
comment
string

Комментарий.

changed_at
string
required

Время фактического изменения статуса. Формат: date-time (RFC3339). Формат RFC3339 с обязательным timezone (пример: 2026-07-02T10:25:00+02:00). Несоблюдение формата может привести к непредсказуемому поведению системы и проблемам с заказами.

changed_by
string
required

Инициатор изменения статуса.

MERCHANT: Продавец

CLIENT: Покупатель

MARKET: Площадка

Допустимые значения
MERCHANTCLIENTMARKET
actions
array

Разрешённые действия по заказу для установленного статуса.

Разрешённое действие по заказу для установленного статуса.

Показать свойства
type
string
required

Тип действия.

cancel: отменить заказ

Допустимые значения
cancel
enabled
boolean
required

Доступность действия.

Успешный ответ

200A successful response.
application/json
object
merchant_order_id
string
required

Идентификатор заказа продавца. Всегда присутствует (успех и ошибка).

status
string

Актуальный статус заказа после смены (только при успехе).

NEW: Новый

CONFIRMED: Подтверждён

PACKED: Упакован

DELIVERING: Доставляется

READY_FOR_PICKUP: Готов к выдаче на ПВЗ

DELIVERED: Доставлен

CANCELLED: Отменён

Допустимые значения
NEWCONFIRMEDPACKEDDELIVERINGREADY_FOR_PICKUPDELIVEREDCANCELLED
errors
array

Структурированные ошибки (только при неуспехе). Коды — OrderStatusUpdateValidationErrorCode.

При ошибке — только merchant_order_id + errors; status отсутствует.

Ошибка валидации/бизнеса поля для scope «OrderStatusUpdate». Допустимые field: merchant_order_id, status, comment, changed_at, changed_by, actions. Для бизнес-правил витрины: code=STOREFRONT_RULE_VIOLATION.

Ошибка валидации/бизнеса поля для scope «OrderStatusUpdate». Допустимые field: merchant_order_id, status, comment, changed_at, changed_by, actions. Для бизнес-правил витрины: code=STOREFRONT_RULE_VIOLATION.

Показать свойства
field
string
required

Путь к полю. Ожидаемые: merchant_order_id, status, comment, changed_at, changed_by, actions.

code
string
required

Код ошибки.

REQUIRED: Поле отсутствует или пустое, но обязательно

INVALID_TYPE: Неверный JSON-тип

INVALID_FORMAT: Неверный формат значения

INVALID_ENUM: Значение не из допустимого набора

INVALID_DATE_TIME: Не RFC3339 или нет timezone

NOT_FOUND: Сущность не найдена (уточняется полем field)

INVALID_STATUS_TRANSITION: Недопустимый переход статуса

STATUS_NOT_ALLOWED: Операция недоступна в текущем статусе

CONFLICT: Конфликт состояния

STOREFRONT_RULE_VIOLATION: Отклонено бизнес-правилом витрины (детали в message)

Допустимые значения
REQUIREDINVALID_TYPEINVALID_FORMATINVALID_ENUMINVALID_DATE_TIMENOT_FOUNDINVALID_STATUS_TRANSITIONSTATUS_NOT_ALLOWEDCONFLICTSTOREFRONT_RULE_VIOLATION
message
string
required

Текст для клиента. Для STOREFRONT_RULE_VIOLATION — описание правила.

Ошибки

400Некорректный запрос
application/json
object
error_type
string

Класс транспортной ошибки запроса (HTTP 4xx/5xx).

Поэлементные и бизнес-ошибки сущности приходят в HTTP 200 в errors/failed, не в этом поле.

  • ERROR_TYPE_UNSPECIFIED: не используется
  • ERROR_TYPE_UNAUTHORIZED: HTTP 401
  • ERROR_TYPE_RATE_LIMIT: HTTP 429
  • ERROR_TYPE_INTERNAL: HTTP 500
  • ERROR_TYPE_BAD_REQUEST: HTTP 400 (уровень запроса)
Допустимые значения
ERROR_TYPE_UNSPECIFIEDERROR_TYPE_UNAUTHORIZEDERROR_TYPE_RATE_LIMITERROR_TYPE_INTERNALERROR_TYPE_BAD_REQUEST
code
string

Машинный код ошибки. Уточняет error_type.

message
string

Человекочитаемое сообщение об ошибке.

details
object
401Ошибка авторизации
application/json
object
error_type
string

Класс транспортной ошибки запроса (HTTP 4xx/5xx).

Поэлементные и бизнес-ошибки сущности приходят в HTTP 200 в errors/failed, не в этом поле.

  • ERROR_TYPE_UNSPECIFIED: не используется
  • ERROR_TYPE_UNAUTHORIZED: HTTP 401
  • ERROR_TYPE_RATE_LIMIT: HTTP 429
  • ERROR_TYPE_INTERNAL: HTTP 500
  • ERROR_TYPE_BAD_REQUEST: HTTP 400 (уровень запроса)
Допустимые значения
ERROR_TYPE_UNSPECIFIEDERROR_TYPE_UNAUTHORIZEDERROR_TYPE_RATE_LIMITERROR_TYPE_INTERNALERROR_TYPE_BAD_REQUEST
code
string

Машинный код ошибки. Уточняет error_type.

message
string

Человекочитаемое сообщение об ошибке.

details
object
429Превышен лимит запросов
application/json
object
error_type
string

Класс транспортной ошибки запроса (HTTP 4xx/5xx).

Поэлементные и бизнес-ошибки сущности приходят в HTTP 200 в errors/failed, не в этом поле.

  • ERROR_TYPE_UNSPECIFIED: не используется
  • ERROR_TYPE_UNAUTHORIZED: HTTP 401
  • ERROR_TYPE_RATE_LIMIT: HTTP 429
  • ERROR_TYPE_INTERNAL: HTTP 500
  • ERROR_TYPE_BAD_REQUEST: HTTP 400 (уровень запроса)
Допустимые значения
ERROR_TYPE_UNSPECIFIEDERROR_TYPE_UNAUTHORIZEDERROR_TYPE_RATE_LIMITERROR_TYPE_INTERNALERROR_TYPE_BAD_REQUEST
code
string

Машинный код ошибки. Уточняет error_type.

message
string

Человекочитаемое сообщение об ошибке.

details
object
500Внутренняя ошибка сервера
application/json
object
error_type
string

Класс транспортной ошибки запроса (HTTP 4xx/5xx).

Поэлементные и бизнес-ошибки сущности приходят в HTTP 200 в errors/failed, не в этом поле.

  • ERROR_TYPE_UNSPECIFIED: не используется
  • ERROR_TYPE_UNAUTHORIZED: HTTP 401
  • ERROR_TYPE_RATE_LIMIT: HTTP 429
  • ERROR_TYPE_INTERNAL: HTTP 500
  • ERROR_TYPE_BAD_REQUEST: HTTP 400 (уровень запроса)
Допустимые значения
ERROR_TYPE_UNSPECIFIEDERROR_TYPE_UNAUTHORIZEDERROR_TYPE_RATE_LIMITERROR_TYPE_INTERNALERROR_TYPE_BAD_REQUEST
code
string

Машинный код ошибки. Уточняет error_type.

message
string

Человекочитаемое сообщение об ошибке.

details
object
POST/v1/order/dbs/status/update
1curl https://api.omninet.ru/v1/order/dbs/status/update \2  --request POST \3  --header 'Content-Type: application/json' \4  --data '{5  "merchant_order_id": "string",6  "status": "NEW",7  "comment": "string",8  "changed_at": "2026-07-02T10:25:00+02:00",9  "changed_by": "MERCHANT",10  "actions": [11    {12      "type": "cancel",13      "enabled": true14    }15  ]16}'
{
  "merchant_order_id": "string",
  "status": "NEW",
  "errors": [
    {
      "field": "status",
      "code": "INVALID_STATUS_TRANSITION",
      "message": "Переход в указанный статус недопустим"
    }
  ]
}

A successful response.