Склады и магазины

Каждая операция ниже сгенерирована из OpenAPI v2 и содержит параметры, поля запроса, поля ответа, ошибки и примеры.

Магазины

GET /api/v2/shops

Получить список магазинов

operationIdlistShops
РазделМагазины
БезопасностьbearerAuth

Возвращает магазины, видимые аутентифицированному аккаунту. Используйте описанные query parameters для фильтрации, сортировки и пагинации.
Unknown read parameters are ignored. per_page is silently capped; use meta.per_page. Date-only boundaries follow the installation's stored calendar dates; ISO timestamps are serialized in UTC. The default general API limit is 600/minute; a user-specific override may apply. Its bucket is shared by authenticated user, not by shop/domain; Retry-After is returned on throttling.
Unknown read parameters are ignored. per_page is silently capped; use meta.per_page. Date-only boundaries follow the installation's stored calendar dates; ISO timestamps are serialized in UTC. The default general API limit is 600/minute; a user-specific override may apply. Its bucket is shared by authenticated user, not by shop/domain; Retry-After is returned on throttling.
Unknown read parameters are ignored. per_page is silently capped; use meta.per_page. Date-only boundaries follow the installation's stored calendar dates; ISO timestamps are serialized in UTC. The default general API limit is 600/minute; a user-specific override may apply. Its bucket is shared by authenticated user, not by shop/domain; Retry-After is returned on throttling.
Unknown read parameters are ignored. per_page is silently capped; use meta.per_page. Date-only boundaries follow the installation's stored calendar dates; ISO timestamps are serialized in UTC. The default general API limit is 600/minute; a user-specific override may apply. Its bucket is shared by authenticated user, not by shop/domain; Retry-After is returned on throttling.
Unknown read parameters are ignored. per_page is silently capped; use meta.per_page. Date-only boundaries follow the installation's stored calendar dates; ISO timestamps are serialized in UTC. The default general API limit is 600/minute; a user-specific override may apply. Its bucket is shared by authenticated user, not by shop/domain; Retry-After is returned on throttling.
Unknown read parameters are ignored. per_page is silently capped; use meta.per_page. Date-only boundaries follow the installation's stored calendar dates; ISO timestamps are serialized in UTC. The default general API limit is 600/minute; a user-specific override may apply. Its bucket is shared by authenticated user, not by shop/domain; Retry-After is returned on throttling.

Пример HTTP-запроса (cURL)

Подставьте свой сервер и токен. ID из примера замените реальными доступными ID. Для тела запроса сохраните подходящий JSON из раздела ниже в request.json; перед отправкой замените демонстрационные значения. Заголовок Idempotency-Key использует ключ одной логической операции.

curl --globoff --request GET "${NWMS_BASE_URL}/api/v2/shops" \
  --header "Accept: application/json" \
  --header "Authorization: Bearer ${NWMS_TOKEN}"

Параметры

Имя Где Обязательное Тип Style Explode Ограничения Описание Пример
page query нет integer:int64 form true min: 1 Номер страницы. Этот фильтр также можно передать как filter[page], если это поддерживает Laravel query adapter. 1
per_page query нет integer:int64 form true min: 1
max: 250
Количество записей на странице. По умолчанию 50; максимум 250. Этот фильтр также можно передать как filter[per_page], если это поддерживает Laravel query adapter. 50
sort query нет string form false pattern: ^-?[A-Za-z0-9_]+(,-?[A-Za-z0-9_]+)*$ Поля сортировки через запятую. Префикс - означает сортировку по убыванию. Допустимые поля: id, name, status_id, owner_user_id, created_at, updated_at. По умолчанию: -id. Этот фильтр также можно передать как filter[sort], если это поддерживает Laravel query adapter. "-id"
id query нет integer:int64 form true min: 1 Фильтр по id с точным совпадением. Этот фильтр также можно передать как filter[id], если это поддерживает Laravel query adapter. 1001
status_id query нет integer:int64 form true min: 1 Фильтр по status_id с точным совпадением. Этот фильтр также можно передать как filter[status_id], если это поддерживает Laravel query adapter. 1
domain_id query нет integer:int64 form true min: 1 Фильтр по domain_id с точным совпадением. Этот фильтр также можно передать как filter[domain_id], если это поддерживает Laravel query adapter. 3
owner_user_id query нет integer:int64 form true min: 1 Фильтр по owner_user_id с точным совпадением. Этот фильтр также можно передать как filter[owner_user_id], если это поддерживает Laravel query adapter. 15
name query нет string form true Фильтр по name с частичным текстовым совпадением. Этот фильтр также можно передать как filter[name], если это поддерживает Laravel query adapter. "Coffee"

Тело запроса

Тело запроса отсутствует.

Ответы

200 Successful response.

Successful response.

Поле Обязательное Тип Флаги Ограничения Описание Пример
data да array<Shop>
data[] нет Shop Аккаунт магазина продавца.
data[].id да integer:int64 readOnly min: 1 1001
data[].created_at нет string:date-time | null "2026-07-14T10:30:00Z"
data[].updated_at нет string:date-time | null "2026-07-14T10:30:00Z"
data[].name да string "Demo Online Store"
data[].status_id нет integer:int64 | null 1
data[].domain_id нет integer:int64 | null min: 1 3
data[].owner_user_id нет integer:int64 | null min: 1 15
data[].composite_items_enabled нет boolean false
data[].custom_label_enabled нет boolean false
data[].custom_label нет string | null "CDEK label"
links да PaginationLinks
links.first да string:uri | null "https://betawms.ffcdek.ru/api/v2/orders?page=1"
links.last да string:uri | null "https://betawms.ffcdek.ru/api/v2/orders?page=2"
links.prev да string:uri | null
links.next да string:uri | null "https://betawms.ffcdek.ru/api/v2/orders?page=2"
meta да PaginationMeta
meta.api_version да enum enum: v2 "v2"
meta.current_page да integer:int32 min: 1 1
meta.from да integer:int32 | null min: 1 1
meta.last_page да integer:int32 min: 1 2
meta.path да string:uri "https://betawms.ffcdek.ru/api/v2/orders"
meta.per_page да integer:int32 min: 1 50
meta.to да integer:int32 | null min: 1 50
meta.total да integer:int32 min: 0 73

Примеры ответа

success

{
  "data": [
    {
      "id": 12,
      "name": "Demo Online Store",
      "status_id": 1,
      "domain_id": 3,
      "owner_user_id": 15,
      "composite_items_enabled": false,
      "custom_label_enabled": false,
      "custom_label": null,
      "created_at": "2026-07-14T09:00:00Z",
      "updated_at": "2026-07-14T09:30:00Z"
    }
  ],
  "links": {
    "first": "https://betawms.ffcdek.ru/api/v2/shops?page=1",
    "last": "https://betawms.ffcdek.ru/api/v2/shops?page=2",
    "prev": null,
    "next": "https://betawms.ffcdek.ru/api/v2/shops?page=2"
  },
  "meta": {
    "api_version": "v2",
    "current_page": 1,
    "from": 1,
    "last_page": 2,
    "path": "https://betawms.ffcdek.ru/api/v2/shops",
    "per_page": 50,
    "to": 50,
    "total": 73
  }
}

401 Требуется аутентификация

Unauthorized

Требуется аутентификация.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

AUTH_REQUIRED

{
  "message": "Authentication is required.",
  "error": "AUTH_REQUIRED"
}

403 Доступ запрещен

Forbidden

Аутентифицированному аккаунту запрещено выполнять это действие.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

FORBIDDEN

{
  "message": "The authenticated account is not allowed to perform this action.",
  "error": "FORBIDDEN"
}

429 Превышен лимит запросов

TooManyRequests

Превышен лимит запросов.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "Too Many Attempts."
error да string "RATE_LIMITED"

500 Внутренняя ошибка сервера

InternalServerError

Произошла непредвиденная ошибка сервера.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

INTERNAL_SERVER_ERROR

{
  "message": "An unexpected server error occurred.",
  "error": "INTERNAL_SERVER_ERROR"
}
POST /api/v2/shops

Создать магазин

operationIdcreateShops
РазделМагазины
БезопасностьbearerAuth

Create shop. Запрос использует описанную payload-схему, проверяет видимость tenant и возвращает нормализованный API envelope.

Пример HTTP-запроса (cURL)

Подставьте свой сервер и токен. ID из примера замените реальными доступными ID. Для тела запроса сохраните подходящий JSON из раздела ниже в request.json; перед отправкой замените демонстрационные значения. Заголовок Idempotency-Key использует ключ одной логической операции.

curl --globoff --request POST "${NWMS_BASE_URL}/api/v2/shops" \
  --header "Accept: application/json" \
  --header "Authorization: Bearer ${NWMS_TOKEN}" \
  --header "Idempotency-Key: ${NWMS_REQUEST_KEY}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json

Параметры

Имя Где Обязательное Тип Style Explode Ограничения Описание Пример
Idempotency-Key header нет string maxLength: 191 Опциональный ключ идемпотентности для write-запросов API v2. Успешные ответы 2xx/3xx повторяются для того же ключа и идентичного payload в течение одного дня. Тот же ключ с другим payload возвращает 409. "ord-create-20260714-001"

Тело запроса

CreateShopRequest обязательно

Поле Обязательное Тип Флаги Ограничения Описание Пример
data да CreateShopPayload
data.name да string minLength: 1 "Demo Online Store"
data.status_id нет integer:int64 | null 1
data.owner_user_id нет integer:int64 | null min: 1 15
data.composite_items_enabled нет boolean false
data.custom_label_enabled нет boolean false
data.custom_label нет string | null "CDEK label"

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

