Download OpenAPI specification:Download
Спецификация API личного кабинета (Landing). Добавляйте детали по мере готовности.
Регистрирует нового пользователя, создает организацию и возвращает JWT токен. Пользователь автоматически становится владельцем созданной организации.
| name required | string <= 255 characters |
| email required | string <email> <= 255 characters |
| password required | string <password> >= 8 characters |
| password_confirmation required | string <password> |
| phone | string or null <= 20 characters |
| position | string or null <= 100 characters |
| avatar | string or null <binary> |
| organization_name required | string <= 255 characters |
| organization_legal_name | string or null <= 255 characters |
| organization_tax_number | string or null^(\\d{10}|\\d{12})$ |
| organization_registration_number | string or null^(\\d{13}|\\d{15})$ |
| organization_phone | string or null <= 20 characters |
| organization_email | string or null <email> <= 255 characters |
| organization_address | string or null <= 500 characters |
| organization_city | string or null <= 100 characters |
| organization_postal_code | string or null^\\d{6}$ |
| organization_country | string or null <= 100 characters |
{- "success": true,
- "message": "Вход выполнен успешно",
- "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
- "user": {
- "id": 1,
- "name": "Иван Иванов",
- "email": "user@example.com",
- "phone": "+79001234567",
- "position": "Руководитель проекта",
- "current_organization_id": 5
}
}Аутентифицирует пользователя по email/паролю и возвращает JWT токен. Токен используется для доступа ко всем защищенным эндпоинтам.
| email required | string <email> Email пользователя |
| password required | string <password> Пароль пользователя |
{- "email": "user@example.com",
- "password": "Password123"
}{- "success": true,
- "message": "Вход выполнен успешно",
- "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
- "user": {
- "id": 1,
- "name": "Иван Иванов",
- "email": "user@example.com",
- "phone": "+79001234567",
- "position": "Руководитель проекта",
- "current_organization_id": 5
}
}Возвращает детальную информацию о профиле аутентифицированного пользователя
{- "success": true,
- "message": "string",
- "data": {
- "id": 1,
- "name": "Иван Иванов",
- "email": "user@example.com",
- "phone": "+79001234567",
- "position": "Руководитель проекта",
- "current_organization_id": 5,
- "email_verified_at": "2024-01-15T10:30:00Z",
- "created_at": "2024-01-10T09:00:00Z",
- "updated_at": "2024-01-15T14:20:00Z"
}
}Обновляет профиль текущего пользователя. Поддерживает загрузку аватара. Обрабатывается: ProfileController::update
| name | string <= 255 characters Имя пользователя |
string <email> <= 255 characters Email пользователя (должен быть уникальным) | |
| phone | string or null <= 20 characters ^(\+7|8)[- ]?\(?[0-9]{3}\)?[- ]?\(?[0-9]{3}[-... Телефон в российском формате |
| position | string or null <= 100 characters Должность пользователя |
| avatar | string or null <binary> Файл аватара (jpeg, png, jpg, gif, max 2MB) |
| remove_avatar | boolean or null Флаг для удаления текущего аватара |
{ "name": "Иван Петров", "email": "ivan.petrov@example.com", "phone": "+79001234567", "position": "Главный инженер", "avatar": "(binary file)" }
{- "success": true,
- "message": "Профиль успешно обновлен",
- "user": {
- "success": true,
- "message": "string",
- "data": {
- "id": 1,
- "name": "Иван Иванов",
- "email": "user@example.com",
- "phone": "+79001234567",
- "position": "Руководитель проекта",
- "current_organization_id": 5,
- "email_verified_at": "2024-01-15T10:30:00Z",
- "created_at": "2024-01-10T09:00:00Z",
- "updated_at": "2024-01-15T14:20:00Z"
}
}
}Обновляет профиль текущего пользователя. Поддерживает загрузку аватара. Обрабатывается: ProfileController::update
| name | string <= 255 characters Имя пользователя |
string <email> <= 255 characters Email пользователя (должен быть уникальным) | |
| phone | string or null <= 20 characters ^(\+7|8)[- ]?\(?[0-9]{3}\)?[- ]?\(?[0-9]{3}[-... Телефон в российском формате |
| position | string or null <= 100 characters Должность пользователя |
| avatar | string or null <binary> Файл аватара (jpeg, png, jpg, gif, max 2MB) |
| remove_avatar | boolean or null Флаг для удаления текущего аватара |
{ "name": "Иван Петров", "email": "ivan.petrov@example.com", "phone": "+79001234567", "position": "Главный инженер", "avatar": "(binary file)" }
{- "success": true,
- "message": "Профиль успешно обновлен",
- "user": {
- "success": true,
- "message": "string",
- "data": {
- "id": 1,
- "name": "Иван Иванов",
- "email": "user@example.com",
- "phone": "+79001234567",
- "position": "Руководитель проекта",
- "current_organization_id": 5,
- "email_verified_at": "2024-01-15T10:30:00Z",
- "created_at": "2024-01-10T09:00:00Z",
- "updated_at": "2024-01-15T14:20:00Z"
}
}
}Возвращает детальную информацию об организации пользователя. Использует контекст текущей организации из middleware.
{- "success": true,
- "message": "string",
- "data": {
- "id": 5,
- "name": "ООО Строймонтаж",
- "legal_name": "Общество с ограниченной ответственностью \"Строймонтаж\"",
- "tax_number": "7707083893",
- "registration_number": "1037739010891",
- "phone": "+74951234567",
- "email": "info@stroymontazh.ru",
- "address": "115093, г. Москва, ул. Люсиновская, д. 36, стр. 1",
- "city": "Москва",
- "postal_code": "115093",
- "country": "Россия",
- "description": "Строительно-монтажные работы",
- "is_verified": true,
- "verification_score": 85,
- "owner_id": 1,
- "created_at": "2024-01-10T09:00:00Z",
- "updated_at": "2024-01-15T14:20:00Z"
}
}Обновляет информацию о текущей организации пользователя. Требует права 'organization.manage'. Автоматически запускает верификацию при наличии достаточных данных.
| name | string [ 2 .. 255 ] characters Название организации |
| legal_name | string or null [ 2 .. 255 ] characters Юридическое название организации |
| tax_number | string or null^(\d{10}|\d{12})$ ИНН (10 цифр для организации или 12 для ИП) |
| registration_number | string or null^(\d{13}|\d{15})$ ОГРН (13 цифр для организации или 15 для ИП) |
| phone | string or null <= 20 characters ^(\+7|8)[- ]?\(?[0-9]{3}\)?[- ]?[0-9]{3}[- ]?... Телефон организации в российском формате |
string or null <email> <= 255 characters Email организации (должен быть уникальным) | |
| address | string or null [ 10 .. 500 ] characters Юридический адрес организации |
| city | string or null [ 2 .. 100 ] characters ^[а-яёА-ЯЁa-zA-Z\s\-\.]+$ Город (только буквы, пробелы, дефисы и точки) |
| postal_code | string or null^\d{6}$ Почтовый индекс (6 цифр) |
| country | string or null [ 2 .. 100 ] characters Страна |
| description | string or null <= 1000 characters Описание деятельности организации |
{- "name": "ООО Строймонтаж",
- "legal_name": "Общество с ограниченной ответственностью \"Строймонтаж\"",
- "tax_number": "7707083893",
- "registration_number": "1037739010891",
- "phone": "+74951234567",
- "email": "info@stroymontazh.ru",
- "address": "115093, г. Москва, ул. Люсиновская, д. 36, стр. 1",
- "city": "Москва",
- "postal_code": "115093",
- "country": "Россия"
}{- "success": true,
- "message": "Данные организации обновлены",
- "data": {
- "organization": {
- "success": true,
- "message": "string",
- "data": {
- "id": 5,
- "name": "ООО Строймонтаж",
- "legal_name": "Общество с ограниченной ответственностью \"Строймонтаж\"",
- "tax_number": "7707083893",
- "registration_number": "1037739010891",
- "phone": "+74951234567",
- "email": "info@stroymontazh.ru",
- "address": "115093, г. Москва, ул. Люсиновская, д. 36, стр. 1",
- "city": "Москва",
- "postal_code": "115093",
- "country": "Россия",
- "description": "Строительно-монтажные работы",
- "is_verified": true,
- "verification_score": 85,
- "owner_id": 1,
- "created_at": "2024-01-10T09:00:00Z",
- "updated_at": "2024-01-15T14:20:00Z"
}
}
}
}Возвращает статус верификации организации, рекомендации по улучшению и понятное пользователю сообщение о следующих шагах.
{- "success": true,
- "message": "string",
- "data": {
- "organization": {
- "success": true,
- "message": "string",
- "data": {
- "id": 5,
- "name": "ООО Строймонтаж",
- "legal_name": "Общество с ограниченной ответственностью \"Строймонтаж\"",
- "tax_number": "7707083893",
- "registration_number": "1037739010891",
- "phone": "+74951234567",
- "email": "info@stroymontazh.ru",
- "address": "115093, г. Москва, ул. Люсиновская, д. 36, стр. 1",
- "city": "Москва",
- "postal_code": "115093",
- "country": "Россия",
- "description": "Строительно-монтажные работы",
- "is_verified": true,
- "verification_score": 85,
- "owner_id": 1,
- "created_at": "2024-01-10T09:00:00Z",
- "updated_at": "2024-01-15T14:20:00Z"
}
}, - "recommendations": [
- {
- "field": "tax_number",
- "message": "Добавьте ИНН для повышения уровня верификации",
- "priority": "high"
}
], - "user_message": "Ваша организация почти готова к верификации! Добавьте ИНН и ОГРН для завершения."
}
}Обновляет данные организации и автоматически запускает процесс верификации, если предоставлены все необходимые данные.
| name | string [ 2 .. 255 ] characters Название организации |
| legal_name | string or null [ 2 .. 255 ] characters Юридическое название организации |
| tax_number | string or null^(\d{10}|\d{12})$ ИНН (10 цифр для организации или 12 для ИП) |
| registration_number | string or null^(\d{13}|\d{15})$ ОГРН (13 цифр для организации или 15 для ИП) |
| phone | string or null <= 20 characters ^(\+7|8)[- ]?\(?[0-9]{3}\)?[- ]?[0-9]{3}[- ]?... Телефон организации в российском формате |
string or null <email> <= 255 characters Email организации (должен быть уникальным) | |
| address | string or null [ 10 .. 500 ] characters Юридический адрес организации |
| city | string or null [ 2 .. 100 ] characters ^[а-яёА-ЯЁa-zA-Z\s\-\.]+$ Город (только буквы, пробелы, дефисы и точки) |
| postal_code | string or null^\d{6}$ Почтовый индекс (6 цифр) |
| country | string or null [ 2 .. 100 ] characters Страна |
| description | string or null <= 1000 characters Описание деятельности организации |
{- "name": "ООО Строймонтаж",
- "legal_name": "Общество с ограниченной ответственностью \"Строймонтаж\"",
- "tax_number": "7707083893",
- "registration_number": "1037739010891",
- "phone": "+74951234567",
- "email": "info@stroymontazh.ru",
- "address": "115093, г. Москва, ул. Люсиновская, д. 36, стр. 1",
- "city": "Москва",
- "postal_code": "115093",
- "country": "Россия",
- "description": "Строительно-монтажные работы"
}{- "success": true,
- "message": "Данные организации обновлены",
- "data": {
- "organization": {
- "success": true,
- "message": "string",
- "data": {
- "id": 5,
- "name": "ООО Строймонтаж",
- "legal_name": "Общество с ограниченной ответственностью \"Строймонтаж\"",
- "tax_number": "7707083893",
- "registration_number": "1037739010891",
- "phone": "+74951234567",
- "email": "info@stroymontazh.ru",
- "address": "115093, г. Москва, ул. Люсиновская, д. 36, стр. 1",
- "city": "Москва",
- "postal_code": "115093",
- "country": "Россия",
- "description": "Строительно-монтажные работы",
- "is_verified": true,
- "verification_score": 85,
- "owner_id": 1,
- "created_at": "2024-01-10T09:00:00Z",
- "updated_at": "2024-01-15T14:20:00Z"
}
}
}
}Инициирует процесс верификации организации. Организация должна иметь все необходимые данные (название, ИНН, ОГРН и т.д.).
{- "success": true,
- "message": "Запрос на верификацию отправлен успешно",
- "data": {
- "verification_result": { },
- "organization": {
- "success": true,
- "message": "string",
- "data": {
- "id": 5,
- "name": "ООО Строймонтаж",
- "legal_name": "Общество с ограниченной ответственностью \"Строймонтаж\"",
- "tax_number": "7707083893",
- "registration_number": "1037739010891",
- "phone": "+74951234567",
- "email": "info@stroymontazh.ru",
- "address": "115093, г. Москва, ул. Люсиновская, д. 36, стр. 1",
- "city": "Москва",
- "postal_code": "115093",
- "country": "Россия",
- "description": "Строительно-монтажные работы",
- "is_verified": true,
- "verification_score": 85,
- "owner_id": 1,
- "created_at": "2024-01-10T09:00:00Z",
- "updated_at": "2024-01-15T14:20:00Z"
}
}
}
}Возвращает персонализированные рекомендации по заполнению данных организации для повышения уровня верификации.
{- "success": true,
- "message": "Рекомендации по верификации получены",
- "data": {
- "recommendations": [
- {
- "field": "tax_number",
- "message": "Добавьте ИНН для повышения уровня верификации",
- "priority": "high"
}
], - "user_message": "Добавьте ИНН и ОГРН для завершения верификации"
}
}Публичное API (без авторизации). Поиск организаций через DaData API. Ограничение: 60 запросов в минуту.
| query required | string [ 3 .. 100 ] characters Поисковый запрос для получения подсказок |
{- "query": "7707083893"
}{- "success": true,
- "message": "Подсказки получены успешно",
- "data": [
- {
- "value": "ПАО СБЕРБАНК",
- "unrestricted_value": "ПУБЛИЧНОЕ АКЦИОНЕРНОЕ ОБЩЕСТВО \"СБЕРБАНК РОССИИ\"",
- "data": { }
}
]
}Публичное API (без авторизации). Поиск адресов через DaData API. Ограничение: 60 запросов в минуту.
| query required | string [ 3 .. 200 ] characters Часть адреса для поиска |
{- "query": "Москва, Красная площадь"
}{- "success": true,
- "message": "Подсказки получены успешно",
- "data": [
- {
- "value": "ПАО СБЕРБАНК",
- "unrestricted_value": "ПУБЛИЧНОЕ АКЦИОНЕРНОЕ ОБЩЕСТВО \"СБЕРБАНК РОССИИ\"",
- "data": { }
}
]
}Публичное API (без авторизации). Очистка адреса через DaData API. Ограничение: 60 запросов в минуту.
| address required | string [ 5 .. 500 ] characters Адрес для очистки и стандартизации |
{- "address": "мск красная площадь 1"
}{- "success": true,
- "message": "Адрес очищен успешно",
- "data": { }
}Возвращает статус верификации организации, рекомендации по улучшению и понятное пользователю сообщение о следующих шагах.
{- "success": true,
- "message": "string",
- "data": {
- "organization": {
- "success": true,
- "message": "string",
- "data": {
- "id": 5,
- "name": "ООО Строймонтаж",
- "legal_name": "Общество с ограниченной ответственностью \"Строймонтаж\"",
- "tax_number": "7707083893",
- "registration_number": "1037739010891",
- "phone": "+74951234567",
- "email": "info@stroymontazh.ru",
- "address": "115093, г. Москва, ул. Люсиновская, д. 36, стр. 1",
- "city": "Москва",
- "postal_code": "115093",
- "country": "Россия",
- "description": "Строительно-монтажные работы",
- "is_verified": true,
- "verification_score": 85,
- "owner_id": 1,
- "created_at": "2024-01-10T09:00:00Z",
- "updated_at": "2024-01-15T14:20:00Z"
}
}, - "recommendations": [
- {
- "field": "tax_number",
- "message": "Добавьте ИНН для повышения уровня верификации",
- "priority": "high"
}
], - "user_message": "Ваша организация почти готова к верификации! Добавьте ИНН и ОГРН для завершения."
}
}Обновляет данные организации и автоматически запускает процесс верификации, если предоставлены все необходимые данные.
| name | string [ 2 .. 255 ] characters Название организации |
| legal_name | string or null [ 2 .. 255 ] characters Юридическое название организации |
| tax_number | string or null^(\d{10}|\d{12})$ ИНН (10 цифр для организации или 12 для ИП) |
| registration_number | string or null^(\d{13}|\d{15})$ ОГРН (13 цифр для организации или 15 для ИП) |
| phone | string or null <= 20 characters ^(\+7|8)[- ]?\(?[0-9]{3}\)?[- ]?[0-9]{3}[- ]?... Телефон организации в российском формате |
string or null <email> <= 255 characters Email организации (должен быть уникальным) | |
| address | string or null [ 10 .. 500 ] characters Юридический адрес организации |
| city | string or null [ 2 .. 100 ] characters ^[а-яёА-ЯЁa-zA-Z\s\-\.]+$ Город (только буквы, пробелы, дефисы и точки) |
| postal_code | string or null^\d{6}$ Почтовый индекс (6 цифр) |
| country | string or null [ 2 .. 100 ] characters Страна |
| description | string or null <= 1000 characters Описание деятельности организации |
{- "name": "ООО Строймонтаж",
- "legal_name": "Общество с ограниченной ответственностью \"Строймонтаж\"",
- "tax_number": "7707083893",
- "registration_number": "1037739010891",
- "phone": "+74951234567",
- "email": "info@stroymontazh.ru",
- "address": "115093, г. Москва, ул. Люсиновская, д. 36, стр. 1",
- "city": "Москва",
- "postal_code": "115093",
- "country": "Россия",
- "description": "Строительно-монтажные работы"
}{- "success": true,
- "message": "Данные организации обновлены",
- "data": {
- "organization": {
- "success": true,
- "message": "string",
- "data": {
- "id": 5,
- "name": "ООО Строймонтаж",
- "legal_name": "Общество с ограниченной ответственностью \"Строймонтаж\"",
- "tax_number": "7707083893",
- "registration_number": "1037739010891",
- "phone": "+74951234567",
- "email": "info@stroymontazh.ru",
- "address": "115093, г. Москва, ул. Люсиновская, д. 36, стр. 1",
- "city": "Москва",
- "postal_code": "115093",
- "country": "Россия",
- "description": "Строительно-монтажные работы",
- "is_verified": true,
- "verification_score": 85,
- "owner_id": 1,
- "created_at": "2024-01-10T09:00:00Z",
- "updated_at": "2024-01-15T14:20:00Z"
}
}
}
}Инициирует процесс верификации организации. Организация должна иметь все необходимые данные (название, ИНН, ОГРН и т.д.).
{- "success": true,
- "message": "Запрос на верификацию отправлен успешно",
- "data": {
- "verification_result": { },
- "organization": {
- "success": true,
- "message": "string",
- "data": {
- "id": 5,
- "name": "ООО Строймонтаж",
- "legal_name": "Общество с ограниченной ответственностью \"Строймонтаж\"",
- "tax_number": "7707083893",
- "registration_number": "1037739010891",
- "phone": "+74951234567",
- "email": "info@stroymontazh.ru",
- "address": "115093, г. Москва, ул. Люсиновская, д. 36, стр. 1",
- "city": "Москва",
- "postal_code": "115093",
- "country": "Россия",
- "description": "Строительно-монтажные работы",
- "is_verified": true,
- "verification_score": 85,
- "owner_id": 1,
- "created_at": "2024-01-10T09:00:00Z",
- "updated_at": "2024-01-15T14:20:00Z"
}
}
}
}Возвращает персонализированные рекомендации по заполнению данных организации для повышения уровня верификации.
{- "success": true,
- "message": "Рекомендации по верификации получены",
- "data": {
- "recommendations": [
- {
- "field": "tax_number",
- "message": "Добавьте ИНН для повышения уровня верификации",
- "priority": "high"
}
], - "user_message": "Добавьте ИНН и ОГРН для завершения верификации"
}
}Публичное API (без авторизации). Поиск организаций через DaData API. Ограничение: 60 запросов в минуту.
| query required | string [ 3 .. 100 ] characters Поисковый запрос для получения подсказок |
{- "query": "7707083893"
}{- "success": true,
- "message": "Подсказки получены успешно",
- "data": [
- {
- "value": "ПАО СБЕРБАНК",
- "unrestricted_value": "ПУБЛИЧНОЕ АКЦИОНЕРНОЕ ОБЩЕСТВО \"СБЕРБАНК РОССИИ\"",
- "data": { }
}
]
}Публичное API (без авторизации). Поиск адресов через DaData API. Ограничение: 60 запросов в минуту.
| query required | string [ 3 .. 200 ] characters Часть адреса для поиска |
{- "query": "Москва, Красная площадь"
}{- "success": true,
- "message": "Подсказки получены успешно",
- "data": [
- {
- "value": "ПАО СБЕРБАНК",
- "unrestricted_value": "ПУБЛИЧНОЕ АКЦИОНЕРНОЕ ОБЩЕСТВО \"СБЕРБАНК РОССИИ\"",
- "data": { }
}
]
}Публичное API (без авторизации). Очистка адреса через DaData API. Ограничение: 60 запросов в минуту.
| address required | string [ 5 .. 500 ] characters Адрес для очистки и стандартизации |
{- "address": "мск красная площадь 1"
}{- "success": true,
- "message": "Адрес очищен успешно",
- "data": { }
}Возвращает все кастомные роли, созданные в текущей организации.
Типы ролей:
Разрешения для ролей:
system_permissions - системные разрешения (users.manage, projects.view, etc.)module_permissions - разрешения модулей (billing.view, reports.export, etc.)interface_access - доступ к интерфейсам (lk, mobile, admin)Требует права roles.view_custom в организации.
| search | string Example: search=Менеджер Поиск по названию роли |
| interface_access | string Enum: "lk" "mobile" "admin" Фильтр по типу доступа к интерфейсу |
{- "success": true,
- "data": [
- {
- "id": 1,
- "slug": "custom_manager",
- "name": "Менеджер проектов",
- "description": "Управление проектами и командой",
- "is_system": false,
- "interface_access": [
- "lk"
], - "system_permissions": [
- "projects.view",
- "projects.edit",
- "users.view"
], - "module_permissions": [
- "reports.view"
], - "users_count": 5,
- "created_by": {
- "id": 10,
- "name": "Администратор",
- "email": "admin@company.com"
}, - "created_at": "2024-09-15T10:30:00Z"
}
], - "meta": {
- "total": 15,
- "organization_id": 123
}
}Создает новую кастомную роль в организации с указанными разрешениями.
Процесс создания роли:
Ограничения:
Требует права roles.create_custom в организации.
| name required | string [ 2 .. 100 ] characters |
| slug | string or null^[a-z0-9_-]+$ |
| description | string or null <= 500 characters |
| permissions required | Array of strings non-empty |
| color | string or null^#[0-9A-Fa-f]{6}$ |
| is_active | boolean or null |
| display_order | integer or null >= 0 |
{- "name": "Менеджер проектов",
- "description": "Управление проектами, задачами и отчетами",
- "system_permissions": [
- "projects.view",
- "projects.edit",
- "reports.view",
- "users.view"
], - "module_permissions": [
- "project_management.manage"
], - "interface_access": [
- "lk"
], - "conditions": {
- "max_projects": 10,
- "can_export": true
}
}{- "success": true,
- "message": "Роль успешно создана",
- "data": {
- "id": 25,
- "slug": "custom_project_manager",
- "name": "Менеджер проектов",
- "description": "Управление проектами, задачами и отчетами",
- "is_system": false,
- "interface_access": [
- "lk"
], - "system_permissions": [
- "projects.view",
- "projects.edit",
- "reports.view"
], - "module_permissions": [
- "project_management.manage"
], - "users_count": 0,
- "created_by": {
- "id": 5,
- "name": "Администратор",
- "email": "admin@company.com"
}, - "created_at": "2024-09-19T14:30:00Z"
}
}Возвращает подробную информацию о кастомной роли, включая:
Основная информация:
Связанные данные:
Требует права roles.view_custom в организации.
| roleId required | integer Example: 123 ID кастомной роли |
{- "success": true,
- "message": "string",
- "data": {
- "id": 0,
- "name": "string",
- "slug": "string",
- "description": "string",
- "color": "string",
- "is_active": true,
- "is_system": true,
- "display_order": 0,
- "permissions": [
- "string"
], - "permissions_formatted": [
- "string"
], - "users_count": 0,
- "users": [
- {
- "id": 0,
- "name": "string",
- "email": "string",
- "assigned_at": "2019-08-24T14:15:22Z",
- "assigned_by": 0
}
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "assignments": [
- {
- "user": {
- "id": 0,
- "name": "string",
- "email": "string"
}, - "assigned_at": "2019-08-24T14:15:22Z",
- "assigned_by": {
- "id": 0,
- "name": "string"
}
}
]
}
}Обновляет существующую кастомную роль организации.
Что можно изменить:
Ограничения при обновлении:
Требует права roles.manage_custom в организации.
| roleId required | integer Example: 123 ID кастомной роли |
| name | string [ 2 .. 100 ] characters |
| slug | string or null^[a-z0-9_-]+$ |
| description | string or null <= 500 characters |
| permissions | Array of strings or null |
| color | string or null^#[0-9A-Fa-f]{6}$ |
| is_active | boolean or null |
| display_order | integer or null >= 0 |
{- "name": "string",
- "slug": "string",
- "description": "string",
- "permissions": [
- "string"
], - "color": "string",
- "is_active": true,
- "display_order": 0
}{- "success": true,
- "message": "string",
- "data": {
- "id": 0,
- "name": "string",
- "slug": "string",
- "description": "string",
- "color": "string",
- "is_active": true,
- "is_system": true,
- "display_order": 0,
- "permissions": [
- "string"
], - "permissions_formatted": [
- "string"
], - "users_count": 0,
- "users": [
- {
- "id": 0,
- "name": "string",
- "email": "string",
- "assigned_at": "2019-08-24T14:15:22Z",
- "assigned_by": 0
}
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}Удаляет кастомную роль из организации.
Процесс удаления:
Ограничения:
Требует права roles.manage_custom в организации.
| roleId required | integer Example: 123 ID кастомной роли |
| force | boolean Default: false Принудительное удаление с переназначением пользователей |
| reassign_to_role_id | integer ID роли для переназначения пользователей (обязательно при force=true) |
{- "success": true,
- "message": "Роль успешно удалена"
}Возвращает полный список разрешений, доступных для создания кастомных ролей в организации.
Типы разрешений:
🔧 Системные разрешения:
users.* - управление пользователямиprojects.* - управление проектамиcontracts.* - управление договорамиreports.* - доступ к отчетамbilling.* - управление биллингом📦 Модульные разрешения:
project_management.* - модуль управления проектамиmulti_organization.* - модуль мультиорганизации🖥️ Доступ к интерфейсам:
lk - личный кабинет (web)mobile - мобильное приложениеadmin - административная панельРазрешения автоматически переводятся на русский язык и группируются по категориям.
Требует права roles.create_custom в организации.
{- "success": true,
- "data": {
- "system_permissions": {
- "users": {
- "name": "Управление пользователями",
- "permissions": {
- "users.view": "Просмотр пользователей",
- "users.manage": "Управление пользователями",
- "users.invite": "Приглашение пользователей"
}
}, - "projects": {
- "name": "Управление проектами",
- "permissions": {
- "projects.view": "Просмотр проектов",
- "projects.edit": "Редактирование проектов",
- "projects.create": "Создание проектов",
- "projects.delete": "Удаление проектов"
}
}
}, - "module_permissions": {
- "project_management": {
- "name": "Модуль управления проектами",
- "permissions": {
- "project_management.advanced": "Расширенные функции",
- "project_management.reports": "Отчеты по проектам"
}
}
}, - "interface_access": {
- "lk": "Личный кабинет",
- "mobile": "Мобильное приложение",
- "admin": "Административная панель"
}
}
}Создает копию существующей кастомной роли с новым названием.
Процесс клонирования:
Возможности:
Требует права roles.manage_custom в организации.
| roleId required | integer Example: 123 ID роли для клонирования |
| name required | string <= 255 characters Название новой роли (должно быть уникальным) |
| target_organization_id | integer or null ID организации для клонирования (по умолчанию текущая) |
| description | string or null <= 1000 characters Новое описание роли (опционально) |
{- "name": "Копия - Менеджер проектов",
- "target_organization_id": 456,
- "description": "Клонированная роль для другого отдела"
}{- "success": true,
- "message": "Роль успешно клонирована",
- "data": {
- "id": 45,
- "slug": "copy_project_manager",
- "name": "Копия - Менеджер проектов",
- "description": "Клонированная роль для другого отдела",
- "is_system": false,
- "interface_access": [
- "lk"
], - "system_permissions": [
- "projects.view",
- "projects.edit"
], - "module_permissions": [
- "project_management.manage"
], - "users_count": 0,
- "created_by": {
- "id": 5,
- "name": "Администратор",
- "email": "admin@company.com"
}, - "created_at": "2024-09-19T15:00:00Z"
}
}Возвращает список всех пользователей, которым назначена указанная кастомная роль.
Информация о пользователях:
Требует права roles.view_custom в организации.
| roleId required | integer Example: 123 ID роли |
| status | string Enum: "active" "inactive" Фильтр по статусу пользователя |
{- "success": true,
- "message": "string",
- "data": [
- {
- "id": 25,
- "name": "Иван Петров",
- "email": "ivan.petrov@company.com",
- "assigned_at": "2024-09-10T09:15:00Z",
- "assigned_by": {
- "id": 5,
- "name": "Администратор",
- "email": "admin@company.com"
}, - "is_active": true
}
]
}Назначает кастомную роль указанному пользователю в определенном контексте.
Типы контекстов:
organization - роль действует в рамках всей организацииproject - роль действует только в рамках конкретного проектаОсобенности назначения:
Требует права roles.manage_custom в организации.
| roleId required | integer Example: 123 ID роли для назначения |
| user_id required | integer ID пользователя для назначения роли |
| context_type required | string Enum: "organization" "project" Тип контекста применения роли |
| context_id required | integer ID контекста (организации или проекта) |
| expires_at | string or null <date-time> Дата истечения назначения роли (опционально) |
| note | string or null <= 500 characters Комментарий к назначению |
{- "user_id": 25,
- "context_type": "organization",
- "context_id": 123,
- "expires_at": "2024-12-31T23:59:59Z",
- "note": "Временно на период отпуска основного менеджера"
}{- "success": true,
- "message": "Роль успешно назначена пользователю",
- "data": null
}Отзывает (удаляет) назначение кастомной роли у указанного пользователя.
Процесс отзыва:
Ограничения:
Требует права roles.manage_custom в организации.
| roleId required | integer Example: 123 ID роли для отзыва |
| user_id required | integer ID пользователя для отзыва роли |
| context_type | string Enum: "organization" "project" Тип контекста (опционально, если не указан - все контексты) |
| context_id | integer or null ID контекста (опционально) |
| reason | string or null <= 500 characters Причина отзыва роли |
{- "user_id": 25,
- "context_type": "organization",
- "context_id": 123,
- "reason": "Смена должности"
}{- "success": true,
- "message": "Роль успешно отозвана у пользователя"
}Возвращает все приглашения пользователей для текущей организации.
Статусы приглашений:
pending - ожидает принятияaccepted - принято пользователемexpired - срок действия истекcancelled - отменено администраторомПриглашения сортируются по дате создания (новые в начале).
| status | string Enum: "pending" "accepted" "expired" "cancelled" Example: status=pending Фильтр по статусу приглашения |
string <email> Example: email=user@example.com Поиск по email получателя |
{- "success": true,
- "data": [
- {
- "id": 1,
- "email": "newuser@example.com",
- "name": "Новый Пользователь",
- "role_slugs": [
- "foreman"
], - "role_names": [
- "Прораб"
], - "status": "pending",
- "status_text": "Ожидает принятия",
- "status_color": "#f39c12",
- "token": "abcd1234efgh5678",
- "expires_at": "2024-10-19T14:30:00Z",
- "accepted_at": null,
- "is_expired": false,
- "can_be_accepted": true,
- "invited_by": {
- "id": 5,
- "name": "Администратор",
- "email": "admin@company.com"
}, - "organization": {
- "id": 10,
- "name": "ООО Строймонтаж",
- "inn": "7707083893"
}, - "created_at": "2024-09-19T14:30:00Z"
}
]
}Создает новое приглашение пользователя в организацию и отправляет приглашение на email.
Процесс создания приглашения:
Типы ссылок в зависимости от ролей:
foreman → мобильное приложение (APK)organization_admin, accountant, web_admin → admin.prohelper.proorganization_owner или без ролей → prohelper.proТребует права users.invite в организации.
| email required | string <email> <= 255 characters Email адрес приглашаемого пользователя |
| name required | string [ 2 .. 255 ] characters Полное имя приглашаемого пользователя |
| roles | Array of strings [ 0 .. 10 ] items Массив слагов ролей, которые будут назначены приглашенному пользователю. Типы ролей:
Влияние на ссылку приглашения:
Если массив пустой, пользователь получит базовые права. |
{- "email": "foreman@example.com",
- "name": "Иван Прорабов",
- "roles": [
- "foreman"
]
}{- "success": true,
- "data": {
- "id": 15,
- "email": "newuser@example.com",
- "name": "Новый Пользователь",
- "role_slugs": [
- "foreman"
], - "role_names": [
- "Прораб"
], - "status": "pending",
- "status_text": "Ожидает принятия",
- "token": "xyz789abc123def456",
- "expires_at": "2024-10-19T14:30:00Z",
- "invited_by": {
- "id": 5,
- "name": "Администратор",
- "email": "admin@company.com"
}, - "created_at": "2024-09-19T14:30:00Z"
}
}Повторно отправляет приглашение пользователю на email.
Условия для повторной отправки:
pendingПри повторной отправке обновляется время последней отправки (sent_at).
Требует права users.invite в организации.
| invitationId required | integer Example: 123 ID приглашения для повторной отправки |
{- "success": true,
- "message": "Приглашение повторно отправлено на email newuser@example.com",
- "data": null
}⚠️ ВНИМАНИЕ: ЭНДПОИНТ НЕ РЕАЛИЗОВАН
Этот эндпоинт описан в роутах, но метод getRoles() в OrganizationUserController не реализован.
Возвращает пустой ответ.
Для получения ролей используйте эндпоинт /available-roles.
| userId required | integer Example: 123 ID пользователя |
{- "message": "Метод не реализован"
}Обновляет список кастомных ролей пользователя в организации.
Процесс обновления:
Важно:
Требует права users.manage_roles в организации.
| userId required | integer Example: 123 ID пользователя для обновления ролей |
| custom_role_ids required | Array of integers [ 0 .. 20 ] items Массив ID кастомных ролей для назначения пользователю |
{- "custom_role_ids": [
- 5
]
}{- "success": true,
- "message": "Роли пользователя успешно обновлены"
}Назначает указанную кастомную роль пользователю в контексте организации.
Процесс назначения:
Особенности:
Требует права users.manage_roles в организации.
| userId required | integer Example: 123 ID пользователя для назначения роли |
| roleId required | integer Example: 15 ID кастомной роли для назначения |
{- "success": true,
- "message": "Роль успешно назначена пользователю"
}Отзывает (удаляет) указанную кастомную роль у пользователя в контексте организации.
Процесс отзыва:
Ограничения:
Требует права users.manage_roles в организации.
| userId required | integer Example: 123 ID пользователя для отзыва роли |
| roleId required | integer Example: 15 ID кастомной роли для отзыва |
{- "success": true,
- "message": "Роль успешно отозвана у пользователя"
}Возвращает информацию о лимитах пользователя в рамках текущей подписки организации.
Типы лимитов:
Информация о текущем использовании:
Лимиты зависят от тарифного плана организации и активированных модулей.
{- "success": true,
- "data": {
- "subscription_plan": {
- "name": "Профессиональный",
- "expires_at": "2024-12-31T23:59:59Z",
- "is_trial": false
}, - "limits": {
- "users": {
- "max": 50,
- "current": 23,
- "usage_percent": 46
}, - "projects": {
- "max": 100,
- "current": 15,
- "usage_percent": 15
}, - "storage_gb": {
- "max": 100,
- "current": 12.5,
- "usage_percent": 12.5
}
}, - "warnings": [
- {
- "type": "storage_gb",
- "message": "Вы используете 85% лимита хранилища",
- "severity": "warning"
}
]
}
}Создает нового пользователя и сразу назначает ему указанные кастомные роли в организации.
Процесс создания:
Особенности:
Требует права users.manage в организации.
| name required | string <= 255 characters Полное имя пользователя |
| email required | string <email> <= 255 characters Email пользователя (должен быть уникальным) |
| password required | string >= 8 characters Пароль пользователя |
| password_confirmation | string >= 8 characters Подтверждение пароля (должно совпадать с password) |
| custom_role_ids required | Array of integers [ 1 .. 10 ] items Массив ID кастомных ролей для назначения |
| send_credentials | boolean Default: false Отправить учетные данные пользователю на email |
{- "name": "Мария Петрова",
- "email": "maria.petrova@company.com",
- "password": "SecurePassword123",
- "password_confirmation": "SecurePassword123",
- "custom_role_ids": [
- 5,
- 12
], - "send_credentials": true
}{- "success": true,
- "message": "Пользователь успешно создан с назначенными ролями",
- "data": {
- "user": {
- "id": 156,
- "name": "Мария Петрова",
- "email": "maria.petrova@company.com",
- "created_at": "2024-09-19T15:30:00Z"
}
}
}Возвращает список всех ролей, доступных для назначения пользователям в текущей организации.
Типы ролей:
🔧 Системные роли:
organization_owner, foreman, accountant🎨 Кастомные роли:
Информация полезна для создания селектов в интерфейсе и понимания доступных возможностей.
Требует права roles.view_custom в организации.
| include_inactive | boolean Default: false Включить неактивные кастомные роли |
| interface_filter | string Enum: "lk" "mobile" "admin" Фильтр по типу доступа к интерфейсу |
{- "success": true,
- "data": {
- "system_roles": [
- "organization_owner",
- "organization_admin",
- "foreman",
- "accountant",
- "worker"
], - "custom_roles": [
- {
- "id": 5,
- "name": "Менеджер проектов",
- "slug": "custom_project_manager",
- "description": "Управление проектами и командой",
- "is_active": true,
- "interface_access": [
- "lk"
], - "users_count": 3
}, - {
- "id": 8,
- "name": "Прораб участка",
- "slug": "custom_foreman_site",
- "description": "Контроль работ на конкретном участке",
- "is_active": true,
- "interface_access": [
- "mobile"
], - "users_count": 5
}
], - "organization_id": 123
}
}Возвращает все доступные тарифные планы для оформления подписки организации. Требует права 'billing.manage'.
{- "success": true,
- "message": "string",
- "data": [
- {
- "id": 0,
- "name": "string",
- "price": 0,
- "currency": "string",
- "period": "string",
- "description": "string"
}
]
}Возвращает информацию о текущей активной подписке организации. Если подписки нет, возвращает соответствующее сообщение.
{- "success": true,
- "data": {
- "has_subscription": true,
- "subscription": {
- "id": 5,
- "status": "active",
- "plan_name": "Базовый",
- "plan_description": "Базовый план для малого бизнеса",
- "is_trial": false,
- "trial_ends_at": null,
- "ends_at": "2024-02-15 12:00:00",
- "next_billing_at": "2024-02-01 12:00:00",
- "is_canceled": false,
- "is_auto_payment_enabled": true
}, - "message": null
}
}Обновляет подписку на новый план или изменяет настройки автоплатежа.
| plan_slug | string Слаг нового плана |
| is_auto_payment_enabled | boolean Включить автоплатеж |
{- "plan_slug": "basic",
- "is_auto_payment_enabled": true
}{- "success": true,
- "data": { }
}Оформляет новую подписку на выбранный план для организации.
| plan_slug required | string Слаг тарифного плана |
| is_auto_payment_enabled | boolean Default: true Включить автоматические платежи |
{- "plan_slug": "basic",
- "is_auto_payment_enabled": true
}{- "success": true,
- "data": { }
}Отменяет текущую подписку организации. Доступ к функциям сохраняется до окончания периода.
{- "success": true,
- "data": { },
- "message": "Подписка отменена. Доступ сохранится до 15.02.2024"
}Изменяет настройку автоматических платежей для текущей подписки организации.
| is_auto_payment_enabled required | boolean |
{- "is_auto_payment_enabled": true
}{- "success": true,
- "message": "string",
- "data": {
- "plan": {
- "id": 0,
- "name": "string",
- "price": 0,
- "currency": "string",
- "period": "string",
- "description": "string"
}, - "status": "string",
- "started_at": "2019-08-24T14:15:22Z",
- "ends_at": "2019-08-24T14:15:22Z",
- "cancel_at": "2019-08-24T14:15:22Z",
- "is_auto_payment_enabled": true
}
}Возвращает список транзакций по балансу организации с пагинацией.
| limit | integer [ 1 .. 100 ] Default: 15 Количество записей на страницу |
{- "data": [
- {
- "id": 0,
- "amount": 0,
- "currency": "string",
- "type": "string",
- "description": "string",
- "created_at": "2019-08-24T14:15:22Z"
}
], - "links": { },
- "meta": { }
}Инициирует процесс пополнения баланса организации через платежный шлюз.
| amount required | number <float> >= 1 Сумма пополнения в основной валюте (рублях) |
| currency required | string = 3 characters ^[A-Z]{3}$ Код валюты в формате ISO 4217 |
| payment_method_token | string or null Токен метода оплаты от платежного шлюза |
{- "amount": 1000,
- "currency": "RUB",
- "payment_method_token": "tok_mock_visa"
}{- "success": true,
- "chargeId": "string",
- "status": "string",
- "message": "string",
- "redirectUrl": "string",
- "gatewaySpecificResponse": [ ]
}Возвращает лимиты и ограничения текущего тарифного плана организации.
{- "success": true,
- "message": "string",
- "data": {
- "max_users": 0,
- "max_projects": 0,
- "storage_quota_gb": 0,
- "current_users": 0,
- "current_projects": 0
}
}Показывает что произойдет при смене тарифного плана (стоимость, пропорциональные расчеты и т.д.).
| plan_slug required | string Слаг нового плана для предпросмотра |
{- "plan_slug": "premium"
}{- "success": true,
- "data": { },
- "message": "Доплата за смену плана составит 500 руб."
}Выполняет смену тарифного плана подписки с пропорциональным перерасчетом стоимости.
| plan_slug required | string Слаг нового плана |
{- "plan_slug": "premium"
}{- "success": true,
- "data": { },
- "billing_info": { },
- "message": "План успешно изменен на Premium"
}Возвращает сводную информацию о биллинге организации: подписка, баланс, статистика платежей и т.д.
{- "success": true,
- "data": {
- "plan": {
- "name": "string",
- "ends_at": "2019-08-24T14:15:22Z",
- "days_left": 0,
- "max_foremen": 0,
- "max_projects": 0,
- "max_storage_gb": 0,
- "used_foremen": 0,
- "used_projects": 0,
- "used_storage_gb": 0
}, - "addons": [
- {
- "id": 0,
- "addon": {
- "id": 0,
- "name": "string",
- "slug": "string",
- "description": "string",
- "price": 0,
- "currency": "string",
- "features": [
- "string"
]
}, - "status": "string",
- "activated_at": "2019-08-24T14:15:22Z",
- "expires_at": "2019-08-24T14:15:22Z"
}
]
}
}Возвращает статистику биллинга и предстоящие платежи по модулям организации. Требует права 'modules.billing'.
{- "success": true,
- "message": "string",
- "data": {
- "stats": {
- "total_monthly_cost": 7500,
- "active_modules_count": 5,
- "currency": "RUB",
- "breakdown_by_category": {
- "Аналитика": {
- "count": 2,
- "total_cost": 3500
}, - "Интеграции": {
- "count": 1,
- "total_cost": 2000
}
}, - "payment_history_summary": {
- "last_30_days": 7500,
- "last_90_days": 22500
}, - "savings": {
- "annual_discount": 9000,
- "bundle_discount": 1500
}
}, - "upcoming": {
- "next_billing_date": "2024-02-15",
- "total_amount": 7500,
- "currency": "RUB",
- "modules": [
- {
- "slug": "analytics",
- "name": "Продвинутая аналитика",
- "amount": 2500,
- "billing_period": "monthly",
- "expires_at": "2024-02-15T10:00:00Z"
}
], - "balance_status": {
- "current_balance": 15000,
- "required_amount": 7500,
- "sufficient": true
}, - "warnings": [
- {
- "type": "insufficient_balance",
- "message": "string",
- "severity": "info"
}
]
}
}
}Возвращает историю платежей и транзакций по модулям организации. Требует права 'modules.billing'.
| module_slug | string Example: module_slug=analytics Фильтр по конкретному модулю (опционально) |
{- "success": true,
- "message": "string",
- "data": [
- {
- "id": 1001,
- "date": "2024-01-15T10:00:00Z",
- "type": "activation",
- "module_slug": "analytics",
- "module_name": "Продвинутая аналитика",
- "amount": 2500,
- "currency": "RUB",
- "payment_method": "organization_balance",
- "description": "Активация модуля Продвинутая аналитика на 30 дней",
- "status": "completed",
- "details": {
- "period_start": "2019-08-24",
- "period_end": "2019-08-24",
- "discount_applied": 0,
- "original_amount": 0
}
}
]
}Возвращает все доступные тарифные планы для оформления подписки организации. Требует права 'billing.manage'.
{- "success": true,
- "message": "string",
- "data": [
- {
- "id": 0,
- "name": "string",
- "price": 0,
- "currency": "string",
- "period": "string",
- "description": "string"
}
]
}Возвращает информацию о текущей активной подписке организации. Если подписки нет, возвращает соответствующее сообщение.
{- "success": true,
- "data": {
- "has_subscription": true,
- "subscription": {
- "id": 5,
- "status": "active",
- "plan_name": "Базовый",
- "plan_description": "Базовый план для малого бизнеса",
- "is_trial": false,
- "trial_ends_at": null,
- "ends_at": "2024-02-15 12:00:00",
- "next_billing_at": "2024-02-01 12:00:00",
- "is_canceled": false,
- "is_auto_payment_enabled": true
}, - "message": null
}
}Обновляет подписку на новый план или изменяет настройки автоплатежа.
| plan_slug | string Слаг нового плана |
| is_auto_payment_enabled | boolean Включить автоплатеж |
{- "plan_slug": "basic",
- "is_auto_payment_enabled": true
}{- "success": true,
- "data": { }
}Оформляет новую подписку на выбранный план для организации.
| plan_slug required | string Слаг тарифного плана |
| is_auto_payment_enabled | boolean Default: true Включить автоматические платежи |
{- "plan_slug": "basic",
- "is_auto_payment_enabled": true
}{- "success": true,
- "data": { }
}Отменяет текущую подписку организации. Доступ к функциям сохраняется до окончания периода.
{- "success": true,
- "data": { },
- "message": "Подписка отменена. Доступ сохранится до 15.02.2024"
}Изменяет настройку автоматических платежей для текущей подписки организации.
| is_auto_payment_enabled required | boolean |
{- "is_auto_payment_enabled": true
}{- "success": true,
- "message": "string",
- "data": {
- "plan": {
- "id": 0,
- "name": "string",
- "price": 0,
- "currency": "string",
- "period": "string",
- "description": "string"
}, - "status": "string",
- "started_at": "2019-08-24T14:15:22Z",
- "ends_at": "2019-08-24T14:15:22Z",
- "cancel_at": "2019-08-24T14:15:22Z",
- "is_auto_payment_enabled": true
}
}Возвращает лимиты и ограничения текущего тарифного плана организации.
{- "success": true,
- "message": "string",
- "data": {
- "max_users": 0,
- "max_projects": 0,
- "storage_quota_gb": 0,
- "current_users": 0,
- "current_projects": 0
}
}Показывает что произойдет при смене тарифного плана (стоимость, пропорциональные расчеты и т.д.).
| plan_slug required | string Слаг нового плана для предпросмотра |
{- "plan_slug": "premium"
}{- "success": true,
- "data": { },
- "message": "Доплата за смену плана составит 500 руб."
}Выполняет смену тарифного плана подписки с пропорциональным перерасчетом стоимости.
| plan_slug required | string Слаг нового плана |
{- "plan_slug": "premium"
}{- "success": true,
- "data": { },
- "billing_info": { },
- "message": "План успешно изменен на Premium"
}Возвращает список транзакций по балансу организации с пагинацией.
| limit | integer [ 1 .. 100 ] Default: 15 Количество записей на страницу |
{- "data": [
- {
- "id": 0,
- "amount": 0,
- "currency": "string",
- "type": "string",
- "description": "string",
- "created_at": "2019-08-24T14:15:22Z"
}
], - "links": { },
- "meta": { }
}Инициирует процесс пополнения баланса организации через платежный шлюз.
| amount required | number <float> >= 1 Сумма пополнения в основной валюте (рублях) |
| currency required | string = 3 characters ^[A-Z]{3}$ Код валюты в формате ISO 4217 |
| payment_method_token | string or null Токен метода оплаты от платежного шлюза |
{- "amount": 1000,
- "currency": "RUB",
- "payment_method_token": "tok_mock_visa"
}{- "success": true,
- "chargeId": "string",
- "status": "string",
- "message": "string",
- "redirectUrl": "string",
- "gatewaySpecificResponse": [ ]
}Возвращает сводную информацию о биллинге организации: подписка, баланс, статистика платежей и т.д.
{- "success": true,
- "data": {
- "plan": {
- "name": "string",
- "ends_at": "2019-08-24T14:15:22Z",
- "days_left": 0,
- "max_foremen": 0,
- "max_projects": 0,
- "max_storage_gb": 0,
- "used_foremen": 0,
- "used_projects": 0,
- "used_storage_gb": 0
}, - "addons": [
- {
- "id": 0,
- "addon": {
- "id": 0,
- "name": "string",
- "slug": "string",
- "description": "string",
- "price": 0,
- "currency": "string",
- "features": [
- "string"
]
}, - "status": "string",
- "activated_at": "2019-08-24T14:15:22Z",
- "expires_at": "2019-08-24T14:15:22Z"
}
]
}
}Возвращает агрегированную информацию по всему холдингу: статистику по организациям, проектам, финансам.
{- "success": true,
- "message": "string",
- "data": {
- "holding_info": {
- "id": 10,
- "name": "Строительный холдинг Монолит",
- "total_organizations": 5,
- "active_organizations": 4
}, - "aggregated_stats": {
- "total_users": 125,
- "total_projects": 45,
- "active_projects": 28,
- "total_contracts": 67,
- "total_contract_amount": 125000000,
- "completed_works_amount": 85000000
}, - "organizations_summary": [
- {
- "id": 123,
- "name": "ООО Монолит-Строй",
- "is_active": true,
- "users_count": 25,
- "projects_count": 8,
- "contracts_amount": 15000000,
- "last_activity": "2024-09-19T14:30:00Z"
}
], - "financial_overview": {
- "total_revenue": 125000000,
- "pending_payments": 8500000,
- "overdue_payments": 2100000
}
}
}Возвращает расширенную сводку по текущей организации, включающую:
📊 Основные метрики:
👥 Информация о команде:
📈 Графики и диаграммы:
Данные собираются в реальном времени для текущей организации пользователя.
{- "financial": {
- "balance": 61200,
- "credits_this_month": 15000,
- "debits_this_month": 4800
}, - "projects": {
- "total": 12,
- "active": 6,
- "completed": 4
}, - "contracts": {
- "total": 18,
- "active": 9,
- "draft": 5,
- "completed": 4,
- "total_amount": 24500000
}, - "works_materials": {
- "works": {
- "total": 120,
- "confirmed": 84,
- "confirmed_amount": 7800000
}, - "materials": {
- "total": 56
}
}, - "acts": {
- "total": 14,
- "approved": 9,
- "total_amount": 5600000
}, - "team": {
- "total": 7,
- "by_roles": {
- "organization_owner": 1,
- "organization_admin": 2,
- "foreman": 1,
- "worker": 3
}
}, - "team_details": [
- {
- "id": 1,
- "name": "Иван Петров",
- "email": "ivan@example.com",
- "roles": [
- "organization_owner"
]
}, - {
- "id": 2,
- "name": "Анна Иванова",
- "email": "anna@example.com",
- "avatar_url": null,
- "roles": [
- "organization_admin"
]
}
], - "charts": {
- "projects_monthly": {
- "labels": [
- "2025-02",
- "2025-03",
- "2025-04",
- "2025-05",
- "2025-06",
- "2025-07"
], - "values": [
- 2,
- 3,
- 4,
- 5,
- 4,
- 6
]
}, - "contracts_monthly": {
- "labels": [
- "2025-02",
- "2025-03",
- "2025-04",
- "2025-05",
- "2025-06",
- "2025-07"
], - "values": [
- 1,
- 2,
- 3,
- 2,
- 3,
- 4
]
}, - "completed_works_monthly": {
- "labels": [
- "2025-02",
- "2025-03",
- "2025-04",
- "2025-05",
- "2025-06",
- "2025-07"
], - "values": [
- 10,
- 12,
- 15,
- 14,
- 13,
- 20
]
}, - "balance_monthly": {
- "labels": [
- "2025-02",
- "2025-03",
- "2025-04",
- "2025-05",
- "2025-06",
- "2025-07"
], - "values": [
- 50000,
- 53000,
- 56000,
- 58000,
- 62000,
- 61200
]
}, - "projects_status": {
- "draft": 5,
- "active": 6,
- "completed": 4
}, - "contracts_status": {
- "draft": 5,
- "active": 9,
- "completed": 4
}
}
}Возвращает все доступные модули системы с указанием их активности для текущей организации. Модули группируются по категориям и включают информацию о статусе активации.
{- "success": true,
- "message": "string",
- "data": {
- "Базовые функции": [
- {
- "slug": "projects",
- "name": "Управление проектами",
- "description": "Создание и управление строительными проектами",
- "is_active": true
}
], - "Аналитика": [
- {
- "slug": "analytics",
- "name": "Продвинутая аналитика",
- "is_active": false
}
]
}
}Возвращает только те модули, которые активированы для текущей организации.
{- "success": true,
- "message": "string",
- "data": [
- {
- "slug": "analytics",
- "name": "Продвинутая аналитика",
- "description": "Углубленная аналитика проектов и финансов",
- "type": "addon",
- "category": "Аналитика",
- "billing_model": "monthly",
- "price": 2500,
- "currency": "RUB",
- "duration_days": 30,
- "features": [
- "Дашборды",
- "Отчеты",
- "Экспорт в Excel"
], - "permissions": [
- "analytics.view",
- "analytics.reports",
- "analytics.export"
], - "icon": "📊",
- "can_deactivate": true
}
]
}Возвращает модули, срок действия которых истекает в ближайшее время. Полезно для напоминаний о необходимости продления.
| days_ahead | integer [ 1 .. 90 ] Default: 7 Количество дней вперед для поиска истекающих модулей |
{- "success": true,
- "message": "string",
- "data": [
- {
- "slug": "analytics",
- "name": "Продвинутая аналитика",
- "expires_at": "2024-02-15T10:00:00Z",
- "days_until_expiration": 3,
- "renewal_cost": 2500,
- "renewal_period_days": 30
}
]
}Показывает детали того, что произойдет при активации модуля: стоимость, необходимые ресурсы, получаемые возможности.
| moduleSlug required | string Example: analytics Уникальный идентификатор модуля |
{- "success": true,
- "message": "string",
- "data": {
- "success": true,
- "module": {
- "slug": "analytics",
- "name": "Продвинутая аналитика",
- "description": "Углубленная аналитика проектов и финансов",
- "type": "addon",
- "category": "Аналитика",
- "billing_model": "monthly",
- "price": 2500,
- "currency": "RUB",
- "duration_days": 30,
- "features": [
- "Дашборды",
- "Отчеты",
- "Экспорт в Excel"
], - "permissions": [
- "analytics.view",
- "analytics.reports",
- "analytics.export"
], - "icon": "📊",
- "can_deactivate": true
}, - "cost_details": {
- "base_cost": 2500,
- "discounts": 250,
- "final_cost": 2250,
- "currency": "RUB"
}, - "dependencies": [
- {
- "slug": "string",
- "name": "string",
- "required": true
}
], - "features_preview": [
- "Дашборды аналитики",
- "Отчеты по проектам",
- "Экспорт данных"
], - "billing_info": {
- "next_charge_date": "2024-02-15",
- "billing_period": "monthly"
}
}
}Показывает что потеряет организация при деактивации модуля: функции, данные, возможные возвраты средств.
| moduleSlug required | string Example: analytics Уникальный идентификатор модуля |
{- "success": true,
- "message": "string",
- "data": {
- "success": true,
- "module": {
- "slug": "analytics",
- "name": "Продвинутая аналитика"
}, - "lost_features": [
- "Дашборды аналитики",
- "Отчеты по проектам",
- "Экспорт данных"
], - "affected_data": [
- {
- "type": "reports",
- "description": "Сохраненные отчеты аналитики",
- "action": "archived"
}
], - "dependent_modules": [
- {
- "slug": "string",
- "name": "string",
- "impact": "string"
}
], - "refund_info": {
- "eligible": true,
- "amount": 0,
- "reason": "string"
}
}
}Проверяет, имеет ли текущая организация доступ к указанному модулю. Используется для условного отображения функций в интерфейсе.
| module_slug required | string Уникальный идентификатор модуля |
{- "module_slug": "analytics"
}{- "success": true,
- "message": "string",
- "data": {
- "module_slug": "analytics",
- "has_access": true
}
}Возвращает права доступа текущего пользователя, активные модули и матрицу разрешений модулей.
{- "success": true,
- "message": "string",
- "data": {
- "permissions": [
- "projects.view"
], - "active_modules": [
- "projects"
], - "permission_matrix": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}
}
}Активирует указанный модуль для организации. Требует права 'modules.manage'.
| module_slug required | string Уникальный идентификатор модуля |
object Дополнительные настройки модуля |
{- "module_slug": "analytics",
- "settings": {
- "auto_reports": true,
- "dashboard_widgets": [
- "chart",
- "table"
]
}
}{- "success": true,
- "message": "string",
- "data": {
- "success": true,
- "message": "Модуль успешно активирован",
- "module_slug": "analytics",
- "activation": {
- "id": 123,
- "activated_at": "2024-01-15T10:00:00Z",
- "expires_at": "2024-02-15T10:00:00Z",
- "status": "active"
}, - "billing_info": {
- "cost": 2250,
- "currency": "RUB",
- "next_billing_date": "2024-02-15",
- "payment_method": "organization_balance"
}, - "new_permissions": [
- "analytics.view",
- "analytics.reports"
]
}
}Активирует несколько модулей одновременно для организации. Требует права 'modules.manage'.
| module_slugs required | Array of strings [ 1 .. 20 ] items Список идентификаторов модулей для активации |
{- "module_slugs": [
- "analytics",
- "reports",
- "integrations"
]
}{- "success": true,
- "message": "string",
- "data": {
- "successful": [
- "string"
], - "failed": [
- {
- "module_slug": "string",
- "error": "string"
}
], - "summary": {
- "total": 0,
- "successful_count": 0,
- "failed_count": 0
}
}
}Деактивирует указанный модуль для организации. Требует права 'modules.manage'.
| moduleSlug required | string Example: analytics Уникальный идентификатор модуля |
| with_refund | boolean Default: false Запросить возврат средств при деактивации |
{- "success": true,
- "message": "string",
- "data": {
- "success": true,
- "message": "Модуль успешно деактивирован",
- "module_slug": "analytics",
- "deactivated_at": "2024-01-15T10:00:00Z",
- "refund_info": {
- "amount": 1250,
- "currency": "RUB",
- "method": "balance_credit",
- "processed_at": "2024-01-15T10:05:00Z"
}, - "removed_permissions": [
- "analytics.view",
- "analytics.reports"
]
}
}Продлевает срок действия указанного модуля на заданное количество дней. Требует права 'modules.manage'.
| moduleSlug required | string Example: analytics Уникальный идентификатор модуля |
| additional_days | integer [ 1 .. 365 ] Default: 30 Количество дней для продления |
{- "additional_days": 30
}{- "success": true,
- "message": "string",
- "data": {
- "success": true,
- "message": "Модуль успешно продлен на 30 дней",
- "module_slug": "analytics",
- "renewal_details": {
- "additional_days": 30,
- "old_expires_at": "2024-02-15T10:00:00Z",
- "new_expires_at": "2024-03-16T10:00:00Z",
- "cost": 2500,
- "currency": "RUB",
- "payment_method": "organization_balance",
- "renewed_at": "2024-01-15T10:00:00Z"
}
}
}Возвращает статистику биллинга и предстоящие платежи по модулям организации. Требует права 'modules.billing'.
{- "success": true,
- "message": "string",
- "data": {
- "stats": {
- "total_monthly_cost": 7500,
- "active_modules_count": 5,
- "currency": "RUB",
- "breakdown_by_category": {
- "Аналитика": {
- "count": 2,
- "total_cost": 3500
}, - "Интеграции": {
- "count": 1,
- "total_cost": 2000
}
}, - "payment_history_summary": {
- "last_30_days": 7500,
- "last_90_days": 22500
}, - "savings": {
- "annual_discount": 9000,
- "bundle_discount": 1500
}
}, - "upcoming": {
- "next_billing_date": "2024-02-15",
- "total_amount": 7500,
- "currency": "RUB",
- "modules": [
- {
- "slug": "analytics",
- "name": "Продвинутая аналитика",
- "amount": 2500,
- "billing_period": "monthly",
- "expires_at": "2024-02-15T10:00:00Z"
}
], - "balance_status": {
- "current_balance": 15000,
- "required_amount": 7500,
- "sufficient": true
}, - "warnings": [
- {
- "type": "insufficient_balance",
- "message": "string",
- "severity": "info"
}
]
}
}
}Возвращает историю платежей и транзакций по модулям организации. Требует права 'modules.billing'.
| module_slug | string Example: module_slug=analytics Фильтр по конкретному модулю (опционально) |
{- "success": true,
- "message": "string",
- "data": [
- {
- "id": 1001,
- "date": "2024-01-15T10:00:00Z",
- "type": "activation",
- "module_slug": "analytics",
- "module_name": "Продвинутая аналитика",
- "amount": 2500,
- "currency": "RUB",
- "payment_method": "organization_balance",
- "description": "Активация модуля Продвинутая аналитика на 30 дней",
- "status": "completed",
- "details": {
- "period_start": "2019-08-24",
- "period_end": "2019-08-24",
- "discount_applied": 0,
- "original_amount": 0
}
}
]
}Показывает детали того, что произойдет при активации модуля: стоимость, необходимые ресурсы, получаемые возможности.
| moduleSlug required | string Example: analytics Уникальный идентификатор модуля |
{- "success": true,
- "message": "string",
- "data": {
- "success": true,
- "module": {
- "slug": "analytics",
- "name": "Продвинутая аналитика",
- "description": "Углубленная аналитика проектов и финансов",
- "type": "addon",
- "category": "Аналитика",
- "billing_model": "monthly",
- "price": 2500,
- "currency": "RUB",
- "duration_days": 30,
- "features": [
- "Дашборды",
- "Отчеты",
- "Экспорт в Excel"
], - "permissions": [
- "analytics.view",
- "analytics.reports",
- "analytics.export"
], - "icon": "📊",
- "can_deactivate": true
}, - "cost_details": {
- "base_cost": 2500,
- "discounts": 250,
- "final_cost": 2250,
- "currency": "RUB"
}, - "dependencies": [
- {
- "slug": "string",
- "name": "string",
- "required": true
}
], - "features_preview": [
- "Дашборды аналитики",
- "Отчеты по проектам",
- "Экспорт данных"
], - "billing_info": {
- "next_charge_date": "2024-02-15",
- "billing_period": "monthly"
}
}
}Активирует указанный модуль для организации. Требует права 'modules.manage'.
| module_slug required | string Уникальный идентификатор модуля |
object Дополнительные настройки модуля |
{- "module_slug": "analytics",
- "settings": {
- "auto_reports": true,
- "dashboard_widgets": [
- "chart",
- "table"
]
}
}{- "success": true,
- "message": "string",
- "data": {
- "success": true,
- "message": "Модуль успешно активирован",
- "module_slug": "analytics",
- "activation": {
- "id": 123,
- "activated_at": "2024-01-15T10:00:00Z",
- "expires_at": "2024-02-15T10:00:00Z",
- "status": "active"
}, - "billing_info": {
- "cost": 2250,
- "currency": "RUB",
- "next_billing_date": "2024-02-15",
- "payment_method": "organization_balance"
}, - "new_permissions": [
- "analytics.view",
- "analytics.reports"
]
}
}Активирует несколько модулей одновременно для организации. Требует права 'modules.manage'.
| module_slugs required | Array of strings [ 1 .. 20 ] items Список идентификаторов модулей для активации |
{- "module_slugs": [
- "analytics",
- "reports",
- "integrations"
]
}{- "success": true,
- "message": "string",
- "data": {
- "successful": [
- "string"
], - "failed": [
- {
- "module_slug": "string",
- "error": "string"
}
], - "summary": {
- "total": 0,
- "successful_count": 0,
- "failed_count": 0
}
}
}Показывает что потеряет организация при деактивации модуля: функции, данные, возможные возвраты средств.
| moduleSlug required | string Example: analytics Уникальный идентификатор модуля |
{- "success": true,
- "message": "string",
- "data": {
- "success": true,
- "module": {
- "slug": "analytics",
- "name": "Продвинутая аналитика"
}, - "lost_features": [
- "Дашборды аналитики",
- "Отчеты по проектам",
- "Экспорт данных"
], - "affected_data": [
- {
- "type": "reports",
- "description": "Сохраненные отчеты аналитики",
- "action": "archived"
}
], - "dependent_modules": [
- {
- "slug": "string",
- "name": "string",
- "impact": "string"
}
], - "refund_info": {
- "eligible": true,
- "amount": 0,
- "reason": "string"
}
}
}Деактивирует указанный модуль для организации. Требует права 'modules.manage'.
| moduleSlug required | string Example: analytics Уникальный идентификатор модуля |
| with_refund | boolean Default: false Запросить возврат средств при деактивации |
{- "success": true,
- "message": "string",
- "data": {
- "success": true,
- "message": "Модуль успешно деактивирован",
- "module_slug": "analytics",
- "deactivated_at": "2024-01-15T10:00:00Z",
- "refund_info": {
- "amount": 1250,
- "currency": "RUB",
- "method": "balance_credit",
- "processed_at": "2024-01-15T10:05:00Z"
}, - "removed_permissions": [
- "analytics.view",
- "analytics.reports"
]
}
}Проверяет, имеет ли текущая организация доступ к указанному модулю. Используется для условного отображения функций в интерфейсе.
| module_slug required | string Уникальный идентификатор модуля |
{- "module_slug": "analytics"
}{- "success": true,
- "message": "string",
- "data": {
- "module_slug": "analytics",
- "has_access": true
}
}Проверяет, активирован ли модуль "Мультиорганизация" для текущей организации и возвращает информацию о возможностях пользователя.
{- "success": true,
- "available": true,
- "can_create_holding": true,
- "current_type": "single",
- "is_holding": false
}Возвращает все организации, к которым у пользователя есть доступ. Включает родительские, дочерние и связанные организации.
{- "success": true,
- "message": "string",
- "data": [
- {
- "id": 123,
- "name": "ООО Строймонтаж",
- "inn": "7707083893",
- "type": "child",
- "is_active": true,
- "role": "organization_admin",
- "permissions": [
- "projects.view",
- "users.manage"
], - "last_activity": "2024-09-19T14:30:00Z"
}
]
}Возвращает права доступа текущего пользователя, активные модули и матрицу разрешений модулей.
{- "success": true,
- "message": "string",
- "data": {
- "permissions": [
- "projects.view"
], - "active_modules": [
- "projects"
], - "permission_matrix": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}
}
}Продлевает срок действия указанного модуля на заданное количество дней. Требует права 'modules.manage'.
| moduleSlug required | string Example: analytics Уникальный идентификатор модуля |
| additional_days | integer [ 1 .. 365 ] Default: 30 Количество дней для продления |
{- "additional_days": 30
}{- "success": true,
- "message": "string",
- "data": {
- "success": true,
- "message": "Модуль успешно продлен на 30 дней",
- "module_slug": "analytics",
- "renewal_details": {
- "additional_days": 30,
- "old_expires_at": "2024-02-15T10:00:00Z",
- "new_expires_at": "2024-03-16T10:00:00Z",
- "cost": 2500,
- "currency": "RUB",
- "payment_method": "organization_balance",
- "renewed_at": "2024-01-15T10:00:00Z"
}
}
}Проверяет, активирован ли модуль "Мультиорганизация" для текущей организации и возвращает информацию о возможностях пользователя.
{- "success": true,
- "available": true,
- "can_create_holding": true,
- "current_type": "single",
- "is_holding": false
}Возвращает древовидную структуру организаций в холдинге с их статусами и связями.
{- "success": true,
- "message": "string",
- "data": {
- "holding": {
- "id": 10,
- "name": "Строительный холдинг Монолит",
- "description": "Объединение строительных компаний",
- "created_at": "2024-01-15T10:30:00Z"
}, - "child_organizations": [
- {
- "id": 123,
- "name": "ООО Монолит-Строй",
- "is_active": true,
- "users_count": 15,
- "projects_count": 8,
- "created_at": "2024-03-20T16:45:00Z"
}
], - "total_organizations": 5
}
}Возвращает все организации, к которым у пользователя есть доступ. Включает родительские, дочерние и связанные организации.
{- "success": true,
- "message": "string",
- "data": [
- {
- "id": 123,
- "name": "ООО Строймонтаж",
- "inn": "7707083893",
- "type": "child",
- "is_active": true,
- "role": "organization_admin",
- "permissions": [
- "projects.view",
- "users.manage"
], - "last_activity": "2024-09-19T14:30:00Z"
}
]
}Возвращает подробную информацию об указанной организации, включая статистику и настройки.
| organizationId required | integer Example: 123 ID организации |
{- "success": true,
- "message": "string",
- "data": {
- "id": 123,
- "name": "ООО Строймонтаж",
- "description": "Строительная компания",
- "inn": "7707083893",
- "kpp": "770701001",
- "address": "г. Москва, ул. Строителей, д. 10",
- "phone": "+7 (495) 123-45-67",
- "email": "info@stroycompany.ru",
- "type": "child",
- "is_active": true,
- "users_count": 25,
- "projects_count": 12,
- "contracts_count": 8,
- "parent_organization": {
- "id": 10,
- "name": "Строительный холдинг Монолит"
}, - "settings": { },
- "created_at": "2024-03-20T16:45:00Z",
- "updated_at": "2024-09-19T11:30:00Z"
}
}Переключает текущую рабочую организацию пользователя. Влияет на все последующие запросы в рамках сессии.
| organization_id required | integer ID организации для переключения |
{- "organization_id": 123
}{- "success": true,
- "message": "Контекст переключен на организацию \"ООО Строймонтаж\"",
- "data": {
- "current_organization_id": 123,
- "organization_name": "ООО Строймонтаж",
- "organization_type": "child"
}
}Возвращает агрегированную информацию по всему холдингу: статистику по организациям, проектам, финансам.
{- "success": true,
- "message": "string",
- "data": {
- "holding_info": {
- "id": 10,
- "name": "Строительный холдинг Монолит",
- "total_organizations": 5,
- "active_organizations": 4
}, - "aggregated_stats": {
- "total_users": 125,
- "total_projects": 45,
- "active_projects": 28,
- "total_contracts": 67,
- "total_contract_amount": 125000000,
- "completed_works_amount": 85000000
}, - "organizations_summary": [
- {
- "id": 123,
- "name": "ООО Монолит-Строй",
- "is_active": true,
- "users_count": 25,
- "projects_count": 8,
- "contracts_amount": 15000000,
- "last_activity": "2024-09-19T14:30:00Z"
}
], - "financial_overview": {
- "total_revenue": 125000000,
- "pending_payments": 8500000,
- "overdue_payments": 2100000
}
}
}Возвращает все дочерние организации текущего холдинга с их статусами и базовой информацией.
{- "success": true,
- "message": "string",
- "data": [
- {
- "id": 123,
- "name": "ООО Монолит-Строй",
- "description": "Строительная компания специализирующаяся на жилых домах",
- "inn": "7707083893",
- "kpp": "770701001",
- "address": "г. Москва, ул. Строителей, д. 10",
- "phone": "+7 (495) 123-45-67",
- "email": "info@monolith-stroy.ru",
- "is_active": true,
- "users_count": 25,
- "projects_count": 8,
- "contracts_count": 12,
- "owner": {
- "id": 45,
- "name": "Иван Петров",
- "email": "i.petrov@monolith-stroy.ru"
}, - "settings": { },
- "created_at": "2024-03-20T16:45:00Z",
- "last_activity": "2024-09-19T14:30:00Z"
}
]
}Преобразует текущую организацию в холдинг и создает группу организаций. Требует права 'multi-organization.manage'.
| name required | string <= 255 characters Название холдинга |
| description | string or null <= 1000 characters Описание холдинга |
| max_child_organizations | integer [ 1 .. 50 ] Максимальное количество дочерних организаций |
object or null Дополнительные настройки холдинга | |
object or null Конфигурация разрешений |
{- "name": "Строительный холдинг \"Монолит\"",
- "description": "Объединение строительных компаний",
- "max_child_organizations": 10,
- "settings": { },
- "permissions_config": { }
}{- "success": true,
- "message": "Холдинг успешно создан",
- "data": {
- "id": 10,
- "name": "Строительный холдинг Монолит",
- "description": "Объединение строительных компаний специализирующихся на жилых и коммерческих объектах",
- "slug": "monolith-holding",
- "max_child_organizations": 10,
- "current_child_organizations": 3,
- "parent_organization": {
- "id": 5,
- "name": "ООО Монолит Групп",
- "inn": "7707083893"
}, - "settings": {
- "centralized_billing": true,
- "shared_users": false,
- "cross_organization_reports": true
}, - "permissions_config": {
- "default_role_template": "standard_child_org",
- "allow_custom_roles": true
}, - "created_by": {
- "id": 1,
- "name": "Администратор Система",
- "email": "admin@monolith-group.ru"
}, - "created_at": "2024-01-15T10:30:00Z",
- "updated_at": "2024-09-19T11:30:00Z"
}
}Создает новую дочернюю организацию и добавляет ее в холдинг. Автоматически создает владельца организации. Требует права 'multi-organization.manage'.
| group_id required | integer ID группы организаций (холдинга) |
| name required | string <= 255 characters Название дочерней организации |
| description | string or null <= 1000 characters Описание организации |
| inn | string or null <= 12 characters ИНН организации |
| kpp | string or null <= 9 characters КПП организации |
| address | string or null <= 500 characters Адрес организации |
| phone | string or null <= 20 characters Телефон организации |
string or null <email> <= 255 characters Email организации | |
required | object Данные владельца организации |
{- "group_id": 5,
- "name": "ООО Монолит-Строй",
- "description": "string",
- "inn": "7707083893",
- "kpp": "770701001",
- "address": "string",
- "phone": "string",
- "email": "user@example.com",
- "owner": {
- "name": "Петр Иванов",
- "email": "p.ivanov@monolith.ru",
- "password": "stringst"
}
}{- "success": true,
- "message": "Дочерняя организация добавлена",
- "data": {
- "organization": {
- "id": 123,
- "name": "ООО Монолит-Строй",
- "inn": "7707083893",
- "kpp": "770701001",
- "is_active": true,
- "created_at": "2024-09-19T15:30:00Z"
}, - "owner": {
- "id": 45,
- "name": "Петр Иванов",
- "email": "p.ivanov@monolith-stroy.ru",
- "temporary_password": "TempPass123",
- "created_at": "2024-09-19T15:30:00Z"
}, - "group_info": {
- "id": 10,
- "name": "Строительный холдинг Монолит",
- "current_child_organizations": 4,
- "max_child_organizations": 10
}, - "notifications": {
- "owner_email_sent": true,
- "welcome_email_sent": true
}
}
}Возвращает агрегированную сводку по всем организациям холдинга: организации, проекты, договоры, акты, выполненные работы, статистика. Поддерживает экспорт в CSV по секциям.
| date_from | string <date> Example: date_from=2024-01-01 Начальная дата фильтра |
| date_to | string <date> Example: date_to=2024-12-31 Конечная дата фильтра |
| status | string Фильтр по статусу |
| is_approved | boolean Фильтр по утверждённости актов |
| export | string Value: "csv" Example: export=csv Формат экспорта (если нужен файл) |
| section | string Enum: "projects" "contracts" "acts" "completed_works" Example: section=projects Секция для экспорта CSV |
{- "success": true,
- "data": {
- "organizations": [
- {
- "id": 123,
- "name": "ООО Монолит-Строй",
- "is_active": true,
- "projects_count": 5,
- "contracts_count": 8
}
], - "projects": [
- {
- "name": "string",
- "address": "string",
- "description": "string",
- "customer": "string",
- "designer": "string",
- "start_date": "string",
- "end_date": "string",
- "status": "string",
- "is_archived": true,
- "additional_info": [ ],
- "external_code": "string",
- "cost_category_id": 0,
- "accounting_data": [ ],
- "use_in_accounting_reports": true
}
], - "contracts": [
- {
- "project_id": 0,
- "contractor_id": 0,
- "parent_contract_id": 0,
- "number": "string",
- "date": "string",
- "type": "contract",
- "subject": "string",
- "work_type_category": "smr",
- "payment_terms": "string",
- "total_amount": 0,
- "gp_percentage": 0,
- "planned_advance_amount": 0,
- "actual_advance_amount": 0,
- "status": "draft",
- "start_date": "string",
- "end_date": "string",
- "notes": "string"
}
], - "acts": [
- {
- "act_document_number": "string",
- "act_date": "string",
- "amount": 0,
- "description": "string",
- "is_approved": true,
- "approval_date": "string",
- "completed_works": [ ]
}
], - "completed_works": [
- {
- "id": 0,
- "organization_id": 0,
- "project_id": 0,
- "contract_id": 0,
- "work_type_id": 0,
- "user_id": 0,
- "quantity": 0,
- "price": 0,
- "total_amount": 0,
- "completion_date": null,
- "notes": "string",
- "status": "string",
- "additional_info": [ ],
- "materials": [ ]
}
], - "stats": {
- "contracts": {
- "count": 25,
- "total_amount": 15000000
}, - "acts": {
- "count": 45,
- "total_amount": 12500000
}, - "projects": {
- "count": 15
}
}
}
}Возвращает древовидную структуру организаций в холдинге с их статусами и связями.
{- "success": true,
- "message": "string",
- "data": {
- "holding": {
- "id": 10,
- "name": "Строительный холдинг Монолит",
- "description": "Объединение строительных компаний",
- "created_at": "2024-01-15T10:30:00Z"
}, - "child_organizations": [
- {
- "id": 123,
- "name": "ООО Монолит-Строй",
- "is_active": true,
- "users_count": 15,
- "projects_count": 8,
- "created_at": "2024-03-20T16:45:00Z"
}
], - "total_organizations": 5
}
}Возвращает подробную информацию об указанной организации, включая статистику и настройки.
| organizationId required | integer Example: 123 ID организации |
{- "success": true,
- "message": "string",
- "data": {
- "id": 123,
- "name": "ООО Строймонтаж",
- "description": "Строительная компания",
- "inn": "7707083893",
- "kpp": "770701001",
- "address": "г. Москва, ул. Строителей, д. 10",
- "phone": "+7 (495) 123-45-67",
- "email": "info@stroycompany.ru",
- "type": "child",
- "is_active": true,
- "users_count": 25,
- "projects_count": 12,
- "contracts_count": 8,
- "parent_organization": {
- "id": 10,
- "name": "Строительный холдинг Монолит"
}, - "settings": { },
- "created_at": "2024-03-20T16:45:00Z",
- "updated_at": "2024-09-19T11:30:00Z"
}
}Переключает текущую рабочую организацию пользователя. Влияет на все последующие запросы в рамках сессии.
| organization_id required | integer ID организации для переключения |
{- "organization_id": 123
}{- "success": true,
- "message": "Контекст переключен на организацию \"ООО Строймонтаж\"",
- "data": {
- "current_organization_id": 123,
- "organization_name": "ООО Строймонтаж",
- "organization_type": "child"
}
}Возвращает все дочерние организации текущего холдинга с их статусами и базовой информацией.
{- "success": true,
- "message": "string",
- "data": [
- {
- "id": 123,
- "name": "ООО Монолит-Строй",
- "description": "Строительная компания специализирующаяся на жилых домах",
- "inn": "7707083893",
- "kpp": "770701001",
- "address": "г. Москва, ул. Строителей, д. 10",
- "phone": "+7 (495) 123-45-67",
- "email": "info@monolith-stroy.ru",
- "is_active": true,
- "users_count": 25,
- "projects_count": 8,
- "contracts_count": 12,
- "owner": {
- "id": 45,
- "name": "Иван Петров",
- "email": "i.petrov@monolith-stroy.ru"
}, - "settings": { },
- "created_at": "2024-03-20T16:45:00Z",
- "last_activity": "2024-09-19T14:30:00Z"
}
]
}Создает новую дочернюю организацию и добавляет ее в холдинг. Автоматически создает владельца организации. Требует права 'multi-organization.manage'.
| group_id required | integer ID группы организаций (холдинга) |
| name required | string <= 255 characters Название дочерней организации |
| description | string or null <= 1000 characters Описание организации |
| inn | string or null <= 12 characters ИНН организации |
| kpp | string or null <= 9 characters КПП организации |
| address | string or null <= 500 characters Адрес организации |
| phone | string or null <= 20 characters Телефон организации |
string or null <email> <= 255 characters Email организации | |
required | object Данные владельца организации |
{- "group_id": 5,
- "name": "ООО Монолит-Строй",
- "description": "string",
- "inn": "7707083893",
- "kpp": "770701001",
- "address": "string",
- "phone": "string",
- "email": "user@example.com",
- "owner": {
- "name": "Петр Иванов",
- "email": "p.ivanov@monolith.ru",
- "password": "stringst"
}
}{- "success": true,
- "message": "Дочерняя организация добавлена",
- "data": {
- "organization": {
- "id": 123,
- "name": "ООО Монолит-Строй",
- "inn": "7707083893",
- "kpp": "770701001",
- "is_active": true,
- "created_at": "2024-09-19T15:30:00Z"
}, - "owner": {
- "id": 45,
- "name": "Петр Иванов",
- "email": "p.ivanov@monolith-stroy.ru",
- "temporary_password": "TempPass123",
- "created_at": "2024-09-19T15:30:00Z"
}, - "group_info": {
- "id": 10,
- "name": "Строительный холдинг Монолит",
- "current_child_organizations": 4,
- "max_child_organizations": 10
}, - "notifications": {
- "owner_email_sent": true,
- "welcome_email_sent": true
}
}
}Преобразует текущую организацию в холдинг и создает группу организаций. Требует права 'multi-organization.manage'.
| name required | string <= 255 characters Название холдинга |
| description | string or null <= 1000 characters Описание холдинга |
| max_child_organizations | integer [ 1 .. 50 ] Максимальное количество дочерних организаций |
object or null Дополнительные настройки холдинга | |
object or null Конфигурация разрешений |
{- "name": "Строительный холдинг \"Монолит\"",
- "description": "Объединение строительных компаний",
- "max_child_organizations": 10,
- "settings": { },
- "permissions_config": { }
}{- "success": true,
- "message": "Холдинг успешно создан",
- "data": {
- "id": 10,
- "name": "Строительный холдинг Монолит",
- "description": "Объединение строительных компаний специализирующихся на жилых и коммерческих объектах",
- "slug": "monolith-holding",
- "max_child_organizations": 10,
- "current_child_organizations": 3,
- "parent_organization": {
- "id": 5,
- "name": "ООО Монолит Групп",
- "inn": "7707083893"
}, - "settings": {
- "centralized_billing": true,
- "shared_users": false,
- "cross_organization_reports": true
}, - "permissions_config": {
- "default_role_template": "standard_child_org",
- "allow_custom_roles": true
}, - "created_by": {
- "id": 1,
- "name": "Администратор Система",
- "email": "admin@monolith-group.ru"
}, - "created_at": "2024-01-15T10:30:00Z",
- "updated_at": "2024-09-19T11:30:00Z"
}
}Отправляет обращение в службу технической поддержки ProHelper.
📧 Процесс обработки:
⏰ Время обработки:
Для ускорения обработки укажите максимально подробное описание проблемы.
| subject required | string <= 255 characters Тема обращения |
| message required | string <= 5000 characters Текст обращения с подробным описанием проблемы |
{- "subject": "Как добавить нового пользователя?",
- "message": "Подскажите, пожалуйста, как добавить нового сотрудника в систему и назначить ему роль прораба?"
}{- "success": true,
- "message": "Запрос в поддержку отправлен успешно. Мы ответим вам в ближайшее время.",
- "data": null
}Возвращает список всех пользователей, имеющих доступ к административной панели организации.
Типы пользователей админ-панели:
super_admin - суперадминистратор системыadmin - администратор организации content_admin - контент-администраторsupport_admin - администратор поддержкиweb_admin - веб-администраторaccountant - бухгалтер с доступом к админкеФункции админ-панели:
Требует права users.manage_admin в организации.
| role_slug | string Example: role_slug=web_admin Фильтр по роли пользователя. Принимает любую роль, которая имеет доступ к админ-панели (системную или кастомную) |
| is_active | boolean Example: is_active=true Фильтр по статусу активности |
| search | string Example: search=admin@company.com Поиск по имени или email |
{- "success": true,
- "data": [
- {
- "id": 1,
- "name": "Главный Администратор",
- "email": "admin@company.com",
- "role_slug": "admin",
- "is_active": true,
- "created_at": "2024-01-15T10:30:00Z",
- "updated_at": "2024-09-19T14:25:00Z"
}, - {
- "id": 5,
- "name": "Веб-администратор",
- "email": "webadmin@company.com",
- "role_slug": "web_admin",
- "is_active": true,
- "created_at": "2024-03-20T16:45:00Z",
- "updated_at": "2024-09-10T11:15:00Z"
}
]
}Создает нового пользователя с доступом к административной панели организации.
Процесс создания:
Доступные роли: Система принимает любые роли (системные или кастомные), которые имеют:
admin.access в системных разрешенияхadmin в настройках ролиПримеры ролей с доступом к админ-панели:
super_admin, admin - полные права администратораcontent_admin - управление контентомsupport_admin - поддержка пользователей web_admin - настройка веб-интерфейсовaccountant - бухгалтерские функцииПрава доступа: Каждая роль предоставляет специфический набор разрешений для работы с административной панелью согласно настройкам роли.
Требует права users.manage_admin в организации.
| name required | string |
| email required | string <email> |
| password required | string <password> |
| password_confirmation required | string <password> |
| role_slug required | string |
{- "name": "Веб Администратор",
- "email": "webadmin@company.com",
- "password": "SecureAdminPass123",
- "password_confirmation": "SecureAdminPass123",
- "role_slug": "web_admin"
}{- "success": true,
- "message": "Пользователь админ-панели успешно создан",
- "data": {
- "id": 25,
- "name": "Веб Администратор",
- "email": "webadmin@company.com",
- "role_slug": "web_admin",
- "is_active": true,
- "created_at": "2024-09-19T15:30:00Z",
- "updated_at": "2024-09-19T15:30:00Z"
}
}Возвращает подробную информацию о конкретном пользователе административной панели.
Возвращаемая информация:
Области применения:
Требует права users.manage_admin в организации.
| user required | integer Example: 123 ID пользователя админ-панели |
{- "success": true,
- "data": {
- "id": 15,
- "name": "Веб Администратор",
- "email": "webadmin@company.com",
- "role_slug": "web_admin",
- "is_active": true,
- "created_at": "2024-03-20T16:45:00Z",
- "updated_at": "2024-09-19T11:30:00Z"
}
}Обновляет информацию о пользователе административной панели.
Что можно обновить:
Ограничения при обновлении:
Безопасность:
Требует права users.manage_admin в организации.
| user required | integer Example: 123 ID пользователя админ-панели |
| name | string |
| password | string <password> |
| password_confirmation | string <password> |
| role_slug | string |
{- "name": "Старший Веб-администратор",
- "role_slug": "admin",
- "is_active": true
}{- "success": true,
- "message": "Пользователь админ-панели успешно обновлен.",
- "data": {
- "id": 15,
- "name": "Старший Веб-администратор",
- "email": "webadmin@company.com",
- "role_slug": "admin",
- "is_active": true,
- "created_at": "2024-03-20T16:45:00Z",
- "updated_at": "2024-09-19T16:00:00Z"
}
}Удаляет пользователя из административной панели организации.
Процесс удаления:
Ограничения удаления:
Последствия удаления:
Альтернатива: Вместо полного удаления рекомендуется деактивация пользователя (PUT с is_active: false).
Требует права users.manage_admin в организации.
| user required | integer Example: 123 ID пользователя админ-панели |
| force | boolean Default: false Принудительное удаление (игнорировать предупреждения) |
{- "success": false,
- "message": "Нельзя удалить последнего администратора организации"
}Возвращает агрегированную сводку по всем организациям холдинга: организации, проекты, договоры, акты, выполненные работы, статистика. Поддерживает экспорт в CSV по секциям.
| date_from | string <date> Example: date_from=2024-01-01 Начальная дата фильтра |
| date_to | string <date> Example: date_to=2024-12-31 Конечная дата фильтра |
| status | string Фильтр по статусу |
| is_approved | boolean Фильтр по утверждённости актов |
| export | string Value: "csv" Example: export=csv Формат экспорта (если нужен файл) |
| section | string Enum: "projects" "contracts" "acts" "completed_works" Example: section=projects Секция для экспорта CSV |
{- "success": true,
- "data": {
- "organizations": [
- {
- "id": 123,
- "name": "ООО Монолит-Строй",
- "is_active": true,
- "projects_count": 5,
- "contracts_count": 8
}
], - "projects": [
- {
- "name": "string",
- "address": "string",
- "description": "string",
- "customer": "string",
- "designer": "string",
- "start_date": "string",
- "end_date": "string",
- "status": "string",
- "is_archived": true,
- "additional_info": [ ],
- "external_code": "string",
- "cost_category_id": 0,
- "accounting_data": [ ],
- "use_in_accounting_reports": true
}
], - "contracts": [
- {
- "project_id": 0,
- "contractor_id": 0,
- "parent_contract_id": 0,
- "number": "string",
- "date": "string",
- "type": "contract",
- "subject": "string",
- "work_type_category": "smr",
- "payment_terms": "string",
- "total_amount": 0,
- "gp_percentage": 0,
- "planned_advance_amount": 0,
- "actual_advance_amount": 0,
- "status": "draft",
- "start_date": "string",
- "end_date": "string",
- "notes": "string"
}
], - "acts": [
- {
- "act_document_number": "string",
- "act_date": "string",
- "amount": 0,
- "description": "string",
- "is_approved": true,
- "approval_date": "string",
- "completed_works": [ ]
}
], - "completed_works": [
- {
- "id": 0,
- "organization_id": 0,
- "project_id": 0,
- "contract_id": 0,
- "work_type_id": 0,
- "user_id": 0,
- "quantity": 0,
- "price": 0,
- "total_amount": 0,
- "completion_date": null,
- "notes": "string",
- "status": "string",
- "additional_info": [ ],
- "materials": [ ]
}
], - "stats": {
- "contracts": {
- "count": 25,
- "total_amount": 15000000
}, - "acts": {
- "count": 45,
- "total_amount": 12500000
}, - "projects": {
- "count": 15
}
}
}
}