Warehouses and Shops

Every operation below is generated from the OpenAPI v2 specification and includes parameters, request fields, response fields, errors, and examples.

Shops

GET /api/v2/shops

List shops

operationIdlistShops
TagShops
SecuritybearerAuth

Returns shops visible to the authenticated account. Use documented query parameters for filtering, sorting, and pagination.
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 request example (cURL)

Set your server and token. Replace sample IDs with accessible IDs. For requests with a body, save the applicable JSON example below as request.json and replace sample values before sending. Idempotency-Key identifies one logical operation.

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

Parameters

Name In Required Type Style Explode Constraints Description Example
page query no integer:int64 form true min: 1 Page number. The same filter may also be sent as filter[page] where supported by the Laravel query adapter. 1
per_page query no integer:int64 form true min: 1
max: 250
Number of records per page. Default is 50; maximum is 250. The same filter may also be sent as filter[per_page] where supported by the Laravel query adapter. 50
sort query no string form false pattern: ^-?[A-Za-z0-9_]+(,-?[A-Za-z0-9_]+)*$ Comma-separated sort fields. Prefix with - for descending order. Allowed fields: id, name, status_id, owner_user_id, created_at, updated_at. Default: -id. The same filter may also be sent as filter[sort] where supported by the Laravel query adapter. "-id"
id query no integer:int64 form true min: 1 Filter by id using exact matching. The same filter may also be sent as filter[id] where supported by the Laravel query adapter. 1001
status_id query no integer:int64 form true min: 1 Filter by status_id using exact matching. The same filter may also be sent as filter[status_id] where supported by the Laravel query adapter. 1
domain_id query no integer:int64 form true min: 1 Filter by domain_id using exact matching. The same filter may also be sent as filter[domain_id] where supported by the Laravel query adapter. 3
owner_user_id query no integer:int64 form true min: 1 Filter by owner_user_id using exact matching. The same filter may also be sent as filter[owner_user_id] where supported by the Laravel query adapter. 15
name query no string form true Filter by name using partial text matching. The same filter may also be sent as filter[name] where supported by the Laravel query adapter. "Coffee"

Request body

No request body.

Responses

200 Successful response.

Successful response.

Field Required Type Flags Constraints Description Example
data yes array<Shop>
data[] no Shop Merchant shop account.
data[].id yes integer:int64 readOnly min: 1 1001
data[].created_at no string:date-time | null "2026-07-14T10:30:00Z"
data[].updated_at no string:date-time | null "2026-07-14T10:30:00Z"
data[].name yes string "Demo Online Store"
data[].status_id no integer:int64 | null 1
data[].domain_id no integer:int64 | null min: 1 3
data[].owner_user_id no integer:int64 | null min: 1 15
data[].composite_items_enabled no boolean false
data[].custom_label_enabled no boolean false
data[].custom_label no string | null "CDEK label"
links yes PaginationLinks
links.first yes string:uri | null "https://betawms.ffcdek.ru/api/v2/orders?page=1"
links.last yes string:uri | null "https://betawms.ffcdek.ru/api/v2/orders?page=2"
links.prev yes string:uri | null
links.next yes string:uri | null "https://betawms.ffcdek.ru/api/v2/orders?page=2"
meta yes PaginationMeta
meta.api_version yes enum enum: v2 "v2"
meta.current_page yes integer:int32 min: 1 1
meta.from yes integer:int32 | null min: 1 1
meta.last_page yes integer:int32 min: 1 2
meta.path yes string:uri "https://betawms.ffcdek.ru/api/v2/orders"
meta.per_page yes integer:int32 min: 1 50
meta.to yes integer:int32 | null min: 1 50
meta.total yes integer:int32 min: 0 73

Response examples

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 Authentication required

Unauthorized

Authentication is required.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

AUTH_REQUIRED

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

403 Forbidden

Forbidden

The authenticated account is not allowed to perform this action.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

FORBIDDEN

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

429 Rate limit exceeded

TooManyRequests

Rate limit exceeded.

Field Required Type Flags Constraints Description Example
message yes string "Too Many Attempts."
error yes string "RATE_LIMITED"

500 Internal server error

InternalServerError

An unexpected server error occurred.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

INTERNAL_SERVER_ERROR

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

Create shop

operationIdcreateShops
TagShops
SecuritybearerAuth

Create shop. The request uses the documented payload schema, validates tenant visibility, and returns a normalized API envelope.

HTTP request example (cURL)

Set your server and token. Replace sample IDs with accessible IDs. For requests with a body, save the applicable JSON example below as request.json and replace sample values before sending. Idempotency-Key identifies one logical operation.

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

Parameters

Name In Required Type Style Explode Constraints Description Example
Idempotency-Key header no string maxLength: 191 Optional idempotency key for API v2 write requests. Successful 2xx/3xx responses are replayed for the same key and identical payload for one day. The same key with a different payload returns 409. "ord-create-20260714-001"

Request body

CreateShopRequest required

Field Required Type Flags Constraints Description Example
data yes CreateShopPayload
data.name yes string minLength: 1 "Demo Online Store"
data.status_id no integer:int64 | null 1
data.owner_user_id no integer:int64 | null min: 1 15
data.composite_items_enabled no boolean false
data.custom_label_enabled no boolean false
data.custom_label no string | null "CDEK label"

Request examples

default

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

Responses

201 Created.

Created.

Field Required Type Flags Constraints Description Example
data yes Shop Merchant shop account.
data.id yes integer:int64 readOnly min: 1 1001
data.created_at no string:date-time | null "2026-07-14T10:30:00Z"
data.updated_at no string:date-time | null "2026-07-14T10:30:00Z"
data.name yes string "Demo Online Store"
data.status_id no integer:int64 | null 1
data.domain_id no integer:int64 | null min: 1 3
data.owner_user_id no integer:int64 | null min: 1 15
data.composite_items_enabled no boolean false
data.custom_label_enabled no boolean false
data.custom_label no string | null "CDEK label"
meta yes ResponseMeta
meta.api_version yes enum enum: v2 "v2"
meta.deleted no boolean true
meta.id no integer:int64 | null min: 1 1001
meta.command_replayed no boolean True when an idempotent cross-dock command returned the original successful result. false
meta.crossdock_configuration no object | null
meta.crossdock_configuration.physical_warehouse_id yes integer:int64 min: 1 42
meta.crossdock_configuration.enabled yes boolean true
meta.crossdock_configuration.process_version yes string "direct_order_v1"