default

{
  "data": {
    "name": "Demo Online Store",
    "owner_user_id": 15
  }
}

Ответы

201 Created.

Created.

Поле Обязательное Тип Флаги Ограничения Описание Пример
data да Shop Аккаунт магазина продавца.
data.id да integer:int64 readOnly min: 1 1001
data.created_at нет string:date-time | null "2026-07-14T10:30:00Z"
data.updated_at нет string:date-time | null "2026-07-14T10:30:00Z"
data.name да string "Demo Online Store"
data.status_id нет integer:int64 | null 1
data.domain_id нет integer:int64 | null min: 1 3
data.owner_user_id нет integer:int64 | null min: 1 15
data.composite_items_enabled нет boolean false
data.custom_label_enabled нет boolean false
data.custom_label нет string | null "CDEK label"
meta да ResponseMeta
meta.api_version да enum enum: v2 "v2"
meta.deleted нет boolean true
meta.id нет integer:int64 | null min: 1 1001
meta.command_replayed нет boolean True when an idempotent cross-dock command returned the original successful result. false
meta.crossdock_configuration нет object | null
meta.crossdock_configuration.physical_warehouse_id да integer:int64 min: 1 42
meta.crossdock_configuration.enabled да boolean true
meta.crossdock_configuration.process_version да string "direct_order_v1"

Примеры ответа

success

{
  "data": {
    "id": 12,
    "name": "Demo Online Store",
    "status_id": 1,
    "domain_id": 3,
    "owner_user_id": 15,
    "composite_items_enabled": false,
    "custom_label_enabled": false,
    "custom_label": null,
    "created_at": "2026-07-14T09:00:00Z",
    "updated_at": "2026-07-14T09:30:00Z"
  },
  "meta": {
    "api_version": "v2"
  }
}

400 Некорректный запрос

BadRequest

Некорректный запрос.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

BAD_REQUEST

{
  "message": "Bad request.",
  "error": "BAD_REQUEST"
}

401 Требуется аутентификация

Unauthorized

Требуется аутентификация.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

AUTH_REQUIRED

{
  "message": "Authentication is required.",
  "error": "AUTH_REQUIRED"
}

403 Доступ запрещен

Forbidden

Аутентифицированному аккаунту запрещено выполнять это действие.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

FORBIDDEN

{
  "message": "The authenticated account is not allowed to perform this action.",
  "error": "FORBIDDEN"
}

409 Конфликт

Conflict

Запрос конфликтует с текущим состоянием ресурса или ключа идемпотентности.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

idempotencyConflict

{
  "message": "The idempotency key is already used with a different payload.",
  "error": "IDEMPOTENCY_KEY_CONFLICT"
}

422 Ошибка валидации

ValidationError

Ошибка валидации.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The given data was invalid."
error нет string "VALIDATION_ERROR"
errors да object {"warehouse_id":["The selected warehouse is invalid."]}

Примеры ответа

validationError

{
  "message": "The given data was invalid.",
  "error": "VALIDATION_ERROR",
  "errors": {
    "warehouse_id": [
      "The selected warehouse is invalid."
    ]
  }
}

429 Превышен лимит запросов

TooManyRequests

Превышен лимит запросов.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "Too Many Attempts."
error да string "RATE_LIMITED"

500 Внутренняя ошибка сервера

InternalServerError

Произошла непредвиденная ошибка сервера.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

INTERNAL_SERVER_ERROR

{
  "message": "An unexpected server error occurred.",
  "error": "INTERNAL_SERVER_ERROR"
}
GET /api/v2/shops/{id}

Получить магазин

operationIdgetShops
РазделМагазины
БезопасностьbearerAuth

Возвращает один ресурс: магазин, если он существует и видим аутентифицированному аккаунту.

Пример HTTP-запроса (cURL)

Подставьте свой сервер и токен. ID из примера замените реальными доступными ID. Для тела запроса сохраните подходящий JSON из раздела ниже в request.json; перед отправкой замените демонстрационные значения. Заголовок Idempotency-Key использует ключ одной логической операции.

curl --globoff --request GET "${NWMS_BASE_URL}/api/v2/shops/1001" \
  --header "Accept: application/json" \
  --header "Authorization: Bearer ${NWMS_TOKEN}"

Параметры

Имя Где Обязательное Тип Style Explode Ограничения Описание Пример
id path да integer:int64 min: 1 ID магазина. 1001

Тело запроса

Тело запроса отсутствует.

Ответы

200 Successful response.

Successful response.

Поле Обязательное Тип Флаги Ограничения Описание Пример
data да Shop Аккаунт магазина продавца.
data.id да integer:int64 readOnly min: 1 1001
data.created_at нет string:date-time | null "2026-07-14T10:30:00Z"
data.updated_at нет string:date-time | null "2026-07-14T10:30:00Z"
data.name да string "Demo Online Store"
data.status_id нет integer:int64 | null 1
data.domain_id нет integer:int64 | null min: 1 3
data.owner_user_id нет integer:int64 | null min: 1 15
data.composite_items_enabled нет boolean false
data.custom_label_enabled нет boolean false
data.custom_label нет string | null "CDEK label"
meta да ResponseMeta
meta.api_version да enum enum: v2 "v2"
meta.deleted нет boolean true
meta.id нет integer:int64 | null min: 1 1001
meta.command_replayed нет boolean True when an idempotent cross-dock command returned the original successful result. false
meta.crossdock_configuration нет object | null
meta.crossdock_configuration.physical_warehouse_id да integer:int64 min: 1 42
meta.crossdock_configuration.enabled да boolean true
meta.crossdock_configuration.process_version да string "direct_order_v1"

Примеры ответа

success

{
  "data": {
    "id": 12,
    "name": "Demo Online Store",
    "status_id": 1,
    "domain_id": 3,
    "owner_user_id": 15,
    "composite_items_enabled": false,
    "custom_label_enabled": false,
    "custom_label": null,
    "created_at": "2026-07-14T09:00:00Z",
    "updated_at": "2026-07-14T09:30:00Z"
  },
  "meta": {
    "api_version": "v2"
  }
}

401 Требуется аутентификация

Unauthorized

Требуется аутентификация.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

AUTH_REQUIRED

{
  "message": "Authentication is required.",
  "error": "AUTH_REQUIRED"
}

403 Доступ запрещен

Forbidden

Аутентифицированному аккаунту запрещено выполнять это действие.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

FORBIDDEN

{
  "message": "The authenticated account is not allowed to perform this action.",
  "error": "FORBIDDEN"
}

404 Не найдено

NotFound

Запрошенный ресурс не найден или находится вне области доступа аккаунта.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

NOT_FOUND

{
  "message": "The requested resource was not found or is outside the authenticated account scope.",
  "error": "NOT_FOUND"
}

429 Превышен лимит запросов

TooManyRequests

Превышен лимит запросов.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "Too Many Attempts."
error да string "RATE_LIMITED"

500 Внутренняя ошибка сервера

InternalServerError

Произошла непредвиденная ошибка сервера.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

INTERNAL_SERVER_ERROR

{
  "message": "An unexpected server error occurred.",
  "error": "INTERNAL_SERVER_ERROR"
}
PUT /api/v2/shops/{id}

Обновить магазин

operationIdreplaceShops
РазделМагазины
БезопасностьbearerAuth

Update shop. Запрос использует описанную payload-схему, проверяет видимость tenant и возвращает нормализованный API envelope.
Текущее поведение backend является legacy-семантикой частичного обновления: пропущенные поля не изменяются.

Пример HTTP-запроса (cURL)

Подставьте свой сервер и токен. ID из примера замените реальными доступными ID. Для тела запроса сохраните подходящий JSON из раздела ниже в request.json; перед отправкой замените демонстрационные значения. Заголовок Idempotency-Key использует ключ одной логической операции.

curl --globoff --request PUT "${NWMS_BASE_URL}/api/v2/shops/1001" \
  --header "Accept: application/json" \
  --header "Authorization: Bearer ${NWMS_TOKEN}" \
  --header "Idempotency-Key: ${NWMS_REQUEST_KEY}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json

Параметры

Имя Где Обязательное Тип Style Explode Ограничения Описание Пример
id path да integer:int64 min: 1 ID магазина. 1001
Idempotency-Key header нет string maxLength: 191 Опциональный ключ идемпотентности для write-запросов API v2. Успешные ответы 2xx/3xx повторяются для того же ключа и идентичного payload в течение одного дня. Тот же ключ с другим payload возвращает 409. "ord-create-20260714-001"

Тело запроса

ReplaceShopRequest обязательно

Поле Обязательное Тип Флаги Ограничения Описание Пример
data да ReplaceShopPayload Legacy PUT payload. Текущий backend применяет семантику частичного обновления.
data.name нет string | null minLength: 1 "Demo Online Store"
data.status_id нет integer:int64 | null 1
data.owner_user_id нет integer:int64 | null min: 1 15
data.composite_items_enabled нет boolean false
data.custom_label_enabled нет boolean false
data.custom_label нет string | null "CDEK label"

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

default

{
  "data": {
    "name": "Demo Online Store",
    "custom_label_enabled": false
  }
}

Ответы

200 Successful response.

Successful response.

