Авторизация и пользователи
Endpoint-ы для получения токена, создания системных и клиентских аккаунтов,
создания сотрудников клиента, просмотра пользователей WMS и управления JSON-полем env.
Получить Sanctum API-токен. Endpoint ограничен throttle: 5 попыток в минуту.
Request
{
"email": "client@example.com",
"password": "secret123"
}
Success
{
"access_token": "13097|...",
"token_type": "Bearer"
}
Error
{
"status": "error",
"message": "Incorrect login or password"
}
Удаляет текущий access token. Требует Bearer token.
{
"status": "success",
"message": "The exit is complete"
}
Возвращает текущую модель пользователя Laravel/Sanctum.
Возвращает постраничный список пользователей WMS, которых текущий пользователь может видеть
в ЛК на экране пользователей. Область видимости и права совпадают с ЛК:
users.view, data scope, legacy domain/parent ограничения и ограничения
по управляемым ролям.
| Авторизация | Bearer token, Sanctum. |
|---|---|
| Права | Те же, что для просмотра пользователей в ЛК. |
| Роли | В ответе поле roles возвращается массивом slug-ов ролей. |
| Скрытые поля | password, remember_token, permissions, env не возвращаются. |
Query parameters
id[] | Фильтр по ID пользователей. |
|---|---|
id_from | Нижняя граница ID пользователя включительно. Например, id_from=100 вернет пользователей с ID от 100. |
id_to | Верхняя граница ID пользователя включительно. Например, id_to=100 вернет пользователей с ID до 100. |
domain_id[] | Фильтр по домену. Доступный scope все равно принудительно применяется. |
wh_id[] | Фильтр по складу. Доступный scope все равно принудительно применяется. |
role[] | Фильтр по slug роли, например warehouse_worker. |
name | Поиск по имени через LIKE. |
email | Поиск по email через LIKE. |
sort | Сортировка через запятую. Разрешено: id, name, email, domain_id, wh_id, created_at, updated_at. Минус означает DESC: -id,name. |
per_page | Количество строк на страницу, максимум 500. По умолчанию 50. |
page | Номер страницы. |
Examples
GET /api/users
GET /api/users?name=Ivan&sort=-id&per_page=50
GET /api/users?id_from=100
GET /api/users?id_from=100&id_to=200
GET /api/users?role[]=warehouse_manager&role[]=warehouse_worker
GET /api/users?domain_id[]=1&wh_id[]=10
Success
{
"data": [
{
"id": 15,
"name": "Ivan Ivanov",
"email": "ivan@example.com",
"lang": "ru",
"storage_id": null,
"domain_id": 1,
"domain": {
"id": 1,
"name": "Main domain"
},
"wh_id": 10,
"warehouse": {
"id": 10,
"name": "Main warehouse"
},
"parent_id": null,
"data_scope": "domain",
"roles": [
"warehouse_worker"
],
"created_at": "2026-01-01T10:00:00.000000Z",
"updated_at": "2026-01-02T10:00:00.000000Z"
}
],
"links": {},
"meta": {}
}
Возвращает подробное описание одного пользователя WMS, если этот пользователь входит в тот же набор видимых пользователей, что и на экране пользователей в ЛК.
| Авторизация | Bearer token, Sanctum. |
|---|---|
| Права | Те же, что для просмотра пользователя в ЛК. |
| Если не виден | Возвращается 404, чтобы не раскрывать существование недоступного пользователя. |
Success
{
"data": {
"id": 15,
"name": "Ivan Ivanov",
"email": "ivan@example.com",
"lang": "ru",
"storage_id": null,
"domain_id": 1,
"domain": {
"id": 1,
"name": "Main domain"
},
"wh_id": 10,
"warehouse": {
"id": 10,
"name": "Main warehouse"
},
"parent_id": null,
"data_scope": "domain",
"roles": [
"warehouse_worker"
],
"created_at": "2026-01-01T10:00:00.000000Z",
"updated_at": "2026-01-02T10:00:00.000000Z"
}
}
Админское создание нового системного аккаунта/домена.
| Доступ | Только авторизованный пользователь с ролью admin. |
|---|---|
| Создает | SiteAccount, домен, пользователя, роль warehouse_manager, FF-склад, клиентский склад, магазин, очереди сборки и упаковки. |
{
"language": "ru",
"company": "Test Company",
"FName": "Иван",
"LName": "Иванов",
"email": "owner@example.com",
"password": "secret123",
"massage": "Комментарий",
"fst": 1716280000,
"mName": null
}
fst и mName используются как антибот/хонепот. Ответ старого endpoint-а сейчас всегда краткий: {"status":"OK"}.
Endpoint зависит от scope вызывающего пользователя.
| global/domain | Создает новый клиентский аккаунт внутри текущего домена. Нужна проверка users.create. |
|---|---|
| owner | Создает сотрудника внутри текущего клиентского аккаунта. Нужна проверка client_users.create. |
| warehouse | Запрещено. |
Создание нового клиента админом домена
{
"language": "ru",
"FName": "Даниил",
"LName": "Матвеев",
"email": "client-owner@example.com",
"password": "secret123",
"customer_company": {
"co_name": "ООО Клиент",
"co_legal_name": "ООО Клиент",
"co_vat_number": "1234567890",
"co_country_id": 1,
"co_city_id": 10,
"co_address": "Москва, ул. Ленина 1",
"co_email": "billing@example.com"
},
"service_provider_company": {
"co_name": "ООО Фулфилмент",
"co_legal_name": "ООО Фулфилмент"
},
"shop": {
"sh_name": "Основной магазин",
"sh_enable_composite_items": 0
},
"warehouse": {
"wh_name": "Основной склад",
"wh_parent_id": 1,
"wh_country_id": 1,
"wh_currency_id": 1,
"wh_billing_id": 12
}
}
Создается пользователь клиента с ролью clients. Вложенные блоки
customer_company, service_provider_company,
shop и warehouse опциональны: если блока нет,
соответствующая сущность не создается. Старое поле shop_name
поддерживается и создает магазин, если блок shop не передан.
customer_company.co_name | Обязательно, если передан блок компании клиента. Созданная компания будет привязана к клиентскому складу как wh_company_id. |
|---|---|
service_provider_company.co_name | Обязательно, если передан блок компании поставщика услуги. Созданная компания будет привязана к клиентскому складу как wh_ff_id. |
shop.sh_name | Обязательно, если передан блок магазина. |
warehouse.wh_name | Обязательно, если передан блок склада. |
warehouse.wh_parent_id | Опциональный ID родительского FF-склада. Если не передан, используется первый FF-склад текущего домена. |
warehouse.wh_company_id | Можно передать существующую компанию клиента, если блок customer_company не используется. |
warehouse.wh_ff_id | Можно передать существующую компанию поставщика услуги, если блок service_provider_company не используется. |
Success
{
"status": "OK",
"user_id": 123,
"customer_company_id": 10,
"service_provider_company_id": 11,
"shop_id": 22,
"shop_name": "Основной магазин",
"warehouse_id": 456
}
Если вызывает клиент с owner scope
{
"language": "ru",
"FName": "Петр",
"LName": "Петров",
"email": "client-worker@example.com",
"password": "secret123"
}
Создается только пользователь-сотрудник клиента. Магазин, склад и очереди не создаются.
Явный endpoint для создания сотрудников клиентского аккаунта.
| Доступ | Только owner scope + client_users.create. |
|---|---|
| parent_id | Если создает мастер-клиент, ставится его id. Если создает сотрудник, ставится его parent_id. |
| Создает | Пользователь + роль clients. Без магазина, склада и очередей. |
{
"language": "ru",
"FName": "Петр",
"LName": "Петров",
"email": "worker@example.com",
"password": "secret123"
}
{
"status": "OK",
"user_id": 124,
"parent_id": 123
}
Возвращает JSON-поле env пользователя. Нужны users.env.view, видимость вкладки env и доступ к целевому пользователю.
{
"user_id": 42,
"env": {
"external_id": "CRM-42"
}
}
Полностью заменяет env. Это не merge/patch. Нужны users.env.update и право редактировать вкладку env.
{
"env": {
"external_id": "CRM-42",
"limits": {
"daily_orders": 100
}
}
}
Отличия от предыдущей версии
Главный риск обратной совместимости: если старая клиентская интеграция вызывает
POST /api/clients/create клиентским токеном и ожидала создание магазина,
склада и очередей, теперь она получит создание только сотрудника клиента.
/api/clients/createстал зависеть от scope.- Для сотрудников клиента добавлен
/api/client-users/create. - Клиент с
ownerscope больше не создает отдельный клиентский аккаунт своим токеном. - Роли ищутся по slug, а не по hardcoded id.
- Login получил rate limit.