Response examples

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 Bad request

BadRequest

Bad request.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

BAD_REQUEST

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

401 Authentication required

Unauthorized

Authentication is required.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

AUTH_REQUIRED

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

403 Forbidden

Forbidden

The authenticated account is not allowed to perform this action.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

FORBIDDEN

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

409 Conflict

Conflict

The request conflicts with the current resource state or idempotency key state.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

idempotencyConflict

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

422 Validation error

ValidationError

Validation failed.

Field Required Type Flags Constraints Description Example
message yes string "The given data was invalid."
error no string "VALIDATION_ERROR"
errors yes object {"warehouse_id":["The selected warehouse is invalid."]}

Response examples

validationError

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

429 Rate limit exceeded

TooManyRequests

Rate limit exceeded.

Field Required Type Flags Constraints Description Example
message yes string "Too Many Attempts."
error yes string "RATE_LIMITED"

500 Internal server error

InternalServerError

An unexpected server error occurred.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

INTERNAL_SERVER_ERROR

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

Get shop

operationIdgetShops
TagShops
SecuritybearerAuth

Returns one shop when it exists and is visible to the authenticated account.

HTTP request example (cURL)

Set your server and token. Replace sample IDs with accessible IDs. For requests with a body, save the applicable JSON example below as request.json and replace sample values before sending. Idempotency-Key identifies one logical operation.

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

Parameters

Name In Required Type Style Explode Constraints Description Example
id path yes integer:int64 min: 1 Shop ID. 1001

Request body

No request body.

Responses

200 Successful response.

Successful response.

Field Required Type Flags Constraints Description Example
data yes Shop Merchant shop account.
data.id yes integer:int64 readOnly min: 1 1001
data.created_at no string:date-time | null "2026-07-14T10:30:00Z"
data.updated_at no string:date-time | null "2026-07-14T10:30:00Z"
data.name yes string "Demo Online Store"
data.status_id no integer:int64 | null 1
data.domain_id no integer:int64 | null min: 1 3
data.owner_user_id no integer:int64 | null min: 1 15
data.composite_items_enabled no boolean false
data.custom_label_enabled no boolean false
data.custom_label no string | null "CDEK label"
meta yes ResponseMeta
meta.api_version yes enum enum: v2 "v2"
meta.deleted no boolean true
meta.id no integer:int64 | null min: 1 1001
meta.command_replayed no boolean True when an idempotent cross-dock command returned the original successful result. false
meta.crossdock_configuration no object | null
meta.crossdock_configuration.physical_warehouse_id yes integer:int64 min: 1 42
meta.crossdock_configuration.enabled yes boolean true
meta.crossdock_configuration.process_version yes string "direct_order_v1"

Response examples

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 Authentication required

Unauthorized

Authentication is required.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

AUTH_REQUIRED

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

403 Forbidden

Forbidden

The authenticated account is not allowed to perform this action.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

FORBIDDEN

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

404 Not found

NotFound

The requested resource was not found or is outside the authenticated account scope.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

NOT_FOUND

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

429 Rate limit exceeded

TooManyRequests

Rate limit exceeded.

Field Required Type Flags Constraints Description Example
message yes string "Too Many Attempts."
error yes string "RATE_LIMITED"

500 Internal server error

InternalServerError

An unexpected server error occurred.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

INTERNAL_SERVER_ERROR

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

Update shop

operationIdreplaceShops
TagShops
SecuritybearerAuth

Update shop. The request uses the documented payload schema, validates tenant visibility, and returns a normalized API envelope.
Current backend behavior is legacy partial-update semantics: omitted fields are left unchanged.

HTTP request example (cURL)

Set your server and token. Replace sample IDs with accessible IDs. For requests with a body, save the applicable JSON example below as request.json and replace sample values before sending. Idempotency-Key identifies one logical operation.

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

Parameters

Name In Required Type Style Explode Constraints Description Example
id path yes integer:int64 min: 1 Shop ID. 1001
Idempotency-Key header no string maxLength: 191 Optional idempotency key for API v2 write requests. Successful 2xx/3xx responses are replayed for the same key and identical payload for one day. The same key with a different payload returns 409. "ord-create-20260714-001"

Request body

ReplaceShopRequest required

Field Required Type Flags Constraints Description Example
data yes ReplaceShopPayload Legacy PUT payload. Current backend applies partial-update semantics.
data.name no string | null minLength: 1 "Demo Online Store"
data.status_id no integer:int64 | null 1
data.owner_user_id no integer:int64 | null min: 1 15
data.composite_items_enabled no boolean false
data.custom_label_enabled no boolean false
data.custom_label no string | null "CDEK label"

Request examples

default

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

Responses

200 Successful response.

Successful response.

Field Required Type Flags Constraints Description Example
data yes Shop Merchant shop account.
data.id yes integer:int64 readOnly min: 1 1001
data.created_at no string:date-time | null "2026-07-14T10:30:00Z"
data.updated_at no string:date-time | null "2026-07-14T10:30:00Z"
data.name yes string "Demo Online Store"
data.status_id no integer:int64 | null 1
data.domain_id no integer:int64 | null min: 1 3
data.owner_user_id no integer:int64 | null min: 1 15
data.composite_items_enabled no boolean false
data.custom_label_enabled no boolean false
data.custom_label no string | null "CDEK label"
meta yes ResponseMeta
meta.api_version yes enum enum: v2 "v2"
meta.deleted no boolean true
meta.id no integer:int64 | null min: 1 1001
meta.command_replayed no boolean True when an idempotent cross-dock command returned the original successful result. false
meta.crossdock_configuration no object | null
meta.crossdock_configuration.physical_warehouse_id yes integer:int64 min: 1 42
meta.crossdock_configuration.enabled yes boolean true
meta.crossdock_configuration.process_version yes string "direct_order_v1"