Поле Обязательное Тип Флаги Ограничения Описание Пример
data да Shop Аккаунт магазина продавца.
data.id да integer:int64 readOnly min: 1 1001
data.created_at нет string:date-time | null "2026-07-14T10:30:00Z"
data.updated_at нет string:date-time | null "2026-07-14T10:30:00Z"
data.name да string "Demo Online Store"
data.status_id нет integer:int64 | null 1
data.domain_id нет integer:int64 | null min: 1 3
data.owner_user_id нет integer:int64 | null min: 1 15
data.composite_items_enabled нет boolean false
data.custom_label_enabled нет boolean false
data.custom_label нет string | null "CDEK label"
meta да ResponseMeta
meta.api_version да enum enum: v2 "v2"
meta.deleted нет boolean true
meta.id нет integer:int64 | null min: 1 1001
meta.command_replayed нет boolean True when an idempotent cross-dock command returned the original successful result. false
meta.crossdock_configuration нет object | null
meta.crossdock_configuration.physical_warehouse_id да integer:int64 min: 1 42
meta.crossdock_configuration.enabled да boolean true
meta.crossdock_configuration.process_version да string "direct_order_v1"

Примеры ответа

success

{
  "data": {
    "id": 12,
    "name": "Demo Online Store",
    "status_id": 1,
    "domain_id": 3,
    "owner_user_id": 15,
    "composite_items_enabled": false,
    "custom_label_enabled": false,
    "custom_label": null,
    "created_at": "2026-07-14T09:00:00Z",
    "updated_at": "2026-07-14T09:30:00Z"
  },
  "meta": {
    "api_version": "v2"
  }
}

400 Некорректный запрос

BadRequest

Некорректный запрос.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

BAD_REQUEST

{
  "message": "Bad request.",
  "error": "BAD_REQUEST"
}

401 Требуется аутентификация

Unauthorized

Требуется аутентификация.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

AUTH_REQUIRED

{
  "message": "Authentication is required.",
  "error": "AUTH_REQUIRED"
}

403 Доступ запрещен

Forbidden

Аутентифицированному аккаунту запрещено выполнять это действие.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

FORBIDDEN

{
  "message": "The authenticated account is not allowed to perform this action.",
  "error": "FORBIDDEN"
}

404 Не найдено

NotFound

Запрошенный ресурс не найден или находится вне области доступа аккаунта.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

NOT_FOUND

{
  "message": "The requested resource was not found or is outside the authenticated account scope.",
  "error": "NOT_FOUND"
}

409 Конфликт

Conflict

Запрос конфликтует с текущим состоянием ресурса или ключа идемпотентности.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

idempotencyConflict

{
  "message": "The idempotency key is already used with a different payload.",
  "error": "IDEMPOTENCY_KEY_CONFLICT"
}

422 Ошибка валидации

ValidationError

Ошибка валидации.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The given data was invalid."
error нет string "VALIDATION_ERROR"
errors да object {"warehouse_id":["The selected warehouse is invalid."]}

Примеры ответа

validationError

{
  "message": "The given data was invalid.",
  "error": "VALIDATION_ERROR",
  "errors": {
    "warehouse_id": [
      "The selected warehouse is invalid."
    ]
  }
}

429 Превышен лимит запросов

TooManyRequests

Превышен лимит запросов.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "Too Many Attempts."
error да string "RATE_LIMITED"

500 Внутренняя ошибка сервера

InternalServerError

Произошла непредвиденная ошибка сервера.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

INTERNAL_SERVER_ERROR

{
  "message": "An unexpected server error occurred.",
  "error": "INTERNAL_SERVER_ERROR"
}
PATCH /api/v2/shops/{id}

Обновить магазин

operationIdpatchShops
РазделМагазины
БезопасностьbearerAuth

Update shop. Запрос использует описанную payload-схему, проверяет видимость tenant и возвращает нормализованный API envelope.
Текущее поведение backend является legacy-семантикой частичного обновления: пропущенные поля не изменяются.

Пример HTTP-запроса (cURL)

Подставьте свой сервер и токен. ID из примера замените реальными доступными ID. Для тела запроса сохраните подходящий JSON из раздела ниже в request.json; перед отправкой замените демонстрационные значения. Заголовок Idempotency-Key использует ключ одной логической операции.

curl --globoff --request PATCH "${NWMS_BASE_URL}/api/v2/shops/1001" \
  --header "Accept: application/json" \
  --header "Authorization: Bearer ${NWMS_TOKEN}" \
  --header "Idempotency-Key: ${NWMS_REQUEST_KEY}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json

Параметры

Имя Где Обязательное Тип Style Explode Ограничения Описание Пример
id path да integer:int64 min: 1 ID магазина. 1001
Idempotency-Key header нет string maxLength: 191 Опциональный ключ идемпотентности для write-запросов API v2. Успешные ответы 2xx/3xx повторяются для того же ключа и идентичного payload в течение одного дня. Тот же ключ с другим payload возвращает 409. "ord-create-20260714-001"

Тело запроса

PatchShopRequest обязательно

Поле Обязательное Тип Флаги Ограничения Описание Пример
data да PatchShopPayload
data.name нет string | null minLength: 1 "Demo Online Store"
data.status_id нет integer:int64 | null 1
data.owner_user_id нет integer:int64 | null min: 1 15
data.composite_items_enabled нет boolean false
data.custom_label_enabled нет boolean false
data.custom_label нет string | null "CDEK label"

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

default

{
  "data": {
    "custom_label_enabled": false
  }
}

Ответы

200 Successful response.

Successful response.

Поле Обязательное Тип Флаги Ограничения Описание Пример
data да Shop Аккаунт магазина продавца.
data.id да integer:int64 readOnly min: 1 1001
data.created_at нет string:date-time | null "2026-07-14T10:30:00Z"
data.updated_at нет string:date-time | null "2026-07-14T10:30:00Z"
data.name да string "Demo Online Store"
data.status_id нет integer:int64 | null 1
data.domain_id нет integer:int64 | null min: 1 3
data.owner_user_id нет integer:int64 | null min: 1 15
data.composite_items_enabled нет boolean false
data.custom_label_enabled нет boolean false
data.custom_label нет string | null "CDEK label"
meta да ResponseMeta
meta.api_version да enum enum: v2 "v2"
meta.deleted нет boolean true
meta.id нет integer:int64 | null min: 1 1001
meta.command_replayed нет boolean True when an idempotent cross-dock command returned the original successful result. false
meta.crossdock_configuration нет object | null
meta.crossdock_configuration.physical_warehouse_id да integer:int64 min: 1 42
meta.crossdock_configuration.enabled да boolean true
meta.crossdock_configuration.process_version да string "direct_order_v1"

Примеры ответа

success

{
  "data": {
    "id": 12,
    "name": "Demo Online Store",
    "status_id": 1,
    "domain_id": 3,
    "owner_user_id": 15,
    "composite_items_enabled": false,
    "custom_label_enabled": false,
    "custom_label": null,
    "created_at": "2026-07-14T09:00:00Z",
    "updated_at": "2026-07-14T09:30:00Z"
  },
  "meta": {
    "api_version": "v2"
  }
}

400 Некорректный запрос

BadRequest

Некорректный запрос.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

BAD_REQUEST

{
  "message": "Bad request.",
  "error": "BAD_REQUEST"
}

401 Требуется аутентификация

Unauthorized

Требуется аутентификация.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

AUTH_REQUIRED

{
  "message": "Authentication is required.",
  "error": "AUTH_REQUIRED"
}

403 Доступ запрещен

Forbidden

Аутентифицированному аккаунту запрещено выполнять это действие.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

FORBIDDEN

{
  "message": "The authenticated account is not allowed to perform this action.",
  "error": "FORBIDDEN"
}

404 Не найдено

NotFound

Запрошенный ресурс не найден или находится вне области доступа аккаунта.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

NOT_FOUND

{
  "message": "The requested resource was not found or is outside the authenticated account scope.",
  "error": "NOT_FOUND"
}

409 Конфликт

Conflict

Запрос конфликтует с текущим состоянием ресурса или ключа идемпотентности.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

idempotencyConflict

{
  "message": "The idempotency key is already used with a different payload.",
  "error": "IDEMPOTENCY_KEY_CONFLICT"
}

422 Ошибка валидации

ValidationError

Ошибка валидации.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The given data was invalid."
error нет string "VALIDATION_ERROR"
errors да object {"warehouse_id":["The selected warehouse is invalid."]}

Примеры ответа

validationError

{
  "message": "The given data was invalid.",
  "error": "VALIDATION_ERROR",
  "errors": {
    "warehouse_id": [
      "The selected warehouse is invalid."
    ]
  }
}

429 Превышен лимит запросов

TooManyRequests

Превышен лимит запросов.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "Too Many Attempts."
error да string "RATE_LIMITED"

500 Внутренняя ошибка сервера

InternalServerError

Произошла непредвиденная ошибка сервера.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

INTERNAL_SERVER_ERROR

{
  "message": "An unexpected server error occurred.",
  "error": "INTERNAL_SERVER_ERROR"
}

Склады

GET /api/v2/warehouses

Получить список складов

operationIdlistWarehouses
РазделСклады
БезопасностьbearerAuth

