Авторизация и пользователи

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

Аккаунт

GET /api/v2/me

Получить текущего пользователя

operationIdgetCurrentUser
РазделАккаунт
БезопасностьbearerAuth

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

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

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

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

Параметры

У операции нет path, query или header параметров.

Тело запроса

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

Ответы

200 Successful response.

Successful response.

Поле Обязательное Тип Флаги Ограничения Описание Пример
data да User Аутентифицированный или видимый пользователь NWMS.
data.id да integer:int64 readOnly min: 1 1001
data.created_at нет string:date-time | null "2026-07-14T10:30:00Z"
data.updated_at нет string:date-time | null "2026-07-14T10:30:00Z"
data.name да string "Client Manager"
data.email да string:email "client.manager@nwms.cloud"
data.language нет string | null "en"
data.storage_id нет string | null "default"
data.domain_id нет integer:int64 | null min: 1 3
data.warehouse_id нет integer:int64 | null min: 1 42
data.parent_id нет integer:int64 | null min: 1 15
data.data_scope нет string | null "domain"
data.roles нет array<string>
data.roles[] нет string "clients"
data.domain нет object | null
data.domain.id да integer:int64 min: 1 3
data.domain.name да string "Demo Domain"
data.warehouse нет object | null
data.warehouse.id да integer:int64 min: 1 42
data.warehouse.name да string "Warehouse Sofia"
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": 15,
    "name": "Client Manager",
    "email": "client.manager@nwms.cloud",
    "language": "en",
    "storage_id": "default",
    "domain_id": 3,
    "warehouse_id": 42,
    "parent_id": null,
    "data_scope": "domain",
    "roles": [
      "clients"
    ],
    "domain": {
      "id": 3,
      "name": "Demo Domain"
    },
    "warehouse": {
      "id": 42,
      "name": "Warehouse Sofia"
    },
    "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"
}

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

TooManyRequests

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

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

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

InternalServerError

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

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

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

INTERNAL_SERVER_ERROR

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

Пользователи

GET /api/v2/users

Получить список пользователей

operationIdlistUsers
РазделПользователи
Безопасность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/users" \
  --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
Количество записей на странице. По умолчанию 50; максимум 500. Этот фильтр также можно передать как filter[per_page], если это поддерживает Laravel query adapter. 50
sort query нет string form false pattern: ^-?[A-Za-z0-9_]+(,-?[A-Za-z0-9_]+)*$ Поля сортировки через запятую. Префикс - означает сортировку по убыванию. Допустимые поля: id, name, email, domain_id, warehouse_id, created_at, updated_at. По умолчанию: -id. Этот фильтр также можно передать как filter[sort], если это поддерживает Laravel query adapter. "-id"
id query нет integer:int64 form true min: 1 Фильтр по id с точным совпадением. Этот фильтр также можно передать как filter[id], если это поддерживает Laravel query adapter. 1001
domain_id query нет integer:int64 form true min: 1 Фильтр по domain_id с точным совпадением. Этот фильтр также можно передать как filter[domain_id], если это поддерживает Laravel query adapter. 3
warehouse_id query нет integer:int64 form true min: 1 Фильтр по warehouse_id с точным совпадением. Этот фильтр также можно передать как filter[warehouse_id], если это поддерживает Laravel query adapter. 42
parent_id query нет integer:int64 form true min: 1 Фильтр по parent_id с точным совпадением. Этот фильтр также можно передать как filter[parent_id], если это поддерживает Laravel query adapter. 1
data_scope query нет string form true Фильтр по data_scope с точным совпадением. Этот фильтр также можно передать как filter[data_scope], если это поддерживает Laravel query adapter. "domain"
name query нет string form true Фильтр по name с частичным текстовым совпадением. Этот фильтр также можно передать как filter[name], если это поддерживает Laravel query adapter. "Coffee"
email query нет string form true Фильтр по email с частичным текстовым совпадением. Этот фильтр также можно передать как filter[email], если это поддерживает Laravel query adapter. "client.manager@nwms.cloud"
id_from query нет number:float form true Нижняя включительная числовая граница для id. Этот фильтр также можно передать как filter[id_from], если это поддерживает Laravel query adapter. 19.99
id_to query нет number:float form true Верхняя включительная числовая граница для id. Этот фильтр также можно передать как filter[id_to], если это поддерживает Laravel query adapter. 19.99