Response examples

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 Bad request

BadRequest

Bad request.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

BAD_REQUEST

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

401 Authentication required

Unauthorized

Authentication is required.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

AUTH_REQUIRED

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

403 Forbidden

Forbidden

The authenticated account is not allowed to perform this action.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

FORBIDDEN

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

404 Not found

NotFound

The requested resource was not found or is outside the authenticated account scope.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

NOT_FOUND

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

409 Conflict

Conflict

The request conflicts with the current resource state or idempotency key state.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

idempotencyConflict

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

422 Validation error

ValidationError

Validation failed.

Field Required Type Flags Constraints Description Example
message yes string "The given data was invalid."
error no string "VALIDATION_ERROR"
errors yes object {"warehouse_id":["The selected warehouse is invalid."]}

Response examples

validationError

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

429 Rate limit exceeded

TooManyRequests

Rate limit exceeded.

Field Required Type Flags Constraints Description Example
message yes string "Too Many Attempts."
error yes string "RATE_LIMITED"

500 Internal server error

InternalServerError

An unexpected server error occurred.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

INTERNAL_SERVER_ERROR

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

Update shop

operationIdpatchShops
TagShops
SecuritybearerAuth

Update shop. The request uses the documented payload schema, validates tenant visibility, and returns a normalized API envelope.
Current backend behavior is legacy partial-update semantics: omitted fields are left unchanged.

HTTP request example (cURL)

Set your server and token. Replace sample IDs with accessible IDs. For requests with a body, save the applicable JSON example below as request.json and replace sample values before sending. Idempotency-Key identifies one logical operation.

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

Parameters

Name In Required Type Style Explode Constraints Description Example
id path yes integer:int64 min: 1 Shop ID. 1001
Idempotency-Key header no string maxLength: 191 Optional idempotency key for API v2 write requests. Successful 2xx/3xx responses are replayed for the same key and identical payload for one day. The same key with a different payload returns 409. "ord-create-20260714-001"

Request body

PatchShopRequest required

Field Required Type Flags Constraints Description Example
data yes PatchShopPayload
data.name no string | null minLength: 1 "Demo Online Store"
data.status_id no integer:int64 | null 1
data.owner_user_id no integer:int64 | null min: 1 15
data.composite_items_enabled no boolean false
data.custom_label_enabled no boolean false
data.custom_label no string | null "CDEK label"

Request examples

default

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

Responses

200 Successful response.

Successful response.

Field Required Type Flags Constraints Description Example
data yes Shop Merchant shop account.
data.id yes integer:int64 readOnly min: 1 1001
data.created_at no string:date-time | null "2026-07-14T10:30:00Z"
data.updated_at no string:date-time | null "2026-07-14T10:30:00Z"
data.name yes string "Demo Online Store"
data.status_id no integer:int64 | null 1
data.domain_id no integer:int64 | null min: 1 3
data.owner_user_id no integer:int64 | null min: 1 15
data.composite_items_enabled no boolean false
data.custom_label_enabled no boolean false
data.custom_label no string | null "CDEK label"
meta yes ResponseMeta
meta.api_version yes enum enum: v2 "v2"
meta.deleted no boolean true
meta.id no integer:int64 | null min: 1 1001
meta.command_replayed no boolean True when an idempotent cross-dock command returned the original successful result. false
meta.crossdock_configuration no object | null
meta.crossdock_configuration.physical_warehouse_id yes integer:int64 min: 1 42
meta.crossdock_configuration.enabled yes boolean true
meta.crossdock_configuration.process_version yes string "direct_order_v1"

Response examples

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 Bad request

BadRequest

Bad request.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

BAD_REQUEST

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

401 Authentication required

Unauthorized

Authentication is required.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

AUTH_REQUIRED

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

403 Forbidden

Forbidden

The authenticated account is not allowed to perform this action.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

FORBIDDEN

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

404 Not found

NotFound

The requested resource was not found or is outside the authenticated account scope.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

NOT_FOUND

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

409 Conflict

Conflict

The request conflicts with the current resource state or idempotency key state.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

idempotencyConflict

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

422 Validation error

ValidationError

Validation failed.

Field Required Type Flags Constraints Description Example
message yes string "The given data was invalid."
error no string "VALIDATION_ERROR"
errors yes object {"warehouse_id":["The selected warehouse is invalid."]}

Response examples

validationError

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

429 Rate limit exceeded

TooManyRequests

Rate limit exceeded.

Field Required Type Flags Constraints Description Example
message yes string "Too Many Attempts."
error yes string "RATE_LIMITED"

500 Internal server error

InternalServerError

An unexpected server error occurred.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

INTERNAL_SERVER_ERROR

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

Warehouses

GET /api/v2/warehouses

List warehouses

operationIdlistWarehouses
TagWarehouses
SecuritybearerAuth

Returns warehouses visible to the authenticated account. Use documented query parameters for filtering, sorting, and pagination.
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 request example (cURL)

Set your server and token. Replace sample IDs with accessible IDs. For requests with a body, save the applicable JSON example below as request.json and replace sample values before sending. Idempotency-Key identifies one logical operation.

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

Parameters