Возвращает склады, видимые аутентифицированному аккаунту. Используйте описанные query parameters для фильтрации, сортировки и пагинации.
Unknown read parameters are ignored. per_page is silently capped; use meta.per_page. Date-only boundaries follow the installation's stored calendar dates; ISO timestamps are serialized in UTC. The default general API limit is 600/minute; a user-specific override may apply. Its bucket is shared by authenticated user, not by shop/domain; Retry-After is returned on throttling.
Unknown read parameters are ignored. per_page is silently capped; use meta.per_page. Date-only boundaries follow the installation's stored calendar dates; ISO timestamps are serialized in UTC. The default general API limit is 600/minute; a user-specific override may apply. Its bucket is shared by authenticated user, not by shop/domain; Retry-After is returned on throttling.
Unknown read parameters are ignored. per_page is silently capped; use meta.per_page. Date-only boundaries follow the installation's stored calendar dates; ISO timestamps are serialized in UTC. The default general API limit is 600/minute; a user-specific override may apply. Its bucket is shared by authenticated user, not by shop/domain; Retry-After is returned on throttling.
Unknown read parameters are ignored. per_page is silently capped; use meta.per_page. Date-only boundaries follow the installation's stored calendar dates; ISO timestamps are serialized in UTC. The default general API limit is 600/minute; a user-specific override may apply. Its bucket is shared by authenticated user, not by shop/domain; Retry-After is returned on throttling.
Unknown read parameters are ignored. per_page is silently capped; use meta.per_page. Date-only boundaries follow the installation's stored calendar dates; ISO timestamps are serialized in UTC. The default general API limit is 600/minute; a user-specific override may apply. Its bucket is shared by authenticated user, not by shop/domain; Retry-After is returned on throttling.
Unknown read parameters are ignored. per_page is silently capped; use meta.per_page. Date-only boundaries follow the installation's stored calendar dates; ISO timestamps are serialized in UTC. The default general API limit is 600/minute; a user-specific override may apply. Its bucket is shared by authenticated user, not by shop/domain; Retry-After is returned on throttling.

Пример HTTP-запроса (cURL)

Подставьте свой сервер и токен. ID из примера замените реальными доступными ID. Для тела запроса сохраните подходящий JSON из раздела ниже в request.json; перед отправкой замените демонстрационные значения. Заголовок Idempotency-Key использует ключ одной логической операции.

curl --globoff --request GET "${NWMS_BASE_URL}/api/v2/warehouses" \
  --header "Accept: application/json" \
  --header "Authorization: Bearer ${NWMS_TOKEN}"

Параметры

Имя Где Обязательное Тип Style Explode Ограничения Описание Пример
page query нет integer:int64 form true min: 1 Номер страницы. Этот фильтр также можно передать как filter[page], если это поддерживает Laravel query adapter. 1
per_page query нет integer:int64 form true min: 1
max: 250
Количество записей на странице. По умолчанию 50; максимум 250. Этот фильтр также можно передать как filter[per_page], если это поддерживает Laravel query adapter. 50
sort query нет string form false pattern: ^-?[A-Za-z0-9_]+(,-?[A-Za-z0-9_]+)*$ Поля сортировки через запятую. Префикс - означает сортировку по убыванию. Допустимые поля: id, name, status_id, type_id, created_at, updated_at. По умолчанию: -id. Этот фильтр также можно передать как filter[sort], если это поддерживает Laravel query adapter. "-id"
id query нет integer:int64 form true min: 1 Фильтр по id с точным совпадением. Этот фильтр также можно передать как filter[id], если это поддерживает Laravel query adapter. 1001
status_id query нет integer:int64 form true min: 1 Фильтр по status_id с точным совпадением. Этот фильтр также можно передать как filter[status_id], если это поддерживает Laravel query adapter. 1
type_id query нет integer:int64 form true min: 1 Фильтр по type_id с точным совпадением. Этот фильтр также можно передать как filter[type_id], если это поддерживает Laravel query adapter. 1
domain_id query нет integer:int64 form true min: 1 Фильтр по domain_id с точным совпадением. Этот фильтр также можно передать как filter[domain_id], если это поддерживает Laravel query adapter. 3
owner_user_id query нет integer:int64 form true min: 1 Фильтр по owner_user_id с точным совпадением. Этот фильтр также можно передать как filter[owner_user_id], если это поддерживает Laravel query adapter. 15
parent_id query нет integer:int64 form true min: 1 Фильтр по parent_id с точным совпадением. Этот фильтр также можно передать как filter[parent_id], если это поддерживает Laravel query adapter. 1
country_id query нет integer:int64 form true min: 1 Фильтр по country_id с точным совпадением. Этот фильтр также можно передать как filter[country_id], если это поддерживает Laravel query adapter. 100
company_id query нет integer:int64 form true min: 1 Фильтр по company_id с точным совпадением. Этот фильтр также можно передать как filter[company_id], если это поддерживает Laravel query adapter. 7
service_provider_company_id query нет integer:int64 form true min: 1 Фильтр по service_provider_company_id с точным совпадением. Этот фильтр также можно передать как filter[service_provider_company_id], если это поддерживает Laravel query adapter. 8
name query нет string form true Фильтр по name с частичным текстовым совпадением. Этот фильтр также можно передать как filter[name], если это поддерживает Laravel query adapter. "Coffee"

Тело запроса

Тело запроса отсутствует.

Ответы

200 Successful response.

Successful response.

Поле Обязательное Тип Флаги Ограничения Описание Пример
data да array<Warehouse>
data[] нет Warehouse Склад или клиентский склад.
data[].id да integer:int64 readOnly min: 1 1001
data[].created_at нет string:date-time | null "2026-07-14T10:30:00Z"
data[].updated_at нет string:date-time | null "2026-07-14T10:30:00Z"
data[].name да string "Warehouse Sofia"
data[].status_id нет integer:int64 | null ID статуса склада. Значения хранятся в базе данных и не моделируются как закрытый enum в публичном контракте. 1
data[].type_id нет integer:int64 | null ID типа склада. Значения хранятся в базе данных и не моделируются как закрытый enum в публичном контракте. 2
data[].domain_id нет integer:int64 | null min: 1 3
data[].owner_user_id нет integer:int64 | null min: 1 15
data[].parent_id нет integer:int64 | null min: 1 41
data[].country_id нет integer:int64 | null min: 1 100
data[].currency_id нет integer:int64 | null min: 1 978
data[].company_id нет integer:int64 | null min: 1 7
data[].service_provider_company_id нет integer:int64 | null min: 1 8
data[].billing_setting_id нет integer:int64 | null min: 1 12
data[].settings нет WarehouseSettings
data[].settings.datamatrix нет object
data[].settings.datamatrix.enabled да boolean false
data[].settings.datamatrix.type нет string | null "standard"
data[].settings.datamatrix.acceptance_enabled да boolean false
data[].settings.datamatrix.picking_enabled да boolean false
data[].settings.datamatrix.packing_enabled да boolean false
data[].settings.datamatrix.validation_mode нет enum:int64 enum: 0, 1, 2 0 disabled, 1 template validation, 2 database validation. Read from warehouse DataMatrix settings. 1
data[].settings.expiration_date_enabled нет boolean true
data[].settings.production_date_enabled нет boolean true
data[].settings.batch_enabled нет boolean true
data[].settings.auto_acceptance_enabled нет boolean false
data[].settings.order_auto_conduct_mode нет enum:int64 | null enum: 0, 1, 2, 3 Разрешение на явные действия автопроведения заказа: 0 — запрещено; 1 — пропуск сборки; 2 — пропуск упаковки; 3 — пропуск сборки и упаковки. Сама настройка не выполняет эти действия и не подтверждает передачу перевозчику. Автоупаковка заблокирована при включённой проверке DataMatrix на упаковке. 0
data[].settings.require_acceptance_dimensions нет boolean false
data[].settings.crossdock_enabled нет boolean Allows cross-docking for a client warehouse. true
data[].document нет WarehouseDocument
data[].document.number нет string | null "WH-DOC-1001"
data[].document.date нет string:date | null "2026-07-14"
data[].custom нет object Специфичные для установки атрибуты склада. {"billing_group":"Sofia A"}
links да PaginationLinks
links.first да string:uri | null "https://betawms.ffcdek.ru/api/v2/orders?page=1"
links.last да string:uri | null "https://betawms.ffcdek.ru/api/v2/orders?page=2"
links.prev да string:uri | null
links.next да string:uri | null "https://betawms.ffcdek.ru/api/v2/orders?page=2"
meta да PaginationMeta
meta.api_version да enum enum: v2 "v2"
meta.current_page да integer:int32 min: 1 1
meta.from да integer:int32 | null min: 1 1
meta.last_page да integer:int32 min: 1 2
meta.path да string:uri "https://betawms.ffcdek.ru/api/v2/orders"
meta.per_page да integer:int32 min: 1 50
meta.to да integer:int32 | null min: 1 50
meta.total да integer:int32 min: 0 73

Примеры ответа

success

{
  "data": [
    {
      "id": 42,
      "name": "Warehouse Sofia",
      "status_id": 1,
      "type_id": 2,
      "domain_id": 3,
      "owner_user_id": 15,
      "parent_id": 41,
      "country_id": 100,
      "currency_id": 978,
      "company_id": 7,
      "service_provider_company_id": 8,
      "billing_setting_id": 12,
      "settings": {
        "datamatrix": {
          "enabled": true,
          "type": "standard",
          "acceptance_enabled": true,
          "picking_enabled": true,
          "packing_enabled": false
        },
        "expiration_date_enabled": true,
        "production_date_enabled": true,
        "batch_enabled": true,
        "auto_acceptance_enabled": false,
        "order_auto_conduct_mode": 0,
        "require_acceptance_dimensions": false
      },
      "document": {
        "number": "WH-DOC-1001",
        "date": "2026-07-14"
      },
      "custom": {
        "billing_group": "Sofia A"
      },
      "created_at": "2026-07-14T09:00:00Z",
      "updated_at": "2026-07-14T09:30:00Z"
    }
  ],
  "links": {
    "first": "https://betawms.ffcdek.ru/api/v2/warehouses?page=1",
    "last": "https://betawms.ffcdek.ru/api/v2/warehouses?page=2",
    "prev": null,
    "next": "https://betawms.ffcdek.ru/api/v2/warehouses?page=2"
  },
  "meta": {
    "api_version": "v2",
    "current_page": 1,
    "from": 1,
    "last_page": 2,
    "path": "https://betawms.ffcdek.ru/api/v2/warehouses",
    "per_page": 50,
    "to": 50,
    "total": 73
  }
}

