Разукомплектация квантов
Каждая операция ниже сгенерирована из OpenAPI v2 и содержит параметры, поля запроса, поля ответа, ошибки и примеры.
Разукомплектация квантов
Получить список разукомплектаций квантов
| operationId | listQuantUnpackings |
|---|---|
| Раздел | Разукомплектация квантов |
| Безопасность | 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/quant-unpackings" \
--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: 500 |
Количество записей на странице. По умолчанию 100; максимум 500. Этот фильтр также можно передать как filter[per_page], если это поддерживает Laravel query adapter. |
100 |
sort |
query | нет | string |
form | false | pattern: ^-?[A-Za-z0-9_]+(,-?[A-Za-z0-9_]+)*$ | Поля сортировки через запятую. Префикс - означает сортировку по убыванию. Допустимые поля: id, document_date, conducted_at, created_at, updated_at. По умолчанию: -id. Этот фильтр также можно передать как filter[sort], если это поддерживает Laravel query adapter. |
"-id" |
after_id |
query | нет | integer:int64 |
form | true | min: 0 | Вернуть строки с ID больше указанного значения. Граница исключающая. Этот фильтр также можно передать как filter[after_id], если это поддерживает Laravel query adapter. |
1000 |
include |
query | нет | string |
form | false | Связанные сущности через запятую. Допустимые значения: items. Этот фильтр также можно передать как filter[include], если это поддерживает Laravel query adapter. |
"items" |
|
id |
query | нет | integer:int64 |
form | true | min: 1 | Фильтр по id с точным совпадением. Этот фильтр также можно передать как filter[id], если это поддерживает Laravel query adapter. |
1001 |
external_id |
query | нет | string |
form | true | Фильтр по external_id с точным совпадением. Этот фильтр также можно передать как filter[external_id], если это поддерживает Laravel query adapter. |
"EXT-10045" |
|
status_id |
query | нет | integer:int64 |
form | true | min: 1 | Фильтр по status_id с точным совпадением. Этот фильтр также можно передать как filter[status_id], если это поддерживает Laravel query adapter. |
1 |
warehouse_id |
query | нет | integer:int64 |
form | true | min: 1 | Фильтр по warehouse_id с точным совпадением. Этот фильтр также можно передать как filter[warehouse_id], если это поддерживает Laravel query adapter. |
42 |
user_id |
query | нет | integer:int64 |
form | true | min: 1 | Фильтр по user_id с точным совпадением. Этот фильтр также можно передать как filter[user_id], если это поддерживает Laravel query adapter. |
15 |
comment |
query | нет | string |
form | true | Фильтр по comment с частичным текстовым совпадением. Этот фильтр также можно передать как filter[comment], если это поддерживает Laravel query adapter. |
"Priority" |
|
document_date_from |
query | нет | string:date |
form | true | Нижняя включительная граница даты для document_date. Этот фильтр также можно передать как filter[document_date_from], если это поддерживает Laravel query adapter. |
"2026-07-14" |
|
document_date_to |
query | нет | string:date |
form | true | Верхняя включительная граница даты для document_date. Этот фильтр также можно передать как filter[document_date_to], если это поддерживает Laravel query adapter. |
"2026-07-14" |
|
conducted_at_from |
query | нет | string:date |
form | true | Нижняя включительная граница даты для conducted_at. Этот фильтр также можно передать как filter[conducted_at_from], если это поддерживает Laravel query adapter. |
"2026-07-14" |
|
conducted_at_to |
query | нет | string:date |
form | true | Верхняя включительная граница даты для conducted_at. Этот фильтр также можно передать как filter[conducted_at_to], если это поддерживает Laravel query adapter. |
"2026-07-14" |
|
created_at_from |
query | нет | string:date |
form | true | Нижняя включительная граница даты для created_at. Этот фильтр также можно передать как filter[created_at_from], если это поддерживает Laravel query adapter. |
"2026-07-14" |
|
created_at_to |
query | нет | string:date |
form | true | Верхняя включительная граница даты для created_at. Этот фильтр также можно передать как filter[created_at_to], если это поддерживает Laravel query adapter. |
"2026-07-14" |
Тело запроса
Тело запроса отсутствует.
Ответы
200 Successful response.
Successful response.
| Поле | Обязательное | Тип | Флаги | Ограничения | Описание | Пример |
|---|---|---|---|---|---|---|
data |
да | array<QuantUnpacking> |
|
|||
data[] |
нет | QuantUnpacking |
Документ разукомплектации кванта. | |
||
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[].external_id |
нет | string | null |
"QU-100245" |
|||
data[].domain_id |
нет | integer:int64 | null |
min: 1 | 3 |
||
data[].warehouse_id |
нет | integer:int64 | null |
min: 1 | 42 |
||
data[].user_id |
нет | integer:int64 | null |
min: 1 | 9 |
||
data[].status_id |
нет | enum:int64 | null |
enum: 1, 4 | 1 - draft/new document. 4 - conducted document. |
1 |
|
data[].document_date |
нет | string:date | null |
"2026-07-14" |
|||
data[].counts |
да | object |
|
|||
data[].counts.source |
да | number:float |
1 |
|||
data[].counts.target |
да | number:float |
6 |
|||
data[].counts.source_moved |
да | number:float |
0 |
|||
data[].counts.target_moved |
да | number:float |
0 |
|||
data[].conducted_at |
нет | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data[].comment |
нет | string | null |
"Unpack coffee box" |
|||
data[].items |
нет | array<QuantUnpackingItem> |
|
|||
data[].items[] |
нет | QuantUnpackingItem |
Строка разукомплектации кванта. | |
||
data[].items[].id |
да | integer:int64 |
readOnly | min: 1 | 9001 |
|
data[].items[].source_product_id |
да | integer:int64 |
min: 1 | 1200 |
||
data[].items[].target_product_id |
нет | integer:int64 | null |
min: 1 | 1201 |
||
data[].items[].source_place_id |
нет | integer:int64 | null |
min: 1 | 501 |
||
data[].items[].target_place_id |
нет | integer:int64 | null |
min: 1 | 502 |
||
data[].items[].source_quantity |
да | number:float |
min: 0 | 1 |
||
data[].items[].target_quantity |
нет | number:float | null |
min: 0 | 6 |
||
data[].items[].available_quantity |
нет | number:float | null |
min: 0 | 10 |
||
data[].items[].batch |
нет | string | null |
"LOT-2026" |
|||
data[].items[].production_date |
нет | string:date | null |
"2026-01-15" |
|||
data[].items[].expiration_date |
нет | string:date | null |
"2027-01-15" |
|||
data[].items[].comment |
нет | string | null |
"Box unpacked" |
|||
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": 9201,
"external_id": "QU-100245",
"domain_id": 3,
"warehouse_id": 42,
"user_id": 9,
"status_id": 1,
"document_date": "2026-07-14",
"counts": {
"source": 1,
"target": 6,
"source_moved": 0,
"target_moved": 0
},
"conducted_at": null,
"comment": "Unpack coffee box",
"items": [
{
"id": 9001,
"source_product_id": 1200,
"target_product_id": 1201,
"source_place_id": 501,
"target_place_id": 502,
"source_quantity": 1,
"target_quantity": 6,
"available_quantity": 10,
"batch": "LOT-2026",
"production_date": "2026-01-15",
"expiration_date": "2027-01-15",
"comment": "Box unpacked"
}
],
"created_at": "2026-07-14T09:00:00Z",
"updated_at": "2026-07-14T09:30:00Z"
}
],
"links": {
"first": "https://betawms.ffcdek.ru/api/v2/quant-unpackings?page=1",
"last": "https://betawms.ffcdek.ru/api/v2/quant-unpackings?page=2",
"prev": null,
"next": "https://betawms.ffcdek.ru/api/v2/quant-unpackings?page=2"
},
"meta": {
"api_version": "v2",
"current_page": 1,
"from": 1,
"last_page": 2,
"path": "https://betawms.ffcdek.ru/api/v2/quant-unpackings",
"per_page": 100,
"to": 100,
"total": 123
}
}
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"
}
Создать разукомплектацию кванта
| operationId | createQuantUnpackings |
|---|---|
| Раздел | Разукомплектация квантов |
| Безопасность | bearerAuth |
Create quant unpacking. Запрос использует описанную payload-схему, проверяет видимость tenant и возвращает нормализованный API envelope.
Пример HTTP-запроса (cURL)
Подставьте свой сервер и токен. ID из примера замените реальными доступными ID. Для тела запроса сохраните подходящий JSON из раздела ниже в request.json; перед отправкой замените демонстрационные значения. Заголовок Idempotency-Key использует ключ одной логической операции.
curl --globoff --request POST "${NWMS_BASE_URL}/api/v2/quant-unpackings" \
--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" |
Тело запроса
CreateQuantUnpackingRequest обязательно
| Поле | Обязательное | Тип | Флаги | Ограничения | Описание | Пример |
|---|---|---|---|---|---|---|
data |
да | CreateQuantUnpackingPayload |
|
|||
data.warehouse_id |
да | integer:int64 |
min: 1 | 42 |
||
data.document_date |
нет | string:date | null |
"2026-07-14" |
|||
data.external_id |
нет | string | null |
"QU-100245" |
|||
data.comment |
нет | string | null |
"Unpack coffee box" |
|||
data.conduct |
нет | boolean |
false |
|||
data.items |
да | array<QuantUnpackingItemCreatePayload> |
minItems: 1 | |
||
data.items[] |
нет | QuantUnpackingItemCreatePayload |
Исходная строка разукомплектации кванта. Целевой товар и целевое количество определяются сервисом упаковок. | |
||
data.items[].source_product_id |
да | integer:int64 |
min: 1 | 1200 |
||
data.items[].source_quantity |
да | number:float |
min: 0.001 | 1 |
||
data.items[].source_place_id |
нет | integer:int64 | null |
min: 1 | 501 |
||
data.items[].target_place_id |
нет | integer:int64 | null |
min: 1 | 502 |
||
data.items[].batch |
нет | string | null |
"LOT-2026" |
|||
data.items[].production_date |
нет | string:date | null |
"2026-01-15" |
|||
data.items[].expiration_date |
нет | string:date | null |
"2027-01-15" |
|||
data.items[].comment |
нет | string | null |
"Box unpacked" |
Примеры запроса
default
{
"data": {
"warehouse_id": 42,
"external_id": "QU-100245",
"items": [
{
"source_product_id": 1200,
"source_quantity": 1,
"source_place_id": 501
}
]
}
}
Ответы
201 Created.
Created.
| Поле | Обязательное | Тип | Флаги | Ограничения | Описание | Пример |
|---|---|---|---|---|---|---|
data |
да | QuantUnpacking |
Документ разукомплектации кванта. | |
||
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.external_id |
нет | string | null |
"QU-100245" |
|||
data.domain_id |
нет | integer:int64 | null |
min: 1 | 3 |
||
data.warehouse_id |
нет | integer:int64 | null |
min: 1 | 42 |
||
data.user_id |
нет | integer:int64 | null |
min: 1 | 9 |
||
data.status_id |
нет | enum:int64 | null |
enum: 1, 4 | 1 - draft/new document. 4 - conducted document. |
1 |
|
data.document_date |
нет | string:date | null |
"2026-07-14" |
|||
data.counts |
да | object |
|
|||
data.counts.source |
да | number:float |
1 |
|||
data.counts.target |
да | number:float |
6 |
|||
data.counts.source_moved |
да | number:float |
0 |
|||
data.counts.target_moved |
да | number:float |
0 |
|||
data.conducted_at |
нет | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.comment |
нет | string | null |
"Unpack coffee box" |
|||
data.items |
нет | array<QuantUnpackingItem> |
|
|||
data.items[] |
нет | QuantUnpackingItem |
Строка разукомплектации кванта. | |
||
data.items[].id |
да | integer:int64 |
readOnly | min: 1 | 9001 |
|
data.items[].source_product_id |
да | integer:int64 |
min: 1 | 1200 |
||
data.items[].target_product_id |
нет | integer:int64 | null |
min: 1 | 1201 |
||
data.items[].source_place_id |
нет | integer:int64 | null |
min: 1 | 501 |
||
data.items[].target_place_id |
нет | integer:int64 | null |
min: 1 | 502 |
||
data.items[].source_quantity |
да | number:float |
min: 0 | 1 |
||
data.items[].target_quantity |
нет | number:float | null |
min: 0 | 6 |
||
data.items[].available_quantity |
нет | number:float | null |
min: 0 | 10 |
||
data.items[].batch |
нет | string | null |
"LOT-2026" |
|||
data.items[].production_date |
нет | string:date | null |
"2026-01-15" |
|||
data.items[].expiration_date |
нет | string:date | null |
"2027-01-15" |
|||
data.items[].comment |
нет | string | null |
"Box unpacked" |
|||
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": 9201,
"external_id": "QU-100245",
"domain_id": 3,
"warehouse_id": 42,
"user_id": 9,
"status_id": 1,
"document_date": "2026-07-14",
"counts": {
"source": 1,
"target": 6,
"source_moved": 0,
"target_moved": 0
},
"conducted_at": null,
"comment": "Unpack coffee box",
"items": [
{
"id": 9001,
"source_product_id": 1200,
"target_product_id": 1201,
"source_place_id": 501,
"target_place_id": 502,
"source_quantity": 1,
"target_quantity": 6,
"available_quantity": 10,
"batch": "LOT-2026",
"production_date": "2026-01-15",
"expiration_date": "2027-01-15",
"comment": "Box unpacked"
}
],
"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"
}
Получить разукомплектацию кванта
| operationId | getQuantUnpackings |
|---|---|
| Раздел | Разукомплектация квантов |
| Безопасность | bearerAuth |
Возвращает один ресурс: разукомплектация кванта, если он существует и видим аутентифицированному аккаунту.
Пример HTTP-запроса (cURL)
Подставьте свой сервер и токен. ID из примера замените реальными доступными ID. Для тела запроса сохраните подходящий JSON из раздела ниже в request.json; перед отправкой замените демонстрационные значения. Заголовок Idempotency-Key использует ключ одной логической операции.
curl --globoff --request GET "${NWMS_BASE_URL}/api/v2/quant-unpackings/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 |
да | QuantUnpacking |
Документ разукомплектации кванта. | |
||
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.external_id |
нет | string | null |
"QU-100245" |
|||
data.domain_id |
нет | integer:int64 | null |
min: 1 | 3 |
||
data.warehouse_id |
нет | integer:int64 | null |
min: 1 | 42 |
||
data.user_id |
нет | integer:int64 | null |
min: 1 | 9 |
||
data.status_id |
нет | enum:int64 | null |
enum: 1, 4 | 1 - draft/new document. 4 - conducted document. |
1 |
|
data.document_date |
нет | string:date | null |
"2026-07-14" |
|||
data.counts |
да | object |
|
|||
data.counts.source |
да | number:float |
1 |
|||
data.counts.target |
да | number:float |
6 |
|||
data.counts.source_moved |
да | number:float |
0 |
|||
data.counts.target_moved |
да | number:float |
0 |
|||
data.conducted_at |
нет | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.comment |
нет | string | null |
"Unpack coffee box" |
|||
data.items |
нет | array<QuantUnpackingItem> |
|
|||
data.items[] |
нет | QuantUnpackingItem |
Строка разукомплектации кванта. | |
||
data.items[].id |
да | integer:int64 |
readOnly | min: 1 | 9001 |
|
data.items[].source_product_id |
да | integer:int64 |
min: 1 | 1200 |
||
data.items[].target_product_id |
нет | integer:int64 | null |
min: 1 | 1201 |
||
data.items[].source_place_id |
нет | integer:int64 | null |
min: 1 | 501 |
||
data.items[].target_place_id |
нет | integer:int64 | null |
min: 1 | 502 |
||
data.items[].source_quantity |
да | number:float |
min: 0 | 1 |
||
data.items[].target_quantity |
нет | number:float | null |
min: 0 | 6 |
||
data.items[].available_quantity |
нет | number:float | null |
min: 0 | 10 |
||
data.items[].batch |
нет | string | null |
"LOT-2026" |
|||
data.items[].production_date |
нет | string:date | null |
"2026-01-15" |
|||
data.items[].expiration_date |
нет | string:date | null |
"2027-01-15" |
|||
data.items[].comment |
нет | string | null |
"Box unpacked" |
|||
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": 9201,
"external_id": "QU-100245",
"domain_id": 3,
"warehouse_id": 42,
"user_id": 9,
"status_id": 1,
"document_date": "2026-07-14",
"counts": {
"source": 1,
"target": 6,
"source_moved": 0,
"target_moved": 0
},
"conducted_at": null,
"comment": "Unpack coffee box",
"items": [
{
"id": 9001,
"source_product_id": 1200,
"target_product_id": 1201,
"source_place_id": 501,
"target_place_id": 502,
"source_quantity": 1,
"target_quantity": 6,
"available_quantity": 10,
"batch": "LOT-2026",
"production_date": "2026-01-15",
"expiration_date": "2027-01-15",
"comment": "Box unpacked"
}
],
"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"
}
Провести разукомплектацию кванта
| operationId | conductQuantUnpacking |
|---|---|
| Раздел | Разукомплектация квантов |
| Безопасность | bearerAuth |
Conduct quant unpacking. Запрос использует описанную payload-схему, проверяет видимость tenant и возвращает нормализованный API envelope.
Пример HTTP-запроса (cURL)
Подставьте свой сервер и токен. ID из примера замените реальными доступными ID. Для тела запроса сохраните подходящий JSON из раздела ниже в request.json; перед отправкой замените демонстрационные значения. Заголовок Idempotency-Key использует ключ одной логической операции.
curl --globoff --request POST "${NWMS_BASE_URL}/api/v2/quant-unpackings/1001/conduct" \
--header "Accept: application/json" \
--header "Authorization: Bearer ${NWMS_TOKEN}" \
--header "Idempotency-Key: ${NWMS_REQUEST_KEY}"Параметры
| Имя | Где | Обязательное | Тип | 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" |
Тело запроса
Тело запроса отсутствует.
Ответы
200 Successful response.
Successful response.
| Поле | Обязательное | Тип | Флаги | Ограничения | Описание | Пример |
|---|---|---|---|---|---|---|
data |
да | QuantUnpacking |
Документ разукомплектации кванта. | |
||
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.external_id |
нет | string | null |
"QU-100245" |
|||
data.domain_id |
нет | integer:int64 | null |
min: 1 | 3 |
||
data.warehouse_id |
нет | integer:int64 | null |
min: 1 | 42 |
||
data.user_id |
нет | integer:int64 | null |
min: 1 | 9 |
||
data.status_id |
нет | enum:int64 | null |
enum: 1, 4 | 1 - draft/new document. 4 - conducted document. |
1 |
|
data.document_date |
нет | string:date | null |
"2026-07-14" |
|||
data.counts |
да | object |
|
|||
data.counts.source |
да | number:float |
1 |
|||
data.counts.target |
да | number:float |
6 |
|||
data.counts.source_moved |
да | number:float |
0 |
|||
data.counts.target_moved |
да | number:float |
0 |
|||
data.conducted_at |
нет | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.comment |
нет | string | null |
"Unpack coffee box" |
|||
data.items |
нет | array<QuantUnpackingItem> |
|
|||
data.items[] |
нет | QuantUnpackingItem |
Строка разукомплектации кванта. | |
||
data.items[].id |
да | integer:int64 |
readOnly | min: 1 | 9001 |
|
data.items[].source_product_id |
да | integer:int64 |
min: 1 | 1200 |
||
data.items[].target_product_id |
нет | integer:int64 | null |
min: 1 | 1201 |
||
data.items[].source_place_id |
нет | integer:int64 | null |
min: 1 | 501 |
||
data.items[].target_place_id |
нет | integer:int64 | null |
min: 1 | 502 |
||
data.items[].source_quantity |
да | number:float |
min: 0 | 1 |
||
data.items[].target_quantity |
нет | number:float | null |
min: 0 | 6 |
||
data.items[].available_quantity |
нет | number:float | null |
min: 0 | 10 |
||
data.items[].batch |
нет | string | null |
"LOT-2026" |
|||
data.items[].production_date |
нет | string:date | null |
"2026-01-15" |
|||
data.items[].expiration_date |
нет | string:date | null |
"2027-01-15" |
|||
data.items[].comment |
нет | string | null |
"Box unpacked" |
|||
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": 9201,
"external_id": "QU-100245",
"domain_id": 3,
"warehouse_id": 42,
"user_id": 9,
"status_id": 1,
"document_date": "2026-07-14",
"counts": {
"source": 1,
"target": 6,
"source_moved": 0,
"target_moved": 0
},
"conducted_at": null,
"comment": "Unpack coffee box",
"items": [
{
"id": 9001,
"source_product_id": 1200,
"target_product_id": 1201,
"source_place_id": 501,
"target_place_id": 502,
"source_quantity": 1,
"target_quantity": 6,
"available_quantity": 10,
"batch": "LOT-2026",
"production_date": "2026-01-15",
"expiration_date": "2027-01-15",
"comment": "Box unpacked"
}
],
"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"
}
Добавить строку разукомплектации
| operationId | addQuantUnpackingsItems |
|---|---|
| Раздел | Разукомплектация квантов |
| Безопасность | bearerAuth |
Add quant unpacking. Запрос использует описанную payload-схему, проверяет видимость tenant и возвращает нормализованный API envelope.
Пример HTTP-запроса (cURL)
Подставьте свой сервер и токен. ID из примера замените реальными доступными ID. Для тела запроса сохраните подходящий JSON из раздела ниже в request.json; перед отправкой замените демонстрационные значения. Заголовок Idempotency-Key использует ключ одной логической операции.
curl --globoff --request POST "${NWMS_BASE_URL}/api/v2/quant-unpackings/1001/items" \
--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" |
Тело запроса
AddQuantUnpackingItemRequest обязательно
| Поле | Обязательное | Тип | Флаги | Ограничения | Описание | Пример |
|---|---|---|---|---|---|---|
data |
да | QuantUnpackingItemCreatePayload |
Исходная строка разукомплектации кванта. Целевой товар и целевое количество определяются сервисом упаковок. | |
||
data.source_product_id |
да | integer:int64 |
min: 1 | 1200 |
||
data.source_quantity |
да | number:float |
min: 0.001 | 1 |
||
data.source_place_id |
нет | integer:int64 | null |
min: 1 | 501 |
||
data.target_place_id |
нет | integer:int64 | null |
min: 1 | 502 |
||
data.batch |
нет | string | null |
"LOT-2026" |
|||
data.production_date |
нет | string:date | null |
"2026-01-15" |
|||
data.expiration_date |
нет | string:date | null |
"2027-01-15" |
|||
data.comment |
нет | string | null |
"Box unpacked" |
Примеры запроса
default
{
"data": {
"source_product_id": 1200,
"source_quantity": 1,
"source_place_id": 501
}
}
Ответы
200 Successful response.
Successful response.
| Поле | Обязательное | Тип | Флаги | Ограничения | Описание | Пример |
|---|---|---|---|---|---|---|
data |
да | QuantUnpacking |
Документ разукомплектации кванта. | |
||
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.external_id |
нет | string | null |
"QU-100245" |
|||
data.domain_id |
нет | integer:int64 | null |
min: 1 | 3 |
||
data.warehouse_id |
нет | integer:int64 | null |
min: 1 | 42 |
||
data.user_id |
нет | integer:int64 | null |
min: 1 | 9 |
||
data.status_id |
нет | enum:int64 | null |
enum: 1, 4 | 1 - draft/new document. 4 - conducted document. |
1 |
|
data.document_date |
нет | string:date | null |
"2026-07-14" |
|||
data.counts |
да | object |
|
|||
data.counts.source |
да | number:float |
1 |
|||
data.counts.target |
да | number:float |
6 |
|||
data.counts.source_moved |
да | number:float |
0 |
|||
data.counts.target_moved |
да | number:float |
0 |
|||
data.conducted_at |
нет | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.comment |
нет | string | null |
"Unpack coffee box" |
|||
data.items |
нет | array<QuantUnpackingItem> |
|
|||
data.items[] |
нет | QuantUnpackingItem |
Строка разукомплектации кванта. | |
||
data.items[].id |
да | integer:int64 |
readOnly | min: 1 | 9001 |
|
data.items[].source_product_id |
да | integer:int64 |
min: 1 | 1200 |
||
data.items[].target_product_id |
нет | integer:int64 | null |
min: 1 | 1201 |
||
data.items[].source_place_id |
нет | integer:int64 | null |
min: 1 | 501 |
||
data.items[].target_place_id |
нет | integer:int64 | null |
min: 1 | 502 |
||
data.items[].source_quantity |
да | number:float |
min: 0 | 1 |
||
data.items[].target_quantity |
нет | number:float | null |
min: 0 | 6 |
||
data.items[].available_quantity |
нет | number:float | null |
min: 0 | 10 |
||
data.items[].batch |
нет | string | null |
"LOT-2026" |
|||
data.items[].production_date |
нет | string:date | null |
"2026-01-15" |
|||
data.items[].expiration_date |
нет | string:date | null |
"2027-01-15" |
|||
data.items[].comment |
нет | string | null |
"Box unpacked" |
|||
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": 9201,
"external_id": "QU-100245",
"domain_id": 3,
"warehouse_id": 42,
"user_id": 9,
"status_id": 1,
"document_date": "2026-07-14",
"counts": {
"source": 1,
"target": 6,
"source_moved": 0,
"target_moved": 0
},
"conducted_at": null,
"comment": "Unpack coffee box",
"items": [
{
"id": 9001,
"source_product_id": 1200,
"target_product_id": 1201,
"source_place_id": 501,
"target_place_id": 502,
"source_quantity": 1,
"target_quantity": 6,
"available_quantity": 10,
"batch": "LOT-2026",
"production_date": "2026-01-15",
"expiration_date": "2027-01-15",
"comment": "Box unpacked"
}
],
"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"
}