Name In Required Type Style Explode Constraints Description Example
page query no integer:int64 form true min: 1 Page number. The same filter may also be sent as filter[page] where supported by the Laravel query adapter. 1
per_page query no integer:int64 form true min: 1
max: 250
Number of records per page. Default is 50; maximum is 250. The same filter may also be sent as filter[per_page] where supported by the Laravel query adapter. 50
sort query no string form false pattern: ^-?[A-Za-z0-9_]+(,-?[A-Za-z0-9_]+)*$ Comma-separated sort fields. Prefix with - for descending order. Allowed fields: id, name, status_id, type_id, created_at, updated_at. Default: -id. The same filter may also be sent as filter[sort] where supported by the Laravel query adapter. "-id"
id query no integer:int64 form true min: 1 Filter by id using exact matching. The same filter may also be sent as filter[id] where supported by the Laravel query adapter. 1001
status_id query no integer:int64 form true min: 1 Filter by status_id using exact matching. The same filter may also be sent as filter[status_id] where supported by the Laravel query adapter. 1
type_id query no integer:int64 form true min: 1 Filter by type_id using exact matching. The same filter may also be sent as filter[type_id] where supported by the Laravel query adapter. 1
domain_id query no integer:int64 form true min: 1 Filter by domain_id using exact matching. The same filter may also be sent as filter[domain_id] where supported by the Laravel query adapter. 3
owner_user_id query no integer:int64 form true min: 1 Filter by owner_user_id using exact matching. The same filter may also be sent as filter[owner_user_id] where supported by the Laravel query adapter. 15
parent_id query no integer:int64 form true min: 1 Filter by parent_id using exact matching. The same filter may also be sent as filter[parent_id] where supported by the Laravel query adapter. 1
country_id query no integer:int64 form true min: 1 Filter by country_id using exact matching. The same filter may also be sent as filter[country_id] where supported by the Laravel query adapter. 100
company_id query no integer:int64 form true min: 1 Filter by company_id using exact matching. The same filter may also be sent as filter[company_id] where supported by the Laravel query adapter. 7
service_provider_company_id query no integer:int64 form true min: 1 Filter by service_provider_company_id using exact matching. The same filter may also be sent as filter[service_provider_company_id] where supported by the Laravel query adapter. 8
name query no string form true Filter by name using partial text matching. The same filter may also be sent as filter[name] where supported by the Laravel query adapter. "Coffee"

Request body

No request body.

Responses

200 Successful response.

Successful response.

Field Required Type Flags Constraints Description Example
data yes array<Warehouse>
data[] no Warehouse Warehouse or client warehouse.
data[].id yes integer:int64 readOnly min: 1 1001
data[].created_at no string:date-time | null "2026-07-14T10:30:00Z"
data[].updated_at no string:date-time | null "2026-07-14T10:30:00Z"
data[].name yes string "Warehouse Sofia"
data[].status_id no integer:int64 | null Warehouse status ID. Values are database-backed and are not modeled as a closed enum in the public contract. 1
data[].type_id no integer:int64 | null Warehouse type ID. Values are database-backed and are not modeled as a closed enum in the public contract. 2
data[].domain_id no integer:int64 | null min: 1 3
data[].owner_user_id no integer:int64 | null min: 1 15
data[].parent_id no integer:int64 | null min: 1 41
data[].country_id no integer:int64 | null min: 1 100
data[].currency_id no integer:int64 | null min: 1 978
data[].company_id no integer:int64 | null min: 1 7
data[].service_provider_company_id no integer:int64 | null min: 1 8
data[].billing_setting_id no integer:int64 | null min: 1 12
data[].settings no WarehouseSettings
data[].settings.datamatrix no object
data[].settings.datamatrix.enabled yes boolean false
data[].settings.datamatrix.type no string | null "standard"
data[].settings.datamatrix.acceptance_enabled yes boolean false
data[].settings.datamatrix.picking_enabled yes boolean false
data[].settings.datamatrix.packing_enabled yes boolean false
data[].settings.datamatrix.validation_mode no 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 no boolean true
data[].settings.production_date_enabled no boolean true
data[].settings.batch_enabled no boolean true
data[].settings.auto_acceptance_enabled no boolean false
data[].settings.order_auto_conduct_mode no enum:int64 | null enum: 0, 1, 2, 3 Permission for explicit order auto-conduct actions: 0 = disabled; 1 = skip picking; 2 = skip packing; 3 = skip picking and packing. This setting alone does not perform these actions or confirm carrier handover. Auto-packing is blocked when DataMatrix verification during packing is enabled. 0
data[].settings.require_acceptance_dimensions no boolean false
data[].settings.crossdock_enabled no boolean Allows cross-docking for a client warehouse. true
data[].document no WarehouseDocument
data[].document.number no string | null "WH-DOC-1001"
data[].document.date no string:date | null "2026-07-14"
data[].custom no object Installation-specific warehouse attributes. {"billing_group":"Sofia A"}
links yes PaginationLinks
links.first yes string:uri | null "https://betawms.ffcdek.ru/api/v2/orders?page=1"
links.last yes string:uri | null "https://betawms.ffcdek.ru/api/v2/orders?page=2"
links.prev yes string:uri | null
links.next yes string:uri | null "https://betawms.ffcdek.ru/api/v2/orders?page=2"
meta yes PaginationMeta
meta.api_version yes enum enum: v2 "v2"
meta.current_page yes integer:int32 min: 1 1
meta.from yes integer:int32 | null min: 1 1
meta.last_page yes integer:int32 min: 1 2
meta.path yes string:uri "https://betawms.ffcdek.ru/api/v2/orders"
meta.per_page yes integer:int32 min: 1 50
meta.to yes integer:int32 | null min: 1 50
meta.total yes integer:int32 min: 0 73

Response examples

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 Authentication required

Unauthorized

Authentication is required.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

AUTH_REQUIRED

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

403 Forbidden

Forbidden

The authenticated account is not allowed to perform this action.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

FORBIDDEN

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

429 Rate limit exceeded

TooManyRequests

Rate limit exceeded.

Field Required Type Flags Constraints Description Example
message yes string "Too Many Attempts."
error yes string "RATE_LIMITED"

500 Internal server error

InternalServerError

An unexpected server error occurred.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

INTERNAL_SERVER_ERROR

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

Create warehouse

operationIdcreateWarehouses
TagWarehouses
SecuritybearerAuth

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

HTTP request example (cURL)

Set your server and token. Replace sample IDs with accessible IDs. For requests with a body, save the applicable JSON example below as request.json and replace sample values before sending. Idempotency-Key identifies one logical operation.

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

Parameters