401 Требуется аутентификация

Unauthorized

Требуется аутентификация.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

AUTH_REQUIRED

{
  "message": "Authentication is required.",
  "error": "AUTH_REQUIRED"
}

403 Доступ запрещен

Forbidden

Аутентифицированному аккаунту запрещено выполнять это действие.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

FORBIDDEN

{
  "message": "The authenticated account is not allowed to perform this action.",
  "error": "FORBIDDEN"
}

429 Превышен лимит запросов

TooManyRequests

Превышен лимит запросов.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "Too Many Attempts."
error да string "RATE_LIMITED"

500 Внутренняя ошибка сервера

InternalServerError

Произошла непредвиденная ошибка сервера.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

INTERNAL_SERVER_ERROR

{
  "message": "An unexpected server error occurred.",
  "error": "INTERNAL_SERVER_ERROR"
}
POST /api/v2/warehouses

Создать склад

operationIdcreateWarehouses
РазделСклады
БезопасностьbearerAuth

Creates a warehouse or client warehouse using public v2 fields. Ownership, parent warehouse, billing settings, and operational flags are validated by account scope.

Пример HTTP-запроса (cURL)

Подставьте свой сервер и токен. ID из примера замените реальными доступными ID. Для тела запроса сохраните подходящий JSON из раздела ниже в request.json; перед отправкой замените демонстрационные значения. Заголовок Idempotency-Key использует ключ одной логической операции.

curl --globoff --request POST "${NWMS_BASE_URL}/api/v2/warehouses" \
  --header "Accept: application/json" \
  --header "Authorization: Bearer ${NWMS_TOKEN}" \
  --header "Idempotency-Key: ${NWMS_REQUEST_KEY}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json

Параметры

Имя Где Обязательное Тип Style Explode Ограничения Описание Пример
Idempotency-Key header нет string maxLength: 191 Опциональный ключ идемпотентности для write-запросов API v2. Успешные ответы 2xx/3xx повторяются для того же ключа и идентичного payload в течение одного дня. Тот же ключ с другим payload возвращает 409. "ord-create-20260714-001"

Тело запроса

CreateWarehouseRequest обязательно

Поле Обязательное Тип Флаги Ограничения Описание Пример
data да CreateWarehousePayload
data.name да string minLength: 1 "Client Warehouse Varna"
data.type_id нет integer:int64 | null ID типа склада. Значения хранятся в базе данных и не моделируются как закрытый enum в публичном контракте. 2
data.owner_user_id нет integer:int64 | null min: 1 15
data.parent_id нет integer:int64 | null min: 1 42
data.country_id нет integer:int64 | null min: 1 100
data.currency_id нет integer:int64 | null min: 1 978
data.company_id нет integer:int64 | null min: 1 7
data.service_provider_company_id нет integer:int64 | null min: 1 8
data.billing_setting_id нет integer:int64 | null min: 1 12
data.settings нет object | null
data.settings.datamatrix нет object
data.settings.datamatrix.enabled да boolean false
data.settings.datamatrix.type нет string | null "standard"
data.settings.datamatrix.acceptance_enabled да boolean false
data.settings.datamatrix.picking_enabled да boolean false
data.settings.datamatrix.packing_enabled да boolean false
data.settings.datamatrix.validation_mode нет enum:int64 enum: 0, 1, 2 0 disabled, 1 template validation, 2 database validation. Read from warehouse DataMatrix settings. 1
data.settings.expiration_date_enabled нет boolean true
data.settings.production_date_enabled нет boolean true
data.settings.batch_enabled нет boolean true
data.settings.auto_acceptance_enabled нет boolean false
data.settings.order_auto_conduct_mode нет enum:int64 | null enum: 0, 1, 2, 3 Разрешение на явные действия автопроведения заказа: 0 — запрещено; 1 — пропуск сборки; 2 — пропуск упаковки; 3 — пропуск сборки и упаковки. Сама настройка не выполняет эти действия и не подтверждает передачу перевозчику. Автоупаковка заблокирована при включённой проверке DataMatrix на упаковке. 0
data.settings.require_acceptance_dimensions нет boolean false
data.settings.crossdock_enabled нет boolean Allows cross-docking for a client warehouse. true
data.document нет object | null
data.document.number нет string | null "WH-DOC-1001"
data.document.date нет string:date | null "2026-07-14"
data.custom нет object {"billing_group":"Varna B"}

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

default

{
  "data": {
    "name": "Client Warehouse Varna",
    "type_id": 2,
    "parent_id": 42
  }
}

Ответы

201 Created.

Created.

Поле Обязательное Тип Флаги Ограничения Описание Пример
data да Warehouse Склад или клиентский склад.
data.id да integer:int64 readOnly min: 1 1001
data.created_at нет string:date-time | null "2026-07-14T10:30:00Z"
data.updated_at нет string:date-time | null "2026-07-14T10:30:00Z"
data.name да string "Warehouse Sofia"
data.status_id нет integer:int64 | null ID статуса склада. Значения хранятся в базе данных и не моделируются как закрытый enum в публичном контракте. 1
data.type_id нет integer:int64 | null ID типа склада. Значения хранятся в базе данных и не моделируются как закрытый enum в публичном контракте. 2
data.domain_id нет integer:int64 | null min: 1 3
data.owner_user_id нет integer:int64 | null min: 1 15
data.parent_id нет integer:int64 | null min: 1 41
data.country_id нет integer:int64 | null min: 1 100
data.currency_id нет integer:int64 | null min: 1 978
data.company_id нет integer:int64 | null min: 1 7
data.service_provider_company_id нет integer:int64 | null min: 1 8
data.billing_setting_id нет integer:int64 | null min: 1 12
data.settings нет WarehouseSettings
data.settings.datamatrix нет object
data.settings.datamatrix.enabled да boolean false
data.settings.datamatrix.type нет string | null "standard"
data.settings.datamatrix.acceptance_enabled да boolean false
data.settings.datamatrix.picking_enabled да boolean false
data.settings.datamatrix.packing_enabled да boolean false
data.settings.datamatrix.validation_mode нет enum:int64 enum: 0, 1, 2 0 disabled, 1 template validation, 2 database validation. Read from warehouse DataMatrix settings. 1
data.settings.expiration_date_enabled нет boolean true
data.settings.production_date_enabled нет boolean true
data.settings.batch_enabled нет boolean true
data.settings.auto_acceptance_enabled нет boolean false
data.settings.order_auto_conduct_mode нет enum:int64 | null enum: 0, 1, 2, 3 Разрешение на явные действия автопроведения заказа: 0 — запрещено; 1 — пропуск сборки; 2 — пропуск упаковки; 3 — пропуск сборки и упаковки. Сама настройка не выполняет эти действия и не подтверждает передачу перевозчику. Автоупаковка заблокирована при включённой проверке DataMatrix на упаковке. 0
data.settings.require_acceptance_dimensions нет boolean false
data.settings.crossdock_enabled нет boolean Allows cross-docking for a client warehouse. true
data.document нет WarehouseDocument
data.document.number нет string | null "WH-DOC-1001"
data.document.date нет string:date | null "2026-07-14"
data.custom нет object Специфичные для установки атрибуты склада. {"billing_group":"Sofia A"}
meta да ResponseMeta
meta.api_version да enum enum: v2 "v2"
meta.deleted нет boolean true
meta.id нет integer:int64 | null min: 1 1001
meta.command_replayed нет boolean True when an idempotent cross-dock command returned the original successful result. false
meta.crossdock_configuration нет object | null
meta.crossdock_configuration.physical_warehouse_id да integer:int64 min: 1 42
meta.crossdock_configuration.enabled да boolean true
meta.crossdock_configuration.process_version да string "direct_order_v1"

Примеры ответа

success

{
  "data": {
    "id": 42,
    "name": "Warehouse Sofia",
    "status_id": 1,
    "type_id": 2,
    "domain_id": 3,
    "owner_user_id": 15,
    "parent_id": 41,
    "country_id": 100,
    "currency_id": 978,
    "company_id": 7,
    "service_provider_company_id": 8,
    "billing_setting_id": 12,
    "settings": {
      "datamatrix": {
        "enabled": true,
        "type": "standard",
        "acceptance_enabled": true,
        "picking_enabled": true,
        "packing_enabled": false
      },
      "expiration_date_enabled": true,
      "production_date_enabled": true,
      "batch_enabled": true,
      "auto_acceptance_enabled": false,
      "order_auto_conduct_mode": 0,
      "require_acceptance_dimensions": false
    },
    "document": {
      "number": "WH-DOC-1001",
      "date": "2026-07-14"
    },
    "custom": {
      "billing_group": "Sofia A"
    },
    "created_at": "2026-07-14T09:00:00Z",
    "updated_at": "2026-07-14T09:30:00Z"
  },
  "meta": {
    "api_version": "v2"
  }
}

