openapi: 3.0.1
info:
version: 2.0.0
title: HRBox Mobile API
description: |
HRBox mobile app API
Since HRBOX is multi-tenant application you need to find out domain and endpoint to start working with this API
(Option 1) QR-code will contain this info - hrbox://bind/?url={url} where {url} will be url to /mobile/bind method. You should make POST request to this URL sending "device" param in body just like described in /mobile/bind method. In the response you will find endpoint
(Option 2) Manual bind - user will provide you with {domain} {email} and {password} and you should send this info to https://{domain}/api/v2/mobile/manual-bind like described in /mobile/manual-bind method. In the response you will find endpoint
Once you will get endpoint and tenantId, use it in every request you make, using endpoint as base path, and passing tenantId as header "x-hrbox-tenant-id: {tenantId}"
To authorize you session, make call to {endpoint}/mobile/auth sending "x-hrbox-tenant-id: {tenantId}" header, and sending body that described in /mobile/auth method
To sign your requests with session id, pass following headers with each request:
x-hrbox-tenant-id: {tenantId}
x-hrbox-device-id: {deviceId}
x-hrbox-session-id: {sessionId}
x-hrbox-session-code: {sessionSecret}
x-hrbox-embed: true
{tenantId} - you will get this form /mobile/auth or /mobile/bind methods
{sessionId} - you will get this form /mobile/auth method
{sessionSecret} - you will get this form /mobile/auth method
the last one (x-hrbox-embed) is for opening web pages in WebView to remove website footer and header
contact:
email: yuriy@hrbox.io
tags:
- name: mobile
description: Binding device and authorizing
- name: account
description: Methods for getting current user data (assignments, notifications etc.)
- name: department
description: Methods for browsing and searching through Org Structure
- name: user
description: Methods for getting user and employment information
- name: employment
description: Methods for user employment
- name: article
description: Methods News, Categories and Articles
- name: postcard
description: Methods for working with postcards
- name: dashboard
description: Methods for getting dashboards and widgets data
- name: user-status
description: Methods for getting user statuses data
- name: comment
description: Methods for working with comments
- name: category
description: Methods for working with categories. Требуется право доступа show-content-categories "Видеть категории".
- name: wallet
description: Methods for working with user wallet.
- name: shop
description: Methods for working with corporate shop. Требуется право доступа shop-usage "Магазин".
- name: workflow
description: Methods for working with workflow.
- name: kedo-document
description: Кадровые документы на подпись
- name: kedo-instance
description: Экземпляры документа (по подписантам)
- name: kedo-sign-request
description: Создание/отмена запроса на подпись
- name: kedo-template
description: Шаблоны документов КЭДО
- name: kedo-enum
description: Справочники КЭДО
- name: mchd
description: МЧД — список и просмотр
- name: mchd-signing
description: МЧД — генерация, подписание, отзыв
- name: mchd-reference
description: МЧД — справочники
paths:
/mobile/bind/{id}/{token}:
post:
tags:
- mobile
summary: Bind device by token. This URL will be taken by parsing QR code
operationId: mobileBind
parameters:
- name: id
in: path
description: ID
schema:
type: string
required: true
- name: token
in: path
description: ID
schema:
type: string
required: true
requestBody:
description: Device info
required: true
content:
application/json:
schema:
type: object
properties:
device:
$ref: '#/components/schemas/device'
responses:
200:
description: successful operation
content:
application/json:
schema:
type: object
properties:
accountSecret:
$ref: '#/components/schemas/accountSecret'
tenantInfo:
$ref: '#/components/schemas/tenantInfo'
400:
description: Invalid input
403:
description: Invalid id or token
/mobile/request-two-factor:
post:
tags:
- mobile
summary: Запросить код двухфакторной аутентификации. Код будет выслан если она включена.
operationId: mobileRequestTwoFactor
requestBody:
description: Email Password and Device info. Also Code if 2FAuth enabled.
required: true
content:
application/json:
schema:
type: object
properties:
email:
type: string
format: email
password:
type: string
format: password
responses:
200:
description: Если Двухфакторная аутентификация включена и код был выслан то в ответе будет codeRequired = true иначе codeRequired=false
content:
application/json:
schema:
type: object
properties:
codeRequired:
type: boolean
tenantInfo:
$ref: '#/components/schemas/tenantInfo'
delayTime:
type: number
400:
description: Invalid input
403:
description: Invalid Email or Password
500:
description: Server Error
/mobile/manual-bind:
post:
tags:
- mobile
summary: Bind device by user's email and password
operationId: mobileManualBind
requestBody:
description: Email Password and Device info. Also Code if 2FAuth enabled.
required: true
content:
application/json:
schema:
type: object
properties:
email:
type: string
format: email
password:
type: string
format: password
code:
type: string
format: password
description: two-factor authorization code
device:
$ref: '#/components/schemas/device'
responses:
200:
description: successful operation
content:
application/json:
schema:
type: object
properties:
accountSecret:
$ref: '#/components/schemas/accountSecret'
tenantInfo:
$ref: '#/components/schemas/tenantInfo'
400:
description: Invalid input
403:
description: Invalid Email or Password
500:
description: Server Error
/mobile/auth:
post:
tags:
- mobile
summary: Authorize user by accountSecret that you got from /mobile/bind or /mobile/manual-bind
operationId: mobileAuth
requestBody:
description: secret, userId and deviceId
required: true
content:
application/json:
schema:
type: object
properties:
secret:
type: string
format: email
userId:
type: string
deviceId:
type: string
responses:
200:
description: successful authorization
content:
application/json:
schema:
type: object
properties:
sessionId:
type: string
sessionSecret:
type: string
tenantInfo:
$ref: '#/components/schemas/tenantInfo'
400:
description: Invalid input
401:
description: Authorization failed, secret is invalid
404:
description: Device not found
500:
description: Server Error
/mobile/save-push-token:
post:
tags:
- mobile
summary: Save Firebase push token to server
operationId: mobileSavePushToken
requestBody:
description: token - the token that you get from Firebase Cloud Messaging. Provider should be "firebase", not other providers supported for now. deviceId - same device id that you used in bind or auth
required: true
content:
application/json:
schema:
type: object
properties:
token:
type: string
provider:
type: string
default: firebase
deviceId:
type: string
responses:
200:
description: push token successfully saved
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
default: true
400:
description: Invalid input
401:
description: Unauthorized request
403:
description: Unauthorized request
500:
description: Server Error
/mobile/unbind:
post:
tags:
- mobile
summary: Unbind device by deviceId
operationId: mobileUnbind
parameters:
- name: deviceId
in: query
description: ID
schema:
type: string
required: true
responses:
200:
description: successful operation
content:
application/json:
schema:
type: object
properties:
tenantInfo:
$ref: '#/components/schemas/tenantInfo'
400:
description: Invalid input
403:
description: Invalid Email or Password
500:
description: Server Error
/mobile/tenant-info:
get:
tags:
- mobile
summary: Get tenant info.
operationId: tenantInfo
responses:
200:
description: Tenant info data.
content:
application/json:
schema:
$ref: '#/components/schemas/tenantInfo'
401:
description: Unauthorized request.
403:
description: Unauthorized request.
500:
description: Server Error.
/mobile/index:
get:
tags:
- mobile
summary: Список подключённых мобильных устройств пользователя
description: >
Возвращает список устройств, подключённых к учётной записи пользователя.
Обычный пользователь видит только свои устройства.
Администратор с правом `user-edit` может просматривать устройства конкретного пользователя, указав `user_id`.
parameters:
- name: user_id
in: query
required: false
description: >
UUID пользователя.
По умолчанию используется ID пользователя, если запрос выполняется обычным пользователем.
Для админа параметр обязателен, если он хочет получить устройства конкретного пользователя.
schema:
type: string
format: uuid
example: "c83b3e5b-90b6-4a7c-bb0a-5a6e8c9f44f2"
- name: page
in: query
required: false
description: Номер страницы
schema:
type: integer
example: 1
- name: per-page
in: query
required: false
description: Количество элементов на странице
schema:
type: integer
example: 10
responses:
'200':
description: Успешный ответ с пагинацией
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/dataProviderResponse'
- type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/mobileConnect'
403:
description: Недостаточно прав для просмотра устройств другого пользователя
401:
description: Пользователь не авторизован
500:
description: Server Error
/mobile/oauth-list:
get:
tags:
- mobile
summary: Список OAuth-провайдеров
description: >
Возвращает список доступных OAuth-провайдеров для авторизации.
Используется мобильным клиентом для отображения кнопок входа.
responses:
'200':
description: Список OAuth-провайдеров
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/mobileOauthProvider'
example:
- id: "2fe36634-875b-4c2c-b22b-8954d971be95"
name: "Secret Service"
buttonLoginName: "Service"
imageUrl: "https://tenant.hrbox.io/file/resize/22x22/76e39870-66e2-451f-aa0f-c8ffa3db318d.png"
oauthTypeId: 3
oauthTypeName: "OpenID"
authUrl: "https://oauth.hrbox.io/auth/oauth?response_type=code&client_id=example"
- id: "google"
name: "Google"
buttonLoginName: "Войти через Google"
imageUrl: "https://tenant.hrbox.io/img/social/google.svg"
oauthTypeId: null
oauthTypeName: "Google"
authUrl: "httpss://accounts.google.com/o/oauth2/v2/auth?...&scope=email"
500:
description: Server Error
/mobile/user-unbind:
delete:
tags:
- mobile
summary: Отвязка конкретного устройства пользователя
description: >
Отвязывает одно устройство по `device_id`.
Обычный пользователь может отвязать только свои устройства.
Администратор с правом `user-edit` может указать `user_id`, чтобы отвязать устройство другого пользователя.
parameters:
- name: device_id
in: query
required: true
description: >
Device ID устройства, которое необходимо отвязать.
schema:
type: string
example: "43835f8b44dd3116382c7ecaeaf15d88"
- name: user_id
in: query
required: false
description: >
UUID пользователя, которому принадлежит устройство.
По умолчанию используется ID пользователя.
Передаётся только администратором.
schema:
type: string
format: uuid
example: "c83b3e5b-90b6-4a7c-bb0a-5a6e8c9f44f2"
responses:
'200':
description: Устройство успешно отвязано
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/httpJsonResponse'
- type: object
properties:
message:
type: string
example: "Устройство было отвязано"
403:
description: Недостаточно прав для выполнения операции
401:
description: Пользователь не авторизован
500:
description: Server Error
/mobile/unbind-all:
delete:
tags:
- mobile
summary: Отвязка всех устройств пользователя
description: >
Отвязывает все устройства, подключённые к пользователю.
Обычный пользователь может отвязать только свои устройства.
Администратор с правом `user-edit` может передать `user_id`, чтобы отвязать устройства другого пользователя.
parameters:
- name: user_id
in: query
required: false
description: >
UUID пользователя, чьи устройства нужно отвязать.
По умолчанию используется ID пользователя.
Передаётся только администратором.
schema:
type: string
format: uuid
example: "c83b3e5b-90b6-4a7c-bb0a-5a6e8c9f44f2"
responses:
'200':
description: Устройства успешно отвязаны
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/httpJsonResponse'
- type: object
properties:
message:
type: string
example: "Устройства были отвязаны"
403:
description: Недостаточно прав для выполнения операции
401:
description: Пользователь не авторизован
500:
description: Server Error
/user/profile:
get:
tags:
- user
summary: Get User's profile info
operationId: userProfile
parameters:
- name: id
in: query
description: User ID
schema:
type: string
required: true
responses:
200:
description: User profile data
content:
application/json:
schema:
$ref: '#/components/schemas/userProfile'
400:
description: Invalid input (malformed id)
401:
description: Unauthorized request
403:
description: Unauthorized request
404:
description: User not found
500:
description: Server Error
/user/items:
get:
tags:
- user
summary: User items.
operationId: /user/items/actionItems
parameters:
- name: q
in: query
schema:
type: string
responses:
200:
description: User items.
content:
application/json:
schema:
properties:
data:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
faceUrl:
type: string
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Calendar event not found.
500:
description: Server Error.
/user/unlock-status:
get:
tags:
- user
summary: Запрос статуса разблокировки настроек авторизации
description: >
Проверяет, может ли текущий пользователь разблокировать свой статус.
Администратор с правом `user-edit` может указать `user_id` другого пользователя.
parameters:
- name: user_id
in: query
required: false
description: UUID пользователя (только для админа). По умолчанию текущий пользователь.
schema:
type: string
format: uuid
example: "c83b3e5b-90b6-4a7c-bb0a-5a6e8c9f44f2"
responses:
200:
description: Статус разблокировки
content:
application/json:
schema:
$ref: '#/components/schemas/httpJsonResponse'
401:
description: Unauthorized request.
500:
description: Server Error.
/user/auth-settings:
get:
tags:
- user
summary: Получение настроек авторизации пользователя
parameters:
- name: user_id
in: query
required: false
description: UUID пользователя (только для админа)
schema:
type: string
format: uuid
example: "c83b3e5b-90b6-4a7c-bb0a-5a6e8c9f44f2"
responses:
200:
description: Настройки авторизации
content:
application/json:
schema:
$ref: '#/components/schemas/httpJsonResponse'
example:
success: true
data:
userAuthSettingsForm:
email: "ivanov@example.com"
phone_auth: "+79991234567"
login: "ivanov"
emailsList:
- "ivanov@example.com"
- "ivanov@corporate.com"
phonesList:
"+79991234567": "+7 (999) 123-45-67"
errors: [ ]
message: ""
401:
description: Unauthorized request.
500:
description: Server Error.
post:
tags:
- user
summary: Сохранение настроек авторизации пользователя
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user_id:
type: string
format: uuid
example: "c83b3e5b-90b6-4a7c-bb0a-5a6e8c9f44f2"
description: Только для админа
email:
type: string
example: "ivanov@example.com"
phone_auth:
type: string
example: "+79991234567"
login:
type: string
example: "ivanov"
password:
type: string
example: "newpassword123"
responses:
200:
description: Результат сохранения
content:
application/json:
schema:
$ref: '#/components/schemas/httpJsonResponse'
example:
success: true
data: { }
errors: [ ]
message: "Успешно сохранено!"
401:
description: Unauthorized request.
500:
description: Server Error.
/user/access-options:
get:
tags:
- user
summary: Получение опций доступа пользователя. Доступно только с ролью user-edit
parameters:
- name: user_id
in: query
required: false
description: UUID пользователя
schema:
type: string
format: uuid
example: "c83b3e5b-90b6-4a7c-bb0a-5a6e8c9f44f2"
responses:
200:
description: Опции пользователя
content:
application/json:
schema:
$ref: '#/components/schemas/httpJsonResponse'
example:
success: true
data:
is_external: false
is_blocked: false
errors: [ ]
message: ""
401:
description: Unauthorized request.
500:
description: Server Error.
post:
tags:
- user
summary: Установка опций пользователя. Доступно только с ролью user-edit
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user_id:
type: string
format: uuid
example: "c83b3e5b-90b6-4a7c-bb0a-5a6e8c9f44f2"
is_external:
type: boolean
example: false
is_blocked:
type: boolean
example: true
responses:
200:
description: Результат установки опций
content:
application/json:
schema:
$ref: '#/components/schemas/httpJsonResponse'
example:
success: true
data: { }
errors: [ ]
message: "Успешно сохранено!"
401:
description: Unauthorized request.
500:
description: Server Error.
/user/reset-sessions:
post:
tags:
- user
summary: Сброс сессий пользователя
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user_id:
type: string
format: uuid
example: "c83b3e5b-90b6-4a7c-bb0a-5a6e8c9f44f2"
description: Только для админа. По умолчанию текущий пользователь.
responses:
'200':
description: Сессии успешно сброшены
content:
application/json:
schema:
$ref: '#/components/schemas/httpJsonResponse'
example:
success: true
data: { }
errors: [ ]
message: "Сессии были успешно сброшены"
401:
description: Unauthorized request.
500:
description: Server Error.
/employment/index:
get:
tags:
- employment
summary: Get User's employments info
responses:
200:
description: User employments data
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/fullEmployment'
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
401:
description: Unauthorized request
403:
description: Unauthorized request
404:
description: User not found
500:
description: Server Error
/employment/set-main:
post:
tags:
- employment
summary: Set main employment
operationId: /calendar-event-request
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
employment_id:
type: string
format: uuid
description: User employment ID
responses:
200:
description: User employments data
content:
application/json:
schema:
type: object
properties:
success:
description: Result status.
type: boolean
example: true
message:
description: Message displayed to user (localized).
type: string
default: null
example: {
"type": "success",
"text": "Запись установлена основной!"
}
errors:
description: Array of validation errors.
type: array
default: null
data:
type: object
default: null
401:
description: Unauthorized request
403:
description: Unauthorized request
404:
description: User not found
500:
description: Server Error
/org-employment/index:
get:
tags:
- org-employment
summary: Org employments
parameters:
- name: id
in: query
description: Unique identifier of the OrgEmployment (UUID)
required: false
schema:
type: string
format: uuid
- name: is_removed
in: query
description: Deleted org employments
required: false
schema:
type: boolean
responses:
200:
description: Get list of requested org employments
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/orgEmployment'
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
401:
description: Unauthorized request
403:
description: Unauthorized request
500:
description: Server Error
/org-employment/view:
get:
tags:
- org-employment
summary: View org employment
parameters:
- name: id
in: query
description: Unique identifier of the OrgEmployment (UUID)
required: false
schema:
type: string
format: uuid
responses:
200:
description: Get single org employment
content:
application/json:
schema:
#/components/schemas/orgEmployment
401:
description: Unauthorized request
403:
description: Unauthorized request
500:
description: Server Error
/org-employment-file/index:
get:
tags:
- org-employment
summary: Org employment files
parameters:
- name: id
in: query
description: Unique identifier of the document (UUID)
required: false
schema:
type: string
format: uuid
- name: name
in: query
description: Search string of attached file name
schema:
type: string
maxLength: 64
- name: created_at
in: query
description: Creation date (ISO 8601 format)
required: false
schema:
type: string
format: date-time
- name: updated_at
in: query
description: Last update date (ISO 8601 format)
required: false
schema:
type: string
format: date-time
- name: ready_at
in: query
description: Ready date (ISO 8601 format)
required: false
schema:
type: string
format: date-time
- name: custom_id
in: query
description: Custom identifier (string, up to 64 characters)
required: false
schema:
type: string
maxLength: 64
- name: organization_id
in: query
description: Organization identifier (string, up to 64 characters)
required: false
schema:
type: string
maxLength: 64
- name: org_employment_id
in: query
description: Employment record number (string, up to 64 characters)
required: false
schema:
type: string
maxLength: 64
- name: file_id
in: query
description: File identifier (UUID)
required: false
schema:
type: string
format: uuid
- name: org_employment_file_type_id
in: query
description: >
Document type enum: see documentation
required: false
schema:
$ref: '#/components/schemas/orgEmploymentFileType'
- name: org_employment_file_status_id
in: query
description: >
Document status enum: see documentation
required: false
schema:
$ref: '#/components/schemas/orgEmploymentFileStatus'
- name: date_from
in: query
description: Start date of the range (ISO 8601 format)
required: false
schema:
type: string
format: date
- name: date_to
in: query
description: End date of the range (ISO 8601 format)
required: false
schema:
type: string
format: date
responses:
200:
description: Get list of requested org employment files
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/orgEmploymentFile'
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
401:
description: Unauthorized request
403:
description: Unauthorized request
500:
description: Server Error
/org-employment-file/request:
post:
tags:
- org-employment
summary: Request Org employment file
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
org_employment_id:
type: string
format: uuid
description: User`s org employment ID
org_employment_file_type_id:
$ref: '#/components/schemas/orgEmploymentFileType'
date_from:
description: Дата с (например для расчетной ведомости, за период с)
type: string
format: 'date'
example: 2025-04-23
date_to:
description: Дата по (например для расчетной ведомости, за период по)
type: string
format: 'date'
example: 2025-04-27
responses:
200:
description: Create request for Org employment file
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/httpJsonResponse'
- type: object
properties:
data:
$ref: '#/components/schemas/orgEmploymentFile'
401:
description: Unauthorized request
403:
description: Unauthorized request
404:
description: File not found
500:
description: Server Error
/user-group/items:
get:
tags:
- userGroup
summary: User group items.
operationId: /user-group/items/actionItems
parameters:
- name: q
in: query
description: Query string
schema:
type: string
example: Some text
- name: only_with_calendar_events
in: query
description: Only used in calendar event
example: 0
schema:
type: integer
enum:
- 0
- 1
responses:
200:
description: User group items.
content:
application/json:
schema:
properties:
data:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
faceUrl:
type: string
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Calendar event not found.
500:
description: Server Error.
/meeting-place/items:
get:
tags:
- meetingPlace
summary: Meting place items.
operationId: actionMeetingPlace
parameters:
- name: q
in: query
description: Query string
schema:
type: string
example: Some text
responses:
200:
description: Meting place items.
content:
application/json:
schema:
properties:
data:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Calendar event not found.
500:
description: Server Error.
/account/status-text:
post:
tags:
- account
summary: Set user's status text
operationId: accountStatusText
requestBody:
description: User's status text
required: true
content:
application/json:
schema:
type: object
properties:
activeTypes:
type: string
responses:
200:
description: status text saved
content:
application/json:
schema:
type: object
properties:
activeTypes:
type: string
400:
description: Invalid input
401:
description: Unauthorized request
403:
description: Unauthorized request
500:
description: Server Error
/account/status-active-types:
post:
tags:
- account
summary: Set user's active statuses
operationId: accountStatusActiveTypes
requestBody:
description: User's active statuses
required: true
content:
application/json:
schema:
type: object
properties:
activeTypes:
type: array
items:
type: string
responses:
200:
description: user's active statuses saved
content:
application/json:
schema:
type: object
properties:
statusTypes:
type: array
items:
type: string
400:
description: Invalid input
401:
description: Unauthorized request
403:
description: Unauthorized request
500:
description: Server Error
/notifications/pushes:
get:
tags:
- notifications
summary: Push notifications index. Infinite scroll done by paginating with {page} parameter
operationId: notificationPushes
parameters:
- name: per-page
in: query
description: How many items return in one page (default 10).
schema:
type: string
- name: page
in: query
description: Current page.
schema:
type: string
responses:
200:
description: Returns array of push notifications and pagination related data
content:
application/json:
schema:
type: object
properties:
_meta:
$ref: '#/components/schemas/_meta'
data:
type: array
items:
$ref: '#/components/schemas/notification'
401:
description: Unauthorized request
403:
description: Unauthorized request
500:
description: Server Error
/notifications/mark-seen:
post:
tags:
- notifications
summary: Mark notification as seen
operationId: notificationMarkSeen
parameters:
- in: query
name: notificationId
description: notificationId
schema:
type: string
required: true
responses:
200:
description: Notification marked as seen
content:
application/json:
schema:
type: object
properties:
badge:
type: number
description: unseen notification count
date:
type: string
format: date
400:
description: Invalid input
401:
description: Unauthorized request
403:
description: Unauthorized request
500:
description: Server Error
/notifications/mark-seen-all:
post:
tags:
- notifications
summary: Mark all notifications as seen
operationId: notificationMarkSeenAll
responses:
200:
description: All marked as seen
content:
application/json:
schema:
type: object
properties:
badge:
type: number
description: unseen notification count
date:
type: string
format: date
400:
description: Invalid input
401:
description: Unauthorized request
403:
description: Unauthorized request
500:
description: Server Error
/department/tree-node:
get:
tags:
- department
summary: Get departments inner structure
operationId: departmentTreeNode
parameters:
- name: id
in: query
description: Parent department ID
schema:
type: string
responses:
200:
description: Department children (Departments and Users) type="user" - means user node, type="department" - means department node. [isBoss], [position] are "user" only properties. [employmentsCount], [empty] - are "department" only properties.
content:
application/json:
schema:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
default: "Department name"
path:
type: string
default: "Department hierarchy path"
items:
type: array
items:
$ref: '#/components/schemas/structureItem'
400:
description: Invalid input (malformed id)
401:
description: Unauthorized request
403:
description: Unauthorized request
404:
description: Department not found
500:
description: Server Error
/department/search:
get:
tags:
- department
summary: Search Org Structure for matching users and departments
operationId: departmentSearch
parameters:
- name: q
in: query
description: Query string
schema:
type: string
responses:
200:
description: Search results (Departments and Users) type="user" - means user node, type="department" - means department node. [isBoss], [position] are "user" only properties. [employmentsCount], [empty] - are "department" only properties.
content:
application/json:
schema:
type: object
properties:
q:
type: string
example: "Search query string"
items:
type: array
items:
$ref: '#/components/schemas/structureItem'
400:
description: Invalid input
401:
description: Unauthorized request
403:
description: Unauthorized request
500:
description: Server Error
/postcard/user-view:
get:
tags:
- postcard
summary: Details about postcard sent to user
operationId: postcardUserView
parameters:
- name: id
in: query
description: UserPostcard item ID
schema:
type: string
required: true
responses:
200:
description: Postcard details
content:
application/json:
schema:
$ref: '#/components/schemas/userPostcard'
400:
description: Invalid input (malformed id)
401:
description: Unauthorized request
403:
description: Unauthorized request
404:
description: Postcard not found
500:
description: Server Error
/article/news:
get:
tags:
- article
summary: News index. Infinite scroll done by paginating with {page} parameter
operationId: articleNews
parameters:
- name: tag_id
in: query
description: Tags ID to filter news
schema:
type: array
items:
type: string
format: uuid
example: b726280a-2be6-4e62-ab24-1736389c6474
- name: per-page
in: query
description: How many items return in one page (default 10).
schema:
type: string
- name: page
in: query
description: Current page
schema:
type: string
responses:
200:
description: Returns array of news and pagination related data
content:
application/json:
schema:
type: object
properties:
_meta:
$ref: '#/components/schemas/_meta'
data:
type: array
items:
$ref: '#/components/schemas/article'
401:
description: Unauthorized request
403:
description: Unauthorized request
500:
description: Server Error
/article/category:
get:
tags:
- article
summary: Browse or search catalog categories. Displays catalog items which can be category or article
operationId: articleCategory
parameters:
- name: id
in: query
description: ID of category
schema:
type: string
- name: q
in: query
description: Search query string
schema:
type: string
responses:
200:
description: Contents of category or search results (categories and articles). entity="category" - means category node, entity="article" - means article node. Category id can be used in /article/category method to browse its content
content:
application/json:
schema:
type: object
properties:
category:
type: object
description: Current category
properties:
id:
type: string
format: uuid
title:
type: string
default: "Current category name"
q:
type: string
default: "Search query string"
items:
type: array
items:
$ref: '#/components/schemas/catalogItem'
400:
description: Invalid input
401:
description: Unauthorized request
403:
description: Unauthorized request
500:
description: Server Error
/api/v2/workflow/catalog:
get:
tags:
- workflow
summary: Каталог процессов
description: |
Возвращает список категорий, процессов и связанных данных.
security:
- SessionAuth: [ ]
parameters:
- name: q
in: query
required: false
schema:
type: string
example: Журнал
- name: id
in: query
required: false
schema:
type: string
example: ffc0a17d-3d7a-4b4c-80ea-14093130973a
responses:
'200':
description: Успешный ответ
content:
application/json:
schema:
type: object
properties:
categories:
type: array
items:
$ref: '#/components/schemas/WorkflowCategory'
category:
type: object
properties:
id:
type: string
example: ffc0a17d-3d7a-4b4c-80ea-14093130973a
name:
type: string
example: 2313
title:
type: string
example: 2313
description:
type: string
example: ""
content_style_id:
type: integer
example: 1
tags:
type: array
items:
type: string
breadcrumbs:
type: array
items:
type: object
properties:
label:
type: string
example: 2313
id:
type: string
example: ffc0a17d-3d7a-4b4c-80ea-14093130973a
hash_id:
type: string
example: eeb76a8070
slug:
type: string
example: 2313
q:
type: string
example: Журнал
workflows:
type: array
items:
type: object
properties:
id:
type: string
example: 2bce2ae5-581b-417b-a8b0-95beb4beaa9c
name:
type: string
example: Журнал отсутствий
description:
type: string
example: ""
imageUrl:
type: string
example: https://denis.hrbox.io/file/resize/300x300/346339f5-f03c-44de-8a90-d1eb8da39c0a.png
url:
type: string
example: https://denis.hrbox.io/workflow/ticket/create?wfId=2bce2ae5-581b-417b-a8b0-95beb4beaa9c
status_id:
type: integer
example: 1
tags:
type: array
items:
type: string
userGroupsVisible:
type: array
items:
type: object
properties:
id:
type: string
example: 591dd0ac-bfef-4687-b42f-d3fc353f461e
name:
type: string
example: Сотрудники
description:
type: string
example: ""
iconUrl:
type: string
example: https://denis.hrbox.io/img/fa-users.jpg
conditionsReadable:
type: string
example: (Статус регистрации из списка [Активный, Приглашенный])...
feedbackTotal:
type: object
properties:
count:
type: integer
example: 1
score:
type: integer
example: 2
brief:
type: string
example: ""
/api/v2/workflow/start/{processId}:
get:
tags:
- workflow
summary: |
Получение информации о форме подачи заявки.
security:
- SessionAuth: [ ]
parameters:
- name: processId
in: path
required: true
schema:
type: string
example: 9557cc57-bd21-4297-8007-ee25812afb07
responses:
'200':
description: Успешный ответ
content:
application/json:
schema:
type: object
properties:
id:
type: string
example: bf047c9c-df0c-448c-8984-c292318b9cd4
name:
type: string
example: Заявка на обучение
brief:
type: string
example: ""
description:
type: object
properties:
time:
type: integer
example: 1720625446725
blocks:
type: array
items:
type: object
properties:
id:
type: string
example: XIP-pciYFP
data:
type: object
properties:
text:
type: string
example: "Нажимая на кнопку «Подать заявку», вы даёте разрешение на обработку персональных данных."
type:
type: string
example: paragraph
version:
type: string
example: 2.29.0
imageUrl:
type: string
example: https://denis.hrbox.io/file/resize/300x300/346339f5-f03c-44de-8a90-d1eb8da39c0a.png
isChiefRequired:
type: boolean
example: false
isAllowCategoryChange:
type: boolean
example: false
categories:
type: object
additionalProperties:
type: string
fields:
type: array
items:
$ref: '#/components/schemas/WorkflowField'
post:
tags:
- workflow
summary: |
Создание заявки процесса.
security:
- SessionAuth: [ ]
parameters:
- name: processId
in: path
required: true
schema:
type: string
example: bf047c9c-df0c-448c-8984-c292318b9cd4
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
categoryId:
type: string
example: 3fa418df-edc3-4a95-8850-ffebece59f04
fieldValues:
type: object
additionalProperties:
type: string
responses:
'201':
description: Заявка успешно создана
content:
application/json:
schema:
type: object
properties:
id:
type: string
example: bf047c9c-df0c-448c-8984-c292318b9cd4
message:
type: string
example: "Заявка успешно создана"
/api/v2/workflow-ticket/:
get:
tags:
- workflow
summary: Получение списка заявок
security:
- SessionAuth: [ ]
- ApiKeyAuth: [ ]
description: |
Возвращает список заявок по указанным фильтрам.
Данный метод поддерживает два типа авторизации: сессии и API-ключи.
**1. Авторизация с использованием сессии:**
Для выполнения запросов с использованием сессии необходимо передавать следующие заголовки:
- `x-hrbox-session-id: {sessionId}`
- `x-hrbox-session-code: {sessionSecret}`
Получить их можно через метод /mobile/auth
**2. Авторизация с использованием API-ключа:**
Все запросы должны быть авторизованы с помощью API-ключа, передачей следующих заголовков:
- `Content-Type: application/json`
- `X-Hrbox-Client-Id: {идентификатор ключа}`
- `X-Hrbox-Client-Secret: {секретный ключ}`
parameters:
- name: wf_workflow_id
in: query
required: false
schema:
type: string
description: ID процесса (workflow), по которому фильтруются заявки.
example: "2e05753d-459e-4a92-8265-aef15356872c"
- name: wf_ticket_stage_id
in: query
required: false
schema:
type: string
description: ID стадии (stage), по которой фильтруются заявки.
example: "3fc2b631-6fa7-4bf7-8651-3faacb4c71a5"
- name: wf_status_id
in: query
required: false
schema:
type: integer
description: Статус заявки (например, 1 - "В процессе").
example: 1
- name: per-page
in: query
required: false
schema:
type: integer
default: 10
description: Количество записей на странице.
example: 5
- name: page
in: query
required: false
schema:
type: integer
default: 1
description: Номер страницы для пагинации.
example: 2
responses:
'200':
description: Успешный ответ
content:
application/json:
schema:
type: object
properties:
data:
type: array
description: Список заявок.
items:
type: object
properties:
id:
type: string
description: Уникальный идентификатор заявки.
example: "111e8a0c-bcf2-4fe4-8cd3-e8138670f277"
wf_workflow_id:
type: string
description: ID процесса.
example: "2e05753d-459e-4a92-8265-aef15356872c"
wf_ticket_stage_id:
type: string
description: ID текущей стадии заявки.
example: "b2b73536-f76a-4b7a-9413-7553a688af25"
wf_status_id:
type: integer
description: Статус заявки.
example: 1
user_id:
type: string
description: ID пользователя, создавшего заявку.
example: "998bb3a1-92f3-4d01-b6ae-6c9d44d987d0"
created_at:
type: string
format: date-time
description: Дата и время создания заявки.
example: "2023-09-16 08:00:28"
updated_at:
type: string
format: date-time
description: Дата и время последнего обновления заявки.
example: "2023-09-16 08:00:29"
solved_at:
type: string
format: date-time
nullable: true
description: Дата и время решения заявки (если применимо).
example: null
url:
type: string
description: Ссылка на детальную информацию о заявке.
example: "https://example.hrbox.io/workflow/ticket/view?id=111e8a0c-bcf2-4fe4-8cd3-e8138670f277"
wfStatus:
type: string
description: Человеко-читаемый статус заявки.
example: "В процессе"
wfWorkflow:
type: object
description: Информация о связанном процессе.
properties:
id:
type: string
description: ID процесса.
example: "2e05753d-459e-4a92-8265-aef15356872c"
name:
type: string
description: Название процесса.
example: "Отпуск 1C"
is_hidden:
type: boolean
description: Признак скрытого процесса.
example: false
user:
type: object
description: Информация о пользователе, создавшем заявку.
properties:
id:
type: string
description: ID пользователя.
example: "998bb3a1-92f3-4d01-b6ae-6c9d44d987d0"
name:
type: string
description: Имя пользователя.
example: "Piu Cro"
faceUrl:
type: string
description: URL изображения профиля пользователя.
example: "https://example.hrbox.io/file/resize/300x300/346339f5-f03c-44de-8a90-d1eb8da39c0a.png"
_links:
type: object
description: Навигационные ссылки для пагинации.
properties:
self:
type: string
description: Текущая страница.
example: "https://example.hrbox.io/api/v2/workflow-ticket?..."
first:
type: string
description: Первая страница.
example: "https://example.hrbox.io/api/v2/workflow-ticket?..."
last:
type: string
description: Последняя страница.
example: "https://example.hrbox.io/api/v2/workflow-ticket?..."
_meta:
type: object
description: Метаданные пагинации.
properties:
totalCount:
type: integer
description: Общее количество записей.
example: 16
pageCount:
type: integer
description: Общее количество страниц.
example: 4
currentPage:
type: integer
description: Текущая страница.
example: 2
perPage:
type: integer
description: Количество записей на странице.
example: 5
/api/v2/workflow-ticket/view:
get:
tags:
- workflow
summary: Получение детальной информации по заявке
security:
- SessionAuth: [ ]
- ApiKeyAuth: [ ]
description: |
Возвращает список заявок по указанным фильтрам.
Данный метод поддерживает два типа авторизации: сессии и API-ключи.
**1. Авторизация с использованием сессии:**
Для выполнения запросов с использованием сессии необходимо передавать следующие заголовки:
- `x-hrbox-session-id: {sessionId}`
- `x-hrbox-session-code: {sessionSecret}`
Получить их можно через метод /mobile/auth
**2. Авторизация с использованием API-ключа:**
Все запросы должны быть авторизованы с помощью API-ключа, передачей следующих заголовков:
- `Content-Type: application/json`
- `X-Hrbox-Client-Id: {идентификатор ключа}`
- `X-Hrbox-Client-Secret: {секретный ключ}`
parameters:
- name: id
in: query
required: true
schema:
type: string
description: Уникальный идентификатор заявки.
example: "0b6a186a-95b8-4c89-8e69-6b49f12d1474"
responses:
'200':
description: Успешный ответ
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: Уникальный идентификатор заявки.
example: "0b6a186a-95b8-4c89-8e69-6b49f12d1474"
wf_workflow_id:
type: string
description: ID процесса, к которому относится заявка.
example: "2e05753d-459e-4a92-8265-aef15356872c"
wf_ticket_stage_id:
type: string
description: Текущая стадия заявки.
example: "76be1943-6b4d-41f5-9807-02e9797454d5"
wf_category_id:
type: string
description: ID категории, если указана.
nullable: true
example: null
wf_status_id:
type: integer
description: Текущий статус заявки.
example: 1
user_id:
type: string
description: ID пользователя, создавшего заявку.
example: "36da46a6-e575-41f9-9972-a7a497e0326c"
created_at:
type: string
format: date-time
description: Дата и время создания заявки.
example: "2023-10-25 18:23:07"
updated_at:
type: string
format: date-time
description: Дата и время последнего обновления заявки.
example: "2023-10-25 18:23:07"
wfStatus:
type: string
description: Человеко-читаемый статус заявки.
example: "В процессе"
wfWorkflow:
type: object
description: Информация о процессе.
properties:
id:
type: string
description: ID процесса.
example: "2e05753d-459e-4a92-8265-aef15356872c"
name:
type: string
description: Название процесса.
example: "Отпуск 1C"
brief:
type: string
description: Краткое описание процесса.
example: "Подача заявки на отпуск"
is_hidden:
type: boolean
description: Признак того, что процесс скрыт.
example: false
wfTicketStages:
type: array
description: Список стадий заявки.
items:
type: object
properties:
id:
type: string
description: ID стадии.
example: "d8d47802-4ada-4a3b-bc73-d103a1385fa8"
name:
type: string
description: Название стадии.
example: "Подача заявки"
fields:
type: array
description: Поля, связанные с текущей стадией.
items:
type: object
properties:
id:
type: string
description: ID поля.
example: "vacation_type_id"
name:
type: string
description: Название поля.
example: "Тип отпуска"
type:
type: string
description: Тип поля.
example: "select"
values:
type: array
description: Возможные значения для выбора.
items:
type: string
example: [ "Ежегодный оплачиваемый", "Другой" ]
required:
type: boolean
description: Признак обязательного заполнения.
example: true
defaultValue:
type: string
description: Значение по умолчанию.
nullable: true
example: null
responsible:
type: array
description: Ответственные за стадию пользователи.
items:
type: object
properties:
id:
type: string
description: ID пользователя.
example: "36da46a6-e575-41f9-9972-a7a497e0326c"
name:
type: string
description: Имя пользователя.
example: "Винокуров Сергей Борисович"
faceUrl:
type: string
description: Ссылка на аватар пользователя.
example: "https://example.hrbox.io/file/resize/300x300/346339f5-f03c-44de-8a90-d1eb8da39c0a.png"
/dashboard:
get:
tags:
- dashboard
summary: Get dashboards and widgets by specifying needed widgets through get parameter. Personal user feed widgets starts with "my" prefix. Global company feed widgets starts with "upd" prefix
operationId: dashboard
parameters:
- name: widgets
in: query
description: Names of required widgets separated with comma.
example: myLms,mySurvey,myAchievements,myTeam,myFavorites,myPostcards
schema:
type: string
enum:
- myLms
- mySurvey
- myAchievements
- myTeam
- myFavorites
- myPostcards
- updNews
- updVoting
- updIdeas
- updAchievements
- updBirthday
- updNewbies
- updBooks
- name: info
in: query
description: >
Names of required info separated with comma.
* `profileBrief` - Current user brief info
* `notificationsBadge` - Current notification bell badge value
example: profileBrief,notificationsBadge
schema:
type: string
enum:
- profileBrief
- notificationsBadge
responses:
200:
description: Returns all the dashboard data about requested widgets. In response object only requested info/widgets keys will be presented. If widget is not available for current user, this widget will not exists in response of will be null.
content:
application/json:
schema:
type: object
properties:
profileBrief:
$ref: '#/components/schemas/profileBrief'
notificationsBadge:
description: Current notification bell badge value
type: integer
default: 0
widgets:
type: object
properties:
myLms:
# description: User feed - Assigned test and courses
$ref: '#/components/schemas/dashboardWidget'
mySurvey:
# description: User feed - Assigned surveys
$ref: '#/components/schemas/dashboardWidget'
myAchievements:
# description: User feed - Assigned achievements
$ref: '#/components/schemas/dashboardWidget'
myTeam:
# description: User feed - Teammates of current user
$ref: '#/components/schemas/dashboardWidget'
myFavorites:
# description: User feed - Favorites (in development, not used)
$ref: '#/components/schemas/dashboardWidget'
myVacations:
# description: User feed - Vacations of current user and subordinates and team
$ref: '#/components/schemas/dashboardVacationsWidget'
myPostcards:
# description: User feed - Received postcards
$ref: '#/components/schemas/dashboardWidget'
updNews:
# description: Company feed - New news
$ref: '#/components/schemas/dashboardWidget'
updVoting:
# description: Company feed - New contests
$ref: '#/components/schemas/dashboardWidget'
updIdeas:
# description: Company feed - New ideas
$ref: '#/components/schemas/dashboardIdeaWidget'
updAchievements:
# description: Company feed - New achievements achieved by users
$ref: '#/components/schemas/dashboardWidget'
updBirthday:
# description: Company feed - Users that have birthday today
$ref: '#/components/schemas/dashboardWidget'
updNewbies:
# description: Company feed - Recently employed employees
$ref: '#/components/schemas/dashboardWidget'
updBooks:
# description: Company feed - New books in library
$ref: '#/components/schemas/dashboardWidget'
400:
description: Invalid input
401:
description: Unauthorized request
403:
description: Unauthorized request
500:
description: Server Error
/feedback/add:
post:
tags:
- feedback
operationId: actionAdd
summary: Creates a feedback about a department or user.
requestBody:
description: userId - User ID from which the feedback will be created.
type - Entity type (department, user).
id - Entity id.
score - Feedback score from 1 to 5.
text - Feedback text.
isAnonymous - Anonymous feedback.
required: true
content:
application/json:
schema:
type: object
properties:
userId:
description: User ID from which the feedback will be created.
type: string
example: cd1a4391-9fa7-4ae3-80c1-f9b46ad1838d
type:
description: Entity type.
type: string
enum:
- department
- user
example: department
# required: true
id:
description: Entity id.
type: string
example: cd1a4391-9fa7-4ae3-80c1-f9b46ad1838d
# required: true
score:
description: Feedback score.
type: number
minimum: 1
maximum: 5
example: 5
# required: true
text:
description: Feedback text.
type: string
example: Example text.
# required: true
isAnonymous:
description: Anonymous feedback.
type: boolean
example: true
default: false
responses:
200:
description: Returns the success status and data of the generated feedback.
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
feedback:
$ref: '#/components/schemas/feedback'
400:
description: Bad Request. Returns a message with the error details.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Not found. Returns a message with the error details.
500:
description: Server Error.
/feedback/view:
get:
tags:
- feedback
summary: Details about feedback.
operationId: /feedback/view
parameters:
- name: id
in: query
description: Feedback item ID.
schema:
type: string
required: true
responses:
200:
description: Feedback details.
content:
application/json:
schema:
$ref: '#/components/schemas/feedback'
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Feedback not found.
500:
description: Server Error.
/calendar-event/view:
get:
tags:
- calendarEvent
summary: Details about calendar event.
operationId: /calendar-event/view
parameters:
- name: id
in: query
description: Calendar event item ID.
schema:
type: string
- name: parent_id
in: query
description: Calendar event parent item ID.
schema:
type: string
- name: rec_date
in: query
description: Calendar event recurring date.
schema:
type: string
responses:
200:
description: Calendar event details.
content:
application/json:
schema:
properties:
calendarEvent:
$ref: '#/components/schemas/calendarEvent'
calendarEventUser:
$ref: '#/components/schemas/calendarEventUser'
calendarEventBid:
$ref: '#/components/schemas/calendarEventBid'
hasCalendarEventBid:
type: boolean
canCreateCalendarEventBid:
type: boolean
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Calendar event not found.
500:
description: Server Error.
/calendar-event:
get:
tags:
- calendarEvent
summary: Calendar event index.
operationId: /calendar-event/index
parameters:
- name: title
in: query
schema:
type: string
- name: title_exact
in: query
schema:
type: string
- name: start_date_time
in: query
description: Default current month
schema:
type: string
example: '2023-01-01 10:00:00'
- name: end_date_time
in: query
description: Default current month +3 month
schema:
type: string
example: '2023-04-01 10:00:00'
- name: calendar_event_type_id
in: query
description: 1 - CORPORATE, 2 - TRAINING, 3 - MEET, 4 - PUBLIC_HOLIDAY, 5 - EVENT, 6 - WEBINAR
schema:
type: integer
example: 1
- name: entity_id
in: query
description: Communication with entities, for example, is used in meeting places. 1030 - MeetingPlace
schema:
type: integer
- name: calendar_event_entity_item_id
in: query
schema:
type: string
- name: user_id
in: query
schema:
type: string
- name: visible_to
in: query
description: Visible to user group
schema:
type: string
example: '9f7063d1-959e-4c32-b186-313576375739,3a7539cb-d85e-4455-af41-fc505d1ce6dd'
responses:
200:
description: Calendar event index.
content:
application/json:
schema:
properties:
data:
type: array
items:
$ref: '#/components/schemas/calendarEvent'
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Calendar event not found.
500:
description: Server Error.
/calendar-event/items:
get:
tags:
- calendarEvent
summary: Calendar event items.
operationId: actionItems
parameters:
- name: q
in: query
schema:
type: string
- name: calendar_event_type_id
in: query
description: 1 - CORPORATE, 2 - TRAINING, 3 - MEET, 4 - PUBLIC_HOLIDAY, 5 - EVENT, 6 - WEBINAR
schema:
type: integer
example: 1
- name: entity_id
in: query
description: Communication with entities, for example, is used in meeting places. 1030 - MeetingPlace
schema:
type: integer
example: 1030
- name: calendar_event_entity_item_id
in: query
schema:
type: string
example: 9f7063d1-959e-4c32-b186-313576375739
- name: user_id
in: query
schema:
type: string
example: 9f7063d1-959e-4c32-b186-313576375739
- name: visible_to
in: query
description: Visible to user group
schema:
type: string
example: 9f7063d1-959e-4c32-b186-313576375739,3a7539cb-d85e-4455-af41-fc505d1ce6dd
responses:
200:
description: Calendar event items.
content:
application/json:
schema:
properties:
data:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
title:
type: string
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Calendar event not found.
500:
description: Server Error.
/calendar-event/my:
get:
tags:
- calendarEvent
summary: Calendar event my.
operationId: actionMy
parameters:
- name: title
in: query
schema:
type: string
- name: title_exact
in: query
schema:
type: string
- name: start_date_time
in: query
description: Default current month
schema:
type: string
example: '2023-01-01 10:00:00'
- name: end_date_time
in: query
description: Default current month +3 month
schema:
type: string
example: '2023-04-01 10:00:00'
- name: calendar_event_type_id
in: query
description: 1 - CORPORATE, 2 - TRAINING, 3 - MEET, 4 - PUBLIC_HOLIDAY, 5 - EVENT, 6 - WEBINAR
schema:
type: integer
example: 1
- name: entity_id
in: query
example: 1030
description: Communication with entities, for example, is used in meeting places. 1030 - MeetingPlace
schema:
type: integer
- name: calendar_event_entity_item_id
in: query
schema:
type: string
- name: user_id
in: query
schema:
type: string
example: 9f7063d1-959e-4c32-b186-313576375739
- name: visible_to
in: query
description: Visible to user group
schema:
type: string
example: '9f7063d1-959e-4c32-b186-313576375739,3a7539cb-d85e-4455-af41-fc505d1ce6dd'
responses:
200:
description: Calendar event index.
content:
application/json:
schema:
properties:
data:
type: array
items:
$ref: '#/components/schemas/calendarEvent'
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Calendar event not found.
500:
description: Server Error.
/calendar-event-request:
post:
tags:
- calendarEventRequest
summary: Calendar event request create.
operationId: /calendar-event-request
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
calendar_event_id:
type: string
format: uuid
description: Calendar event ID
calendar_event_parent_id:
type: string
format: uuid
description: Calendar event parent ID
calendar_event_rec_date:
type: string
format: date
description: Calendar event recurring date
responses:
200:
description: Returns the calendar event request
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
message:
type: string
errors:
type: array
items:
type: string
data:
$ref: '#/components/schemas/calendarEventBid'
400:
description: Bad Request. Returns a message with the error details.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Not found. Returns a message with the error details.
500:
description: Server Error.
/calendar-event-request/cancel:
post:
tags:
- calendarEventRequest
summary: Calendar event request cancel.
operationId: actionCreate
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
id:
type: string
format: uuid
description: Calendar event request ID
responses:
200:
description: Returns the calendar event request
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
message:
type: string
errors:
type: array
items:
type: string
400:
description: Bad Request. Returns a message with the error details.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Not found. Returns a message with the error details.
500:
description: Server Error.
/calendar-event-type:
get:
tags:
- calendarEventType
summary: Calendar event type index.
operationId: /calendar-event-type
parameters:
- name: name
in: query
description: Название типа события (like).
schema:
type: string
example: Тренинг
- name: is_used
in: query
description: Тип события выбран в каком-либо событии
schema:
type: boolean
example: true
- name: type_id
in: query
description: 1 - CORPORATE, 2 - TRAINING, 3 - MEET, 4 - PUBLIC_HOLIDAY, 5 - EVENT (All custom types), 6 - WEBINAR
schema:
type: integer
example: 1
responses:
200:
description: Calendar event type index.
content:
application/json:
schema:
properties:
data:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
example: "Корпоративное мероприятие"
background_color:
type: string
example: "#F1D46E"
text_color:
type: string
example: "#000000"
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Calendar event type not found.
500:
description: Server Error.
/calendar/view:
get:
tags:
- calendar
summary: Details about calendar event.
operationId: /calendar/view
parameters:
- name: id
in: query
description: Calendar event item ID.
schema:
type: string
- name: parent_id
in: query
description: Calendar event parent item ID.
schema:
type: string
- name: rec_date
in: query
description: Calendar event recurring date.
schema:
type: string
responses:
200:
description: Calendar event details.
content:
application/json:
schema:
properties:
data:
items:
allOf:
- $ref: '#/components/schemas/calendarEvent'
- type: object
properties:
calendar_event_type_id:
type: string
format: uuid
calendar_event_type:
$ref: '#/components/schemas/calendarEventType'
calendarEventUser:
$ref: '#/components/schemas/calendarEventUser'
calendarEventBid:
$ref: '#/components/schemas/calendarEventBid'
hasCalendarEventBid:
type: boolean
canCreateCalendarEventBid:
type: boolean
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Calendar event not found.
500:
description: Server Error.
/calendar:
get:
tags:
- calendar
summary: Calendar event index.
operationId: /calendar/index
parameters:
- name: title
in: query
schema:
type: string
- name: title_exact
in: query
schema:
type: string
- name: start_date_time
in: query
description: Default current month
schema:
type: string
example: '2023-01-01 10:00:00'
- name: end_date_time
in: query
description: Default current month +3 month
schema:
type: string
example: '2023-04-01 10:00:00'
- name: calendar_event_type_id
in: query
description: ID типа события из `/calendar-event-type`
schema:
type: string
format: uuid
example: '9f7063d1-959e-4c32-b186-313576375739'
- name: entity_id
in: query
description: Communication with entities, for example, is used in meeting places. 1030 - MeetingPlace
schema:
type: integer
- name: calendar_event_entity_item_id
in: query
schema:
type: string
- name: user_id
in: query
schema:
type: string
- name: visible_to
in: query
description: Visible to user group
schema:
type: string
example: '9f7063d1-959e-4c32-b186-313576375739,3a7539cb-d85e-4455-af41-fc505d1ce6dd'
responses:
200:
description: Calendar event index.
content:
application/json:
schema:
properties:
data:
type: array
items:
allOf:
- $ref: '#/components/schemas/calendarEvent'
- type: object
properties:
calendar_event_type_id:
type: string
format: uuid
calendar_event_type:
$ref: '#/components/schemas/calendarEventType'
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Calendar event not found.
500:
description: Server Error.
/calendar/items:
get:
tags:
- calendar
summary: Calendar event items.
operationId: /calendar/items
parameters:
- name: q
in: query
schema:
type: string
- name: calendar_event_type_id
in: query
description: ID типа события из `/calendar-event-type`
schema:
type: string
format: uuid
example: '9f7063d1-959e-4c32-b186-313576375739'
- name: entity_id
in: query
description: Communication with entities, for example, is used in meeting places. 1030 - MeetingPlace
schema:
type: integer
example: 1030
- name: calendar_event_entity_item_id
in: query
schema:
type: string
example: 9f7063d1-959e-4c32-b186-313576375739
- name: user_id
in: query
schema:
type: string
example: 9f7063d1-959e-4c32-b186-313576375739
- name: visible_to
in: query
description: Visible to user group
schema:
type: string
example: 9f7063d1-959e-4c32-b186-313576375739,3a7539cb-d85e-4455-af41-fc505d1ce6dd
responses:
200:
description: Calendar event items.
content:
application/json:
schema:
properties:
data:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
title:
type: string
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Calendar event not found.
500:
description: Server Error.
/calendar/my:
get:
tags:
- calendar
summary: Calendar event my.
operationId: /calendar/my
parameters:
- name: title
in: query
schema:
type: string
- name: title_exact
in: query
schema:
type: string
- name: start_date_time
in: query
description: Default current month
schema:
type: string
example: '2023-01-01 10:00:00'
- name: end_date_time
in: query
description: Default current month +3 month
schema:
type: string
example: '2023-04-01 10:00:00'
- name: calendar_event_type_id
in: query
description: ID типа события из `/calendar-event-type`
schema:
type: string
format: uuid
example: '9f7063d1-959e-4c32-b186-313576375739'
- name: entity_id
in: query
example: 1030
description: Communication with entities, for example, is used in meeting places. 1030 - MeetingPlace
schema:
type: integer
- name: calendar_event_entity_item_id
in: query
schema:
type: string
- name: user_id
in: query
schema:
type: string
example: 9f7063d1-959e-4c32-b186-313576375739
- name: visible_to
in: query
description: Visible to user group
schema:
type: string
example: '9f7063d1-959e-4c32-b186-313576375739,3a7539cb-d85e-4455-af41-fc505d1ce6dd'
responses:
200:
description: Calendar event index.
content:
application/json:
schema:
properties:
data:
type: array
items:
allOf:
- $ref: '#/components/schemas/calendarEvent'
- type: object
properties:
calendar_event_type_id:
type: string
format: uuid
calendar_event_type:
$ref: '#/components/schemas/calendarEventType'
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Calendar event not found.
500:
description: Server Error.
/moderation:
get:
tags:
- moderation
summary: Moderation index.
operationId: /moderation/index
parameters:
- name: id
in: query
description: Moderation ID.
schema:
type: string
required: false
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
responses:
200:
description: Moderation object.
content:
application/json:
schema:
$ref: '#/components/schemas/moderation'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/moderation/accept:
post:
tags:
- moderation
summary: Accept moderation.
operationId: actionAccept
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/arrayOfIds'
responses:
200:
description: Text
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
message:
type: string
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/moderation/reject:
post:
tags:
- moderation
summary: Reject moderation.
operationId: actionReject
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/arrayOfIds'
responses:
200:
description: Text
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
message:
type: string
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/idea/statuses:
get:
tags:
- idea
summary: Idea statuses list.
operationId: /idea/statuses
responses:
200:
description: Idea statuses object.
content:
application/json:
schema:
$ref: '#/components/schemas/ideaStatuses'
401:
description: Unauthorized.
403:
description: Unauthorized.
500:
description: Server Error.
/idea/purposes:
get:
tags:
- idea
summary: Idea purposes list.
operationId: /idea/purposes
responses:
200:
description: Idea purpose object.
content:
application/json:
schema:
$ref: '#/components/schemas/ideaPurposes'
401:
description: Unauthorized.
403:
description: Unauthorized.
500:
description: Server Error.
/idea/index:
get:
tags:
- idea
summary: Idea index.
operationId: /idea/index
parameters:
- name: created_at
in: query
description: Дата создания идеи.
schema:
type: string
example: 2023-01-01|2023-01-01
- name: created_user_id
in: query
description: Идентификатор пользователя. Можно передать несколько идентификаторов разделенные запятой.
schema:
type: string
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
- name: idea_status_id
in: query
description: Статус идеи. Можно передать несколько идентификаторов разделенные запятой.
schema:
type: string
example: 1
- name: idea_purpose_id
in: query
description: Направление идеи. Можно передать несколько идентификаторов разделенные запятой.
schema:
type: string
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
- name: performer_id
in: query
description: Исполнитель идеи. Можно передать несколько идентификаторов разделенные запятой.
schema:
type: string
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
responses:
200:
description: Idea objects.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ideaIndex'
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/idea/view:
get:
tags:
- idea
summary: Idea view.
operationId: /idea/view
parameters:
- name: id
in: query
description: Idea ID.
schema:
type: string
required: true
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
responses:
200:
description: Idea detailed object.
content:
application/json:
schema:
$ref: '#/components/schemas/ideaView'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Feedback not found.
500:
description: Server Error.
/idea/edit:
post:
tags:
- idea
summary: Idea edit.
operationId: /idea/edit
parameters:
- name: id
in: query
description: Idea ID.
schema:
type: string
required: false
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ideaEdit'
responses:
200:
description: Idea object.
content:
application/json:
schema:
$ref: '#/components/schemas/ideaIndex'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Feedback not found.
500:
description: Server Error.
/idea/vote:
post:
tags:
- idea
summary: Vote for idea.
operationId: /idea/vote
parameters:
- name: id
in: query
description: Idea ID.
schema:
type: string
required: true
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
responses:
200:
description: Text
content:
application/json:
schema:
type: object
properties:
success:
description: Success status.
type: boolean
example: true
status:
description: Voting status.
type: boolean
example: true
message:
type: string
example: You voted for the idea!
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Feedback not found.
500:
description: Server Error.
/idea/participate:
post:
tags:
- idea
summary: Participate an idea.
operationId: /idea/participate
parameters:
- name: id
in: query
description: Idea ID.
schema:
type: string
required: true
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
responses:
200:
description: Text
content:
application/json:
schema:
type: object
properties:
success:
description: Success status.
type: boolean
example: true
status:
description: Participation status.
type: boolean
example: true
message:
type: string
example: You are participating in the idea!
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Feedback not found.
500:
description: Server Error.
/file/index:
get:
tags:
- file
summary: index user files.
operationId: /file/index
parameters:
- name: file_type
in: query
example: image
schema:
type: string
enum:
- image
- video
- document
- archive
- other
- encrypted
- name: search
in: query
description: Query string
schema:
type: string
example: Some text
- name: per-page
in: query
description: How many items return in one page (default 20).
schema:
type: string
- name: page
in: query
description: Current page.
schema:
type: string
- name: sort
description: Sorting fields and directions (example, -created_at, +name)
in: query
schema:
type: string
enum:
- name
- ext
- file_type
- mime_type
- created_at
responses:
200:
description: File objects.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/fileIndex'
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Unauthorized.
500:
description: Server Error.
/file/count:
get:
tags:
- file
summary: count user files.
operationId: /file/count
parameters:
- name: search
in: query
description: Query string
schema:
type: string
example: Some text
responses:
200:
description: File objects.
content:
application/json:
schema:
type: object
properties:
image:
type: integer
default: 320
video:
type: integer
default: 10
document:
type: integer
default: 10
archive:
type: integer
default: 0
other:
type: integer
default: 0
encrypted:
type: integer
default: 0
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Unauthorized.
500:
description: Server Error.
/user-status/index:
get:
tags:
- user-status
summary: User status index.
operationId: /user-status/index
parameters:
- name: name
in: query
description: Название статуса (like).
schema:
type: string
example: В отпуске
- name: slug
in: query
description: Уникальный именуемый идентификатор статуса (equals).
schema:
type: string
example: vacation
- name: is_custom
in: query
description: Статус создан администратором.
schema:
type: boolean
example: 1
- name: is_editable
in: query
description: Возможность редактирования статуса.
schema:
type: boolean
example: 1
- name: is_expire
in: query
description: Статус со сроком действия.
schema:
type: boolean
example: 1
- name: display_in_modal
in: query
description: Запрашивать статус в модальном окне запроса статуса.
schema:
type: boolean
example: 1
responses:
200:
description: Returns pagination and array of user status objects.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/userStatus'
_meta:
$ref: '#/components/schemas/_meta'
400:
description: Bad Request.
401:
description: Unauthorized.
500:
description: Server Error.
/user-status/view:
get:
tags:
- user-status
summary: User status view.
operationId: /user-status/view
parameters:
- name: id
in: query
description: User status ID.
schema:
type: string
required: true
example: b726280a-2be6-4e62-ab24-1736389c6474
responses:
200:
description: User status detailed object.
content:
application/json:
schema:
$ref: '#/components/schemas/userStatus'
400:
description: Bad Request.
401:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/user-status/set:
post:
tags:
- user-status
summary: Set user statuses.
operationId: /user-status/set
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/userStatusSetRequestBody'
responses:
200:
description: Result as boolean value.
content:
application/json:
schema:
type: boolean
400:
description: Bad Request.
401:
description: Unauthorized.
500:
description: Server Error.
/comment/statuses:
get:
tags:
- comment
summary: Comment statuses list. Role permissions are not required.
operationId: /comment/statuses
responses:
200:
description: Comment statuses object.
content:
application/json:
schema:
$ref: '#/components/schemas/commentStatuses'
401:
description: Unauthorized.
403:
description: Unauthorized.
500:
description: Server Error.
/comment/index:
get:
tags:
- comment
summary: Comment index. Access allowed with "Moderate comments" (content-moderate-comments) role permission.
operationId: /comment/index
parameters:
- name: created_at
in: query
description: Comment creation date range.
schema:
type: string
example: 2023-01-01|2023-01-01
- name: entity_id
in: query
description: Entity ID. You can pass multiple identifiers separated by commas.
schema:
type: string
example: 1
- name: reference_id
in: query
description: Reference ID. You can pass multiple identifiers separated by commas.
schema:
type: string
format: uuid
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
- name: user_id
in: query
description: User ID. You can pass multiple identifiers separated by commas.
schema:
type: string
format: uuid
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
- name: status_id
in: query
description: Comment status ID. You can pass multiple identifiers separated by commas.
schema:
type: string
example: 1
responses:
200:
description: Returns pagination and array of comment objects.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/commentIndex'
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
400:
description: Bad Request.
401:
description: Unauthorized.
500:
description: Server Error.
/comment/view:
get:
tags:
- comment
summary: View comment data. Returns comments data only in the "Published" status (STATUS_APPROVED). Access allowed with "See comments" (show-content-comments) role permission.
operationId: /comment/view
parameters:
- name: id
in: query
description: Comment ID.
schema:
type: string
format: uuid
required: true
example: b726280a-2be6-4e62-ab24-1736389c6474
responses:
200:
description: Comment object.
content:
application/json:
schema:
$ref: '#/components/schemas/commentView'
400:
description: Bad Request.
401:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/comment/get:
get:
tags:
- comment
summary: Retrieving a list of top-level comments with replies in the "Published" status (STATUS_APPROVED) and sorted by creation date without pagination. Access allowed with "See comments" (show-content-comments) role permission.
operationId: /comment/get
parameters:
- name: entity_id
in: query
description: Entity ID.
schema:
type: string
example: 1
- name: reference_id
in: query
description: Reference ID.
schema:
type: string
format: uuid
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
responses:
200:
description: Comment object.
content:
application/json:
schema:
$ref: '#/components/schemas/commentGet'
400:
description: Bad Request.
401:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/comment/add:
post:
tags:
- comment
summary: Add a new comment. Access allowed with "Leave comments" (content-comments-post) role permission.
operationId: /comment/add
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/commentAddRequestBody'
responses:
200:
description: Text
content:
application/json:
schema:
$ref: '#/components/schemas/commentAddResponse'
400:
description: Bad Request.
401:
description: Unauthorized.
500:
description: Server Error.
/comment/delete:
delete:
tags:
- comment
summary: Comment safe delete (changes comment status to STATUS DELETED). Access is allowed for comment author or users with "Moderate comments" role permission (content-moderate-comments).
operationId: /comment/delete
parameters:
- name: id
in: query
description: Comment ID.
schema:
type: string
format: uuid
required: true
example: b726280a-2be6-4e62-ab24-1736389c6474
responses:
200:
description: Result as boolean value.
content:
application/json:
schema:
type: boolean
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Forbidden.
404:
description: Not found.
500:
description: Server Error.
/category/thumb-style:
get:
tags:
- category
summary: Список вариантов отображения превью категории.
operationId: /category/thumb-style
responses:
200:
description: Список категорий.
content:
application/json:
schema:
$ref: '#/components/schemas/typeIdInteger'
401:
description: Unauthorized.
403:
description: Forbidden.
500:
description: Internal Server Error.
/category/content-style:
get:
tags:
- category
summary: Список вариантов отображения содержимого категории.
operationId: /category/content-style
responses:
200:
description: Список категорий.
content:
application/json:
schema:
$ref: '#/components/schemas/typeIdInteger'
401:
description: Unauthorized.
403:
description: Forbidden.
500:
description: Internal Server Error.
/category/root:
get:
tags:
- category
summary: Список корневых категорий.
operationId: /category/root
responses:
200:
description: Список категорий.
content:
application/json:
schema:
$ref: '#/components/schemas/categoryRoot'
401:
description: Unauthorized.
403:
description: Forbidden.
500:
description: Internal Server Error.
/category/index:
get:
tags:
- category
summary: Список категорий.
operationId: /category/index
parameters:
- name: root_id
in: query
description: Category root ID.
required: true
schema:
type: string
responses:
200:
description: Returns pagination and array of objects.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/category'
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Forbidden. Возвращается если tenantInfo.modules.shop.isModuleEnabled равен false.
500:
description: Internal Server Error.
/wallet/info:
get:
tags:
- wallet
summary: Данные кошелька пользователя. Требуется право доступа wallet "Кошелек".
operationId: /wallet/info
responses:
200:
description: Список категорий.
content:
application/json:
schema:
$ref: '#/components/schemas/wallet'
401:
description: Unauthorized.
403:
description: Forbidden.
500:
description: Internal Server Error.
/wallet-transaction/index:
get:
tags:
- wallet
summary: Получение списка транзакций кошельков
parameters:
- name: created_at
in: query
schema:
type: string
description: Дата или диапазон дат транзакции.
- name: wallet_transaction_type
in: query
schema:
$ref: '#/components/schemas/walletTransactionType'
description: Тип транзакции
- name: wallet_operation_type
in: query
schema:
$ref: '#/components/schemas/walletOperationType'
description: Тип операции кошелька
- name: sender_wallet_id
in: query
schema:
oneOf:
- type: string
format: uuid
- type: array
items:
type: string
format: uuid
description: UUID кошелька отправителя (один или несколько)
- name: recipient_wallet_id
in: query
schema:
oneOf:
- type: string
format: uuid
- type: array
items:
type: string
format: uuid
description: UUID кошелька получателя (один или несколько)
- name: sender_user_id
in: query
schema:
oneOf:
- type: string
format: uuid
- type: array
items:
type: string
format: uuid
description: UUID пользователя-отправителя (один или несколько)
- name: recipient_user_id
in: query
schema:
oneOf:
- type: string
format: uuid
- type: array
items:
type: string
format: uuid
description: UUID пользователя-получателя (один или несколько)
- name: entity_id
in: query
schema:
type: number
description: ID связанной сущности
- name: reference_id
in: query
schema:
type: string
format: uuid
description: Внешний идентификатор транзакции
- name: sender_user_list_key
in: query
schema:
type: string
format: uuid
description: Ключ списка пользователей отправителей
- name: recipient_user_list_key
in: query
schema:
type: string
format: uuid
description: Ключ списка пользователей получателей
responses:
200:
description: Список транзакций кошельков
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/dataProviderResponse'
- type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/walletTransaction'
401:
description: Unauthorized.
403:
description: Forbidden.
422:
description: Data validation failed.
500:
description: Internal Server Error.
/wallet-transaction/gift:
post:
summary: Отправка подарка пользователю
tags:
- wallet
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- user_id
- amount
- comment
properties:
user_id:
type: string
format: uuid
description: UUID пользователя, которому отправляется подарок
example: 'c0a80101-0000-4000-a000-000000000001'
amount:
type: integer
minimum: 1
description: Сумма подарка
example: 50
comment:
type: string
maxLength: 400
description: Комментарий к транзакции
example: 'Поздравляю с достижением!'
responses:
200:
description: Результат отправки подарка
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/httpJsonResponse'
401:
description: Unauthorized.
403:
description: Forbidden.
422:
description: Data validation failed.
500:
description: Internal Server Error.
/shop/product/sort-type:
get:
tags:
- shop
summary: Список типов сортировки товара на странице витрины магазина.
operationId: /shop/product/sort-type
responses:
200:
description: Список типов сортировки товара.
content:
application/json:
schema:
$ref: '#/components/schemas/shopProductSortType'
401:
description: Unauthorized.
403:
description: Forbidden. Возвращается если tenantInfo.modules.shop.isModuleEnabled равен false.
500:
description: Internal Server Error.
/shop/product/index:
get:
tags:
- shop
summary: Список товаров.
operationId: /shop/product/index
parameters:
- name: sort
in: query
description: Тип сортировки товара.
schema:
type: string
- name: title
in: query
description: Название товара.
schema:
type: string
- name: category_id
in: query
description: Идентификатор категории.
schema:
type: string
format: uuid
example: 76080562-3a5e-4826-8799-7638b775bcd0
responses:
200:
description: Returns pagination and array of objects.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/shopProductIndex'
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Forbidden. Возвращается если tenantInfo.modules.shop.isModuleEnabled равен false.
500:
description: Internal Server Error.
/shop/product/view:
get:
tags:
- shop
summary: Детали товара. Нужно обязательно передать id либо option_id товара.
operationId: /shop/product/view
parameters:
- name: id
in: query
description: Product ID.
required: true
schema:
type: string
format: uuid
example: 76080562-3a5e-4826-8799-7638b775bcd0
- name: option_id
in: query
description: Product option ID.
required: true
schema:
type: string
format: uuid
example: e25ea810-bbc2-4b1e-84ca-8ed56d4594ec
responses:
200:
description: Product object.
content:
application/json:
schema:
$ref: '#/components/schemas/shopProductView'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Forbidden. Возвращается если tenantInfo.modules.shop.isModuleEnabled равен false.
404:
description: Not found.
500:
description: Internal Server Error.
/shop/order/statuses:
get:
tags:
- shop
summary: Получение списка статусов заказа.
operationId: /shop/order/statuses
responses:
200:
description: Список статусов заказа.
content:
application/json:
schema:
$ref: '#/components/schemas/status'
401:
description: Unauthorized.
403:
description: Forbidden. Возвращается если tenantInfo.modules.shop.isModuleEnabled равен false.
500:
description: Internal Server Error.
/shop/order/delivery-addresses:
get:
tags:
- shop
summary: Получение списка адресов для доставки заказа.
operationId: /shop/order/delivery-addresses
responses:
200:
description: Список адресов для доставки заказа.
content:
application/json:
schema:
$ref: '#/components/schemas/shopOrderDeliveryAddresses'
401:
description: Unauthorized.
403:
description: Forbidden. Возвращается если tenantInfo.modules.shop.isModuleEnabled равен false.
500:
description: Internal Server Error.
/shop/order/index:
get:
tags:
- shop
summary: Список заказов.
operationId: /shop/order/index
parameters:
- name: num
in: query
description: Order number.
schema:
type: string
example: 1
- name: created_at
in: query
description: Creation date range.
schema:
type: string
example: 2024-01-01|2024-01-01
- name: order_status_id
in: query
description: Order status ID.
schema:
type: string
example: 1
responses:
200:
description: Returns pagination and array of objects.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/shopOrderIndex'
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Forbidden. Возвращается если tenantInfo.modules.shop.isModuleEnabled равен false.
500:
description: Internal Server Error.
/shop/order/view:
get:
tags:
- shop
summary: Данные заказа.
operationId: /shop/order/view
parameters:
- name: id
in: query
description: Order ID.
required: true
schema:
type: string
format: uuid
example: 0310635d-2c72-4219-9038-bf2ac8f14206
responses:
200:
description: Order object.
content:
application/json:
schema:
$ref: '#/components/schemas/shopOrderView'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Forbidden. Возвращается если tenantInfo.modules.shop.isModuleEnabled равен false.
404:
description: Not found.
500:
description: Internal Server Error.
/shop/order/checkout:
post:
tags:
- shop
summary: Создание заказа.
operationId: /shop/order/checkout
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/shopOrderCheckoutRequestBody'
responses:
200:
description: Text
content:
application/json:
schema:
$ref: '#/components/schemas/shopOrderCheckoutResponse'
400:
description: Bad Request.
401:
description: Unauthorized.
500:
description: Server Error.
/shop/order/position-remove:
post:
tags:
- shop
summary: Удаление позиции заказа.
operationId: /shop/order/position-remove
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/shopOrderPositionRemoveRequestBody'
responses:
200:
description: Return success result.
content:
application/json:
schema:
$ref: '#/components/schemas/shopOrderPositionRemoveResponse'
400:
description: Bad Request.
401:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/shop/order/position-restore:
post:
tags:
- shop
summary: Восстановить удаленную позицию заказа.
operationId: /shop/order/position-restore
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/shopOrderPositionRestoreRequestBody'
responses:
200:
description: Return success result.
content:
application/json:
schema:
$ref: '#/components/schemas/shopOrderPositionRestoreResponse'
400:
description: Bad Request.
401:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/shop/order/position-change-comment:
post:
tags:
- shop
summary: Изменить комментарий к позиции заказа.
operationId: /shop/order/position-change-comment
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/shopOrderPositionChangeCommentRequestBody'
responses:
200:
description: Return success result.
content:
application/json:
schema:
$ref: '#/components/schemas/shopOrderPositionChangeCommentResponse'
400:
description: Bad Request.
401:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/shop/order/cancel:
post:
tags:
- shop
summary: Отменить заказ.
operationId: /shop/order/cancel
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/shopOrderCancelRequestBody'
responses:
200:
description: Return success result.
content:
application/json:
schema:
$ref: '#/components/schemas/shopOrderCancelResponse'
400:
description: Bad Request.
401:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/duty/index:
get:
tags:
- Duty
summary: Список доступных услуг
operationId: /duty/index
parameters:
- name: id
in: query
description: Идентификатор (UUID), либо их массив через запятую
required: false
schema:
oneOf:
- type: string
format: uuid
- type: array
items:
type: string
format: uuid
- name: without_added
in: query
description: Исключить из выдачи уже добавленные к пользователю услуги
required: false
schema:
type: integer
enum: [ 0, 1 ]
- name: not_id
in: query
description: Идентификатор (UUID), либо их массив через запятую
required: false
schema:
oneOf:
- type: string
format: uuid
- type: array
items:
type: string
format: uuid
- name: user_id
in: query
description: Идентификатор пользователя (UUID)
required: false
schema:
type: string
format: uuid
- name: name
in: query
description: Поиск по имени услуги
schema:
type: string
maxLength: 64
responses:
200:
description: Список доступных услуг
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/dataProviderResponse'
- type: object
properties:
data:
$ref: '#/components/schemas/dutyItem'
400:
description: Bad Request.
401:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/user-duty/index:
get:
tags:
- Duty
summary: Список услуг, привязанных к пользователю
operationId: /user-duty/index
parameters:
- name: id
in: query
description: Идентификатор (UUID), либо их массив через запятую
required: false
schema:
oneOf:
- type: string
format: uuid
- type: array
items:
type: string
format: uuid
- name: not_id
in: query
description: Идентификатор (UUID), либо их массив через запятую
required: false
schema:
oneOf:
- type: string
format: uuid
- type: array
items:
type: string
format: uuid
- name: name
in: query
description: Поиск по имени услуги
schema:
type: string
maxLength: 64
responses:
200:
description: Список доступных услуг
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/dataProviderResponse'
- type: object
properties:
data:
$ref: '#/components/schemas/dutyItem'
400:
description: Bad Request.
401:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/user-duty/add:
post:
tags:
- Duty
summary: Привязка услуг к пользователю
operationId: /user-duty/index
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
id:
description: Идентификатор (UUID), либо их массив
oneOf:
- type: string
format: uuid
- type: array
items:
type: string
format: uuid
required:
- id
responses:
200:
description: Ответ сервера
content:
application/json:
schema:
$ref: '#/components/schemas/httpJsonResponse'
400:
description: Bad Request.
401:
description: Unauthorized.
422:
description: Data validation failed.
500:
description: Server Error.
/user-duty/delete:
post:
tags:
- Duty
summary: Удаление привязанных услуг у пользователя
operationId: /user-duty/delete
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
id:
description: Идентификатор (UUID), либо их массив
oneOf:
- type: string
format: uuid
- type: array
items:
type: string
format: uuid
required:
- id
responses:
200:
description: Ответ сервера
content:
application/json:
schema:
$ref: '#/components/schemas/httpJsonResponse'
400:
description: Bad Request.
401:
description: Unauthorized.
422:
description: Data validation failed.
500:
description: Server Error.
/newbies/index:
get:
tags:
- MdWidgets
summary: Список новичков
operationId: /newbies/index
parameters:
- $ref: '#/components/parameters/boardDepartmentId'
- $ref: '#/components/parameters/userListKey'
- $ref: '#/components/parameters/boardWithFavorites'
- $ref: '#/components/parameters/boardDateTypeParam'
- $ref: '#/components/parameters/boardDateDayParam'
- $ref: '#/components/parameters/boardDateWeekParam'
- $ref: '#/components/parameters/boardDateMonthParam'
- $ref: '#/components/parameters/boardDateYearParam'
responses:
200:
description: MdWidget Items.
content:
application/json:
schema:
type: object
properties:
success:
description: Result status.
type: boolean
example: true
message:
description: Message displayed to user (localized).
type: string
default: null
example: ''
errors:
description: Array of validation errors.
type: array
default: null
data:
type: array
items:
type: object
allOf:
- $ref: '#/components/schemas/mdWidgetUserItem'
- type: object
properties:
itemDate:
description: Date Birthday
type: string
format: date
example: 18 july
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
_periodUrls:
$ref: '#/components/schemas/_periodUrls'
periodUrls:
$ref: '#/components/schemas/_periodUrls'
currentPeriod:
$ref: '#/components/schemas/currentPeriod'
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
500:
description: Server Error.
/birthday/index:
get:
tags:
- MdWidgets
summary: Список дней рождений
operationId: /birthday/index
parameters:
- $ref: '#/components/parameters/boardDepartmentId'
- $ref: '#/components/parameters/userListKey'
- $ref: '#/components/parameters/boardWithFavorites'
- $ref: '#/components/parameters/boardDateTypeParam'
- $ref: '#/components/parameters/boardDateDayParam'
- $ref: '#/components/parameters/boardDateWeekParam'
- $ref: '#/components/parameters/boardDateMonthParam'
- $ref: '#/components/parameters/boardDateYearParam'
responses:
200:
description: MdWidget Items.
content:
application/json:
schema:
type: object
properties:
success:
description: Result status.
type: boolean
example: true
message:
description: Message displayed to user (localized).
type: string
default: null
example: ''
errors:
description: Array of validation errors.
type: array
default: null
data:
type: array
items:
type: object
allOf:
- $ref: '#/components/schemas/mdWidgetUserItem'
- type: object
properties:
itemDate:
description: Employment date
type: string
format: date
example: 1 july
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
_periodUrls:
$ref: '#/components/schemas/_periodUrls'
periodUrls:
$ref: '#/components/schemas/_periodUrls'
currentPeriod:
$ref: '#/components/schemas/currentPeriod'
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
500:
description: Server Error.
/experienced/index:
get:
tags:
- MdWidgets
summary: Список годовщин по стажу в компании
operationId: /experienced/index
parameters:
- $ref: '#/components/parameters/boardDepartmentId'
- $ref: '#/components/parameters/userListKey'
- $ref: '#/components/parameters/boardWithFavorites'
- $ref: '#/components/parameters/boardDateTypeParam'
- $ref: '#/components/parameters/boardDateDayParam'
- $ref: '#/components/parameters/boardDateWeekParam'
- $ref: '#/components/parameters/boardDateMonthParam'
- $ref: '#/components/parameters/boardDateYearParam'
responses:
200:
description: MdWidget Items.
content:
application/json:
schema:
properties:
success:
description: Result status.
type: boolean
example: true
message:
description: Message displayed to user (localized).
type: string
default: null
example: ''
errors:
description: Array of validation errors.
type: array
default: null
data:
type: array
items:
type: object
allOf:
- $ref: '#/components/schemas/mdWidgetUserItem'
- type: object
properties:
itemDate:
description: Work anniversary date
type: string
format: date
example: 18 july
data:
type: object
properties:
date:
description: Work anniversary date
type: string
format: date
example: 18 july
experience:
description: Number of years of experience
type: string
format: date
example: 18 july
experienceFormat:
description: Number of years of experience formatted
type: string
format: date
example: 2 year
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
_periodUrls:
$ref: '#/components/schemas/_periodUrls'
periodUrls:
$ref: '#/components/schemas/_periodUrls'
currentPeriod:
$ref: '#/components/schemas/currentPeriod'
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
500:
description: Server Error.
/timezone/index:
get:
tags:
- timezone
summary: Timezone index.
operationId: /timezone/index
parameters:
- name: id
in: query
description: Идентификатор
schema:
type: string
example: Africa
- name: name
in: query
description: Название
schema:
type: string
example: Москва
responses:
200:
description: Timezone objects.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/timezone'
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/tag/index:
get:
tags:
- tag
summary: Список тегов
description: |
Возвращает список тегов по указанным фильтрам.
Если передан один из параметров (root_id, category_id, use_category_recursion) то будут выбраны только те теги которые используются в элементах текущего каталога с проверкой прав на просмотр этих элементов для пользователя. Данный функционал работает с каталогами страниц, обучений и процессов.
operationId: /tag/index
parameters:
- name: id
in: query
description: Можно передать несколько id, разделенных запятыми.
schema:
type: string
format: uuid
example: "0b6a186a-95b8-4c89-8e69-6b49f12d1474"
- name: name
in: query
description: Название
schema:
type: string
example: Tag 1
- name: entity_id
in: query
schema:
type: number
enum:
- 50
- 100
- 300
- 375
- 500
- 550
description: >
Entity ID - Идентификатор сущности. Можно передать несколько идентификаторов, разделенных запятыми.
* `50` - Category (Категории)
* `100` - Article (Новости/Страницы)
* `300` - LmsContent (Обучения)
* `375` - Book (Книги)
* `500` - WfWorkflow (Процессы)
* `550` - Training (Тренинги)
- name: root_id
in: query
description: >
Category Root ID - Тип каталога
* `1` - Каталог страниц
* `2` - Каталог обучения
* `4` - Каталог процессов
schema:
type: number
enum:
- 1
- 2
- 3
- name: category_id
in: query
description: Идентификатор категории каталога, с которой начать выбор тегов
schema:
type: string
format: uuid
example: "0b6a186a-95b8-4c89-8e69-6b49f12d1474"
- name: use_category_recursion
in: query
description: Если true - то теги будут выбраны для всех вложенных категорий, начиная с указанного Category_id, в ином случае будут показаны теги только для Category_id
schema:
type: boolean
format: true
- name: sort
description: Сортировка тегов
in: query
schema:
type: string
enum:
- name
- name: per-page
in: query
description: Сколько элементов возвращается на одной странице (по умолчанию 50).
schema:
type: string
- name: page
in: query
description: Текущая страница
schema:
type: string
responses:
200:
description: Timezone objects.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/tag'
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/tag/items:
get:
tags:
- tag
summary: Список тегов
description: |
Возвращает список тегов по указанным фильтрам.
Если передан один из параметров (root_id, category_id, use_category_recursion) то будут выбраны только те теги которые используются в элементах текущего каталога с проверкой прав на просмотр этих элементов для пользователя. Данный функционал работает с каталогами страниц, обучений и процессов.
operationId: /tag/items
parameters:
- name: id
in: query
description: Можно передать несколько id, разделенных запятыми.
schema:
type: string
format: uuid
example: "0b6a186a-95b8-4c89-8e69-6b49f12d1474"
- name: name
in: query
description: Название
schema:
type: string
example: Tag 1
- name: entity_id
in: query
schema:
type: number
enum:
- 50
- 100
- 300
- 375
- 500
- 550
description: >
Entity ID - Идентификатор сущности. Можно передать несколько идентификаторов, разделенных запятыми.
* `50` - Category (Категории)
* `100` - Article (Новости/Страницы)
* `300` - LmsContent (Обучения)
* `375` - Book (Книги)
* `500` - WfWorkflow (Процессы)
* `550` - Training (Тренинги)
- name: root_id
in: query
description: >
Category Root ID - Тип каталога
* `1` - Каталог страниц
* `2` - Каталог обучения
* `4` - Каталог процессов
schema:
type: number
enum:
- 1
- 2
- 3
- name: category_id
in: query
description: Идентификатор категории каталога, с которой начать выбор тегов
schema:
type: string
format: uuid
example: "0b6a186a-95b8-4c89-8e69-6b49f12d1474"
- name: use_category_recursion
in: query
description: Если true - то теги будут выбраны для всех вложенных категорий, начиная с указанного Category_id, в ином случае будут показаны теги только для Category_id
schema:
type: boolean
format: true
- name: sort
description: Сортировка тегов
in: query
schema:
type: string
enum:
- name
- name: per-page
in: query
description: Сколько элементов возвращается на одной странице (по умолчанию 50).
schema:
type: string
- name: page
in: query
description: Текущая страница
schema:
type: string
responses:
200:
description: Timezone objects.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/tag'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/survey/index:
get:
tags:
- survey
summary: Доступные опросы
operationId: /survey/index
parameters:
- name: sort
description: Сортировка опросов
in: query
schema:
type: string
enum:
- name
- name: name
in: query
description: Название
schema:
type: string
- name: type_id
in: query
description: >
Тип опроса, можно перечислять через запятую
* `1` - Обычный
* `2` - ICSI
* `360` - ICSI
* `6` - Обратная связь
schema:
type: number
enum:
- 1
- 2
- 360
- 6
- name: survey_status_id
in: query
description: >
Статус опроса, можно перечислять через запятую
* `1` - Завершен
* `2` - Запущен
schema:
type: number
enum:
- 1
- 2
responses:
200:
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/survey'
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/survey-assignment/index:
get:
tags:
- survey
summary: Назначенные опросы
operationId: /survey-assignment/index
parameters:
- name: sort
description: Сортировка назначений
in: query
schema:
type: string
enum:
- survey.name
- survey.available_date
- surveyTarget
- created_at
- finished_at
- started_at
- name: survey_name
in: query
description: Название опроса
schema:
type: string
- name: type_id
in: query
description: >
Тип назначения
* `1` - Вручную
* `2` - Самоназначение
schema:
type: number
enum:
- 1
- 3
- name: survey_type_id
in: query
description: >
Тип опроса, можно перечислять через запятую
* `1` - Обычный
* `2` - ICSI
* `360` - ICSI
* `6` - Обратная связь
schema:
type: string
enum:
- 1
- 2
- 360
- 6
- name: survey_assignment_status_id
in: query
description: >
Статус прохождения опроса, можно перечислять через запятую
* `1` - Завершен
* `2` - Не пройден"
* `3` - В процессе"
schema:
type: number
enum:
- 1
- 2
- 3
- name: survey_target_user_id
in: query
description: "Id пользователя на которого запущен опрос"
schema:
type: string
format: uuid
- name: allow
in: query
description: "Доступные для прохождения назначенные опросы"
schema:
type: boolean
format: integer
- name: is_finished
in: query
description: "Завершенные прохождения"
schema:
type: boolean
format: integer
responses:
200:
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/surveyAssignment'
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/survey-assignment/set-anonymous:
post:
tags:
- survey
summary: Смена анонимности в назначенном опросе. Можно менять если в survey.is_choice_anonymous = true
operationId: /survey-assignment/set-anonymous
parameters:
- name: id
in: query
description: id назначения
schema:
type: string
format: uuid
requestBody:
required: true
content:
application/json:
schema:
type: boolean
responses:
200:
content:
application/json:
schema:
type: object
properties:
success:
description: Result status.
type: boolean
example: true
message:
type: object
default: null
properties:
type: string
text: string
errors:
description: Array of validation errors.
type: array
default: null
data:
type: object
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Forbidden.
404:
description: Not found.
500:
description: Server Error.
/survey-report/360:
get:
tags:
- survey
summary: Список отчетов 360
operationId: /survey-report/360
responses:
200:
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
cabinetReport360Url:
type: string
description: "Ссылка для просмотра отчета"
survey:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
default: "Main survey"
description: "Название"
available_date:
type: string
format: date_time
description: "Дата доступа"
deadline_at:
type: string
format: date_time
description: "Дата дедлайна"
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/instruction/index:
get:
tags:
- Instruction
summary:
Ссылки на инструкции
parameters:
- name: langId
description: "Id языка локализации. При отсутствии параметра будет использоваться langId пользователя"
in: query
schema:
type: string
responses:
200:
description: "Ключи иструкций со ссылками"
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
type: object
properties:
key:
type: string
description: "Ключ иструкции"
value:
type: string
format: link
description: "Ссылка на инструкцию"
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
/instruction/view/{key}:
get:
tags:
- Instruction
summary:
Ссылка на иструкцию по ключу
parameters:
- name: key
description: "Ключ ссылки на инструкцию. В большинстве случаев соответствует пути в web-версии, напр /core/user/view -> CoreUserView"
in: path
schema:
type: string
responses:
200:
description: Ключи иструкции со ссылкой
content:
application/json:
schema:
type: object
properties:
key:
type: string
description: "Ключ иструкции"
value:
type: string
format: link
description: "Ссылка на инструкцию"
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
/goal/my:
get:
tags:
- goal
summary: Список целей пользователя
parameters:
- $ref: '#/components/parameters/title'
- $ref: '#/components/parameters/goalIntervalTypeId'
- $ref: '#/components/parameters/goalStatusId'
- $ref: '#/components/parameters/goalDate'
- $ref: '#/components/parameters/goalMonth'
- $ref: '#/components/parameters/goalQuarter'
- $ref: '#/components/parameters/goalYear'
- $ref: '#/components/parameters/noRemoved'
- $ref: '#/components/parameters/noDraft'
- $ref: '#/components/parameters/goalParentId'
responses:
$ref: '#/components/responses/GoalActionResponse'
/goal/supervise:
get:
tags:
- goal
summary: Курируемые цели пользователя
parameters:
- $ref: '#/components/parameters/title'
- $ref: '#/components/parameters/goalStatusId'
- $ref: '#/components/parameters/goalIntervalTypeId'
- $ref: '#/components/parameters/goalDate'
- $ref: '#/components/parameters/goalMonth'
- $ref: '#/components/parameters/goalQuarter'
- $ref: '#/components/parameters/goalYear'
- $ref: '#/components/parameters/goalYear'
- $ref: '#/components/parameters/noRemoved'
- $ref: '#/components/parameters/noDraft'
- $ref: '#/components/parameters/goalParentId'
responses:
$ref: '#/components/responses/GoalActionResponse'
/goal/archive:
get:
tags:
- goal
summary: Архив целей пользователя
parameters:
- $ref: '#/components/parameters/title'
- $ref: '#/components/parameters/goalStatusId'
- $ref: '#/components/parameters/goalDate'
- $ref: '#/components/parameters/goalMonth'
- $ref: '#/components/parameters/goalQuarter'
- $ref: '#/components/parameters/goalYear'
- $ref: '#/components/parameters/noRemoved'
- $ref: '#/components/parameters/noDraft'
- $ref: '#/components/parameters/goalParentId'
- $ref: '#/components/parameters/goalIntervalTypeId'
responses:
$ref: '#/components/responses/GoalActionResponse'
/goal/view:
get:
tags:
- goal
summary: Просмотр цели
parameters:
- name: id
in: query
schema:
type: string
responses:
200:
description: Список целей
content:
application/json:
schema:
type: object
properties:
data:
type: object
allOf:
- $ref: '#/components/schemas/GoalItem'
- type: object
properties:
content:
type: string
goalLog:
type: object
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/goal/edit:
post:
tags:
- goal
summary: Создание/редактирование цели
operationId: /goal/edit
parameters:
- name: id
in: query
description: Goal ID.
schema:
type: string
required: false
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GoalItem'
responses:
200:
description: Goal object.
content:
application/json:
schema:
$ref: '#/components/schemas/GoalItem'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Feedback not found.
500:
description: Server Error.
/goal/submit:
post:
tags:
- goal
summary: Отправить цели на согласование
operationId: /goal/submit
description: Можно передавать массив целей, обязательным полем является только id. Остальные поля, если указаны, будут использованы для обновления целей перед отправкой на согласование.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/GoalItem'
responses:
$ref: '#/components/responses/GoalActionResponse'
/goal/approve:
post:
tags:
- goal
summary: Одобрить цели
description: Можно передавать массив целей, обязательным полем является только id. Остальные поля, если указаны, будут использованы для обновления целей перед одобрением цели куратором.
operationId: /goal/approve
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/GoalItem'
responses:
$ref: '#/components/responses/GoalActionResponse'
/goal/reject:
post:
tags:
- goal
summary: Отклонить цели
description: Можно передавать массив целей, обязательным полем является только id. Остальные поля, если указаны, будут использованы для обновления целей перед отклонением цели.
operationId: /goal/reject
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/GoalItem'
responses:
$ref: '#/components/responses/GoalActionResponse'
/goal/finish:
post:
tags:
- goal
summary: Завершить цели
description: Можно передавать массив целей, обязательным полем является только id. Остальные поля, если указаны, будут использованы для обновления целей перед завершением.
operationId: /goal/finish
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/GoalItem'
responses:
$ref: '#/components/responses/GoalActionResponse'
/goal/remove:
post:
tags:
- goal
summary: Удалить цели
operationId: /goal/remove
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
id:
type: array
items:
type: string
format: uuid
responses:
$ref: '#/components/responses/GoalActionResponse'
/goal/bind:
post:
tags:
- goal
summary: Привязать цели
operationId: /goal/bind
parameters:
- name: id
in: query
description: ID родительской цели
schema:
type: string
required: false
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
id:
type: array
items:
type: string
format: uuid
description: Цели которые необходимо привязать
responses:
$ref: '#/components/responses/GoalActionResponse'
/goal/unbind:
post:
tags:
- goal
summary: Отвязать цели
description: Необходимо передавать id дочерних целей
operationId: /goal/unbind
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
id:
type: array
items:
type: string
format: uuid
responses:
$ref: '#/components/responses/GoalActionResponse'
/goal-report/users:
post:
tags:
- goalReport
summary: Отчет по сотрудникам
operationId: goalReportUsers
requestBody:
content:
application/json:
schema:
type: object
properties:
department_id:
description: ID отделов (может быть несколько)
type: array
items:
type: string
goal_interval_type_id:
$ref: '#/components/parameters/goalIntervalTypeId'
period_goal_date:
type: array
items:
type: string
format: date
minItems: 2
maxItems: 2
description: Массив из двух дат, начала и конца периода
searchInAllSubDepartments:
type: integer
enum: [ 0, 1 ]
description: Поиск по всем вложенным отделам
user_id:
type: array
items:
type: string
format: uuid
description: Сотрудник, можно список через запятую
type:
type: string
enum: [ result, rating ]
description: Переод отчета
period:
type: string
enum: [ month, quarter, half_year, year ]
description: Переод отчета
responses:
200:
description: Успешный ответ с отчётом по сотрудникам
content:
application/json:
schema:
type: object
properties:
params:
type: object
description: Параметры отчета
properties:
years:
type: array
items:
type: integer
description: Список лет, по которым строится отчет
period:
type: string
description: Периодичность отчета (например, "month")
periods:
type: object
description: Сопоставление номера периода с названием (локализованным)
additionalProperties:
type: string
data:
type: array
description: Список сотрудников с отчетными данными
items:
type: object
properties:
user:
type: object
description: Информация о сотруднике
properties:
id:
type: string
format: uuid
description: Идентификатор сотрудника
name:
type: string
description: Полное имя сотрудника
faceUrl:
type: string
years:
type: object
description: Данные по годам
additionalProperties:
type: object
properties:
periods:
type: object
description: Отчетные данные по периодам внутри года
additionalProperties:
type: object
properties:
scaled:
type: string
scaledString:
type: string
count:
type: integer
description: Количество целей
_meta:
$ref: '#/components/schemas/_meta'
422:
description: Bad Request
403:
description: Unauthorized
500:
description: Server Error
/goal-report/tree:
get:
tags:
- goalReport
summary: Отчет по целям "Дерево целей"
operationId: goalReportTree
parameters:
- $ref: '#/components/parameters/goalStatusId'
- $ref: '#/components/parameters/goalIntervalTypeId'
- $ref: '#/components/parameters/goalYear'
- $ref: '#/components/parameters/goalMonth'
- $ref: '#/components/parameters/goalQuarter'
- $ref: '#/components/parameters/title'
- name: user_id
in: query
schema:
type: string
example: 9f7063d1-959e-4c32-b186-313576375739
description: ID сотрудников "Чья цель", можно перечислять через запятую
- name: supervisor_id
in: query
schema:
type: string
example: 9f7063d1-959e-4c32-b186-313576375739
description: ID сотрудников "Куратор", можно перечислять через запятую
responses:
200:
description: Описание
content:
application/json:
schema:
$ref: '#/components/responses/GoalActionResponse'
422:
description: Bad Request
403:
description: Unauthorized
500:
description: Server Error
/kedo/document:
get:
tags: [kedo-document]
summary: Мои документы (отправленные мной на подпись)
description: |
Список активных документов, где текущий пользователь — инициатор (`user_id`).
operationId: kedoDocumentIndex
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortParam'
- $ref: '#/components/parameters/DocumentNameParam'
- $ref: '#/components/parameters/CreatedAtRangeParam'
- $ref: '#/components/parameters/DeadlineAtRangeParam'
- $ref: '#/components/parameters/CancelledAtRangeParam'
- $ref: '#/components/parameters/SignRequestStatusFilterParam'
- $ref: '#/components/parameters/DocumentTypeFilterParam'
responses:
'200':
description: Список документов
content:
application/json:
schema:
type: array
items: { $ref: '#/components/schemas/KedoDocument' }
'401': { $ref: '#/components/responses/KedoUnauthorized' }
'403': { $ref: '#/components/responses/KedoDisabled' }
/kedo/document/need-signed:
get:
tags: [kedo-document]
summary: Документы, ожидающие моей подписи
operationId: kedoDocumentNeedSigned
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortParam'
- $ref: '#/components/parameters/DocumentNameParam'
- $ref: '#/components/parameters/CreatedAtRangeParam'
- $ref: '#/components/parameters/DeadlineAtRangeParam'
- $ref: '#/components/parameters/CancelledAtRangeParam'
- $ref: '#/components/parameters/SignRequestStatusFilterParam'
- $ref: '#/components/parameters/DocumentTypeFilterParam'
responses:
'200':
description: Список документов на подпись
content:
application/json:
schema:
type: array
items: { $ref: '#/components/schemas/KedoDocument' }
/kedo/document/archive:
get:
tags: [kedo-document]
summary: Архив — уже подписанные мной документы
operationId: kedoDocumentArchive
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortParam'
- $ref: '#/components/parameters/DocumentNameParam'
- $ref: '#/components/parameters/CreatedAtRangeParam'
- $ref: '#/components/parameters/DeadlineAtRangeParam'
- $ref: '#/components/parameters/CancelledAtRangeParam'
- $ref: '#/components/parameters/SignRequestStatusFilterParam'
- $ref: '#/components/parameters/DocumentTypeFilterParam'
responses:
'200':
description: Архив
content:
application/json:
schema:
type: array
items: { $ref: '#/components/schemas/KedoDocument' }
/kedo/document/view:
get:
tags: [kedo-document]
summary: Просмотр документа по ID
operationId: kedoDocumentView
parameters:
- name: id
in: query
required: true
schema: { type: string, format: uuid }
responses:
'200':
description: Документ
content:
application/json:
schema: { $ref: '#/components/schemas/KedoDocument' }
'404': { $ref: '#/components/responses/KedoNotFound' }
/kedo/document/sign:
post:
tags: [kedo-document]
summary: Подписать документ (UNEP — KedoCa)
description: |
Подписание неквалифицированной подписью (УНЭП) через внутренний CA HRBox.
Подпись формируется сервером — в запросе передаётся только ID документа.
`kedo_instance_ids` опционален: если не передан, подпишутся все экземпляры,
доступные текущему юзеру. Можно передать как массив UUID, так и строку через запятую.
При подписании по доверенности — передать `mchd_id`.
operationId: kedoDocumentSign
requestBody:
required: true
content:
application/json:
schema: { $ref: '#/components/schemas/KedoDocumentSignRequest' }
responses:
'200':
description: Результат подписания
content:
application/json:
schema: { $ref: '#/components/schemas/HttpJsonResult' }
'422': { $ref: '#/components/responses/KedoValidationError' }
/kedo/document/sign-ukep:
post:
tags: [kedo-document]
summary: Подписать документ (УКЭП — КриптоПро)
description: |
Подписание квалифицированной подписью. Подпись (CAdES-T detached, base64)
формируется на фронте через КриптоПро Browser Plugin и передаётся в поле `ukep`.
`kedo_instance_ids` опционален: если не передан, подпишутся все экземпляры,
доступные текущему юзеру.
При подписании по доверенности — передать `mchd_id`.
operationId: kedoDocumentSignUkep
requestBody:
required: true
content:
application/json:
schema: { $ref: '#/components/schemas/KedoDocumentSignUkepRequest' }
responses:
'200':
description: Результат подписания
content:
application/json:
schema: { $ref: '#/components/schemas/HttpJsonResult' }
'422': { $ref: '#/components/responses/KedoValidationError' }
/kedo/document/reject:
post:
tags: [kedo-document]
summary: Отклонить подписание документа
operationId: kedoDocumentReject
requestBody:
required: true
content:
application/json:
schema: { $ref: '#/components/schemas/KedoDocumentRejectRequest' }
responses:
'200':
description: Документ отклонён
content:
application/json:
schema: { $ref: '#/components/schemas/HttpJsonResult' }
/kedo/instance:
get:
tags: [kedo-instance]
summary: Экземпляры документа
description: Экземпляры создаются по числу подписантов (по slot-правилам).
operationId: kedoInstanceIndex
parameters:
- name: kedo_document_id
in: query
required: true
schema: { type: string, format: uuid }
responses:
'200':
description: Список экземпляров
content:
application/json:
schema:
type: array
items: { $ref: '#/components/schemas/KedoInstance' }
/kedo/instance/view:
get:
tags: [kedo-instance]
summary: Просмотр экземпляра
operationId: kedoInstanceView
parameters:
- name: id
in: query
required: true
schema: { type: string, format: uuid }
responses:
'200':
description: Экземпляр
content:
application/json:
schema: { $ref: '#/components/schemas/KedoInstance' }
'403':
description: Нет доступа на просмотр этого экземпляра
'404': { $ref: '#/components/responses/KedoNotFound' }
/kedo/instance/need-signed:
get:
tags: [kedo-instance]
summary: Мои экземпляры, ожидающие подписи
operationId: kedoInstanceNeedSigned
parameters:
- name: kedo_document_id
in: query
required: false
description: Опциональный фильтр по документу
schema: { type: string, format: uuid }
responses:
'200':
description: Экземпляры на подпись
content:
application/json:
schema:
type: array
items: { $ref: '#/components/schemas/KedoInstance' }
/kedo/instance/download-sign:
get:
tags: [kedo-instance]
summary: Скачать файл подписи .p7s
operationId: kedoInstanceDownloadSign
parameters:
- name: id
in: query
required: true
description: ID экземпляра
schema: { type: string, format: uuid }
- name: sign_type
in: query
required: true
schema: { $ref: '#/components/schemas/KedoSignType' }
responses:
'200':
description: Файл подписи
content:
application/pkcs7-signature:
schema:
type: string
format: binary
'404':
description: Подпись указанного типа не найдена
/kedo/instance/document-with-stamp:
get:
tags: [kedo-instance]
summary: PDF документ с наложенным штампом подписи
operationId: kedoInstanceDocumentWithStamp
parameters:
- name: id
in: query
required: true
description: ID экземпляра
schema: { type: string, format: uuid }
responses:
'200':
description: PDF со штампом
content:
application/pdf:
schema:
type: string
format: binary
/kedo/sign-request/create:
post:
tags: [kedo-sign-request]
summary: Создать запрос на подпись документа
description: |
Создание запроса на подпись. Поддерживается два режима:
1. **По файлу** — передать `file_id` уже загруженного PDF
2. **По шаблону** — передать `template_id` + `field_values` (значения полей),
PDF сгенерируется из шаблона автоматически
`request_users` задаёт подписантов через механизм UserList:
- `users` — массив условий (slot types)
- `key` — массив ключей UserList (отделы/группы/конкретные юзеры)
operationId: kedoSignRequestCreate
requestBody:
required: true
content:
application/json:
schema: { $ref: '#/components/schemas/KedoSignRequestCreate' }
responses:
'200':
description: Документ создан
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/HttpJsonResult'
- type: object
properties:
data:
$ref: '#/components/schemas/KedoDocument'
'422': { $ref: '#/components/responses/KedoValidationError' }
/kedo/sign-request/cancel:
post:
tags: [kedo-sign-request]
summary: Отменить запрос на подпись
description: Отменить можно только если `isSignRequestCancelAllowed = true`.
operationId: kedoSignRequestCancel
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [id]
properties:
id: { type: string, format: uuid }
responses:
'200':
description: Результат отмены
content:
application/json:
schema: { $ref: '#/components/schemas/HttpJsonResult' }
'403':
description: Отмена не разрешена
'404': { $ref: '#/components/responses/KedoNotFound' }
/kedo/template:
get:
tags: [kedo-template]
summary: Список активных шаблонов
operationId: kedoTemplateIndex
responses:
'200':
description: Шаблоны
content:
application/json:
schema:
type: array
items: { $ref: '#/components/schemas/KedoTemplate' }
/kedo/template/view:
get:
tags: [kedo-template]
summary: Шаблон + автозаполненные значения для текущего юзера
operationId: kedoTemplateView
parameters:
- name: id
in: query
required: true
schema: { type: string, format: uuid }
responses:
'200':
description: Шаблон с autoFillValues
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/KedoTemplate'
- type: object
properties:
autoFillValues:
type: object
additionalProperties: { type: string }
description: 'Маппинг: key поля → предзаполненное значение'
'404': { $ref: '#/components/responses/KedoNotFound' }
/kedo/template/preview:
post:
tags: [kedo-template]
summary: Предпросмотр PDF из шаблона
description: Генерирует PDF с подставленными значениями, без сохранения.
operationId: kedoTemplatePreview
requestBody:
required: true
content:
application/json:
schema: { $ref: '#/components/schemas/KedoTemplateSubmit' }
responses:
'200':
description: Готовый PDF
content:
application/pdf:
schema:
type: string
format: binary
'422': { $ref: '#/components/responses/KedoValidationError' }
/kedo/enum/document-type:
get:
tags: [kedo-enum]
summary: Типы документов КЭДО
operationId: kedoEnumDocumentType
responses:
'200':
description: Enum
content:
application/json:
schema:
type: array
items: { $ref: '#/components/schemas/KedoEnumItem' }
/kedo/enum/sign-request-status:
get:
tags: [kedo-enum]
summary: Статусы запроса на подпись
operationId: kedoEnumSignRequestStatus
responses:
'200':
description: Enum
content:
application/json:
schema:
type: array
items: { $ref: '#/components/schemas/KedoEnumItem' }
/kedo/enum/sign-request-slot-type:
get:
tags: [kedo-enum]
summary: Типы слотов подписания
operationId: kedoEnumSignRequestSlotType
responses:
'200':
description: Enum
content:
application/json:
schema:
type: array
items: { $ref: '#/components/schemas/KedoEnumItem' }
/kedo/mchd:
get:
tags: [mchd]
summary: Список МЧД текущего пользователя
description: |
Объединённый список:
- МЧД, созданные пользователем (`is_owner: true`) — все статусы
- МЧД, где он представитель (`is_owner: false`) — по умолчанию только SIGNED
Дедупликация: если юзер и создал, и является представителем — запись одна с `is_owner: true`.
operationId: mchdIndex
parameters:
- name: status
in: query
schema: { $ref: '#/components/schemas/MchdStatus' }
responses:
'200':
description: Список МЧД
content:
application/json:
schema:
type: array
items:
allOf:
- $ref: '#/components/schemas/MchdRecord'
- type: object
properties:
is_owner: { type: boolean }
/kedo/mchd/my:
get:
tags: [mchd]
summary: Мои действующие МЧД (для модалки подписания)
description: SIGNED МЧД где я — представитель.
operationId: mchdMy
responses:
'200':
description: Список
content:
application/json:
schema:
type: array
items: { $ref: '#/components/schemas/MchdRecord' }
/kedo/mchd/{id}:
get:
tags: [mchd]
summary: Получить МЧД по ID
operationId: mchdView
parameters:
- $ref: '#/components/parameters/MchdId'
responses:
'200':
description: МЧД
content:
application/json:
schema: { $ref: '#/components/schemas/MchdRecord' }
'404': { $ref: '#/components/responses/KedoNotFound' }
/kedo/mchd/batch:
get:
tags: [mchd]
summary: Пакетное получение МЧД по ID (до 50)
operationId: mchdBatch
parameters:
- name: ids
in: query
required: true
schema: { type: string, example: 'uuid1,uuid2' }
responses:
'200':
description: МЧД
content:
application/json:
schema:
type: array
items: { $ref: '#/components/schemas/MchdRecord' }
/kedo/mchd/org-info:
get:
tags: [mchd-reference]
summary: Реквизиты организации из CA-сертификата
operationId: mchdOrgInfo
responses:
'200':
description: Реквизиты
content:
application/json:
schema: { $ref: '#/components/schemas/OrgInfo' }
/kedo/mchd/power-codes:
get:
tags: [mchd-reference]
summary: Коды полномочий из классификатора ЕСНСИ
operationId: mchdPowerCodes
responses:
'200':
description: Коды
content:
application/json:
schema:
type: array
items: { $ref: '#/components/schemas/PowerCode' }
/kedo/mchd/generate:
post:
tags: [mchd-signing]
summary: Сгенерировать XML МЧД
description: |
Генерирует XML в формате EMCHD_1 (кириллические теги, namespace `urn://x-artefacts/EMCHD_1`).
**Даты в формате DD.MM.YYYY.**
Требует роль `mchd-manage`.
operationId: mchdGenerate
requestBody:
required: true
content:
application/json:
schema: { $ref: '#/components/schemas/MchdGenerateRequest' }
responses:
'200':
description: Сгенерированный XML
content:
application/json:
schema: { $ref: '#/components/schemas/MchdGenerateResponse' }
'422': { $ref: '#/components/responses/KedoValidationError' }
/kedo/mchd/save:
post:
tags: [mchd-signing]
summary: Сохранить МЧД
description: |
Сохраняет МЧД в БД. Если передан `signature` — статус `SIGNED`, иначе `DRAFT`.
Требует роль `mchd-manage`.
operationId: mchdSave
requestBody:
required: true
content:
application/json:
schema: { $ref: '#/components/schemas/MchdSaveRequest' }
responses:
'200':
description: Сохранённая МЧД
content:
application/json:
schema: { $ref: '#/components/schemas/MchdRecord' }
/kedo/mchd/{id}/sign:
post:
tags: [mchd-signing]
summary: Подписать черновик МЧД (DRAFT → SIGNED)
description: |
Принимает detached CAdES-T (base64). Требует роль `mchd-manage`.
operationId: mchdSign
parameters:
- $ref: '#/components/parameters/MchdId'
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [signature]
properties:
signature:
type: string
format: byte
responses:
'200':
description: МЧД подписана
content:
application/json:
schema: { $ref: '#/components/schemas/MchdRecord' }
/kedo/mchd/{id}/revoke:
post:
tags: [mchd-signing]
summary: Отозвать МЧД
description: 'Статус → REVOKED. Требует роль `mchd-manage`.'
operationId: mchdRevoke
parameters:
- $ref: '#/components/parameters/MchdId'
responses:
'200':
description: МЧД отозвана
content:
application/json:
schema: { $ref: '#/components/schemas/MchdRecord' }
/user-note:
get:
tags:
- UserNote
summary: Список заметок о пользователях
operationId: /user-note/index
parameters:
- name: id
in: query
description: Идентификатор заметки (UUID), либо их массив через запятую
required: false
schema:
oneOf:
- type: string
format: uuid
- type: array
items:
type: string
format: uuid
- name: user_id
in: query
description: Идентификатор пользователя (UUID)
required: false
schema:
type: string
format: uuid
responses:
200:
description: Список заметок о пользователях
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/dataProviderResponse'
- type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/userNoteItem'
400:
description: Bad Request.
401:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/user-note/add:
post:
tags:
- UserNote
summary: Создание новой заметки о пользователе
operationId: /user-note/add
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/userNoteUpdateRequest'
responses:
200:
description: Заметка успешно создана
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/httpJsonResponse'
- type: object
properties:
data:
type: object
properties:
note:
$ref: '#/components/schemas/userNoteItem'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Forbidden.
422:
description: Validation Error.
500:
description: Server Error.
/user-note/update:
post:
tags:
- UserNote
summary: Обновление заметки о пользователе
operationId: /user-note/update
parameters:
- name: id
in: query
description: Идентификатор заметки (UUID)
required: true
schema:
type: string
format: uuid
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/userNoteUpdateRequest'
responses:
200:
description: Заметка успешно обновлена
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/httpJsonResponse'
- type: object
properties:
data:
type: object
properties:
note:
$ref: '#/components/schemas/userNoteItem'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Forbidden.
404:
description: Note not found.
422:
description: Validation Error.
500:
description: Server Error.
/user-note/delete:
delete:
tags:
- UserNote
summary: Удаление заметки о пользователе
operationId: /user-note/delete
parameters:
- name: id
in: query
description: Идентификатор заметки (UUID)
required: true
schema:
type: string
format: uuid
responses:
200:
description: Заметка успешно удалена
content:
application/json:
schema:
$ref: '#/components/schemas/httpJsonResponse'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Forbidden.
404:
description: Note not found.
500:
description: Server Error.
/api/v2/like/add:
post:
tags:
- like
summary: Добавить лайк
description: Добавляет лайк к сущности по entity_id и item_id.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
entity_id:
type: integer
description: ID сущности
example: 100
item_id:
type: string
description: ID записи
example: "e456bfb3-31dc-4c94-81ca-17dc49043a2b"
responses:
200:
description: Результат добавления лайка
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
description: Результат операции
example: true
400:
description: Ошибка валидации данных
content:
application/json:
schema:
type: array
items:
type: object
properties:
field:
type: string
example: entityId
message:
type: string
example: Необходимо заполнить «Entity Id».
404:
description: Не найдено
500:
description: Внутренняя ошибка сервера
paths:
/api/v2/like/delete:
delete:
tags:
- like
summary: Удалить лайк
operationId: LikeDelete
parameters:
- name: entity_id
in: query
required: true
schema:
type: integer
description: ID сущности
- name: item_id
in: query
required: true
schema:
type: string
description: ID записи
responses:
204:
description: Успешно удалено (нет тела ответа)
404:
description: Запись не найдена
422:
description: Ошибка валидации
content:
application/json:
schema:
type: array
items:
type: object
properties:
field:
type: string
message:
type: string
example:
- field: entityId
message: Необходимо заполнить «Entity Id».
/api/v2/like/content-items-state:
get:
tags:
- like
summary: Получить статистику лайков по контенту из редактора (галерея типа карусель)
description: |
Возвращает:
- `counts`: список ID файлов (из редактора, из галереи), у которых есть лайки, и количество этих лайков.
- `states`: список ID файлов, которым текущий пользователь поставил лайк.
operationId: ContentItemsState
parameters:
- name: entity_id
in: query
schema:
type: number
enum:
- 50
- 100
- 300
- 375
- 500
- 550
description: >
Entity ID - Идентификатор сущности, которая имеет контет, из редактора.
* `22` - Department (Тренинги)
* `100` - Article (Новости/Страницы)
* `119` - CalendarEvent (Тренинги)
* `500` - WfWorkflow (Процессы)
* `550` - Training (Тренинги)
- name: item_id
in: query
required: true
schema:
type: string
description: ID записи
responses:
200:
description: Успешный ответ
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
data:
type: object
properties:
counts:
type: object
example:
e456bfb3-31dc-4c94-81ca-17dc49043a2b: 5
ee56bfb3-31dc-4c94-81ca-17dc49043a2b: 2
states:
type: array
items:
type: string
example:
- e456bfb3-31dc-4c94-81ca-17dc49043a2b
- ee56bfb3-31dc-4c94-81ca-17dc49043a2b
404:
description: Сущность не найдена или не реализует ContentEditorInterface
422:
description: Ошибка валидации
content:
application/json:
schema:
type: array
items:
type: object
properties:
field:
type: string
message:
type: string
example:
- field: entityId
message: Необходимо заполнить «Entity Id».
components:
securitySchemes:
SessionAuth:
type: apiKey
in: header
name: x-hrbox-session-id
description: "Авторизация с использованием сессии. Требуемые заголовки: x-hrbox-tenant-id, x-hrbox-device-id, x-hrbox-session-id, x-hrbox-session-code, x-hrbox-embed."
ApiKeyAuth:
type: apiKey
in: header
name: X-Hrbox-Client-Id
description: "Авторизация с использованием API-ключа. Требуемые заголовки: Content-Type, X-Hrbox-Client-Id, X-Hrbox-Client-Secret."
schemas:
httpJsonResponse:
type: object
properties:
success:
description: Result status.
type: boolean
example: true
data:
type: object
description: Response data
errors:
type: array
items:
type: string
description: Array of validation errors
message:
description: Message displayed to user (localized).
type: array
nullable: true
example: ''
dataProviderResponse:
type: object
properties:
data:
type: object
description: Response data
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
_meta:
type: object
properties:
totalCount:
description: Total rows count in database.
type: integer
example: 1
pageCount:
description: How much pages there are with current perPage value.
type: integer
example: 1
currentPage:
description: Current page number.
type: integer
default: 1
perPage:
description: Rows per page.
type: integer
default: 10
_links:
type: object
properties:
self:
description: Link to current page. Always available, even if there is no data.
type: object
properties:
href:
type: string
first:
description: Link to first page. Available when data is available.
type: object
properties:
href:
type: string
last:
description: Link to last page. Available when data is available.
type: object
properties:
href:
type: string
next:
description: Link to next page. Available when there is more than one page of data.
type: object
properties:
href:
type: string
_periodUrls:
type: object
properties:
currentDate:
description: Link to current period.
type: object
properties:
href:
type: string
nextDate:
description: Link to next period.
type: object
properties:
href:
type: string
prevDate:
description: Link to prev period.
type: object
properties:
href:
type: string
currentPeriod:
type: string
description: Выбранный период дат в текстовом формате, с учётом локализации
example: "07.04.25 - 13.04.25"
WorkflowCategory:
type: object
properties:
id:
type: string
example: 5a0c5bb0-200a-4310-a273-ff7f6dc82491
name:
type: string
example: Тест
brief:
type: string
nullable: true
example: null
imageUrl:
type: string
example: http://hr.lh/img/noarticle.png
Workflow:
type: object
properties:
id:
type: string
example: e0a0c30f-2da0-450b-9522-5a4d81f222f0
name:
type: string
example: Новый процесс
brief:
type: string
example: ""
imageUrl:
type: string
example: http://hr.lh/img/nophoto.png
feedbackTotalScore:
type: number
example: 0
feedbackTotalCount:
type: number
example: 0
WorkflowField:
type: object
properties:
id:
type: string
example: f1e2972e-4655-4f93-bb54-733df3ddbc83
type:
type: string
example: text
name:
type: string
example: Текст
required:
type: boolean
example: true
values:
type: array
items:
type: string
nullable: true
defaultValue:
type: string
nullable: true
example: null
arrayOfIds:
type: object
properties:
id:
description: Array of IDs.
type: array
items:
type: string
example:
- '53f2d03c-303a-4a3c-b57f-f7fb62fee538'
- '42862a16-affa-4ba5-86c5-61376f46d695'
typeIdInteger:
description: Types with integer ID
type: array
items:
description: Types list
type: object
properties:
id:
description: Type ID
type: integer
example: 1
name:
description: Type name (localized)
type: string
example: Type name
typeIdString:
description: Types with string ID
type: array
items:
description: Types list
type: object
properties:
id:
description: Type ID
type: string
example: example
name:
description: Type name (localized)
type: string
example: Type name
status:
description: Status
type: array
items:
description: Statuses list
type: object
properties:
id:
description: Status ID
type: integer
example: 1
name:
description: Status name (localized)
type: string
example: Status name
userInfo:
description: User info
type: object
properties:
id:
description: User ID
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
name:
description: User's full name
type: string
example: FirstName LastName
iconUrl:
description: User profile face image URL
type: string
example: https://hrenot.hrbox.io/file/user-face/e2668a74-d171-4d47-b68f-9eb7e7d4e120/300.jpg
fileObject:
type: object
properties:
id:
description: File ID
type: string
format: uuid
example: 96cf98ed-2762-4f6b-9a5b-3eca76c56477
url:
description: File URL
type: string
example: https://hrenot.hrbox.io/file/open/96cf98ed-2762-4f6b-9a5b-3eca76c56477.jpg
file_ype:
description: File type
type: string
enum:
- image
- video
- document
- archive
- other
- encrypted
example: image
ext:
description: File extension
type: string
example: jpg
name:
description: File name
type: string
example: image.jpg
file:
description: Attached file
$ref: '#/components/schemas/fileObject'
files:
description: Attached files
type: array
items:
$ref: '#/components/schemas/fileObject'
responseObject:
type: object
properties:
success:
description: Result status
type: boolean
example: true
message:
description: Message displayed to user (localized)
type: string
default: null
example: Example text
errors:
description: Array of validation errors
type: array
default: null
data:
description: Model data
type: object
default: null
accountSecret:
type: object
properties:
userId:
type: string
format: uuid
secret:
type: string
format: uuid
tenantId:
type: integer
format: int64
default: 101
xml:
name: accountSecret
tenantInfo:
type: object
properties:
tenantId:
type: integer
format: int64
example: 2
tenantName:
type: string
example: HRBOX demo
supportEmail:
type: string
example: help@hrbox.io
domain:
type: string
example: demo.hrbox.io
endpoint:
type: string
example: https://demo.hrbox.io/api/v2
authAdditional:
description: Дополнительная авторизация (пин/биометрия) для мобильного приложения
type: boolean
example: true
primaryColor:
type: string
example: "#08D8D2"
brandColor:
type: string
example: "#FF0000"
logoUrl:
type: string
example: https://demo.hrbox.io/file/resize/600x0/f2a84060-d386-4c5f-9290-e3af1ede6334.png
logoSqUrl:
type: string
example: https://demo.hrbox.io/file/resize/60x60/f9b0986b-5bd6-4923-8242-a810a20e7918.png
style:
type: object
properties:
colorPrimary:
description: Основной цвет
type: string
example: "#08D8D2"
colorBrand:
description: Цвет шапки
type: string
example: "#FFFFFF"
colorBrand2:
description: Цвет меню
type: string
example: "#08D8D2"
colorAccent:
description: Акцент
type: string
example: "#FFDD5C"
colorBrandText:
description: Цвет текста шапки
type: string
example: "#151B30"
colorBrand2Text:
description: Цвет текста меню
type: string
example: "#FFFFFF"
colorAccentText:
description: Текст на акценте
type: string
example: "#FFFFFF"
logoOnLoginId:
type: string
example:
logoId:
type: string
example: f2a84060-d386-4c5f-9290-e3af1ede6334.png
logoSquareId:
type: string
example: f9b0986b-5bd6-4923-8242-a810a20e7918.png
imagePlaceholderId:
type: string
example: 61e7ef28-f8ba-4c23-bc7c-80a0a792c10e.png
language:
type: string
example: ru
timezone:
type: string
example: Europe/Moscow
modules:
type: object
properties:
currency:
$ref: '#/components/schemas/tenantInfoModuleCurrency'
userStatus:
$ref: '#/components/schemas/tenantInfoModuleUserStatus'
idea:
$ref: '#/components/schemas/tenantInfoModuleIdea'
shop:
$ref: '#/components/schemas/tenantInfoModuleShop'
xml:
name: tenantInfo
userProfile:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
default: "Chintan Rana"
first_name:
type: string
default: "Chintan"
last_name:
type: string
default: "Rana"
middle_name:
type: string
default: null
faceUrl:
type: string
default: "https://pentest.hrbox.io/file/user-face/46f838be-1b51-43ea-988e-fce2f73f6302/300.jpg"
iconUrl:
type: string
default: "https://pentest.hrbox.io/file/user-face/46f838be-1b51-43ea-988e-fce2f73f6302/60.jpg"
reg_status_id:
type: integer
default: 3
gender_id:
type: integer
default: 1
country_id:
type: string
default: "ru"
timezone_id:
type: string
default: "Europe/Moscow"
city_id:
type: string
default: "BBDAEADC-FCCA-ABCB-AEFE-FBDCEAFAAEDB"
isBoss:
type: boolean
default: false
is_external:
type: boolean
default: false
birthdayDate:
type: string
default: "29 of May"
cityName:
type: string
default: "Moscow"
region:
type: string
default: "Arizona"
office:
type: string
default: "106a"
description: Office number
employment:
$ref: '#/components/schemas/employment'
employments:
type: array
items:
$ref: '#/components/schemas/employment'
emails:
type: array
items:
$ref: '#/components/schemas/contact'
phones:
type: array
items:
$ref: '#/components/schemas/contact'
messengers:
type: array
items:
$ref: '#/components/schemas/contact'
achievements:
type: array
items:
$ref: '#/components/schemas/achievement'
userDuties:
type: array
items:
$ref: '#/components/schemas/userDuty'
userGroupsVisible:
type: array
items:
$ref: '#/components/schemas/userGroup'
structureItem:
type: object
properties:
type:
type: string
enum:
- department
- user
id:
type: string
format: uuid
name:
type: string
default: "Name of department or user"
isOrganization:
type: boolean
description: Shows is it an organization or department.
isBoss:
type: boolean
default: false
description: For user only
iconUrl:
type: string
default: "https://pentest.hrbox.io/file/resize/60x0/299c6542-c541-4296-a528-90f08d835b8b.png"
description: User's face image url
position:
type: string
description: User's employment position
employmentsCount:
type: integer
default: 0
description: Amount of employees in department
empty:
type: boolean
default: false
description: If department is empty
catalogItem:
type: object
properties:
entity:
type: string
description: Tells whether its category or article
enum:
- category
- article
id:
type: string
format: uuid
title:
type: string
url:
type: string
description:
type: string
thumbUrl:
type: string
description: Thumbnail image url
status_id:
type: integer
description: 1 - Active, 2 - Disabled, 3 - Deleted
default: 1
enum:
- 1
- 2
- 3
thumb_style_id:
type: integer
description: Type of thumb 1 - image + picture, 2 - text only, 3 - image only (square image)
default: 1
enum:
- 1
- 2
- 3
tags:
type: array
items:
$ref: '#/components/schemas/tag'
calendarEventType:
type: object
properties:
id:
type: string
example: "ebe2bc69-b451-4006-8020-cc145eafe60c"
name:
type: string
example: "Тренинг"
background_color:
type: string
example: "#A4D4DE"
text_color:
type: string
example: "#000000"
calendarEvent:
type: object
properties:
id:
type: string
format: uuid
parent_id:
type: string
format: uuid
title:
type: string
description:
type: string
content:
type: object
image_id:
type: string
format: uuid
url:
type: string
entity_id:
type: integer
reference_id:
type: string
format: uuid
start_date_time:
type: string
format: 'date-time'
end_date_time:
type: string
format: 'date-time'
day_duration:
type: integer
is_all_day:
type: boolean
is_recurring:
type: boolean
freq:
type: integer
interval:
type: integer
by_month:
type: integer
by_monthday:
type: array
items:
type: integer
by_day:
type: array
items:
type: integer
visible_to:
type: array
items:
type: string
format: uuid
quantity_place:
type: integer
quantity_available_place:
type: integer
calendar_event_user_count:
type: integer
created_user_id:
type: string
format: uuid
updated_user_id:
type: string
format: uuid
created_at:
type: string
format: 'date-time'
updated_at:
type: string
format: 'date-time'
calendar_event_type_id:
type: integer
create_bid_deadline_at:
type: string
format: 'date-time'
start_date:
type: string
format: date
end_date:
type: string
format: date
start_time:
type: string
end_time:
type: string
start_date_time_localized:
type: string
end_date_time_localized:
type: string
created_at_localized:
type: string
create_bid_deadline_at_localized:
type: string
rec_date:
type: string
format: date
rec_date_formatted:
type: string
send_notification_start:
type: boolean
send_notification_before_start_minutes:
type: array
items:
type: integer
duration_seconds:
type: integer
duration_seconds_formatted:
type: string
duration_seconds_formatted_data:
type: object
properties:
hours:
type: integer
minutes:
type: integer
rrule_string:
type: string
type_name:
type: string
is_started:
type: boolean
is_ended:
type: boolean
is_ended_text:
type: string
is_virtual_recurring:
type: boolean
is_deadline_create_bid:
type: boolean
url_view:
type: string
calendarEventUser:
type: object
properties:
id:
type: string
format: uuid
calendar_event_id:
type: string
format: uuid
calendar_event_parent_id:
type: string
format: uuid
user_id:
type: string
format: uuid
status_id:
type: integer
is_visited:
type: boolean
where_from_type_id:
type: integer
calendar_event_rec_date:
type: string
format: date
status_name:
type: string
is_visited_text:
type: string
where_from_type_name:
type: string
calendarEventBid:
type: object
properties:
id:
type: string
format: uuid
calendar_event_id:
type: string
format: uuid
calendar_event_parent_id:
type: string
format: uuid
calendar_event_bid_status_id:
type: integer
calendar_event_rec_date:
type: string
format: date
user_id:
type: string
format: uuid
status_name:
type: string
user_name:
type: string
article:
type: object
properties:
id:
type: string
format: uuid
title:
type: string
url:
type: string
imageUrl:
type: string
description:
type: string
thumb_style_id:
type: integer
description: Type of thumb 1 - image + picture, 2 - text only, 3 - image only (square image)
default: 1
enum:
- 1
- 2
- 3
post_type_id:
type: integer
description: Post type 2 - only url (redirect to another page), 3 - page with actual content
default: 2
enum:
- 2
- 3
created_at:
type: string
format: datetime
publish_at:
type: string
format: datetime
description: Date and time from when article available to view by users
updated_at:
type: string
format: datetime
status_id:
type: integer
description: 1 - active, 2 - disabled, 3 - deleted
default: 1
enum:
- 1
- 2
- 3
likesCount:
type: integer
viewsCount:
type: integer
commentsCount:
type: integer
tags:
type: array
items:
$ref: '#/components/schemas/tag'
entityId:
description: Entity ID.
type: number
example: 1
tag:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
timezone:
type: object
properties:
id:
type: string
name:
type: string
contact:
type: object
properties:
value:
type: string
default: "dev@hrbox.io"
description: Email of phone number
type:
type: string
default: "corporate"
enum:
- corporate
- personal
readonly:
type: boolean
default: true
notification:
type: object
properties:
id:
type: string
format: uuid
subject:
type: string
text:
type: string
params:
type: object
properties:
url:
type: string
default: "Url that should be opened if user taps on Notification, and there are no any other logic exists for this type of notification"
description: Property os optional. Url that should be opened if user taps on Notification, and there are no any other logic exists for this type of notification
imageUrl:
type: string
default: "Property os optional"
description: Property is optional
notificationTypeId:
type: string
enum:
- user-postcard
- two-factor
- etc.
description: Serverside identifier of notification type. Sme logic can depend on it
created_at:
type: string
format: datetime
seen_at:
type: string
format: datetime
description: if not null - notification was viewed by user
userPostcard:
type: object
properties:
id:
type: string
format: uuid
user_id:
type: string
format: uuid
postcard_id:
type: string
format: uuid
text:
type: string
status_id:
type: integer
description: 1 - active, 2 - disabled, 3 - deleted
enum:
- 1
- 2
- 3
settings:
type: object
properties:
hide_signature:
type: boolean
description: Is this postcard anonymous
status_view_id:
type: integer
description: 1 - visible to everyone, 2 - visible only to recipient
enum:
- 1
- 2
created_at:
type: string
format: date
senderId:
type: string
format: uuid?
senderName:
type: string
default: "Alex"
senderIconUrl:
type: string
description: Sender user's face icon
imageUrl:
description: Postcard's image
type: string
is_seen:
type: boolean
description: Did user seen this postcard?
userGroup:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
default: Managers
description:
type: string
default: "All the managers"
iconUrl:
type: string
default: "https://pentest.hrbox.io/file/resize/60x0/299c6542-c541-4296-a528-90f08d835b8b.png"
thumbUrl:
type: string
default: "https://pentest.hrbox.io/file/resize/400x0/299c6542-c541-4296-a528-90f08d835b8b.png"
userDuty:
type: object
properties:
id:
type: string
format: uuid
duty_id:
type: string
default: uuid
duty:
type: object
properties:
name:
type: string
achievement:
type: object
properties:
id:
type: string
format: uuid
title:
type: string
default: Best sales of Year
description:
type: string
default: One who sold most this year
imageUrl:
type: string
default: "https://pentest.hrbox.io/file/resize/400x0/299c6542-c541-4296-a528-90f08d835b8b.png"
iconUrl:
type: string
default: "https://pentest.hrbox.io/file/resize/60x0/299c6542-c541-4296-a528-90f08d835b8b.png"
employment:
type: object
properties:
id:
type: string
format: uuid
experience:
type: string
default: 1 year 2 months
position:
type: string
default: Chief Salesman
department:
$ref: '#/components/schemas/departmentLabel'
chiefUser:
$ref: '#/components/schemas/userLabel'
fullEmployment:
type: object
allOf:
- $ref: '#/components/schemas/employment'
- type: object
properties:
is_main:
description: Is main employment
type: boolean
example: true
employment_date:
type: string
format: date
fired_date:
type: string
format: date
status_id:
type: integer
description: 1 - active, 2 - disabled, 3 - deleted
example: 1
created_at:
type: string
format: date
departmentLabel:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
default: Marketing
departmentPath:
type: string
default: "Company / Sales / Marketing"
userLabel:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
default: Alex
faceUrl:
type: string
default: "https://pentest.hrbox.io/file/user-face/46f838be-1b51-43ea-988e-fce2f73f6302/300.jpg"
iconUrl:
type: string
default: "https://pentest.hrbox.io/file/user-face/46f838be-1b51-43ea-988e-fce2f73f6302/60.jpg"
device:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
default: Alex's iPhone
model:
type: string
default: iPhone
os:
type: string
default: iOS
osVersion:
type: string
default: 14.0.1
xml:
name: device
profileBrief:
type: object
properties:
userId:
type: string
format: uuid
name:
type: string
position:
type: string
experience:
type: string
departmentName:
type: string
photoUrl:
type: string
faceUrl:
type: string
iconUrl:
type: string
statusText:
type: string
statusTypes:
type: array
items:
$ref: '#/components/schemas/profileStatusType'
xml:
name: profileBrief
profileStatusType:
type: object
properties:
id:
type: string
label:
type: string
enabled:
type: boolean
xml:
name: item
dashboardWidget:
type: object
properties:
ref:
type: string
label:
type: string
url:
type: string
totalCount:
type: integer
format: int64
items:
type: array
items:
$ref: '#/components/schemas/dashboardWidgetItem'
xml:
name: widgetId
dashboardWidgetItem:
type: object
properties:
id:
type: string
format: uuid
itemTitle:
type: string
itemUrl:
type: string
itemImageUrl:
type: string
itemDate:
type: string
format: datetime
itemTip:
type: string
itemEntityId:
type: integer
format: int64
actorId:
type: string
format: uuid
actorName:
type: string
actorIconUrl:
type: string
actionTitle:
type: string
actionStyle:
type: string
description: define color
enum:
- info
- success
- warning
- danger
xml:
name: item
dashboardIdeaWidget:
allOf:
- $ref: '#/components/schemas/dashboardWidget'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/updIdeaWidgetItem'
- type: object
properties:
data:
type: object
properties:
mostRecent:
type: array
description: Топ самых популярный идей по количеству голосов
items:
$ref: '#/components/schemas/updIdeaWidgetItem'
notView:
type: array
description: Идеи которые еще не были просмотрены пользователем
items:
$ref: '#/components/schemas/updIdeaWidgetItem'
dashboardVacationsWidget:
allOf:
- $ref: '#/components/schemas/dashboardWidget'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/myVacationsWidgetItem'
- type: object
properties:
data:
type: object
properties:
vacationsTeam:
type: array
description: Отпуска коллег (в одном отделе с юзером)
items:
$ref: '#/components/schemas/myVacationsWidgetItem'
vacationsSubordinates:
type: array
description: Отпуска подчиненных
items:
$ref: '#/components/schemas/myVacationsWidgetItem'
updIdeaWidgetItem:
allOf:
- $ref: '#/components/schemas/dashboardWidgetItem'
- type: object
properties:
data:
type: object
properties:
countVoted:
type: integer
description: Количество пользователей проголосовавших за идею
myVacationsWidgetItem:
allOf:
- $ref: '#/components/schemas/dashboardWidgetItem'
- type: object
properties:
data:
type: object
properties:
vacation_planned_status_id:
type: integer
description: Статус отпуска (1-Согласование, 2-Согласован, 5-Отклонен, 3-Открыта заявка, 4-Обработан, 6-Перенос)
vacation_type_id:
type: integer
description: Тип отпуска (1-Ежегодный оплачиваемый, 2-Другой)
date_from:
type: string
format: 'date'
example: 2025-04-27
description: Дана начала отпуска
date_to:
type: string
format: 'date'
example: 2025-04-27
description: Дата окончания отпуска
periodLength:
type: integer
description: Продолжительность отпуска в днях
dateFrom:
type: string
description: Дана начала отпуска
dateTo:
type: string
description: Дата окончания отпуска
vacationStatusName:
type: string
description: Текстовый стату отпуска
vacationTypeName:
type: string
description: Текстовый тип отпуска
vacationSubtypeName:
type: string
description: Текстовый подтип отпуска (если тип "Другой")
periodLengthText:
type: integer
description: Продолжительность отпуска в днях
feedback:
type: object
properties:
id:
description: Feedback model ID.
type: string
format: uuid
user_id:
description: User model ID.
type: string
format: uuid
default: null
department_id:
description: Department model ID.
type: string
format: uuid
default: null
score:
description: Feedback score.
type: integer
example: 5
text:
description: Feedback text.
type: string
example: Example text.
is_anonymous:
description: Anonymous feedback.
type: boolean
example: false
default: false
user_name:
description: The user name to which the feedback was left.
type: string
default: ""
department_name:
description: The department name to which the feedback was left.
type: string
default: ""
created_user_name:
description: The name of the user who left the feedback if it was not anonymous.
type: string
moderation:
type: object
properties:
id:
description: Moderation ID.
type: string
format: uuid
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
requested_user_id:
description: Requested user ID.
type: string
format: uuid
example: 08d50be6-81ca-436f-9aef-c1a5a74bad36
moderated_user_id:
description: Moderator user ID.
type: string
format: uuid
default: null
example: 1c95f8ec-d971-4554-8b77-d5ab1dd8d650
status_id:
description: >
Moderation status:
* `0` - Wait for moderation (NOT_MODERATED)
* `1` - Moderation accepted (ACCEPT)
* `2` - Moderation rejected (REJECT)
type: integer
enum:
- 0
- 1
- 2
example: 1
reference_id:
description: Reference model ID.
type: string
format: uuid
example: 660519c7-c8a7-4421-a1e2-4eed4074a868
entity_id:
description: >
Entity ID:
* `20` - User
* `118` - Postcard
* `140` - Comment
* `360` - Idea
* `152` - Voting nominee
type: integer
enum:
- 20
- 118
- 140
- 360
- 152
example: 20
type_id:
description: >
Moderation types:
* `USER_AVATAR` - Change user profile photo. Fields - photo_file_id, settings.
* `USER_POSTCARD` - Send postcard. Fields - text, user_id, postcard_id.
* `COMMENT` - Add comment. Fields - message, content_json.
* `IDEA` - Idea suggestion. Fields - idea_purpose_id, department_id, title, description, files.
* `VOTING_NOMINEE` - Image participating in the voting. Fields - file_id, nomination_id, title, description.
# Временно отключено на портале
# * `USER_CABINET` - Change city, cabinet. Fields - city, cabinet.
type: string
enum:
- USER_AVATAR
# - USER_CABINET
- USER_POSTCARD
- COMMENT
- IDEA
- VOTING_NOMINEE
changes:
description: One of moderation types. Values of fields that has been changed.
type: object
oneOf:
# USER_AVATAR
- properties:
photo_file_id:
description: Field "photo_file_id" in User model. File model ID.
type: string
format: uuid
example: 37a57294-489b-4a1b-ac5c-a390de5e388d
settings:
description: Field "settings" in User model.
type: object
properties:
face_coordinates:
description: Face coordinates on the user profile image.
type: object
properties:
h:
description: Cut height in percent.
type: integer
example: 86
w:
description: Cut width in percent.
type: integer
example: 57
x:
description: X-axis offset in percent.
type: integer
example: 42
y:
description: Y-axis offset in percent.
type: integer
example: 10
# USER_CABINET
# - properties:
# cabinet:
# description: User cabinet field.
# type: string
# example: 1a
# USER_POSTCARD
- properties:
text:
description: Postcard text.
type: string
example: Example text.
user_id:
description: User model ID.
type: string
format: uuid
example: 8768c19d-dae7-43f0-8b51-a86705f33a1b
postcard_id:
description: Postcard model ID.
type: string
format: uuid
example: e101d3be-ca63-49e0-9c94-a32fefc20c92
# COMMENT
- properties:
message:
description: Field "message" in Comment model.
type: string
example: Comment text.
content_json:
description: Field "content_json" in Comment model. Array of File models data.
type: array
items:
type: object
properties:
id:
description: File model ID.
type: string
format: uuid
example: bf052a5e-eb70-4eb9-b3f1-9ea50d751b0e
ext:
description: File extension.
type: string
example: jpg
fid:
description: File model ID with extension.
type: string
format: uuid
example: bf052a5e-eb70-4eb9-b3f1-9ea50d751b0e.jpg
meta:
description: File meta information.
type: object
properties:
width:
description: Image width.
type: integer
example: 1920
height:
description: Image height.
type: integer
example: 1080
name:
description: File name.
type: string
example: 2023-01-01 01.01.01.jpg
size:
description: File size in bytes.
type: integer
example: 109531
fileType:
description: File type.
type: string
enum:
- image
- video
- document
- archive
- other
- encrypted
example: image
isCommon:
description: File is common.
type: boolean
example: false
isPublic:
description: File is public.
type: boolean
example: false
mimeType:
description: File MIME-Type.
type: string
example: image/jpeg
loadingState:
description: File loading state.
type: string
example: uploaded
# IDEA
- properties:
idea_purpose_id:
description: Field "idea_purpose_id" in Idea model.
type: string
format: uuid
example: 941a3ba1-3a5c-46b4-a83f-3a9f700925f6
department_id:
description: Department model ID.
type: string
format: uuid
example: e0f5593a-e0c2-44b8-a46e-1b464165f63f
title:
description: Field "title" in Idea model.
type: string
example: Idea title example.
description:
description: Field "description" in Idea model.
type: string
example: Idea description example.
files:
description: Field "files" in Idea model. Array of File models data.
type: array
items:
type: object
properties:
id:
description: File model ID.
type: string
format: uuid
example: bf052a5e-eb70-4eb9-b3f1-9ea50d751b0e
ext:
description: File extension.
type: string
example: jpg
fid:
description: File model ID with extension.
type: string
format: uuid
example: bf052a5e-eb70-4eb9-b3f1-9ea50d751b0e.jpg
meta:
description: File meta information.
type: object
properties:
width:
description: Image width.
type: integer
example: 1920
height:
description: Image height.
type: integer
example: 1080
name:
description: File name.
type: string
example: 2023-01-01 01.01.01.jpg
size:
description: File size in bytes.
type: integer
example: 109531
fileType:
description: File type.
type: string
enum:
- image
- video
- document
- archive
- other
- encrypted
example: image
isCommon:
description: File is common.
type: boolean
example: false
isPublic:
description: File is public.
type: boolean
example: false
mimeType:
description: File MIME-Type.
type: string
example: image/jpeg
loadingState:
description: File loading state.
type: string
example: uploaded
# VOTING_NOMINEE
- properties:
file_id:
description: File model ID.
type: string
format: uuid
example: 1daf3810-9f65-4855-a352-3e5da566c69e
nomination_id:
description: VotingNomination model ID.
type: string
format: uuid
default: null
example: 0023648a-bf4b-4ab6-8376-4e91357e626a
title:
description: Field "title" in VotingNominee model.
type: string
example: Photo title example.
description:
description: Field "description" in VotingNominee model.
type: string
example: Photo description example.
created_at:
description: Moderation creation date.
type: string
format: date
updated_at:
description: Moderation update date.
type: string
format: date
statusName:
description: Status name.
type: string
typeName:
description: Type name.
type: string
formatChanges:
description: Model fields that can be changed. Data formatted for use in view files.
type: object
oneOf:
# USER_AVATAR
- properties:
current_photo_url:
description: User profile photo.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: img
label:
description: Field label.
type: string
example: Profile photo
value:
description: Field value.
type: string
example: https://demo.hrbox.io/file/open/faf61bb0-af79-4422-9ebd-da2e92924ce3.jpg
url:
type: string
default: null
current_face_url:
description: User face on profile photo.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: img
label:
description: Field label.
type: string
example: Face on profile photo
value:
description: Field value.
type: string
example: https://demo.hrbox.io/file/open/f3217a4b-02fd-400e-82c3-47cc7f36cf5f.jpg
url:
type: string
default: null
photo_file_id:
description: User new profile photo.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: img
label:
description: Field label.
type: string
example: New profile photo
value:
description: Field value.
type: string
example: https://demo.hrbox.io/file/open/37a57294-489b-4a1b-ac5c-a390de5e388d.jpg
url:
type: string
default: null
new_face_url:
description: New user-selected face in profile photo. Returns null because it is under development.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: img
label:
description: Field label.
type: string
example: Selected face on photo
value:
description: Field value.
type: string
default: null
example: https://demo.hrbox.io/file/open/faf61bb0-af79-4422-9ebd-da2e92924ce3.jpg
url:
type: string
default: null
settings:
description: Face coordinates on the user profile image.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: string
label:
description: Field label.
type: string
example: Settings
value:
description: Field value.
type: object
properties:
face_coordinates:
description: Face coordinates on the user profile image.
type: object
properties:
h:
description: Cut height in percent.
type: integer
example: 86
w:
description: Cut width in percent.
type: integer
example: 57
x:
description: X-axis offset in percent.
type: integer
example: 42
y:
description: Y-axis offset in percent.
type: integer
example: 10
# USER_CABINET
# - properties:
# city_id:
# description: Field "City".
# type: object
# properties:
# type:
# description: Field value type.
# type: string
# enum:
# - string
# - img
# - files
# - html
# example: string
# label:
# description: Field label.
# type: string
# example: City
# value:
# description: Field value.
# type: string
# default: null
# url:
# type: string
# cabinet:
# description: Field "Cabinet".
# type: object
# properties:
# type:
# description: Field value type.
# type: string
# enum:
# - string
# - img
# - files
# - html
# example: string
# label:
# description: Field label.
# type: string
# example: Cabinet
# value:
# description: Field value.
# type: string
# default: null
# example: 1a
# url:
# type: string
# USER_POSTCARD
- properties:
text:
description: Postcard text.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: string
label:
description: Field label.
type: string
example: Postcard text
value:
description: Field value.
type: string
default: null
example: Example text.
url:
type: string
user_id:
description: User name.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: string
label:
description: Field label.
type: string
example: User
value:
description: Field value.
type: string
example: FirstName LastName
url:
type: string
postcard_id:
description: Postcard image.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: img
label:
description: Field label.
type: string
example: Postcard
value:
description: Field value.
type: string
example: https://demo.hrbox.io/file/open/d6f5be76-58fa-4b61-a248-74e10b2b5ed0.jpg
url:
type: string
# COMMENT
- properties:
subject:
description: Comment subject.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: string
label:
description: Field label.
type: string
example: Subject
value:
description: Field value.
type: string
example: News title
url:
type: string
example: https://demo.hrbox.io/read/3379b1ac54/news-title
message:
description: Comment message.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: string
label:
description: Field label.
type: string
example: Comment
value:
description: Field value.
type: string
example: Comment text.
url:
type: string
content_json:
description: Comment attached files.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: files
label:
description: Field label.
type: string
example: Files
value:
description: Field value.
type: object
properties:
item:
type: object
properties:
id:
description: File model ID.
type: string
format: uuid
example: 3f8d3db4-49da-4880-bfdb-e682f9d4876d
url:
description: File open URL.
type: string
example: https://demo.hrbox.io/file/open/3f8d3db4-49da-4880-bfdb-e682f9d4876d.jpg
file_type:
description: File type.
type: string
enum:
- image
- video
- document
- archive
- other
- encrypted
example: image
ext:
description: File extension.
type: string
example: jpg
name:
description: File name.
type: string
example: 2023-01-01 01.01.01.jpg
url:
type: string
# IDEA
- properties:
idea_purpose_id:
description: Idea purpose.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: string
label:
description: Field label.
type: string
example: Purpose
value:
description: Field value.
type: string
default: null
example: Example purpose
url:
type: string
department_id:
description: Department.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: string
label:
description: Field label.
type: string
example: Department
value:
description: Field value.
type: string
default: null
example: Example department name
url:
type: string
title:
description: Idea title.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: string
label:
description: Field label.
type: string
example: Title
value:
description: Field value.
type: string
example: Example idea title
url:
type: string
description:
description: Idea description.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: string
label:
description: Field label.
type: string
example: Description
value:
description: Field value.
type: string
example: Example idea description
url:
type: string
files:
description: Idea attached files.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: files
label:
description: Field label.
type: string
example: Files
value:
description: Field value.
type: object
properties:
item:
type: object
properties:
id:
description: File model ID.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
url:
description: File open URL.
type: string
example: https://demo.hrbox.io/file/open/a91fe4d9-b486-4e94-9114-18589aad7c7e.jpg
file_type:
description: File type.
type: string
enum:
- image
- video
- document
- archive
- other
- encrypted
example: image
ext:
description: File extension.
type: string
example: jpg
name:
description: File name.
type: string
example: 2023-01-01 01.01.01.jpg
url:
type: string
# VOTING_NOMINEE
- properties:
file_id:
description: URL to file.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: img
label:
description: Field label.
type: string
example: Image
value:
description: Field value.
type: string
example: https://demo.hrbox.io/file/resize/0x300/d56554a9-a97d-47d8-bb16-5647166a66de.jpg
url:
type: string
nomination_id:
description: Voting nomination.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: string
label:
description: Field label.
type: string
example: Nomination
value:
description: Field value.
type: string
example: Example nomination name
url:
type: string
title:
description: Idea title.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: string
label:
description: Field label.
type: string
example: Title
value:
description: Field value.
type: string
example: Example photo title
url:
type: string
description:
description: Idea description.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: string
label:
description: Field label.
type: string
example: Description
value:
description: Field value.
type: string
example: Example photo description
url:
type: string
referenceAttributes:
description: Reference model attributes.
type: object
requestedUser:
description: Requested user.
type: object
properties:
id:
description: Requested user ID.
type: string
format: uuid
iconUrl:
description: Requested user ID.
type: string
name:
description: Requested user name.
type: string
moderatedUser:
description: Moderated user.
type: object
properties:
id:
description: Moderated user ID.
type: string
format: uuid
iconUrl:
description: Moderated user ID.
type: string
name:
description: Moderated user name.
type: string
tenantInfoModuleIdea:
description: Настройки модуля идей.
type: object
properties:
isModuleEnabled:
description: Включить сбор идей и запросов.
type: boolean
example: true
isIdeaVotingEnabled:
description: Включить голосование за идею.
type: boolean
example: true
isIdeaUnvoteEnabled:
description: Разрешить отменять голос за идею.
type: boolean
example: true
isIdeaParticipateEnabled:
description: Разрешить присоединяться к реализации идеи.
type: boolean
example: true
isCancelParticipatingEnabled:
description: Разрешить отменять предложение о помощи в реализации идеи.
type: boolean
example: true
isIdeaCommentsEnabled:
description: Разрешить комментировать идеи.
type: boolean
example: true
tenantInfoModuleShop:
description: Настройки модуля корпоративного магазина.
type: object
properties:
isModuleEnabled:
description: Модуль корпоративного магазина вкл/выкл.
type: boolean
example: true
default: false
isZeroCountProductsVisible:
description: Отображать на витрине товары с нулевым количеством.
type: boolean
example: true
default: false
isAllowCustomDeliveryAddress:
description: Разрешить пользователям указывать собственный адрес доставки.
type: boolean
example: true
default: false
ideaStatuses:
description: >
Список статусов идеи:
* `1` - Модерация (STATUS_MODERATION).
* `2` - Отклонена модератором (STATUS_REJECTED_MODERATOR).
* `3` - Голосование (STATUS_VOTING).
* `4` - Отклонена исполнителем (STATUS_REJECTED_MANAGER).
* `5` - Отложена (STATUS_POSTPONED).
* `6` - В работе (STATUS_REALIZATION).
* `7` - Реализована (STATUS_IMPLEMENTED).
type: array
items:
properties:
id:
description: Идентификатор статуса.
type: integer
example: 1
name:
description: Имя статуса.
type: string
example: Модерация
ideaPurposes:
description: Список направлений идеи.
type: array
items:
properties:
id:
description: Идентификатор направления.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
name:
description: Имя направления.
type: string
example: Направление
ideaIndex:
type: object
properties:
id:
description: Идентификатор идеи.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
created_at:
description: Дата создания идеи.
type: string
format: 'date-time'
example: 2023-09-21 18:25:52
updated_at:
description: Дата изменения идеи.
type: string
format: 'date-time'
example: 2023-09-21 18:31:56
title:
description: Заголовок идеи.
type: string
example: Idea example title
description:
description: Описание идеи.
type: string
example: Idea example description
isEditable:
# Тут описать когда доступно
description: Доступность редактирования идеи для текущего пользователя.
type: boolean
example: true
status:
$ref: '#/components/schemas/status'
createdUser:
$ref: '#/components/schemas/userInfo'
performerUser:
description: Пользователь исполняющий идею.
type: object
properties:
id:
description: Идентификатор пользователя.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
iconUrl:
description: Ссылка на изображение лица профиля пользователя.
type: string
example: https://hrenot.hrbox.io/file/user-face/e2668a74-d171-4d47-b68f-9eb7e7d4e120/300.jpg
name:
description: Имя пользователя.
type: string
example: Иван Иванов
purpose:
description: Направление идеи.
type: object
properties:
id:
description: Идентификатор направления идеи.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
name:
description: Название направления идеи.
type: string
example: Направление 1
department:
description: Подразделение в которое подана идея.
type: object
properties:
id:
description: Идентификатор подразделения.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
name:
description: Название подразделения.
type: string
example: Подразделение 1
viewsCount:
description: Количество пользователей просмотревших идею.
type: integer
example: 1
countVoted:
description: Количество пользователей проголосовавших за идею.
type: integer
example: 1
countParticipate:
description: Количество пользователей предложивших помощь в реализации идеи.
type: integer
example: 1
isAllowVoting:
description: Возможность проголосовать за идею для текущего пользователя.
type: boolean
example: true
isAllowParticipate:
description: Возможность предложить помощь в реализации идеи для текущего пользователя.
type: boolean
example: true
isCurrentUserVoted:
description: Текущий пользователь проголосовал за идею.
type: boolean
example: false
isCurrentUserParticipate:
description: Текущий пользователь предложил помощь в реализации идеи.
type: boolean
example: false
entityId:
description: Entity ID.
type: number
example: 1
ideaView:
type: object
properties:
id:
description: Идентификатор идеи.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
created_at:
description: Дата создания идеи.
type: string
format: 'date-time'
example: 2023-09-21 18:25:52
updated_at:
description: Дата изменения идеи.
type: string
format: 'date-time'
example: 2023-09-21 18:31:56
title:
description: Заголовок идеи.
type: string
example: Idea example title
description:
description: Описание идеи.
type: string
example: Idea example description
isEditable:
# Тут описать когда доступно
description: Доступность редактирования идеи для текущего пользователя.
type: boolean
example: true
status:
$ref: '#/components/schemas/status'
createdUser:
$ref: '#/components/schemas/userInfo'
performerUser:
description: Пользователь исполняющий идею.
type: object
properties:
id:
description: Идентификатор пользователя.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
iconUrl:
description: Ссылка на изображение лица профиля пользователя.
type: string
example: https://hrenot.hrbox.io/file/user-face/e2668a74-d171-4d47-b68f-9eb7e7d4e120/300.jpg
name:
description: Имя пользователя.
type: string
example: Иван Иванов
purpose:
description: Направление идеи.
type: object
properties:
id:
description: Идентификатор направления идеи.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
name:
description: Название направления идеи.
type: string
example: Направление 1
department:
description: Подразделение в которое подана идея.
type: object
properties:
id:
description: Идентификатор подразделения.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
name:
description: Название подразделения.
type: string
example: Подразделение 1
viewsCount:
description: Количество пользователей просмотревших идею.
type: integer
example: 1
countVoted:
description: Количество пользователей проголосовавших за идею.
type: integer
example: 1
countParticipate:
description: Количество пользователей предложивших помощь в реализации идеи.
type: integer
example: 1
usersVoted:
description: Список пользователей проголосовавших за идею.
type: array
items:
properties:
id:
description: Идентификатор пользователя.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
iconUrl:
description: Ссылка на изображение лица профиля пользователя.
type: string
example: https://hrenot.hrbox.io/file/user-face/e2668a74-d171-4d47-b68f-9eb7e7d4e120/300.jpg
name:
description: Имя пользователя.
type: string
example: Иван Иванов
usersParticipate:
description: Список пользователей предложивших помощь в реализации идеи.
type: array
items:
properties:
id:
description: Идентификатор пользователя.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
iconUrl:
description: Ссылка на изображение лица профиля пользователя.
type: string
example: https://hrenot.hrbox.io/file/user-face/e2668a74-d171-4d47-b68f-9eb7e7d4e120/300.jpg
name:
description: Имя пользователя.
type: string
example: Иван Иванов
isAllowVoting:
description: Возможность проголосовать за идею для текущего пользователя.
type: boolean
example: true
isAllowParticipate:
description: Возможность предложить помощь в реализации идеи для текущего пользователя.
type: boolean
example: true
isCurrentUserVoted:
description: Текущий пользователь проголосовал за идею.
type: boolean
example: false
isCurrentUserParticipate:
description: Текущий пользователь предложил помощь в реализации идеи.
type: boolean
example: false
files:
$ref: '#/components/schemas/files'
ideaStatusLog:
description: Лог смены статуса идеи.
type: object
properties:
statusLabel:
description: Заголовок статуса идеи (локализовано).
type: string
example: Идея отклонена!
comment:
description: Комментарий к изменению статуса идеи.
type: string
example: Текст комментария
createdUser:
description: Пользователь изменивший статус идеи.
type: object
properties:
id:
description: Идентификатор пользователя.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
iconUrl:
description: Ссылка на изображение лица профиля пользователя.
type: string
example: https://hrenot.hrbox.io/file/user-face/e2668a74-d171-4d47-b68f-9eb7e7d4e120/300.jpg
name:
description: Имя пользователя.
type: string
example: Иван Иванов
entityId:
description: Идентификатор сущности.
type: number
example: 360
ideaEdit:
type: object
properties:
title:
description: Заголовок идеи.
type: string
example: Idea example title
description:
description: Описание идеи.
type: string
example: Idea example description
department_id:
description: Идентификатор подразделения.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
idea_purpose_id:
description: Идентификатор направления идеи.
type: string
format: uuid
example: bf052a5e-eb70-4eb9-b3f1-9ea50d751b0e
files:
description: Идентификаторы файлов.
type: array
items:
type: string
example:
- '53f2d03c-303a-4a3c-b57f-f7fb62fee538'
- '42862a16-affa-4ba5-86c5-61376f46d695'
tenantInfoModuleCurrency:
description: Настройки модуля корпоративной валюты.
type: object
properties:
isModuleEnabled:
description: Модуль корпоративной валюты вкл/выкл.
type: boolean
example: true
default: false
currencyName:
description: Название корпоративной валюты.
type: string
example: HRенотики
currencyCode:
description: Буквенный код валюты.
type: string
example: HRE
isWalletBalanceVisibleInUserProfile:
description: Отображать баланс кошелька в профиле пользователя.
type: boolean
example: true
default: false
isAllowToUseCurrencyInAchievements:
description: Корпоративная валюта в достижениях.
type: boolean
example: false
default: false
tenantInfoModuleUserStatus:
description: Настройки модуля статусов пользователей.
type: object
properties:
isUserStatusEnabled:
description: Модуль статусов пользователей вкл/выкл.
type: boolean
example: true
default: true
checkUserStatus:
description: Спрашивать статус пользователя.
type: boolean
example: true
default: false
modalHeaderText:
description: Текст заголовка модального окна.
type: string
default: Где вы сегодня работаете?
modalBodyText:
description: Текст описания в модальном окне.
type: string
default: Друзья, в текущей ситуации нам особенно важно знать, что с вами все в порядке. Поэтому просим вас каждое утро обновлять свой статус, чтобы мы понимали, где вы работаете.
userStatus:
type: object
properties:
id:
description: Идентификатор статуса.
type: string
format: uuid
example: b726280a-2be6-4e62-ab24-1736389c6474
name:
description: Название статуса.
type: string
example: В отпуске
slug:
description: Уникальный именуемый идентификатор статуса.
type: string
example: vacation
is_custom:
description: Статус создан администратором.
type: boolean
example: false
is_editable:
description: Возможность редактирования статуса.
type: boolean
example: false
is_expire:
description: Статус со сроком действия.
type: boolean
example: false
display_in_modal:
description: Запрашивать статус в модальном окне запроса статуса.
type: boolean
example: false
labelColorHEX:
description: Цвет статуса в HEX кодировке.
type: string
example: '#D90000'
userStatusSetRequestBody:
type: object
properties:
id:
description: Идентификатор статуса.
type: string
format: uuid
example: b726280a-2be6-4e62-ab24-1736389c6474
is_enabled:
description: Состояние статуса.
type: boolean
example: true
expire_at:
description: Срок действия статуса. Обязателен для установки статусов у которых включен срок действия.
type: string
format: date
commentStatuses:
description: >
Comment statuses list:
* `1` - Moderation (STATUS_NEW).
* `2` - Published (STATUS_APPROVED).
* `3` - Rejected by moderator (STATUS_REJECTED).
* `4` - Deleted (STATUS_DELETED).
type: array
items:
$ref: '#/components/schemas/status'
commentIndex:
type: object
properties:
id:
description: Comment ID.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
parent_id:
description: Parent comment ID.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
reply_id:
description: Reply to comment ID.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
entity_id:
description: Entity ID.
type: number
example: 1
reference_id:
description: Reference ID.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
created_at:
description: Comment creation date.
type: string
format: 'date-time'
example: 2023-01-01 00:00:00
updated_at:
description: Comment edit date.
type: string
format: 'date-time'
example: 2023-01-01 00:00:00
message:
description: Comment text.
type: string
example: Test
files:
$ref: '#/components/schemas/files'
status:
$ref: '#/components/schemas/status'
createdUser:
$ref: '#/components/schemas/userInfo'
referenceName:
description: Reference title or name.
type: string
example: Test reference
referenceUrl:
description: Reference URL.
type: string
example: https://hrenot.hrbox.io/content/idea/view?id=4405d4aa-82ed-44d4-a2b4-5e2ab4f611f1
commentView:
type: object
properties:
id:
description: Comment ID.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
parent_id:
description: Parent comment ID.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
default: null
reply_id:
description: Reply to comment ID.
type: string
format: uuid
default: null
entity_id:
description: Entity ID.
type: number
example: 1
reference_id:
description: Reference ID.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
created_at:
description: Comment creation date.
type: string
format: 'date-time'
example: 2023-01-01 00:00:00
updated_at:
description: Comment edit date.
type: string
format: 'date-time'
example: 2023-01-01 00:00:00
message:
description: Comment text.
type: string
example: Test
files:
$ref: '#/components/schemas/files'
status:
$ref: '#/components/schemas/status'
createdUser:
$ref: '#/components/schemas/userInfo'
commentGet:
type: object
properties:
entity_id:
description: Requested entity ID.
type: number
example: 1
reference_id:
description: Requested reference ID.
type: string
format: uuid
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
data:
type: array
items:
properties:
id:
description: Comment ID.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
parent_id:
description: Parent comment ID.
type: string
format: uuid
default: null
reply_id:
description: Reply to comment ID.
type: string
format: uuid
default: null
entity_id:
description: Entity ID.
type: number
example: 1
reference_id:
description: Reference ID.
type: string
format: uuid
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
created_at:
description: Comment creation date.
type: string
format: 'date-time'
example: 2023-01-01 00:00:00
updated_at:
description: Comment edit date.
type: string
format: 'date-time'
example: 2023-01-01 00:00:00
message:
description: Comment text.
type: string
example: Test
replies:
type: array
items:
$ref: '#/components/schemas/commentView'
files:
$ref: '#/components/schemas/files'
status:
$ref: '#/components/schemas/status'
createdUser:
$ref: '#/components/schemas/userInfo'
commentAddRequestBody:
type: object
properties:
entity_id:
description: Entity ID.
# required: true
type: number
example: 1
reference_id:
description: Reference ID.
# required: true
type: string
format: uuid
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
reply_id:
description: Reply to comment ID.
type: string
format: uuid
default: null
message:
description: Comment text.
# required: true
type: string
example: Test
maxLength: 2000
files:
description: Array of file IDs.
type: array
items:
type: string
example:
- '53f2d03c-303a-4a3c-b57f-f7fb62fee538'
- '42862a16-affa-4ba5-86c5-61376f46d695'
commentAddResponse:
type: object
properties:
success:
description: Result status.
type: boolean
example: true
message:
description: Message displayed to user (localized).
type: string
default: null
example: Comment added!
errors:
description: Array of validation errors.
type: array
default: null
data:
type: object
properties:
isApprovable:
description: If moderation is required, the value will be true.
type: boolean
example: false
comment:
$ref: '#/components/schemas/commentView'
fileIndex:
type: object
properties:
id:
description: File model ID.
type: string
format: uuid
example: e456bfb3-31dc-4c94-81ca-17dc49043a2b
name:
description: File name.
type: string
example: 2023-12-05 15-08-10.png
url:
description: File open URL.
type: string
example: https://demo.hrbox.io/file/open/e456bfb3-31dc-4c94-81ca-17dc49043a2b.jpg
ext:
description: File extension.
type: string
example: png
meta:
description: File meta information.
type: object
default: null
example: {
"width": 1920,
"height": 1080
}
properties:
width:
description: Image width.
type: integer
example: 1920
height:
description: Image height.
type: integer
example: 1080
file_type:
description: File type.
type: string
enum:
- image
- video
- document
- archive
- other
- encrypted
example: image
is_public:
description: File is public.
type: boolean
example: false
mime_type:
description: File MIME-Type.
type: string
example: image/png
size:
description: File size.
type: integer
example: 7894
shortSize:
description: File format size.
type: string
example: 7,894 КБ
categoryRoot:
type: array
items:
description: Categories list.
type: object
properties:
id:
description: Category ID.
type: integer
example: 1
name:
description: Category name (localized).
type: string
example: Category 1
category:
type: object
properties:
id:
description: Category ID.
type: string
format: uuid
example: 76080562-3a5e-4826-8799-7638b775bcd0
title:
description: Category title.
type: string
example: Category 1
description:
description: Category description.
type: string
example: Description text
status_id:
description: Category status ID.
type: number
example: 1
root_id:
description: Category root ID.
type: number
example: 1
hash_id:
description: Category hash ID.
type: string
example: 6c91d43fd9
thumb_style_id:
description: Category thumb style ID.
type: number
example: 1
content_style_id:
description: Category content style ID.
type: number
example: 1
iconUrl:
description: Category icon URL.
type: string
example: http://hr.lh/img/nophoto.png
thumbUrl:
description: Category thumb URL.
type: string
example: http://hr.lh/img/nophoto.png
imageUrl:
description: Category image URL.
type: string
example: http://hr.lh/img/noarticle.png
wallet:
type: object
properties:
id:
description: Wallet ID.
type: string
format: uuid
example: 485781ba-95a1-4c5c-9210-7a895ac7dc0e
status_id:
description: Wallet status ID.
type: number
example: 1
user_id:
description: User ID.
type: string
format: uuid
example: 070ca51a-2363-419e-bfe0-48fce85acfa5
balance:
description: Wallet balance.
type: number
example: 1
shopProductSortType:
type: array
items:
description: Sort types.
type: object
properties:
id:
description: Sort type ID.
type: string
example: id
name:
description: Sort type name (localized).
type: string
example: Type name
shopProductImages:
description: Дополнительное изображение товара.
type: object
properties:
id:
description: FIle ID.
type: string
format: uuid
example: df7784cc-4d19-4c6c-8c7a-403751fec1b8
url:
description: FIle open URL.
type: string
example: http://hr.lh/file/open/df7784cc-4d19-4c6c-8c7a-403751fec1b8.jpg
shopProductOption:
description: Shop product option.
type: object
properties:
id:
description: Option ID.
type: string
format: uuid
example: e25ea810-bbc2-4b1e-84ca-8ed56d4594ec
sort_index:
description: Option sort index.
type: number
example: 0
name:
description: Option name.
type: string
example: Type name
count:
description: Products count.
type: number
example: 1
entityId:
description: Entity ID.
type: number
example: 1
shopProduct:
type: object
properties:
id:
description: Product ID.
type: string
format: uuid
example: 76080562-3a5e-4826-8799-7638b775bcd0
title:
description: Product title.
type: string
example: Product 1
description:
description: Product description.
type: string
example: Description text
price:
description: Product price.
type: number
example: 1
totalCount:
description: Сумма количества товара во всех опциях товара.
type: number
example: 1
preview:
description: Product preview image.
type: string
example: http://hr.lh/file/resize/1200x1200/158712e1-78ed-4583-b5f1-6a0a083824a6.jpg
images:
description: Дополнительные изображения товара.
type: array
items:
$ref: '#/components/schemas/shopProductImages'
options:
description: Shop product options.
type: array
items:
$ref: '#/components/schemas/shopProductOption'
entityId:
description: Entity ID.
type: number
example: 1
shopProductIndex:
$ref: '#/components/schemas/shopProduct'
shopProductView:
type: object
properties:
id:
description: Product ID.
type: string
format: uuid
example: 76080562-3a5e-4826-8799-7638b775bcd0
title:
description: Product title.
type: string
example: Product 1
description:
description: Product description.
type: string
example: Description text
price:
description: Product price.
type: number
example: 1
totalCount:
description: Сумма количества товара во всех опциях товара.
type: number
example: 1
shopProductOption:
$ref: '#/components/schemas/shopProductOption'
preview:
description: Product preview image.
type: string
example: http://hr.lh/file/resize/1200x1200/158712e1-78ed-4583-b5f1-6a0a083824a6.jpg
images:
description: Дополнительные изображения товара.
type: array
items:
$ref: '#/components/schemas/shopProductImages'
options:
description: Shop product options.
type: array
items:
$ref: '#/components/schemas/shopProductOption'
entityId:
description: Entity ID.
type: number
example: 1
shopOrderDeliveryAddresses:
type: object
properties:
addresses:
description: Array of delivery address strings.
type: array
items:
type: string
example:
- 'Address 1'
- 'Address 2'
shopOrder:
type: object
properties:
id:
description: Order ID.
type: string
format: uuid
example: 0310635d-2c72-4219-9038-bf2ac8f14206
created_at:
description: Creation date.
type: string
format: 'date-time'
example: 2024-01-01 00:00:00
created_user_id:
description: User ID.
type: string
format: uuid
num:
description: Order number.
type: number
example: 1
order_status_id:
description: Order status ID. See /shop/order/statuses list.
type: number
example: 1
delivery_address:
description: Delivery address.
type: string
example: Address 1
default: null
countCartPositions:
description: Count of cart positions.
type: number
example: 1
countCartTotal:
description: Total count of cart items.
type: number
example: 2
sumCart:
description: Total cart sum.
type: number
example: 200
shopCart:
type: array
items:
type: object
properties:
id:
description: Cart item ID.
type: string
format: uuid
example: 195e1707-3f5d-4780-8dc1-b1023e1f974f
status_id:
type: integer
description: 1 - active, 2 - disabled, 3 - deleted
enum:
- 1
- 2
- 3
shop_item_id:
description: Product ID.
type: string
format: uuid
example: 11412fa5-031d-49c8-b7c9-2b5683e54bb8
shop_product_option_id:
description: Product option ID.
type: string
format: uuid
example: dadbf34e-6c16-4bb8-a19a-4932df2ec116
price:
description: Product cost at the time of order creation.
type: number
example: 100
count:
description: Count of product units.
type: number
example: 2
comment:
description: Comment text.
type: string
example: Example text
shopProductIcon:
description: Product icon.
type: string
example: http://hr.lh/file/resize/64x64/158712e1-78ed-4583-b5f1-6a0a083824a6.jpg
shopProductTitle:
description: Product title.
type: string
example: Example text
shopProductOptionName:
description: Product option name.
type: string
example: Example text
entityId:
description: Entity ID.
type: number
example: 1
shopOrderIndex:
$ref: '#/components/schemas/shopOrder'
shopOrderView:
$ref: '#/components/schemas/shopOrder'
survey:
type: object
description: "Опрос"
properties:
id:
type: string
format: uuid
name:
type: string
default: "Main survey"
description: "Название"
type_id:
type: integer
description: "Тип опроса"
oneOf:
- title: DEFAULT
const: 1
description: "Обычный"
- title: ICSI
const: 2
description: "ICSI"
- title: SURVEY_360
const: 360
description: "360"
- title: FEEDBACK
const: 6
description: "Обратная связь"
type_name:
type: string
default: "Обычный"
description: "Тип опроса"
is_available:
type: boolean
description: "Доступен всем"
is_available_by_date:
type: boolean
description: "Доступность по дате"
is_choice_anonymous:
type: boolean
description: "Возможность выбора анонимности"
available_date:
type: string
format: date_time
description: "Дата доступа"
deadline_at:
type: string
format: date_time
description: "Дата дедлайна"
canStart:
type: boolean
description: "Возможность начать прохождение"
urlStart:
type: string
description: "Ссылка на прохождение опроса"
result_params:
type: object
properties:
allow_repeat:
type: boolean
description: "Возможность перепройти опрос"
show_results:
type: boolean
description: "Возможность смотреть результат"
surveyAssignment:
type: object
description: "Назначение на опрос"
properties:
id:
type: string
format: uuid
is_anonymous:
type: boolean
description: "Анонимное прохождение"
started_at:
type: string
format: date_time
description: "Дата начала"
finished_at:
type: string
format: date_time
description: "Дата завершения"
created_at:
type: string
format: date_time
description: "Дата назначения"
survey360MatrixPositionName:
type: string
description: "В какой роли прохождение опроса"
survey360_matrix_position_id:
type: string
format: uuid
description: "Id роли прохождения"
surveyAssignmentStatusName:
type: string
description: "Название статуса"
survey_assignment_status_id:
type: integer
description: Статус прохождения опроса
oneOf:
- title: STATUS_COMPLETED
const: 1
description: "Завершен"
- title: STATUS_NOT_STARTED
const: 2
description: "Не пройден"
- title: STATUS_IN_PROGRESS
const: 3
description: "В процессе"
type_id:
type: number
description: "Тип назначения"
oneOf:
- title: NORMAL_ASSIGN
const: 1
description: "Вручную"
- title: SELF_ASSIGN
const: 3
description: "Самоназначение"
survey_id:
type: string
format: uuid
description: "Id опроса"
survey_target_id:
type: string
format: uuid
description: "Id таргета"
canStart:
type: boolean
description: "Возможность начать или продолжить прохождение"
urlStart:
type: string
description: "Ссылка на прохождение опроса"
cabinetReportChoicesUrl:
type: string
description: "Ссылка на просмотр результата, если значение null, то нет доступа для просмотра"
surveyTarget:
type: object
properties:
id:
type: string
format: uuid
entity_id:
type: integer
description: "Id сущности"
item_id:
type: integer
description: "Id записи сущности"
targetName:
type: string
description: "Название, заголовок записи сущности"
target:
oneOf:
- $ref: '#/components/schemas/userProfile'
mdWidgetUserItem:
type: object
properties:
id:
description: User ID
type: string
format: uuid
example: 195e1707-3f5d-4780-8dc1-b1023e1f974f
itemTitle:
description: User name
type: string
itemUrl:
description: User profile URL
type: string
example: https://hrenot.hrnox.io/core/user/view?id=5bc40c54-da74-4d5b-ac24-123374dc1a5a
itemImageUrl:
description: User avatar URL
type: string
example: https://hrenot.hrnox.io/file/user-face/5bc40c54-da74-4d5b-ac24-123374dc1a5a/300.jpg
itemEntityId:
description: Entity ID
type: number
example: 1
itemTip:
description: User position
type: string
example: CEO
itemDate:
description: Date board item
type: string
format: date
example: 19 july
data:
type: object
properties:
position:
description: User position
type: string
example: CEO
departmentName:
description: User department name
type: string
example: 'New Department'
isFavorite:
description: Находится ли пользователь в избранном
type: boolean
shopOrderCheckoutRequestBody:
type: object
properties:
selectedAddress:
description: Адрес доставки. Требуется если tenantInfo.modules.shop.isAllowCustomDeliveryAddress равен true и не указан customAddress.
type: string
example: Address 1
customAddress:
description: Адрес доставки. Требуется если tenantInfo.modules.shop.isAllowCustomDeliveryAddress равен true и не указан selectedAddress.
type: string
default: null
message:
description: Комментарий к заказу.
type: string
maxLength: 512
example: Example text
shopCartId:
description: Массив shop_cart_id
type: array
items:
type: string
format: uuid
shopCartAll:
description: Добавить все товары которые есть в корзине
type: boolean
default: false
cart:
description: Корзина товаров.
type: array
items:
type: object
properties:
id:
description: Product option ID.
type: string
format: uuid
example: e25ea810-bbc2-4b1e-84ca-8ed56d4594ec
cartCount:
description: Количество единиц текущей позиции товара.
type: number
example: 2
shopOrderCheckoutResponse:
type: object
properties:
success:
description: Result status.
type: boolean
example: false
message:
description: Message displayed to user (localized).
type: string
default: null
example: Example text
errors:
description: Array of validation errors.
type: array
default: null
data:
type: object
properties:
notFoundProducts:
description: Список идентификаторов товаров которые не были найдены. Возвращается в случае если товар не найден.
type: array
items:
type: string
example:
- 'e25ea810-bbc2-4b1e-84ca-8ed56d4594ec'
- 'ddbbec20-ec4d-42c5-8b11-1bb2d08e6465'
unavailableProducts:
description: Список идентификаторов товаров которых нет в наличии. Возвращается в случае если в корзине присутствуют товары которых больше нет в наличии.
type: array
items:
type: string
example:
- 'e25ea810-bbc2-4b1e-84ca-8ed56d4594ec'
- 'ddbbec20-ec4d-42c5-8b11-1bb2d08e6465'
products:
description: Возвращается в случае если в корзине присутствуют товары которых в наличии меньше чем указано в заказе.
type: array
items:
type: object
properties:
id:
description: Product option ID.
type: string
format: uuid
example: e25ea810-bbc2-4b1e-84ca-8ed56d4594ec
count:
description: Количество товара в наличии.
type: number
example: 1
balance:
description: Текущий баланс кошелька пользователя. Возвращается в случае успешного совершения заказа.
type: number
example: 100
shopOrder:
description: Данные заказа. Возвращается в случае успешного совершения заказа.
type: object
properties:
id:
description: Order ID.
type: string
format: uuid
example: 0310635d-2c72-4219-9038-bf2ac8f14206
created_at:
description: Creation date.
type: string
format: 'date-time'
example: 2024-01-01 00:00:00
num:
description: Order number.
type: number
example: 1
delivery_address:
description: Delivery address.
type: string
example: Address 1
default: null
shopOrderPositionRemoveRequestBody:
type: object
properties:
id:
description: Cart item ID.
type: string
format: uuid
example: 195e1707-3f5d-4780-8dc1-b1023e1f974f
comment:
description: Comment text.
type: string
example: Example text
apiDefaultResponse:
type: object
properties:
success:
description: Result status.
type: boolean
example: true
message:
description: Message displayed to user (localized).
type: string
default: null
errors:
description: Array of validation errors.
type: array
default: null
data:
type: object
default: null
shopOrderPositionRemoveResponse:
$ref: '#/components/schemas/apiDefaultResponse'
shopOrderPositionRestoreRequestBody:
type: object
properties:
id:
description: Cart item ID.
type: string
format: uuid
example: 195e1707-3f5d-4780-8dc1-b1023e1f974f
shopOrderPositionRestoreResponse:
$ref: '#/components/schemas/apiDefaultResponse'
shopOrderPositionChangeCommentRequestBody:
type: object
properties:
id:
description: Cart item ID.
type: string
format: uuid
example: 195e1707-3f5d-4780-8dc1-b1023e1f974f
comment:
description: Comment text.
type: string
example: Example text
shopOrderPositionChangeCommentResponse:
$ref: '#/components/schemas/apiDefaultResponse'
shopOrderCancelRequestBody:
type: object
properties:
id:
description: Order ID.
type: string
format: uuid
example: 195e1707-3f5d-4780-8dc1-b1023e1f974f
message:
description: Comment text.
type: string
example: Example text
shopOrderCancelResponse:
$ref: '#/components/schemas/apiDefaultResponse'
orgEmployment:
type: object
properties:
id:
type: string
format: uuid
example: "db43fc69-35f7-4c66-8a63-633b5e9abe33"
organization_id:
type: string
example: "default"
org_department_id:
type: string
format: uuid
example: "0212e611-5b19-43f9-8389-7f6a4b87462d"
chief_id:
type:
- string
- null
example: null
chief_organization_id:
type: string
example: "default"
position:
type: string
example: "Водитель"
employment_date:
type: string
format: date
example: "2019-09-25"
fired_date:
type:
- string
- null
format: date
example: null
changed_at:
type: string
format: date-time
example: "2025-04-22 05:20:57"
org_num:
type: string
example: "db43fc69-35f7-4c66-8a63-633b5e9abe33"
is_removed:
type: boolean
example: false
first_name:
type: string
example: "Иван"
last_name:
type: string
example: "Петрович"
middle_name:
type: string
example: "F"
birthday_date:
type: string
format: date
example: "2004-04-04"
gender:
type: string
enum:
- male
- female
example: "male"
photo:
type:
- string
- null
example: null
emails:
type: array
items:
type: string
format: email
example: [ ]
phones:
type: array
items:
type: string
example: [ ]
other_contacts:
type: array
items:
type: string
example: [ ]
user_custom_fields:
type: array
items:
type: object
example: [ ]
custom:
type: array
items:
type: object
example: [ ]
cabinet:
type: string
example: "230"
city:
type: string
example: "Караганда"
country_id:
type:
- string
- null
example: null
timezone_id:
type:
- string
- null
example: null
statuses:
type: array
items:
type: string
example: [ ]
login:
type:
- string
- null
example: null
auth_email:
type:
- string
- null
format: email
example: null
expert_user_id:
type:
- string
- null
example: null
orgDepartment:
$ref: "#/components/schemas/orgDepartment"
orgDepartment:
type: object
properties:
id:
type: string
format: uuid
example: "0212e611-5b19-43f9-8389-7f6a4b87462d"
organization_id:
type: string
example: "default"
name:
type: string
example: "HRBox org"
parent_id:
type:
- string
- null
example: null
chief_id:
type:
- string
- null
example: null
chief_organization_id:
type:
- string
- null
example: null
changed_at:
type: string
format: date-time
example: "2025-04-28 19:13:28"
org_num:
type: string
example: "2345"
is_removed:
type: boolean
example: false
department_id:
type: string
format: uuid
example: "5270b5ce-8320-4d83-a096-8a72f8c24307"
is_ignored:
type: boolean
example: false
is_synced:
type: boolean
example: false
orgEmploymentFile:
type: object
properties:
id:
description: ID записи
type: string
format: uuid
example: 195e1707-3f5d-4780-8dc1-b1023e1f974f
org_employment_id:
description: ID конкретного сотрудника
type: string
format: uuid
example: 195e1707-3f5d-4780-8dc1-b1023e1f974f
org_employment_file_status_id:
$ref: '#/components/schemas/orgEmploymentFileStatus'
org_employment_file_type_id:
$ref: '#/components/schemas/orgEmploymentFileType'
custom_id:
description: ID кастомной обработки
type: string
maxLength: 127
date_from:
description: Дата с (например для расчетной ведомости, за период с)
type: string
format: 'date'
example: 2025-04-23
date_to:
description: Дата по (например для расчетной ведомости, за период по)
type: string
format: 'date'
example: 2025-04-27
created_at:
type: string
description: Дата последнего изменения
format: 'date-time'
example: 2025-04-25 16:15:03
updated_at:
type: string
description: Дата создания
format: 'date-time'
example: 2025-04-25 16:15:03
ready_at:
type: string
format: 'date-time'
example: 2025-04-25 16:15:03
organization_id:
type: string
description: ID организации
format: uuid
example: 195e1707-3f5d-4780-8dc1-b1023e1f974f
user_id:
type: string
description: ID пользователя
format: uuid
example: 195e1707-3f5d-4780-8dc1-b1023e1f974f
file:
description: Файл кадрового документа
anyOf:
- $ref: '#/components/schemas/fileIndex'
- type: 'null'
orgEmploymentFileType:
type: string
description: >
Тип документа:
* `payslip` - Расчетный лист (PAYSLIP).
* `ndfl2` - 2НДФЛ (NDFL2).
* `custom` - Кастомный тип (CUSTOM).
enum:
- payslip
- ndfl2
- custom
orgEmploymentFileStatus:
type: integer
description: >
Состояние документа:
* `1` - Запрошен (REQUESTED).
* `2` - В обработке (PENDING).
* `3` - Готов (READY).
enum:
- 1
- 2
- 3
# КЭДО -->
KedoSignType:
type: integer
enum: [1, 2]
description: |
- `1` UNEP — через KedoCa (внутренний CA)
- `2` UKEP — УКЭП через КриптоПро
KedoSignRequestStatus:
type: integer
enum: [1, 2, 3, 4]
description: |
- `1` WAIT — ожидает подписи
- `2` CANCELLED — отменён
- `3` SIGNED — подписан
- `4` REQUESTED — запрошен
KedoSignRequestSlotType:
type: integer
enum: [1, 2, 3]
description: |
- `1` AND — каждый подписывает свой экземпляр
- `2` OR — любой один
- `3` ALL — все обязательно
KedoTemplateFieldTypeEnum:
type: integer
enum: [1, 2, 3]
description: 'STRING=1, DATE=2, NUMBER=3'
KedoAutoFillSource:
type: string
enum:
- employee_full_name
- employee_short_name
- employee_position
- employee_department
- organization_name
- org_head_name
- date_today
- employee_tab_number
MchdStatus:
type: string
enum: [DRAFT, SIGNED, PROCESSING, ACTIVE, REVOKED, EXPIRED, REJECTED]
KedoEnumItem:
type: object
properties:
id:
oneOf:
- { type: integer }
- { type: string }
name: { type: string }
KedoDocument:
type: object
properties:
id: { type: string, format: uuid }
created_at: { type: string, format: date-time }
sign_request_status_id: { $ref: '#/components/schemas/KedoSignRequestStatus' }
org_employment_file_type_id:
type: string
nullable: true
description: Тип кадрового документа (KedoDocumentType)
deadline_at:
type: string
format: date
nullable: true
cancelled_at:
type: string
format: date-time
nullable: true
comment:
type: string
nullable: true
file:
$ref: '#/components/schemas/KedoFileRef'
user:
$ref: '#/components/schemas/KedoUserRef'
description: Инициатор
documentTypeName:
type: string
description: Человеко-читаемое название типа
signRequestStatusName:
type: string
isCurrentUserSigned: { type: boolean }
isCurrentUserCanSign: { type: boolean }
instancesCount: { type: integer }
signedInstancesCount: { type: integer }
currentUserInstance: { $ref: '#/components/schemas/KedoInstance' }
currentUserInstanceCount: { type: integer }
slotsUsersTotalCount: { type: integer }
signedUsersCount: { type: integer }
firstInstance: { $ref: '#/components/schemas/KedoInstance' }
KedoDocumentSignRequest:
type: object
required: [id]
properties:
id:
type: string
format: uuid
description: ID документа
sign_type: { $ref: '#/components/schemas/KedoSignType' }
kedo_instance_ids:
description: |
Опционально. Если не передано — подпишутся все доступные текущему юзеру экземпляры.
Можно передать массив UUID или строку UUID через запятую.
oneOf:
- type: array
items: { type: string, format: uuid }
- type: string
example: 'uuid1,uuid2'
mchd_id:
type: string
format: uuid
nullable: true
description: UUID МЧД, если подписываем по доверенности
KedoDocumentSignUkepRequest:
type: object
required: [id, sign_type, ukep]
properties:
id: { type: string, format: uuid }
sign_type: { $ref: '#/components/schemas/KedoSignType' }
ukep:
type: string
format: byte
description: Base64 CAdES-T detached подпись
kedo_instance_ids:
description: Опционально. Массив UUID или строка через запятую.
oneOf:
- type: array
items: { type: string, format: uuid }
- type: string
mchd_id:
type: string
format: uuid
nullable: true
KedoDocumentRejectRequest:
type: object
required: [id, comment]
properties:
id: { type: string, format: uuid }
kedo_instance_ids:
description: Опционально. Массив UUID или строка через запятую.
oneOf:
- type: array
items: { type: string, format: uuid }
- type: string
comment:
type: string
maxLength: 255
description: Причина отклонения
KedoInstance:
type: object
properties:
id: { type: string, format: uuid }
kedo_document_id: { type: string, format: uuid }
sign_request_status_id: { $ref: '#/components/schemas/KedoSignRequestStatus' }
isCurrentUserSigned: { type: boolean }
isCurrentUserCanSign: { type: boolean }
isCurrentUserSigner: { type: boolean }
isExistUkep: { type: boolean }
isExistUnep: { type: boolean }
signersCount: { type: integer }
signedCount: { type: integer }
mainSignerUser: { $ref: '#/components/schemas/KedoUserRef' }
mchdIds:
type: array
items: { type: string, format: uuid }
description: МЧД использованные при подписании
kedoDocument: { $ref: '#/components/schemas/KedoDocument' }
signers:
type: array
items: { $ref: '#/components/schemas/KedoUserRef' }
KedoSignRequestCreate:
type: object
required: [document_type_id, request_users]
properties:
file_id:
type: string
format: uuid
description: ID предварительно загруженного PDF (обязателен если нет template_id)
template_id:
type: string
format: uuid
description: ID шаблона (альтернатива file_id)
field_values:
type: object
additionalProperties: true
description: 'Значения полей шаблона {key: value}'
document_type_id:
type: string
description: Тип документа (KedoDocumentType)
example: employment-contract
request_users:
type: object
description: Подписанты через механизм UserList
properties:
users:
type: array
items: { $ref: '#/components/schemas/KedoSignRequestSlotType' }
description: Массив типов слотов (AND/OR/ALL) по количеству групп подписантов
key:
type: array
items: { type: string }
description: Ключи UserList для каждой группы (отделы/юзеры)
deadline_at:
type: string
format: date
nullable: true
description: 'Дедлайн подписания (не в прошлом!)'
comment:
type: string
maxLength: 2000
nullable: true
slots:
type: array
items: { type: object }
description: Дополнительные настройки слотов (необязательно)
KedoTemplate:
type: object
properties:
id: { type: string, format: uuid }
name: { type: string }
status_id: { type: integer }
document_type_id:
type: string
description: KedoDocumentType
documentTypeName: { type: string }
downloadUrl:
type: string
format: uri
description: URL скачивания исходного PDF
isLocalTemplate:
type: boolean
description: Встроенный (не редактируемый) шаблон
fields:
type: array
items: { $ref: '#/components/schemas/KedoTemplateField' }
KedoTemplateField:
type: object
properties:
key:
type: string
description: Имя плейсхолдера в PDF
example: ДатаНачала
label:
type: string
description: Человеко-читаемое название
example: Дата начала
type: { $ref: '#/components/schemas/KedoTemplateFieldTypeEnum' }
required: { type: boolean }
auto_fill:
type: string
nullable: true
description: Источник автозаполнения (KedoAutoFillSource)
KedoTemplateSubmit:
type: object
required: [template_id, field_values]
properties:
template_id: { type: string, format: uuid }
field_values:
type: object
additionalProperties: true
description: 'Значения полей {key: value}. Даты — YYYY-MM-DD.'
KedoFileRef:
type: object
properties:
id: { type: string, format: uuid }
file_type: { type: integer }
ext: { type: string, example: pdf }
name: { type: string }
url: { type: string, format: uri }
KedoUserRef:
type: object
properties:
id: { type: string, format: uuid }
name: { type: string }
iconUrl: { type: string, format: uri, nullable: true }
HttpJsonResult:
type: object
description: Стандартный ответ операций КЭДО
properties:
success: { type: boolean }
message:
type: object
properties:
type: { type: string, enum: [success, error, info, warning] }
text: { type: string }
data:
type: object
nullable: true
errors:
type: array
items: { type: string }
MchdRecord:
type: object
properties:
id: { type: string, format: uuid }
tenant_id: { type: integer }
principal_inn: { type: string, example: '7707083893' }
principal_kpp: { type: string, example: '770701001' }
principal_ogrn: { type: string, example: '1027700132195' }
principal_name: { type: string, example: 'ООО Рога и Копыта' }
representative_inn: { type: string, example: '770312345678' }
representative_snils: { type: string, example: '123-456-789 01' }
representative_name: { type: string, example: 'Иванов Иван Иванович' }
representative_user_id: { type: string, format: uuid, nullable: true }
xml_content: { type: string, description: 'XML EMCHD_1' }
signature:
type: string
format: byte
nullable: true
description: Detached CAdES-T base64
powers:
type: array
nullable: true
items: { $ref: '#/components/schemas/PowerCode' }
valid_from: { type: string, format: date }
valid_to: { type: string, format: date }
status: { $ref: '#/components/schemas/MchdStatus' }
cprr_status: { type: string, nullable: true }
cprr_operator: { type: string, nullable: true }
cprr_response: { type: object, nullable: true }
created_at: { type: string, format: date-time }
updated_at: { type: string, format: date-time, nullable: true }
revoked_at: { type: string, format: date-time, nullable: true }
MchdGenerateRequest:
type: object
required:
- principal_inn
- principal_name
- ceo_last_name
- ceo_first_name
- representative_last_name
- representative_first_name
- representative_inn
- valid_from
- valid_to
properties:
principal_name: { type: string }
principal_inn: { type: string, example: '7707083893' }
principal_kpp: { type: string, example: '770701001' }
principal_ogrn: { type: string, example: '1027700132195' }
ceo_last_name: { type: string }
ceo_first_name: { type: string }
ceo_middle_name: { type: string }
ceo_inn: { type: string }
ceo_position: { type: string, example: 'Генеральный директор' }
representative_last_name: { type: string }
representative_first_name: { type: string }
representative_middle_name: { type: string }
representative_inn: { type: string }
representative_snils: { type: string }
representative_user_id: { type: string, format: uuid }
valid_from: { type: string, description: 'DD.MM.YYYY', example: '01.01.2026' }
valid_to: { type: string, description: 'DD.MM.YYYY', example: '01.01.2027' }
powers_text: { type: string }
power_codes:
type: array
items: { $ref: '#/components/schemas/PowerCode' }
MchdGenerateResponse:
type: object
properties:
id: { type: string, format: uuid }
xml_content: { type: string }
file_name:
type: string
example: ON_EMCHD_20260101_a1b2c3d4-e5f6-7890-abcd-ef1234567890.xml
MchdSaveRequest:
type: object
required:
- id
- principal_inn
- principal_name
- representative_inn
- representative_name
- xml_content
- valid_from
- valid_to
properties:
id: { type: string, format: uuid, description: 'UUID из ответа /generate' }
principal_inn: { type: string }
principal_kpp: { type: string }
principal_ogrn: { type: string }
principal_name: { type: string }
representative_inn: { type: string }
representative_snils: { type: string }
representative_name: { type: string }
representative_user_id: { type: string, format: uuid }
xml_content: { type: string }
signature:
type: string
format: byte
description: Если передана — SIGNED, иначе DRAFT
powers:
type: array
items: { $ref: '#/components/schemas/PowerCode' }
valid_from: { type: string, description: 'DD.MM.YYYY' }
valid_to: { type: string, description: 'DD.MM.YYYY' }
OrgInfo:
type: object
properties:
has_cert: { type: boolean }
name: { type: string }
inn: { type: string }
ogrn: { type: string }
PowerCode:
type: object
properties:
code: { type: string, example: '101' }
name: { type: string, example: 'Подписание кадровых документов' }
KedoError:
type: object
properties:
name: { type: string }
message: { type: string }
code: { type: integer }
status: { type: integer }
KedoValidationErrorBody:
allOf:
- $ref: '#/components/schemas/KedoError'
- type: object
properties:
errors:
type: array
items:
type: object
properties:
field: { type: string }
message: { type: string }
# КЭДО <--
GoalItem:
type: object
properties:
id:
type: string
format: uuid
created_at:
type: string
format: date-time
title:
type: string
description: Заголовок цели
weight:
type: number
description: "Вес"
goal_interval_type_id:
$ref: '#/components/parameters/goalIntervalTypeId'
goal_status_id:
$ref: '#/components/parameters/goalStatusId'
goal_result_type_id:
type: number
description: >
Тип результата:
* `1` - Да/нет
* `2` - Процент
* `3` - Число"
goal_date:
$ref: '#/components/parameters/goalDate'
result_scaled:
type: number
format: double
description: Процент результата от целевого значения
result_max:
type: number
description: Целевое число
result_units:
type: string
description: Единицы измерения
sort_index:
type: number
description: Сортировка
parent_id:
type: string
format: uuid
description: Цель, в которую вложена
user_id:
type: string
format: uuid
description: Чья цель
supervisor_id:
type: string
format: uuid
description: Куратор
participants:
type: array
items:
type: string
description: Участники
result:
type: number
description: Результат цели
rating:
type: string
description: Рейтинг цели
dutyItem:
type: object
properties:
id:
type: string
format: uuid
example: "073f11ed-3329-4c95-9966-f25b15846ea2"
name:
type: string
example: "Услуга 1"
status_id:
type: integer
example: 1
created_at:
type: string
format: date-time
example: "2025-07-11 07:57:19"
created_user_id:
type: string
format: uuid
example: "c73f48dd-ae57-496e-b973-20d048651f70"
walletTransactionType:
type: integer
description: >
Тип транзакции:
* `1` - Начисление
* `2` - Списание
enum: [1, 2]
example: 1
walletOperationType:
type: integer
description: >
Тип операции кошелька:
* `1` - Начисление валюты
* `2` - Списание валюты
* `3` - Перевод валюты
* `4` - Назначено достижение
* `5` - Покупка в магазине
* `6` - Автоматическое начисление валюты
* `7` - Подарок (автоматическое начисление)
* `8` - Подарок (процент от баланса)
enum: [1, 2, 3, 4, 5, 6, 7, 8]
example: 3
walletTransaction:
type: object
properties:
id:
type: string
format: uuid
example: 'd290f1ee-6c54-4b01-90e6-d701748f0851'
created_at:
type: string
format: date-time
example: '2025-07-21 14:35:00'
wallet_transaction_type:
$ref: '#/components/schemas/walletTransactionType'
wallet_operation_type:
$ref: '#/components/schemas/walletOperationType'
administrator_id:
type: string
format: uuid
example: 'c1a22f77-932e-4c7a-98b3-7c65b8b2a3e0'
sender_wallet_id:
type: string
format: uuid
example: 'a115e5b4-b56a-4ef0-a96b-4d18b9f3e293'
recipient_wallet_id:
type: string
format: uuid
example: 'b265e53c-e8e6-4aa1-8576-b1dc5b2c1fd3'
amount:
type: number
format: int
example: 150
entity_id:
type: number
example: 42
reference_id:
type: string
format: uuid
example: 'deadbeef-0000-0000-0000-deadbeef0000'
comment:
type: string
nullable: true
example: 'Покупка в магазине'
userNoteItem:
type: object
properties:
id:
type: string
format: uuid
description: Идентификатор заметки
example: "123e4567-e89b-12d3-a456-426614174000"
created_at:
type: string
format: date-time
description: Дата создания
example: "2023-10-01 10:30:00"
updated_at:
type: string
format: date-time
description: Дата обновления
example: "2023-10-01 10:30:00"
created_user_id:
type: string
format: uuid
description: Идентификатор автора заметки
example: "123e4567-e89b-12d3-a456-426614174001"
updated_user_id:
type: string
format: uuid
description: Идентификатор пользователя, обновившего заметку
example: "123e4567-e89b-12d3-a456-426614174001"
user_id:
type: string
format: uuid
description: Идентификатор пользователя, о котором заметка
example: "123e4567-e89b-12d3-a456-426614174002"
text:
type: string
nullable: true
description: Текстовое содержимое заметки (устаревшее поле)
example: "Важная заметка о пользователе"
content_json:
type: object
content_md:
type: string
nullable: true
description: Контент в формате Markdown
example: "**Жирный текст**"
content_html:
type: string
nullable: true
description: Рендеренный HTML контент
example: "
Важная заметка о пользователе
" files: type: array items: $ref: '#/components/schemas/fileObject' description: Прикрепленные файлы (извлеченные из content_json) createdAt: type: string nullable: true description: Локализованная дата создания example: "01.10.2023 10:30" createdUser: $ref: '#/components/schemas/userInfo' createdUserLabel: type: string description: HTML ссылка на автора заметки example: 'Иван Иванов' userNoteUpdateRequest: type: object required: - message properties: message: type: string maxLength: 2000 description: Текст заметки example: "Заметка о пользователе" files: type: array items: $ref: '#/components/schemas/fileObject' description: Прикрепляемые файлы maxItems: 10 mobileConnect: type: object properties: id: type: string format: uuid description: Идентификатор подключения устройства example: "b5d12b08-3f6b-4e43-8f42-6f4db5a12345" user_id: type: string format: uuid description: Идентификатор пользователя example: "c83b3e5b-90b6-4a7c-bb0a-5a6e8c9f44f2" device_id: type: string description: Уникальный идентификатор устройства example: "2a5f6e7d-8b90-4c12-a345-6789abcdef12" device_model: type: string description: Модель устройства example: "iPhone 15 Pro" device_name: type: string description: Имя устройства example: "Телефон Ивана" device_os: type: string description: Название операционной системы example: "iOS" device_os_version: type: string description: Версия операционной системы example: "17.2" created_at: type: string format: date-time description: Дата и время регистрации устройства example: "2025-09-15T12:45:00Z" created_at_localized: type: string description: Локализованное значение даты регистрации example: "15 сентября 2025, 15:45" last_login_at: type: string format: date-time description: Дата и время последнего входа example: "2025-10-01T09:30:00Z" last_login_at_localized: type: string description: Локализованное значение даты последнего входа example: "1 октября 2025, 12:30" ip: type: string description: IP-адрес последнего подключения example: "192.168.1.42" mobileOauthProvider: type: object required: - id - name - buttonLoginName - authUrl properties: id: description: > Уникальный идентификатор OAuth-провайдера. Может быть UUID (внутренний провайдер) или строковый код (google, yandex). type: string example: "google" name: description: Отображаемое название провайдера type: string example: "Google" buttonLoginName: description: Текст кнопки входа type: string example: "Войти через Google" imageUrl: description: URL иконки провайдера type: string nullable: true example: "https://tenant.hrbox.io/img/social/google.svg" oauthTypeId: description: > Тип OAuth-провайдера: * `1` - Default * `2` - ADFS * `3` - OpenId type: integer nullable: true enum: [ 1, 2, 3 ] example: 3 oauthTypeName: description: Название типа OAuth type: string example: "OpenID" authUrl: description: URL для начала OAuth-авторизации type: string format: uri example: "https://accounts.google.com/o/oauth2/v2/auth?..." parameters: boardDateTypeParam: in: query name: type description: 1 - За день, 2 - За неделю, 3 - За месяц. required: true schema: type: integer enum: [ 1, 2, 3 ] example: 2 boardDateDayParam: name: day in: query description: Число месяца (обязателен для списка за день) schema: type: integer example: 15 boardDateWeekParam: name: week in: query description: Номер недели в году (обязателен для спика за неделю) schema: type: integer example: 27 boardDateMonthParam: name: month in: query description: Месяц (обязателен для списка по дням и месяцам) schema: type: integer example: 7 boardDateYearParam: name: year in: query description: Год (обязателен всегда) required: true schema: type: integer example: 2024 boardDepartmentId: name: department_id in: query description: UUID подразделения, либо их список, разделённый запятой required: false boardWithFavorites: name: with_favorites in: query description: Возвращать результат вместе с избранными пользователями required: false example: 1 userListKey: name: user_list_key in: query description: UUID списка пользователей schema: type: string title: name: title in: query schema: type: string description: Поиск по названию goalIntervalTypeId: name: goal_interval_type_id in: query schema: type: number description: > Тип интервала дедлайна * `1` - На день * `2` - На неделю * `3` - На месяц * `4` - На квартал * `5` - На полугодие * `6` - На год goalStatusId: name: goal_status_id in: query schema: type: number description: > Статус цели, можно перечислять через запятую * `1` - Черновик * `2` - Согласование * `3` - В процессе * `4` - Согласование результата * `5` - Завершена * `6` - Согласование удаления * `7` - Удалена goalDate: name: goal_date in: query schema: type: string description: Дата завершения цели goalMonth: name: goal_month in: query schema: type: string description: Месяц завершения цели goalQuarter: name: goal_quarter in: query schema: type: integer enum: [ 1, 2, 3, 4 ] description: Квартал завершения цели goalYear: name: goal_year in: query schema: type: integer description: Год завершения цели goalParentId: name: parent_id in: query schema: type: string description: Родительский элемент noRemoved: name: no_removed in: query schema: type: string description: Без удаленных noDraft: name: no_draft in: query schema: type: string description: Без черновиков # КЭДО --> MchdId: name: id in: path required: true description: UUID МЧД (= НомДовер в XML) schema: { type: string, format: uuid } PageParam: name: page in: query required: false schema: { type: integer, minimum: 1, default: 1 } PerPageParam: name: per-page in: query required: false schema: { type: integer, minimum: 1, maximum: 20, default: 10 } SortParam: name: sort in: query required: false description: | Поле сортировки. Префикс `-` — DESC. По умолчанию `-created_at`. Допустимые: `created_at`, `deadline_at`, `sign_request_status_id`, `org_employment_file_type_id`, `file.name`, `updated_at`. schema: type: string example: -created_at # --- Фильтры для списков KedoDocument (/kedo/document, /need-signed, /archive) --- DocumentNameParam: name: document_name in: query required: false description: Поиск по названию файла (ILIKE, без учёта регистра) schema: { type: string } CreatedAtRangeParam: name: created_at in: query required: false description: | Дата создания. Одиночное значение или диапазон через `|`. Пример: `2025-01-01|2025-12-31`. schema: { type: string } DeadlineAtRangeParam: name: deadline_at in: query required: false description: Дедлайн подписания. Диапазон через `|`. schema: { type: string } CancelledAtRangeParam: name: cancelled_at in: query required: false description: Дата отмены. Диапазон через `|`. schema: { type: string } SignRequestStatusFilterParam: name: sign_request_status_id in: query required: false description: Статус запроса на подпись (1=WAIT, 2=CANCELLED, 3=SIGNED, 4=REQUESTED) schema: type: integer enum: [1, 2, 3, 4] DocumentTypeFilterParam: name: org_employment_file_type_id in: query required: false description: | Тип кадрового документа. Список значений — `GET /kedo/enum/document-type`. schema: { type: string } # КЭДО <-- responses: GoalIndexResponse: 200: description: Список целей content: application/json: schema: type: object properties: data: type: array items: type: array items: $ref: '#/components/schemas/GoalItem' _links: $ref: '#/components/schemas/_links' _meta: $ref: '#/components/schemas/_meta' 400: description: Bad Request. 403: description: Unauthorized. 404: description: Not found. 500: description: Server Error. GoalActionResponse: description: Goal object type: object properties: success: type: boolean deleted: type: array items: $ref: '#/components/schemas/GoalItem' description: Цели которые были удалены updated: type: array items: $ref: '#/components/schemas/GoalItem' description: Цели которые были обновлены skipped: type: array items: $ref: '#/components/schemas/GoalItem' description: Цели которые не были обработаны # КЭДО --> KedoUnauthorized: description: Не авторизован content: application/json: schema: { $ref: '#/components/schemas/KedoError' } example: name: Unauthorized message: Your request was made with invalid credentials. code: 0 status: 401 KedoDisabled: description: 'КЭДО отключён (feature flag enableKedo = false) или нет нужной роли' content: application/json: schema: { $ref: '#/components/schemas/KedoError' } example: name: Forbidden message: You are not allowed to perform this action. code: 0 status: 403 KedoNotFound: description: Не найдено content: application/json: schema: { $ref: '#/components/schemas/KedoError' } example: name: Not Found code: 0 status: 404 KedoValidationError: description: Ошибка валидации content: application/json: schema: { $ref: '#/components/schemas/KedoValidationErrorBody' } # КЭДО <-- security: - SessionAuth: [ ] - ApiKeyAuth: [ ]