Name In Required Type Style Explode Constraints Description Example
Idempotency-Key header no string maxLength: 191 Optional idempotency key for API v2 write requests. Successful 2xx/3xx responses are replayed for the same key and identical payload for one day. The same key with a different payload returns 409. "ord-create-20260714-001"

Request body

CreateWarehouseRequest required

Field Required Type Flags Constraints Description Example
data yes CreateWarehousePayload
data.name yes string minLength: 1 "Client Warehouse Varna"
data.type_id no integer:int64 | null Warehouse type ID. Values are database-backed and are not modeled as a closed enum in the public contract. 2
data.owner_user_id no integer:int64 | null min: 1 15
data.parent_id no integer:int64 | null min: 1 42
data.country_id no integer:int64 | null min: 1 100
data.currency_id no integer:int64 | null min: 1 978
data.company_id no integer:int64 | null min: 1 7
data.service_provider_company_id no integer:int64 | null min: 1 8
data.billing_setting_id no integer:int64 | null min: 1 12
data.settings no object | null
data.settings.datamatrix no object
data.settings.datamatrix.enabled yes boolean false
data.settings.datamatrix.type no string | null "standard"
data.settings.datamatrix.acceptance_enabled yes boolean false
data.settings.datamatrix.picking_enabled yes boolean false
data.settings.datamatrix.packing_enabled yes boolean false
data.settings.datamatrix.validation_mode no 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 no boolean true
data.settings.production_date_enabled no boolean true
data.settings.batch_enabled no boolean true
data.settings.auto_acceptance_enabled no boolean false
data.settings.order_auto_conduct_mode no enum:int64 | null enum: 0, 1, 2, 3 Permission for explicit order auto-conduct actions: 0 = disabled; 1 = skip picking; 2 = skip packing; 3 = skip picking and packing. This setting alone does not perform these actions or confirm carrier handover. Auto-packing is blocked when DataMatrix verification during packing is enabled. 0
data.settings.require_acceptance_dimensions no boolean false
data.settings.crossdock_enabled no boolean Allows cross-docking for a client warehouse. true
data.document no object | null
data.document.number no string | null "WH-DOC-1001"
data.document.date no string:date | null "2026-07-14"
data.custom no object {"billing_group":"Varna B"}

Request examples

default

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

Responses

201 Created.

Created.

Field Required Type Flags Constraints Description Example
data yes Warehouse Warehouse or client warehouse.
data.id yes integer:int64 readOnly min: 1 1001
data.created_at no string:date-time | null "2026-07-14T10:30:00Z"
data.updated_at no string:date-time | null "2026-07-14T10:30:00Z"
data.name yes string "Warehouse Sofia"
data.status_id no integer:int64 | null Warehouse status ID. Values are database-backed and are not modeled as a closed enum in the public contract. 1
data.type_id no integer:int64 | null Warehouse type ID. Values are database-backed and are not modeled as a closed enum in the public contract. 2
data.domain_id no integer:int64 | null min: 1 3
data.owner_user_id no integer:int64 | null min: 1 15
data.parent_id no integer:int64 | null min: 1 41
data.country_id no integer:int64 | null min: 1 100
data.currency_id no integer:int64 | null min: 1 978
data.company_id no integer:int64 | null min: 1 7
data.service_provider_company_id no integer:int64 | null min: 1 8
data.billing_setting_id no integer:int64 | null min: 1 12
data.settings no WarehouseSettings
data.settings.datamatrix no object
data.settings.datamatrix.enabled yes boolean false
data.settings.datamatrix.type no string | null "standard"
data.settings.datamatrix.acceptance_enabled yes boolean false
data.settings.datamatrix.picking_enabled yes boolean false
data.settings.datamatrix.packing_enabled yes boolean false
data.settings.datamatrix.validation_mode no 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 no boolean true
data.settings.production_date_enabled no boolean true
data.settings.batch_enabled no boolean true
data.settings.auto_acceptance_enabled no boolean false
data.settings.order_auto_conduct_mode no enum:int64 | null enum: 0, 1, 2, 3 Permission for explicit order auto-conduct actions: 0 = disabled; 1 = skip picking; 2 = skip packing; 3 = skip picking and packing. This setting alone does not perform these actions or confirm carrier handover. Auto-packing is blocked when DataMatrix verification during packing is enabled. 0
data.settings.require_acceptance_dimensions no boolean false
data.settings.crossdock_enabled no boolean Allows cross-docking for a client warehouse. true
data.document no WarehouseDocument
data.document.number no string | null "WH-DOC-1001"
data.document.date no string:date | null "2026-07-14"
data.custom no object Installation-specific warehouse attributes. {"billing_group":"Sofia A"}
meta yes ResponseMeta
meta.api_version yes enum enum: v2 "v2"
meta.deleted no boolean true
meta.id no integer:int64 | null min: 1 1001
meta.command_replayed no boolean True when an idempotent cross-dock command returned the original successful result. false
meta.crossdock_configuration no object | null
meta.crossdock_configuration.physical_warehouse_id yes integer:int64 min: 1 42
meta.crossdock_configuration.enabled yes boolean true
meta.crossdock_configuration.process_version yes string "direct_order_v1"

Response examples

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 Bad request

BadRequest

Bad request.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

BAD_REQUEST

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

401 Authentication required

Unauthorized

Authentication is required.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

AUTH_REQUIRED

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

403 Forbidden

Forbidden

The authenticated account is not allowed to perform this action.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

FORBIDDEN

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

409 Conflict

Conflict

The request conflicts with the current resource state or idempotency key state.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

idempotencyConflict

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

422 Validation error

ValidationError

Validation failed.

Field Required Type Flags Constraints Description Example
message yes string "The given data was invalid."
error no string "VALIDATION_ERROR"
errors yes object {"warehouse_id":["The selected warehouse is invalid."]}

Response examples

validationError

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

429 Rate limit exceeded

TooManyRequests

Rate limit exceeded.

Field Required Type Flags Constraints Description Example
message yes string "Too Many Attempts."
error yes string "RATE_LIMITED"

500 Internal server error

InternalServerError

An unexpected server error occurred.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