400 Некорректный запрос

BadRequest

Некорректный запрос.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

BAD_REQUEST

{
  "message": "Bad request.",
  "error": "BAD_REQUEST"
}

401 Требуется аутентификация

Unauthorized

Требуется аутентификация.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

AUTH_REQUIRED

{
  "message": "Authentication is required.",
  "error": "AUTH_REQUIRED"
}

403 Доступ запрещен

Forbidden

Аутентифицированному аккаунту запрещено выполнять это действие.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

FORBIDDEN

{
  "message": "The authenticated account is not allowed to perform this action.",
  "error": "FORBIDDEN"
}

409 Конфликт

Conflict

Запрос конфликтует с текущим состоянием ресурса или ключа идемпотентности.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

idempotencyConflict

{
  "message": "The idempotency key is already used with a different payload.",
  "error": "IDEMPOTENCY_KEY_CONFLICT"
}

422 Ошибка валидации

ValidationError

Ошибка валидации.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The given data was invalid."
error нет string "VALIDATION_ERROR"
errors да object {"warehouse_id":["The selected warehouse is invalid."]}

Примеры ответа

validationError

{
  "message": "The given data was invalid.",
  "error": "VALIDATION_ERROR",
  "errors": {
    "warehouse_id": [
      "The selected warehouse is invalid."
    ]
  }
}

429 Превышен лимит запросов

TooManyRequests

Превышен лимит запросов.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "Too Many Attempts."
error да string "RATE_LIMITED"

500 Внутренняя ошибка сервера

InternalServerError

Произошла непредвиденная ошибка сервера.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

INTERNAL_SERVER_ERROR

{
  "message": "An unexpected server error occurred.",
  "error": "INTERNAL_SERVER_ERROR"
}
GET /api/v2/warehouses/{id}

Получить склад

operationIdgetWarehouses
РазделСклады
БезопасностьbearerAuth

Возвращает один ресурс: склад, если он существует и видим аутентифицированному аккаунту.

Пример HTTP-запроса (cURL)

Подставьте свой сервер и токен. ID из примера замените реальными доступными ID. Для тела запроса сохраните подходящий JSON из раздела ниже в request.json; перед отправкой замените демонстрационные значения. Заголовок Idempotency-Key использует ключ одной логической операции.

curl --globoff --request GET "${NWMS_BASE_URL}/api/v2/warehouses/1001" \
  --header "Accept: application/json" \
  --header "Authorization: Bearer ${NWMS_TOKEN}"

Параметры

Имя Где Обязательное Тип Style Explode Ограничения Описание Пример
id path да integer:int64 min: 1 ID склада. 1001

Тело запроса

Тело запроса отсутствует.

Ответы

200 Successful response.

Successful response.

Поле Обязательное Тип Флаги Ограничения Описание Пример
data да Warehouse Склад или клиентский склад.
data.id да integer:int64 readOnly min: 1 1001
data.created_at нет string:date-time | null "2026-07-14T10:30:00Z"
data.updated_at нет string:date-time | null "2026-07-14T10:30:00Z"
data.name да string "Warehouse Sofia"
data.status_id нет integer:int64 | null ID статуса склада. Значения хранятся в базе данных и не моделируются как закрытый enum в публичном контракте. 1
data.type_id нет integer:int64 | null ID типа склада. Значения хранятся в базе данных и не моделируются как закрытый enum в публичном контракте. 2
data.domain_id нет integer:int64 | null min: 1 3
data.owner_user_id нет integer:int64 | null min: 1 15
data.parent_id нет integer:int64 | null min: 1 41
data.country_id нет integer:int64 | null min: 1 100
data.currency_id нет integer:int64 | null min: 1 978
data.company_id нет integer:int64 | null min: 1 7
data.service_provider_company_id нет integer:int64 | null min: 1 8
data.billing_setting_id нет integer:int64 | null min: 1 12
data.settings нет WarehouseSettings
data.settings.datamatrix нет object
data.settings.datamatrix.enabled да boolean false
data.settings.datamatrix.type нет string | null "standard"
data.settings.datamatrix.acceptance_enabled да boolean false
data.settings.datamatrix.picking_enabled да boolean false
data.settings.datamatrix.packing_enabled да boolean false
data.settings.datamatrix.validation_mode нет enum:int64 enum: 0, 1, 2 0 disabled, 1 template validation, 2 database validation. Read from warehouse DataMatrix settings. 1
data.settings.expiration_date_enabled нет boolean true
data.settings.production_date_enabled нет boolean true
data.settings.batch_enabled нет boolean true
data.settings.auto_acceptance_enabled нет boolean false
data.settings.order_auto_conduct_mode нет enum:int64 | null enum: 0, 1, 2, 3 Разрешение на явные действия автопроведения заказа: 0 — запрещено; 1 — пропуск сборки; 2 — пропуск упаковки; 3 — пропуск сборки и упаковки. Сама настройка не выполняет эти действия и не подтверждает передачу перевозчику. Автоупаковка заблокирована при включённой проверке DataMatrix на упаковке. 0
data.settings.require_acceptance_dimensions нет boolean false
data.settings.crossdock_enabled нет boolean Allows cross-docking for a client warehouse. true
data.document нет WarehouseDocument
data.document.number нет string | null "WH-DOC-1001"
data.document.date нет string:date | null "2026-07-14"
data.custom нет object Специфичные для установки атрибуты склада. {"billing_group":"Sofia A"}
meta да ResponseMeta
meta.api_version да enum enum: v2 "v2"
meta.deleted нет boolean true
meta.id нет integer:int64 | null min: 1 1001
meta.command_replayed нет boolean True when an idempotent cross-dock command returned the original successful result. false
meta.crossdock_configuration нет object | null
meta.crossdock_configuration.physical_warehouse_id да integer:int64 min: 1 42
meta.crossdock_configuration.enabled да boolean true
meta.crossdock_configuration.process_version да string "direct_order_v1"

Примеры ответа

success

{
  "data": {
    "id": 42,
    "name": "Warehouse Sofia",
    "status_id": 1,
    "type_id": 2,
    "domain_id": 3,
    "owner_user_id": 15,
    "parent_id": 41,
    "country_id": 100,
    "currency_id": 978,
    "company_id": 7,
    "service_provider_company_id": 8,
    "billing_setting_id": 12,
    "settings": {
      "datamatrix": {
        "enabled": true,
        "type": "standard",
        "acceptance_enabled": true,
        "picking_enabled": true,
        "packing_enabled": false
      },
      "expiration_date_enabled": true,
      "production_date_enabled": true,
      "batch_enabled": true,
      "auto_acceptance_enabled": false,
      "order_auto_conduct_mode": 0,
      "require_acceptance_dimensions": false
    },
    "document": {
      "number": "WH-DOC-1001",
      "date": "2026-07-14"
    },
    "custom": {
      "billing_group": "Sofia A"
    },
    "created_at": "2026-07-14T09:00:00Z",
    "updated_at": "2026-07-14T09:30:00Z"
  },
  "meta": {
    "api_version": "v2"
  }
}

401 Требуется аутентификация

Unauthorized

Требуется аутентификация.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

AUTH_REQUIRED

{
  "message": "Authentication is required.",
  "error": "AUTH_REQUIRED"
}

403 Доступ запрещен

Forbidden

Аутентифицированному аккаунту запрещено выполнять это действие.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

FORBIDDEN

{
  "message": "The authenticated account is not allowed to perform this action.",
  "error": "FORBIDDEN"
}

404 Не найдено

NotFound

Запрошенный ресурс не найден или находится вне области доступа аккаунта.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

NOT_FOUND

{
  "message": "The requested resource was not found or is outside the authenticated account scope.",
  "error": "NOT_FOUND"
}

429 Превышен лимит запросов

TooManyRequests

Превышен лимит запросов.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "Too Many Attempts."
error да string "RATE_LIMITED"

500 Внутренняя ошибка сервера

InternalServerError

Произошла непредвиденная ошибка сервера.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

INTERNAL_SERVER_ERROR

{
  "message": "An unexpected server error occurred.",
  "error": "INTERNAL_SERVER_ERROR"
}
PUT /api/v2/warehouses/{id}

Обновить склад

operationIdreplaceWarehouses
РазделСклады
БезопасностьbearerAuth

Updates editable warehouse fields. Operational flags, document metadata, billing setting, and custom attributes may be changed when permitted.
Текущее поведение backend является legacy-семантикой частичного обновления: пропущенные поля не изменяются.

Пример HTTP-запроса (cURL)

Подставьте свой сервер и токен. ID из примера замените реальными доступными ID. Для тела запроса сохраните подходящий JSON из раздела ниже в request.json; перед отправкой замените демонстрационные значения. Заголовок Idempotency-Key использует ключ одной логической операции.

curl --globoff --request PUT "${NWMS_BASE_URL}/api/v2/warehouses/1001" \
  --header "Accept: application/json" \
  --header "Authorization: Bearer ${NWMS_TOKEN}" \
  --header "Idempotency-Key: ${NWMS_REQUEST_KEY}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json

Параметры

Имя Где Обязательное Тип Style Explode Ограничения Описание Пример
id path да integer:int64 min: 1 ID склада. 1001
Idempotency-Key header нет string maxLength: 191 Опциональный ключ идемпотентности для write-запросов API v2. Успешные ответы 2xx/3xx повторяются для того же ключа и идентичного payload в течение одного дня. Тот же ключ с другим payload возвращает 409. "ord-create-20260714-001"

Тело запроса

ReplaceWarehouseRequest обязательно