Тело запроса

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

Ответы

200 Successful response.

Successful response.

Поле Обязательное Тип Флаги Ограничения Описание Пример
data да array<User>
data[] нет User Аутентифицированный или видимый пользователь NWMS.
data[].id да integer:int64 readOnly min: 1 1001
data[].created_at нет string:date-time | null "2026-07-14T10:30:00Z"
data[].updated_at нет string:date-time | null "2026-07-14T10:30:00Z"
data[].name да string "Client Manager"
data[].email да string:email "client.manager@nwms.cloud"
data[].language нет string | null "en"
data[].storage_id нет string | null "default"
data[].domain_id нет integer:int64 | null min: 1 3
data[].warehouse_id нет integer:int64 | null min: 1 42
data[].parent_id нет integer:int64 | null min: 1 15
data[].data_scope нет string | null "domain"
data[].roles нет array<string>
data[].roles[] нет string "clients"
data[].domain нет object | null
data[].domain.id да integer:int64 min: 1 3
data[].domain.name да string "Demo Domain"
data[].warehouse нет object | null
data[].warehouse.id да integer:int64 min: 1 42
data[].warehouse.name да string "Warehouse Sofia"
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": 15,
      "name": "Client Manager",
      "email": "client.manager@nwms.cloud",
      "language": "en",
      "storage_id": "default",
      "domain_id": 3,
      "warehouse_id": 42,
      "parent_id": null,
      "data_scope": "domain",
      "roles": [
        "clients"
      ],
      "domain": {
        "id": 3,
        "name": "Demo Domain"
      },
      "warehouse": {
        "id": 42,
        "name": "Warehouse Sofia"
      },
      "created_at": "2026-07-14T09:00:00Z",
      "updated_at": "2026-07-14T09:30:00Z"
    }
  ],
  "links": {
    "first": "https://betawms.ffcdek.ru/api/v2/users?page=1",
    "last": "https://betawms.ffcdek.ru/api/v2/users?page=2",
    "prev": null,
    "next": "https://betawms.ffcdek.ru/api/v2/users?page=2"
  },
  "meta": {
    "api_version": "v2",
    "current_page": 1,
    "from": 1,
    "last_page": 2,
    "path": "https://betawms.ffcdek.ru/api/v2/users",
    "per_page": 50,
    "to": 50,
    "total": 73
  }
}

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

Unauthorized

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

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

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

AUTH_REQUIRED

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

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

Forbidden

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

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

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

FORBIDDEN

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

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

TooManyRequests

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

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

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

InternalServerError

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

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

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

INTERNAL_SERVER_ERROR

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

Получить пользователя

operationIdgetUsers
РазделПользователи
БезопасностьbearerAuth

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

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

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

curl --globoff --request GET "${NWMS_BASE_URL}/api/v2/users/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 да User Аутентифицированный или видимый пользователь NWMS.
data.id да integer:int64 readOnly min: 1 1001
data.created_at нет string:date-time | null "2026-07-14T10:30:00Z"
data.updated_at нет string:date-time | null "2026-07-14T10:30:00Z"
data.name да string "Client Manager"
data.email да string:email "client.manager@nwms.cloud"
data.language нет string | null "en"
data.storage_id нет string | null "default"
data.domain_id нет integer:int64 | null min: 1 3
data.warehouse_id нет integer:int64 | null min: 1 42
data.parent_id нет integer:int64 | null min: 1 15
data.data_scope нет string | null "domain"
data.roles нет array<string>
data.roles[] нет string "clients"
data.domain нет object | null
data.domain.id да integer:int64 min: 1 3
data.domain.name да string "Demo Domain"
data.warehouse нет object | null
data.warehouse.id да integer:int64 min: 1 42
data.warehouse.name да string "Warehouse Sofia"
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": 15,
    "name": "Client Manager",
    "email": "client.manager@nwms.cloud",
    "language": "en",
    "storage_id": "default",
    "domain_id": 3,
    "warehouse_id": 42,
    "parent_id": null,
    "data_scope": "domain",
    "roles": [
      "clients"
    ],
    "domain": {
      "id": 3,
      "name": "Demo Domain"
    },
    "warehouse": {
      "id": 42,
      "name": "Warehouse Sofia"
    },
    "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"
}