INTERNAL_SERVER_ERROR

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

Get warehouse

operationIdgetWarehouses
TagWarehouses
SecuritybearerAuth

Returns one warehouse when it exists and is visible to the authenticated account.

HTTP request example (cURL)

Set your server and token. Replace sample IDs with accessible IDs. For requests with a body, save the applicable JSON example below as request.json and replace sample values before sending. Idempotency-Key identifies one logical operation.

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

Parameters

Name In Required Type Style Explode Constraints Description Example
id path yes integer:int64 min: 1 Warehouse ID. 1001

Request body

No request body.

Responses

200 Successful response.

Successful response.

Field Required Type Flags Constraints Description Example
data yes Warehouse Warehouse or client warehouse.
data.id yes integer:int64 readOnly min: 1 1001
data.created_at no string:date-time | null "2026-07-14T10:30:00Z"
data.updated_at no string:date-time | null "2026-07-14T10:30:00Z"
data.name yes string "Warehouse Sofia"
data.status_id no integer:int64 | null Warehouse status ID. Values are database-backed and are not modeled as a closed enum in the public contract. 1
data.type_id no integer:int64 | null Warehouse type ID. Values are database-backed and are not modeled as a closed enum in the public contract. 2
data.domain_id no integer:int64 | null min: 1 3
data.owner_user_id no integer:int64 | null min: 1 15
data.parent_id no integer:int64 | null min: 1 41
data.country_id no integer:int64 | null min: 1 100
data.currency_id no integer:int64 | null min: 1 978
data.company_id no integer:int64 | null min: 1 7
data.service_provider_company_id no integer:int64 | null min: 1 8
data.billing_setting_id no integer:int64 | null min: 1 12
data.settings no WarehouseSettings
data.settings.datamatrix no object
data.settings.datamatrix.enabled yes boolean false
data.settings.datamatrix.type no string | null "standard"
data.settings.datamatrix.acceptance_enabled yes boolean false
data.settings.datamatrix.picking_enabled yes boolean false
data.settings.datamatrix.packing_enabled yes boolean false
data.settings.datamatrix.validation_mode no 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 no boolean true
data.settings.production_date_enabled no boolean true
data.settings.batch_enabled no boolean true
data.settings.auto_acceptance_enabled no boolean false
data.settings.order_auto_conduct_mode no enum:int64 | null enum: 0, 1, 2, 3 Permission for explicit order auto-conduct actions: 0 = disabled; 1 = skip picking; 2 = skip packing; 3 = skip picking and packing. This setting alone does not perform these actions or confirm carrier handover. Auto-packing is blocked when DataMatrix verification during packing is enabled. 0
data.settings.require_acceptance_dimensions no boolean false
data.settings.crossdock_enabled no boolean Allows cross-docking for a client warehouse. true
data.document no WarehouseDocument
data.document.number no string | null "WH-DOC-1001"
data.document.date no string:date | null "2026-07-14"
data.custom no object Installation-specific warehouse attributes. {"billing_group":"Sofia A"}
meta yes ResponseMeta
meta.api_version yes enum enum: v2 "v2"
meta.deleted no boolean true
meta.id no integer:int64 | null min: 1 1001
meta.command_replayed no boolean True when an idempotent cross-dock command returned the original successful result. false
meta.crossdock_configuration no object | null
meta.crossdock_configuration.physical_warehouse_id yes integer:int64 min: 1 42
meta.crossdock_configuration.enabled yes boolean true
meta.crossdock_configuration.process_version yes string "direct_order_v1"

Response examples

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 Authentication required

Unauthorized

Authentication is required.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

AUTH_REQUIRED

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

403 Forbidden

Forbidden

The authenticated account is not allowed to perform this action.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

FORBIDDEN

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

404 Not found

NotFound

The requested resource was not found or is outside the authenticated account scope.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

NOT_FOUND

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

429 Rate limit exceeded

TooManyRequests

Rate limit exceeded.

Field Required Type Flags Constraints Description Example
message yes string "Too Many Attempts."
error yes string "RATE_LIMITED"

500 Internal server error

InternalServerError

An unexpected server error occurred.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

INTERNAL_SERVER_ERROR

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

Update warehouse

operationIdreplaceWarehouses
TagWarehouses
SecuritybearerAuth

Updates editable warehouse fields. Operational flags, document metadata, billing setting, and custom attributes may be changed when permitted.
Current backend behavior is legacy partial-update semantics: omitted fields are left unchanged.

HTTP request example (cURL)

Set your server and token. Replace sample IDs with accessible IDs. For requests with a body, save the applicable JSON example below as request.json and replace sample values before sending. Idempotency-Key identifies one logical operation.

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

Parameters

Name In Required Type Style Explode Constraints Description Example
id path yes integer:int64 min: 1 Warehouse ID. 1001
Idempotency-Key header no string maxLength: 191 Optional idempotency key for API v2 write requests. Successful 2xx/3xx responses are replayed for the same key and identical payload for one day. The same key with a different payload returns 409. "ord-create-20260714-001"

Request body

ReplaceWarehouseRequest required