Поле Обязательное Тип Флаги Ограничения Описание Пример
data да ReplaceWarehousePayload Legacy PUT payload. Текущий backend применяет семантику частичного обновления.
data.name нет string | null minLength: 1 "Client Warehouse Varna"
data.status_id нет integer:int64 | null ID статуса склада. Значения хранятся в базе данных и не моделируются как закрытый enum в публичном контракте. 1
data.owner_user_id нет integer:int64 | null min: 1 15
data.parent_id нет integer:int64 | null min: 1 42
data.country_id нет integer:int64 | null min: 1 100
data.currency_id нет integer:int64 | null min: 1 978
data.company_id нет integer:int64 | null min: 1 7
data.service_provider_company_id нет integer:int64 | null min: 1 8
data.billing_setting_id нет integer:int64 | null min: 1 12
data.settings нет object | null
data.settings.datamatrix нет object
data.settings.datamatrix.enabled да boolean false
data.settings.datamatrix.type нет string | null "standard"
data.settings.datamatrix.acceptance_enabled да boolean false
data.settings.datamatrix.picking_enabled да boolean false
data.settings.datamatrix.packing_enabled да boolean false
data.settings.datamatrix.validation_mode нет enum:int64 enum: 0, 1, 2 0 disabled, 1 template validation, 2 database validation. Read from warehouse DataMatrix settings. 1
data.settings.expiration_date_enabled нет boolean true
data.settings.production_date_enabled нет boolean true
data.settings.batch_enabled нет boolean true
data.settings.auto_acceptance_enabled нет boolean false
data.settings.order_auto_conduct_mode нет enum:int64 | null enum: 0, 1, 2, 3 Разрешение на явные действия автопроведения заказа: 0 — запрещено; 1 — пропуск сборки; 2 — пропуск упаковки; 3 — пропуск сборки и упаковки. Сама настройка не выполняет эти действия и не подтверждает передачу перевозчику. Автоупаковка заблокирована при включённой проверке DataMatrix на упаковке. 0
data.settings.require_acceptance_dimensions нет boolean false
data.settings.crossdock_enabled нет boolean Allows cross-docking for a client warehouse. true
data.document нет object | null
data.document.number нет string | null "WH-DOC-1001"
data.document.date нет string:date | null "2026-07-14"
data.custom нет object {"billing_group":"Varna B"}

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

default

{
  "data": {
    "name": "Client Warehouse Varna",
    "billing_setting_id": 12
  }
}

Ответы

200 Successful response.

Successful response.

Поле Обязательное Тип Флаги Ограничения Описание Пример
data да Warehouse Склад или клиентский склад.
data.id да integer:int64 readOnly min: 1 1001
data.created_at нет string:date-time | null "2026-07-14T10:30:00Z"
data.updated_at нет string:date-time | null "2026-07-14T10:30:00Z"
data.name да string "Warehouse Sofia"
data.status_id нет integer:int64 | null ID статуса склада. Значения хранятся в базе данных и не моделируются как закрытый enum в публичном контракте. 1
data.type_id нет integer:int64 | null ID типа склада. Значения хранятся в базе данных и не моделируются как закрытый enum в публичном контракте. 2
data.domain_id нет integer:int64 | null min: 1 3
data.owner_user_id нет integer:int64 | null min: 1 15
data.parent_id нет integer:int64 | null min: 1 41
data.country_id нет integer:int64 | null min: 1 100
data.currency_id нет integer:int64 | null min: 1 978
data.company_id нет integer:int64 | null min: 1 7
data.service_provider_company_id нет integer:int64 | null min: 1 8
data.billing_setting_id нет integer:int64 | null min: 1 12
data.settings нет WarehouseSettings
data.settings.datamatrix нет object
data.settings.datamatrix.enabled да boolean false
data.settings.datamatrix.type нет string | null "standard"
data.settings.datamatrix.acceptance_enabled да boolean false
data.settings.datamatrix.picking_enabled да boolean false
data.settings.datamatrix.packing_enabled да boolean false
data.settings.datamatrix.validation_mode нет enum:int64 enum: 0, 1, 2 0 disabled, 1 template validation, 2 database validation. Read from warehouse DataMatrix settings. 1
data.settings.expiration_date_enabled нет boolean true
data.settings.production_date_enabled нет boolean true
data.settings.batch_enabled нет boolean true
data.settings.auto_acceptance_enabled нет boolean false
data.settings.order_auto_conduct_mode нет enum:int64 | null enum: 0, 1, 2, 3 Разрешение на явные действия автопроведения заказа: 0 — запрещено; 1 — пропуск сборки; 2 — пропуск упаковки; 3 — пропуск сборки и упаковки. Сама настройка не выполняет эти действия и не подтверждает передачу перевозчику. Автоупаковка заблокирована при включённой проверке DataMatrix на упаковке. 0
data.settings.require_acceptance_dimensions нет boolean false
data.settings.crossdock_enabled нет boolean Allows cross-docking for a client warehouse. true
data.document нет WarehouseDocument
data.document.number нет string | null "WH-DOC-1001"
data.document.date нет string:date | null "2026-07-14"
data.custom нет object Специфичные для установки атрибуты склада. {"billing_group":"Sofia A"}
meta да ResponseMeta
meta.api_version да enum enum: v2 "v2"
meta.deleted нет boolean true
meta.id нет integer:int64 | null min: 1 1001
meta.command_replayed нет boolean True when an idempotent cross-dock command returned the original successful result. false
meta.crossdock_configuration нет object | null
meta.crossdock_configuration.physical_warehouse_id да integer:int64 min: 1 42
meta.crossdock_configuration.enabled да boolean true
meta.crossdock_configuration.process_version да string "direct_order_v1"

Примеры ответа

success

{
  "data": {
    "id": 42,
    "name": "Warehouse Sofia",
    "status_id": 1,
    "type_id": 2,
    "domain_id": 3,
    "owner_user_id": 15,
    "parent_id": 41,
    "country_id": 100,
    "currency_id": 978,
    "company_id": 7,
    "service_provider_company_id": 8,
    "billing_setting_id": 12,
    "settings": {
      "datamatrix": {
        "enabled": true,
        "type": "standard",
        "acceptance_enabled": true,
        "picking_enabled": true,
        "packing_enabled": false
      },
      "expiration_date_enabled": true,
      "production_date_enabled": true,
      "batch_enabled": true,
      "auto_acceptance_enabled": false,
      "order_auto_conduct_mode": 0,
      "require_acceptance_dimensions": false
    },
    "document": {
      "number": "WH-DOC-1001",
      "date": "2026-07-14"
    },
    "custom": {
      "billing_group": "Sofia A"
    },
    "created_at": "2026-07-14T09:00:00Z",
    "updated_at": "2026-07-14T09:30:00Z"
  },
  "meta": {
    "api_version": "v2"
  }
}

400 Некорректный запрос

BadRequest

Некорректный запрос.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

BAD_REQUEST

{
  "message": "Bad request.",
  "error": "BAD_REQUEST"
}

401 Требуется аутентификация

Unauthorized

Требуется аутентификация.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

AUTH_REQUIRED

{
  "message": "Authentication is required.",
  "error": "AUTH_REQUIRED"
}

403 Доступ запрещен

Forbidden

Аутентифицированному аккаунту запрещено выполнять это действие.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

FORBIDDEN

{
  "message": "The authenticated account is not allowed to perform this action.",
  "error": "FORBIDDEN"
}

404 Не найдено

NotFound

Запрошенный ресурс не найден или находится вне области доступа аккаунта.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

NOT_FOUND

{
  "message": "The requested resource was not found or is outside the authenticated account scope.",
  "error": "NOT_FOUND"
}

409 Конфликт

Conflict

Запрос конфликтует с текущим состоянием ресурса или ключа идемпотентности.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

idempotencyConflict

{
  "message": "The idempotency key is already used with a different payload.",
  "error": "IDEMPOTENCY_KEY_CONFLICT"
}

422 Ошибка валидации

ValidationError

Ошибка валидации.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The given data was invalid."
error нет string "VALIDATION_ERROR"
errors да object {"warehouse_id":["The selected warehouse is invalid."]}

Примеры ответа

validationError

{
  "message": "The given data was invalid.",
  "error": "VALIDATION_ERROR",
  "errors": {
    "warehouse_id": [
      "The selected warehouse is invalid."
    ]
  }
}

429 Превышен лимит запросов

TooManyRequests

Превышен лимит запросов.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "Too Many Attempts."
error да string "RATE_LIMITED"

500 Внутренняя ошибка сервера

InternalServerError

Произошла непредвиденная ошибка сервера.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

INTERNAL_SERVER_ERROR

{
  "message": "An unexpected server error occurred.",
  "error": "INTERNAL_SERVER_ERROR"
}
PATCH /api/v2/warehouses/{id}

Обновить склад

operationIdpatchWarehouses
РазделСклады
БезопасностьbearerAuth

Update warehouse. Запрос использует описанную payload-схему, проверяет видимость tenant и возвращает нормализованный API envelope.
Текущее поведение backend является legacy-семантикой частичного обновления: пропущенные поля не изменяются.

Пример HTTP-запроса (cURL)

Подставьте свой сервер и токен. ID из примера замените реальными доступными ID. Для тела запроса сохраните подходящий JSON из раздела ниже в request.json; перед отправкой замените демонстрационные значения. Заголовок Idempotency-Key использует ключ одной логической операции.

curl --globoff --request PATCH "${NWMS_BASE_URL}/api/v2/warehouses/1001" \
  --header "Accept: application/json" \
  --header "Authorization: Bearer ${NWMS_TOKEN}" \
  --header "Idempotency-Key: ${NWMS_REQUEST_KEY}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json

Параметры

Имя Где Обязательное Тип Style Explode Ограничения Описание Пример
id path да integer:int64 min: 1 ID склада. 1001
Idempotency-Key header нет string maxLength: 191 Опциональный ключ идемпотентности для write-запросов API v2. Успешные ответы 2xx/3xx повторяются для того же ключа и идентичного payload в течение одного дня. Тот же ключ с другим payload возвращает 409. "ord-create-20260714-001"

Тело запроса

PatchWarehouseRequest обязательно

Поле Обязательное Тип Флаги Ограничения Описание Пример
data да PatchWarehousePayload
data.name нет string | null minLength: 1 "Client Warehouse Varna"
data.status_id нет integer:int64 | null ID статуса склада. Значения хранятся в базе данных и не моделируются как закрытый enum в публичном контракте. 1
data.owner_user_id нет integer:int64 | null min: 1 15
data.parent_id нет integer:int64 | null min: 1 42
data.country_id нет integer:int64 | null min: 1 100
data.currency_id нет integer:int64 | null min: 1 978
data.company_id нет integer:int64 | null min: 1 7
data.service_provider_company_id нет integer:int64 | null min: 1 8
data.billing_setting_id нет integer:int64 | null min: 1 12
data.settings нет object | null
data.settings.datamatrix нет object
data.settings.datamatrix.enabled да boolean false
data.settings.datamatrix.type нет string | null "standard"
data.settings.datamatrix.acceptance_enabled да boolean false
data.settings.datamatrix.picking_enabled да boolean false
data.settings.datamatrix.packing_enabled да boolean false
data.settings.datamatrix.validation_mode нет enum:int64 enum: 0, 1, 2 0 disabled, 1 template validation, 2 database validation. Read from warehouse DataMatrix settings. 1
data.settings.expiration_date_enabled нет boolean true
data.settings.production_date_enabled нет boolean true
data.settings.batch_enabled нет boolean true
data.settings.auto_acceptance_enabled нет boolean false
data.settings.order_auto_conduct_mode нет enum:int64 | null enum: 0, 1, 2, 3 Разрешение на явные действия автопроведения заказа: 0 — запрещено; 1 — пропуск сборки; 2 — пропуск упаковки; 3 — пропуск сборки и упаковки. Сама настройка не выполняет эти действия и не подтверждает передачу перевозчику. Автоупаковка заблокирована при включённой проверке DataMatrix на упаковке. 0
data.settings.require_acceptance_dimensions нет boolean false
data.settings.crossdock_enabled нет boolean Allows cross-docking for a client warehouse. true
data.document нет object | null
data.document.number нет string | null "WH-DOC-1001"
data.document.date нет string:date | null "2026-07-14"
data.custom нет object {"billing_group":"Varna B"}

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

default

{
  "data": {
    "billing_setting_id": 12
  }
}

Ответы

200 Successful response.

Successful response.

Поле Обязательное Тип Флаги Ограничения Описание Пример
data да Warehouse Склад или клиентский склад.
data.id да integer:int64 readOnly min: 1 1001
data.created_at нет string:date-time | null "2026-07-14T10:30:00Z"
data.updated_at нет string:date-time | null "2026-07-14T10:30:00Z"
data.name да string "Warehouse Sofia"
data.status_id нет integer:int64 | null ID статуса склада. Значения хранятся в базе данных и не моделируются как закрытый enum в публичном контракте. 1
data.type_id нет integer:int64 | null ID типа склада. Значения хранятся в базе данных и не моделируются как закрытый enum в публичном контракте. 2
data.domain_id нет integer:int64 | null min: 1 3
data.owner_user_id нет integer:int64 | null min: 1 15
data.parent_id нет integer:int64 | null min: 1 41
data.country_id нет integer:int64 | null min: 1 100
data.currency_id нет integer:int64 | null min: 1 978
data.company_id нет integer:int64 | null min: 1 7
data.service_provider_company_id нет integer:int64 | null min: 1 8
data.billing_setting_id нет integer:int64 | null min: 1 12
data.settings нет WarehouseSettings
data.settings.datamatrix нет object
data.settings.datamatrix.enabled да boolean false
data.settings.datamatrix.type нет string | null "standard"
data.settings.datamatrix.acceptance_enabled да boolean false
data.settings.datamatrix.picking_enabled да boolean false
data.settings.datamatrix.packing_enabled да boolean false
data.settings.datamatrix.validation_mode нет enum:int64 enum: 0, 1, 2 0 disabled, 1 template validation, 2 database validation. Read from warehouse DataMatrix settings. 1
data.settings.expiration_date_enabled нет boolean true
data.settings.production_date_enabled нет boolean true
data.settings.batch_enabled нет boolean true
data.settings.auto_acceptance_enabled нет boolean false
data.settings.order_auto_conduct_mode нет enum:int64 | null enum: 0, 1, 2, 3 Разрешение на явные действия автопроведения заказа: 0 — запрещено; 1 — пропуск сборки; 2 — пропуск упаковки; 3 — пропуск сборки и упаковки. Сама настройка не выполняет эти действия и не подтверждает передачу перевозчику. Автоупаковка заблокирована при включённой проверке DataMatrix на упаковке. 0
data.settings.require_acceptance_dimensions нет boolean false
data.settings.crossdock_enabled нет boolean Allows cross-docking for a client warehouse. true
data.document нет WarehouseDocument
data.document.number нет string | null "WH-DOC-1001"
data.document.date нет string:date | null "2026-07-14"
data.custom нет object Специфичные для установки атрибуты склада. {"billing_group":"Sofia A"}
meta да ResponseMeta
meta.api_version да enum enum: v2 "v2"
meta.deleted нет boolean true
meta.id нет integer:int64 | null min: 1 1001
meta.command_replayed нет boolean True when an idempotent cross-dock command returned the original successful result. false
meta.crossdock_configuration нет object | null
meta.crossdock_configuration.physical_warehouse_id да integer:int64 min: 1 42
meta.crossdock_configuration.enabled да boolean true
meta.crossdock_configuration.process_version да string "direct_order_v1"

Примеры ответа

success

{
  "data": {
    "id": 42,
    "name": "Warehouse Sofia",
    "status_id": 1,
    "type_id": 2,
    "domain_id": 3,
    "owner_user_id": 15,
    "parent_id": 41,
    "country_id": 100,
    "currency_id": 978,
    "company_id": 7,
    "service_provider_company_id": 8,
    "billing_setting_id": 12,
    "settings": {
      "datamatrix": {
        "enabled": true,
        "type": "standard",
        "acceptance_enabled": true,
        "picking_enabled": true,
        "packing_enabled": false
      },
      "expiration_date_enabled": true,
      "production_date_enabled": true,
      "batch_enabled": true,
      "auto_acceptance_enabled": false,
      "order_auto_conduct_mode": 0,
      "require_acceptance_dimensions": false
    },
    "document": {
      "number": "WH-DOC-1001",
      "date": "2026-07-14"
    },
    "custom": {
      "billing_group": "Sofia A"
    },
    "created_at": "2026-07-14T09:00:00Z",
    "updated_at": "2026-07-14T09:30:00Z"
  },
  "meta": {
    "api_version": "v2"
  }
}

400 Некорректный запрос

BadRequest

Некорректный запрос.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

BAD_REQUEST

{
  "message": "Bad request.",
  "error": "BAD_REQUEST"
}

401 Требуется аутентификация

Unauthorized

Требуется аутентификация.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

AUTH_REQUIRED

{
  "message": "Authentication is required.",
  "error": "AUTH_REQUIRED"
}

403 Доступ запрещен

Forbidden

Аутентифицированному аккаунту запрещено выполнять это действие.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

FORBIDDEN

{
  "message": "The authenticated account is not allowed to perform this action.",
  "error": "FORBIDDEN"
}

404 Не найдено

NotFound

Запрошенный ресурс не найден или находится вне области доступа аккаунта.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

NOT_FOUND

{
  "message": "The requested resource was not found or is outside the authenticated account scope.",
  "error": "NOT_FOUND"
}

409 Конфликт

Conflict

Запрос конфликтует с текущим состоянием ресурса или ключа идемпотентности.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

idempotencyConflict

{
  "message": "The idempotency key is already used with a different payload.",
  "error": "IDEMPOTENCY_KEY_CONFLICT"
}

422 Ошибка валидации

ValidationError

Ошибка валидации.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The given data was invalid."
error нет string "VALIDATION_ERROR"
errors да object {"warehouse_id":["The selected warehouse is invalid."]}

Примеры ответа

validationError

{
  "message": "The given data was invalid.",
  "error": "VALIDATION_ERROR",
  "errors": {
    "warehouse_id": [
      "The selected warehouse is invalid."
    ]
  }
}

429 Превышен лимит запросов

TooManyRequests

Превышен лимит запросов.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "Too Many Attempts."
error да string "RATE_LIMITED"

500 Внутренняя ошибка сервера

InternalServerError

Произошла непредвиденная ошибка сервера.

Поле Обязательное Тип Флаги Ограничения Описание Пример
message да string "The request could not be processed."
error да string "BAD_REQUEST"

Примеры ответа

INTERNAL_SERVER_ERROR

{
  "message": "An unexpected server error occurred.",
  "error": "INTERNAL_SERVER_ERROR"
}