Field Required Type Flags Constraints Description Example
data yes ReplaceWarehousePayload Legacy PUT payload. Current backend applies partial-update semantics.
data.name no string | null minLength: 1 "Client Warehouse Varna"
data.status_id no integer:int64 | null Warehouse status ID. Values are database-backed and are not modeled as a closed enum in the public contract. 1
data.owner_user_id no integer:int64 | null min: 1 15
data.parent_id no integer:int64 | null min: 1 42
data.country_id no integer:int64 | null min: 1 100
data.currency_id no integer:int64 | null min: 1 978
data.company_id no integer:int64 | null min: 1 7
data.service_provider_company_id no integer:int64 | null min: 1 8
data.billing_setting_id no integer:int64 | null min: 1 12
data.settings no object | null
data.settings.datamatrix no object
data.settings.datamatrix.enabled yes boolean false
data.settings.datamatrix.type no string | null "standard"
data.settings.datamatrix.acceptance_enabled yes boolean false
data.settings.datamatrix.picking_enabled yes boolean false
data.settings.datamatrix.packing_enabled yes boolean false
data.settings.datamatrix.validation_mode no 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 no boolean true
data.settings.production_date_enabled no boolean true
data.settings.batch_enabled no boolean true
data.settings.auto_acceptance_enabled no boolean false
data.settings.order_auto_conduct_mode no enum:int64 | null enum: 0, 1, 2, 3 Permission for explicit order auto-conduct actions: 0 = disabled; 1 = skip picking; 2 = skip packing; 3 = skip picking and packing. This setting alone does not perform these actions or confirm carrier handover. Auto-packing is blocked when DataMatrix verification during packing is enabled. 0
data.settings.require_acceptance_dimensions no boolean false
data.settings.crossdock_enabled no boolean Allows cross-docking for a client warehouse. true
data.document no object | null
data.document.number no string | null "WH-DOC-1001"
data.document.date no string:date | null "2026-07-14"
data.custom no object {"billing_group":"Varna B"}

Request examples

default

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

Responses

200 Successful response.

Successful response.

Field Required Type Flags Constraints Description Example
data yes Warehouse Warehouse or client warehouse.
data.id yes integer:int64 readOnly min: 1 1001
data.created_at no string:date-time | null "2026-07-14T10:30:00Z"
data.updated_at no string:date-time | null "2026-07-14T10:30:00Z"
data.name yes string "Warehouse Sofia"
data.status_id no integer:int64 | null Warehouse status ID. Values are database-backed and are not modeled as a closed enum in the public contract. 1
data.type_id no integer:int64 | null Warehouse type ID. Values are database-backed and are not modeled as a closed enum in the public contract. 2
data.domain_id no integer:int64 | null min: 1 3
data.owner_user_id no integer:int64 | null min: 1 15
data.parent_id no integer:int64 | null min: 1 41
data.country_id no integer:int64 | null min: 1 100
data.currency_id no integer:int64 | null min: 1 978
data.company_id no integer:int64 | null min: 1 7
data.service_provider_company_id no integer:int64 | null min: 1 8
data.billing_setting_id no integer:int64 | null min: 1 12
data.settings no WarehouseSettings
data.settings.datamatrix no object
data.settings.datamatrix.enabled yes boolean false
data.settings.datamatrix.type no string | null "standard"
data.settings.datamatrix.acceptance_enabled yes boolean false
data.settings.datamatrix.picking_enabled yes boolean false
data.settings.datamatrix.packing_enabled yes boolean false
data.settings.datamatrix.validation_mode no 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 no boolean true
data.settings.production_date_enabled no boolean true
data.settings.batch_enabled no boolean true
data.settings.auto_acceptance_enabled no boolean false
data.settings.order_auto_conduct_mode no enum:int64 | null enum: 0, 1, 2, 3 Permission for explicit order auto-conduct actions: 0 = disabled; 1 = skip picking; 2 = skip packing; 3 = skip picking and packing. This setting alone does not perform these actions or confirm carrier handover. Auto-packing is blocked when DataMatrix verification during packing is enabled. 0
data.settings.require_acceptance_dimensions no boolean false
data.settings.crossdock_enabled no boolean Allows cross-docking for a client warehouse. true
data.document no WarehouseDocument
data.document.number no string | null "WH-DOC-1001"
data.document.date no string:date | null "2026-07-14"
data.custom no object Installation-specific warehouse attributes. {"billing_group":"Sofia A"}
meta yes ResponseMeta
meta.api_version yes enum enum: v2 "v2"
meta.deleted no boolean true
meta.id no integer:int64 | null min: 1 1001
meta.command_replayed no boolean True when an idempotent cross-dock command returned the original successful result. false
meta.crossdock_configuration no object | null
meta.crossdock_configuration.physical_warehouse_id yes integer:int64 min: 1 42
meta.crossdock_configuration.enabled yes boolean true
meta.crossdock_configuration.process_version yes string "direct_order_v1"

Response examples

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 Bad request

BadRequest

Bad request.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

BAD_REQUEST

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

401 Authentication required

Unauthorized

Authentication is required.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

AUTH_REQUIRED

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

403 Forbidden

Forbidden

The authenticated account is not allowed to perform this action.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

FORBIDDEN

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

404 Not found

NotFound

The requested resource was not found or is outside the authenticated account scope.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

NOT_FOUND

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

409 Conflict

Conflict

The request conflicts with the current resource state or idempotency key state.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

idempotencyConflict

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

422 Validation error

ValidationError

Validation failed.

Field Required Type Flags Constraints Description Example
message yes string "The given data was invalid."
error no string "VALIDATION_ERROR"
errors yes object {"warehouse_id":["The selected warehouse is invalid."]}

Response examples

validationError

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

429 Rate limit exceeded

TooManyRequests

Rate limit exceeded.

Field Required Type Flags Constraints Description Example
message yes string "Too Many Attempts."
error yes string "RATE_LIMITED"

500 Internal server error

InternalServerError

An unexpected server error occurred.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

INTERNAL_SERVER_ERROR

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

Update warehouse

operationIdpatchWarehouses
TagWarehouses
SecuritybearerAuth

Update warehouse. The request uses the documented payload schema, validates tenant visibility, and returns a normalized API envelope.
Current backend behavior is legacy partial-update semantics: omitted fields are left unchanged.

HTTP request example (cURL)

Set your server and token. Replace sample IDs with accessible IDs. For requests with a body, save the applicable JSON example below as request.json and replace sample values before sending. Idempotency-Key identifies one logical operation.

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

Parameters

Name In Required Type Style Explode Constraints Description Example
id path yes integer:int64 min: 1 Warehouse ID. 1001
Idempotency-Key header no string maxLength: 191 Optional idempotency key for API v2 write requests. Successful 2xx/3xx responses are replayed for the same key and identical payload for one day. The same key with a different payload returns 409. "ord-create-20260714-001"

Request body

PatchWarehouseRequest required

Field Required Type Flags Constraints Description Example
data yes PatchWarehousePayload
data.name no string | null minLength: 1 "Client Warehouse Varna"
data.status_id no integer:int64 | null Warehouse status ID. Values are database-backed and are not modeled as a closed enum in the public contract. 1
data.owner_user_id no integer:int64 | null min: 1 15
data.parent_id no integer:int64 | null min: 1 42
data.country_id no integer:int64 | null min: 1 100
data.currency_id no integer:int64 | null min: 1 978
data.company_id no integer:int64 | null min: 1 7
data.service_provider_company_id no integer:int64 | null min: 1 8
data.billing_setting_id no integer:int64 | null min: 1 12
data.settings no object | null
data.settings.datamatrix no object
data.settings.datamatrix.enabled yes boolean false
data.settings.datamatrix.type no string | null "standard"
data.settings.datamatrix.acceptance_enabled yes boolean false
data.settings.datamatrix.picking_enabled yes boolean false
data.settings.datamatrix.packing_enabled yes boolean false
data.settings.datamatrix.validation_mode no 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 no boolean true
data.settings.production_date_enabled no boolean true
data.settings.batch_enabled no boolean true
data.settings.auto_acceptance_enabled no boolean false
data.settings.order_auto_conduct_mode no enum:int64 | null enum: 0, 1, 2, 3 Permission for explicit order auto-conduct actions: 0 = disabled; 1 = skip picking; 2 = skip packing; 3 = skip picking and packing. This setting alone does not perform these actions or confirm carrier handover. Auto-packing is blocked when DataMatrix verification during packing is enabled. 0
data.settings.require_acceptance_dimensions no boolean false
data.settings.crossdock_enabled no boolean Allows cross-docking for a client warehouse. true
data.document no object | null
data.document.number no string | null "WH-DOC-1001"
data.document.date no string:date | null "2026-07-14"
data.custom no object {"billing_group":"Varna B"}

Request examples

default

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

Responses

200 Successful response.

Successful response.

Field Required Type Flags Constraints Description Example
data yes Warehouse Warehouse or client warehouse.
data.id yes integer:int64 readOnly min: 1 1001
data.created_at no string:date-time | null "2026-07-14T10:30:00Z"
data.updated_at no string:date-time | null "2026-07-14T10:30:00Z"
data.name yes string "Warehouse Sofia"
data.status_id no integer:int64 | null Warehouse status ID. Values are database-backed and are not modeled as a closed enum in the public contract. 1
data.type_id no integer:int64 | null Warehouse type ID. Values are database-backed and are not modeled as a closed enum in the public contract. 2
data.domain_id no integer:int64 | null min: 1 3
data.owner_user_id no integer:int64 | null min: 1 15
data.parent_id no integer:int64 | null min: 1 41
data.country_id no integer:int64 | null min: 1 100
data.currency_id no integer:int64 | null min: 1 978
data.company_id no integer:int64 | null min: 1 7
data.service_provider_company_id no integer:int64 | null min: 1 8
data.billing_setting_id no integer:int64 | null min: 1 12
data.settings no WarehouseSettings
data.settings.datamatrix no object
data.settings.datamatrix.enabled yes boolean false
data.settings.datamatrix.type no string | null "standard"
data.settings.datamatrix.acceptance_enabled yes boolean false
data.settings.datamatrix.picking_enabled yes boolean false
data.settings.datamatrix.packing_enabled yes boolean false
data.settings.datamatrix.validation_mode no 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 no boolean true
data.settings.production_date_enabled no boolean true
data.settings.batch_enabled no boolean true
data.settings.auto_acceptance_enabled no boolean false
data.settings.order_auto_conduct_mode no enum:int64 | null enum: 0, 1, 2, 3 Permission for explicit order auto-conduct actions: 0 = disabled; 1 = skip picking; 2 = skip packing; 3 = skip picking and packing. This setting alone does not perform these actions or confirm carrier handover. Auto-packing is blocked when DataMatrix verification during packing is enabled. 0
data.settings.require_acceptance_dimensions no boolean false
data.settings.crossdock_enabled no boolean Allows cross-docking for a client warehouse. true
data.document no WarehouseDocument
data.document.number no string | null "WH-DOC-1001"
data.document.date no string:date | null "2026-07-14"
data.custom no object Installation-specific warehouse attributes. {"billing_group":"Sofia A"}
meta yes ResponseMeta
meta.api_version yes enum enum: v2 "v2"
meta.deleted no boolean true
meta.id no integer:int64 | null min: 1 1001
meta.command_replayed no boolean True when an idempotent cross-dock command returned the original successful result. false
meta.crossdock_configuration no object | null
meta.crossdock_configuration.physical_warehouse_id yes integer:int64 min: 1 42
meta.crossdock_configuration.enabled yes boolean true
meta.crossdock_configuration.process_version yes string "direct_order_v1"

Response examples

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 Bad request

BadRequest

Bad request.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

BAD_REQUEST

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

401 Authentication required

Unauthorized

Authentication is required.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

AUTH_REQUIRED

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

403 Forbidden

Forbidden

The authenticated account is not allowed to perform this action.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

FORBIDDEN

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

404 Not found

NotFound

The requested resource was not found or is outside the authenticated account scope.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

NOT_FOUND

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

409 Conflict

Conflict

The request conflicts with the current resource state or idempotency key state.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

idempotencyConflict

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

422 Validation error

ValidationError

Validation failed.

Field Required Type Flags Constraints Description Example
message yes string "The given data was invalid."
error no string "VALIDATION_ERROR"
errors yes object {"warehouse_id":["The selected warehouse is invalid."]}

Response examples

validationError

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

429 Rate limit exceeded

TooManyRequests

Rate limit exceeded.

Field Required Type Flags Constraints Description Example
message yes string "Too Many Attempts."
error yes string "RATE_LIMITED"

500 Internal server error

InternalServerError

An unexpected server error occurred.

Field Required Type Flags Constraints Description Example
message yes string "The request could not be processed."
error yes string "BAD_REQUEST"

Response examples

INTERNAL_SERVER_ERROR

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