Получить доступные профили сотрудников
Порядок работы для агента · Методы API и схема OpenAPI.
Назначение
После GET /api/user/getYaId/v0 проверьте, есть ли у текущей учётной записи активный профиль сотрудника с ролью заказчика или исполнителя. Право на конкретную бизнес-операцию проверяется отдельно.
Метод:
GET /api/users/userEmployees/get/list/v0
Доступ
| Аутентификация | Требуется |
| Роли организаций | — |
| Права пользователя | — |
| Область доступа | Профили сотрудников, доступные текущему аутентифицированному пользователю |
| Эффект | Только чтение |
| Повтор вызова | Безопасно повторять |
| Повтор после ошибки | Только после временных ошибок |
| Автоматизация | Требуется подтверждение |
| Чувствительность данных | Содержит чувствительные данные |
Метод требует аутентификации и возвращает только профили, доступные текущей учётной записи. Для вызова не нужны роль организации или отдельные права.
Входные данные
Отправьте GET-запрос без тела и параметров.
Результат
empls — доступные учётной записи профили сотрудников. Выбирайте профиль по признакам ниже. Порядок списка не задаёт приоритет.
isOn: true отмечает активный профиль. Для дальнейшего сценария нужен активный профиль.
isForwarder: true означает, что профиль подходит для сценария заказчика.
isExecutor: true означает, что профиль подходит для сценария исполнителя. У профиля могут быть оба признака. Используйте роль, нужную для задачи.
isOrganizationVerified — отдельный признак проверки организации. Активность и роль определяйте по соответствующим полям профиля.
employeeID, organizationID и userID — служебные идентификаторы. name, position, email, phone, orgName, tin, facsimileFileSrvId и comment — чувствительные данные профиля. Для краткого результата проверки доступа эти поля не нужны.
edmCheckStatus содержит сведения о готовности к ЭДО.
fnsParticipantIdsсвязывает идентификаторы участников организации с кодами систем ЭДО.edmExistsпоказывает наличие идентификатора участника ФНС.edmPartnersперечисляет коды подключённых партнёров ЭДО.employeeSetUp,orgSetUpиsignerSetUpпоказывают готовность сотрудника, организации и подписанта.isCheckIgnoredпоказывает, пропускается ли проверка готовности к ЭДО.
Метод подтверждает наличие профиля нужной роли. Проверяйте права на конкретную бизнес-операцию отдельно.
Пустой список empls означает, что текущей учётной записи недоступны профили. Верните результат проверки и остановитесь. Сохраните выбранный стенд, организацию и роль.
Что сообщить пользователю
Укажите стенд и сообщите, есть ли активный профиль нужной роли. Если пользователь спрашивает о конкретной организации, проверьте профиль этой организации в клиенте. Для ответа достаточно результата проверки. Токен, идентификаторы, контакты и полные профили оставьте в клиенте.
Повтор запроса
Метод только читает данные. Ограничивайте число повторов и повторяйте запрос только после временных сетевых ошибок или ошибок сервера. После сбоя аутентификации или доступа дождитесь, пока пользователь восстановит доступ. Пустой список обрабатывайте как успешный результат.
Работа с чувствительными данными
Полный ответ содержит персональные, организационные, налоговые и коммерческие данные, идентификаторы аутентификации и документов. Раскрывайте исходные значения только по явному запросу, при подтверждённой необходимости и с действующим доступом. Выбирайте минимум полей. Исключите полные профили и исходные чувствительные значения из журналов, трассировок, метрик, диагностики, обычного контекста ИИ и внешних передач.
Признаки isOn, isForwarder, isExecutor и isOrganizationVerified относятся к чувствительным данным отдельных профилей. Для проверки готовности сверните признаки в employee_found и role_available.
| Поле | Класс данных | Субъект | По умолчанию | Ограничения |
|---|---|---|---|---|
response.data.empls[].comment |
Чувствительный свободный текст | Смешанный или неизвестный | Скрывать полностью | Пользователю: только при явной подтверждённой необходимости; в AI-контекст: только при явной подтверждённой необходимости; во внешние системы: только при явной подтверждённой необходимости; в журналы, трассировки и метрики: не передавать исходное значение; примеры: только синтетические значения |
response.data.empls[].edmCheckStatus |
Чувствительный свободный текст | Организация | Показывать агрегированно | Пользователю: только при явной подтверждённой необходимости; в AI-контекст: только при явной подтверждённой необходимости; во внешние системы: только при явной подтверждённой необходимости; в журналы, трассировки и метрики: не передавать исходное значение; примеры: только синтетические значения |
response.data.empls[].edmCheckStatus.edmPartners[] |
Внутренний идентификатор | Организация | Не показывать | Пользователю: только при явной подтверждённой необходимости; в AI-контекст: только при явной подтверждённой необходимости; во внешние системы: только при явной подтверждённой необходимости; в журналы, трассировки и метрики: не передавать исходное значение; примеры: только синтетические значения |
response.data.empls[].edmCheckStatus.fnsParticipantIds |
Внутренний идентификатор | Организация | Не показывать | Пользователю: только при явной подтверждённой необходимости; в AI-контекст: только при явной подтверждённой необходимости; во внешние системы: только при явной подтверждённой необходимости; в журналы, трассировки и метрики: не передавать исходное значение; примеры: только синтетические значения |
response.data.empls[].email |
Контактные данные человека | Физическое лицо | Маскировать | Пользователю: только при явной подтверждённой необходимости; в AI-контекст: только при явной подтверждённой необходимости; во внешние системы: только при явной подтверждённой необходимости; в журналы, трассировки и метрики: не передавать исходное значение; примеры: только синтетические значения |
response.data.empls[].employeeID |
Внутренний идентификатор | Физическое лицо | Не показывать | Пользователю: только при явной подтверждённой необходимости; в AI-контекст: только при явной подтверждённой необходимости; во внешние системы: только при явной подтверждённой необходимости; в журналы, трассировки и метрики: не передавать исходное значение; примеры: только синтетические значения |
response.data.empls[].facsimileFileSrvId |
Идентификатор документа | Физическое лицо | Не показывать | Пользователю: только при явной подтверждённой необходимости; в AI-контекст: только при явной подтверждённой необходимости; во внешние системы: только при явной подтверждённой необходимости; в журналы, трассировки и метрики: не передавать исходное значение; примеры: только синтетические значения |
response.data.empls[].isExecutor |
Чувствительный свободный текст | Смешанный или неизвестный | Показывать агрегированно | Пользователю: только при явной подтверждённой необходимости; в AI-контекст: только при явной подтверждённой необходимости; во внешние системы: только при явной подтверждённой необходимости; в журналы, трассировки и метрики: не передавать исходное значение; примеры: только синтетические значения |
response.data.empls[].isForwarder |
Чувствительный свободный текст | Смешанный или неизвестный | Показывать агрегированно | Пользователю: только при явной подтверждённой необходимости; в AI-контекст: только при явной подтверждённой необходимости; во внешние системы: только при явной подтверждённой необходимости; в журналы, трассировки и метрики: не передавать исходное значение; примеры: только синтетические значения |
response.data.empls[].isOn |
Чувствительный свободный текст | Физическое лицо | Показывать агрегированно | Пользователю: только при явной подтверждённой необходимости; в AI-контекст: только при явной подтверждённой необходимости; во внешние системы: только при явной подтверждённой необходимости; в журналы, трассировки и метрики: не передавать исходное значение; примеры: только синтетические значения |
response.data.empls[].isOrganizationVerified |
Чувствительный свободный текст | Организация | Показывать агрегированно | Пользователю: только при явной подтверждённой необходимости; в AI-контекст: только при явной подтверждённой необходимости; во внешние системы: только при явной подтверждённой необходимости; в журналы, трассировки и метрики: не передавать исходное значение; примеры: только синтетические значения |
response.data.empls[].name |
Имя человека | Физическое лицо | Маскировать | Пользователю: только при явной подтверждённой необходимости; в AI-контекст: только при явной подтверждённой необходимости; во внешние системы: только при явной подтверждённой необходимости; в журналы, трассировки и метрики: не передавать исходное значение; примеры: только синтетические значения |
response.data.empls[].orgName |
Название стороны | Организация | Маскировать | Пользователю: только при явной подтверждённой необходимости; в AI-контекст: только при явной подтверждённой необходимости; во внешние системы: только при явной подтверждённой необходимости; в журналы, трассировки и метрики: не передавать исходное значение; примеры: только синтетические значения |
response.data.empls[].organizationID |
Внутренний идентификатор | Организация | Не показывать | Пользователю: только при явной подтверждённой необходимости; в AI-контекст: только при явной подтверждённой необходимости; во внешние системы: только при явной подтверждённой необходимости; в журналы, трассировки и метрики: не передавать исходное значение; примеры: только синтетические значения |
response.data.empls[].phone |
Контактные данные человека | Физическое лицо | Маскировать | Пользователю: только при явной подтверждённой необходимости; в AI-контекст: только при явной подтверждённой необходимости; во внешние системы: только при явной подтверждённой необходимости; в журналы, трассировки и метрики: не передавать исходное значение; примеры: только синтетические значения |
response.data.empls[].position |
Чувствительный свободный текст | Физическое лицо | Не показывать | Пользователю: только при явной подтверждённой необходимости; в AI-контекст: только при явной подтверждённой необходимости; во внешние системы: только при явной подтверждённой необходимости; в журналы, трассировки и метрики: не передавать исходное значение; примеры: только синтетические значения |
response.data.empls[].tin |
Налоговый идентификатор | Организация | Скрывать полностью | Пользователю: только при явной подтверждённой необходимости; в AI-контекст: только при явной подтверждённой необходимости; во внешние системы: только при явной подтверждённой необходимости; в журналы, трассировки и метрики: не передавать исходное значение; примеры: только синтетические значения |
response.data.empls[].userID |
Внутренний идентификатор | Аутентификация | Не показывать | Пользователю: только при явной подтверждённой необходимости; в AI-контекст: только при явной подтверждённой необходимости; во внешние системы: только при явной подтверждённой необходимости; в журналы, трассировки и метрики: не передавать исходное значение; примеры: только синтетические значения |
Проверенные примеры
Первый пример показывает только признаки готовности синтетического профиля. Используйте примеры для проверки формата без вызова рабочего сервиса.
Доступен активный профиль заказчика · синтетический пример
Ответ сокращён до безопасных признаков, необходимых для проверки роли; полный синтетический объект используется только для typed validation.
Сокращённый ответ
{
"data": {
"empls": [
{
"isExecutor": false,
"isForwarder": true,
"isOn": true,
"isOrganizationVerified": true
}
]
}
}
Пустой список
Доступных профилей нет · синтетический пример
Успешный ответ с явно пустым списком не раскрывает данные сотрудников.
Сокращённый ответ
{
"data": {
"empls": []
}
}
Блоки запроса и ответов ниже сгенерированы из OpenAPI. Подстановки вроде
exampleпоказывают структуру JSON. Для вызова возьмите значения из сценария, справочников или предыдущих ответов API.
Request
GET
https://partner-test-yamagistrali.ru/api/users/userEmployees/get/list/v0
Тестовый стенд
Responses
200 OK
OK
Body
application/json
{
"data": {
"empls": [
{
"comment": "example",
"edmCheckStatus": {
"edmExists": true,
"edmPartners": [
null
],
"employeeSetUp": true,
"fnsParticipantIds": null,
"isCheckIgnored": true,
"orgSetUp": true,
"signerSetUp": true
},
"email": "example",
"employeeID": "example",
"facsimileFileSrvId": "example",
"isExecutor": true,
"isForwarder": true,
"isOn": true,
"isOrganizationVerified": true,
"name": "example",
"orgName": "example",
"organizationID": "example",
"phone": "example",
"position": "example",
"tin": "example",
"userID": "example"
}
]
}
}
|
Name |
Description |
|
data |
Type: UsersUserEmployeesGetListV0Response Example
|
MapStringString
Объект со строковыми значениями
|
Name |
Description |
|
[additional] |
Type: string Example: |
Example
{}
UsersUserEmployeesGetListV0EdmCheckStatus
|
Name |
Description |
|
edmExists |
Type: boolean Есть ли хоть один ФНС Id |
|
employeeSetUp |
Type: boolean Есть ли хоть один настроенный для ЭДО сотрудник |
|
isCheckIgnored |
Type: boolean Нужно ли игнорировать проверку ЭДО |
|
orgSetUp |
Type: boolean Есть ли у организации необходимые реквизиты для генерации |
|
signerSetUp |
Type: boolean Есть ли хоть один настроенный для ЭДО подписант |
|
edmPartners |
Type: string[] | null Какие партнерские ЭДО подключены (коды из справочника) Example
|
|
fnsParticipantIds |
Any of 2 types
Коды систем ЭДО по идентификаторам участников Example
|
Example
{
"edmExists": true,
"edmPartners": [
"example"
],
"employeeSetUp": true,
"fnsParticipantIds": {},
"isCheckIgnored": true,
"orgSetUp": true,
"signerSetUp": true
}
UsersUserEmployeesGetListV0EmployeeInfo
|
Name |
Description |
|
edmCheckStatus |
Type: UsersUserEmployeesGetListV0EdmCheckStatus Example
|
|
|
Type: string Example: |
|
employeeID |
Type: string Example: |
|
isExecutor |
Type: boolean |
|
isForwarder |
Type: boolean |
|
isOn |
Type: boolean |
|
isOrganizationVerified |
Type: boolean |
|
name |
Type: string Example: |
|
organizationID |
Type: string Example: |
|
orgName |
Type: string Example: |
|
phone |
Type: string Example: |
|
position |
Type: string Example: |
|
tin |
Type: string Example: |
|
userID |
Type: string Example: |
|
comment |
Type: string | null Example: |
|
facsimileFileSrvId |
Type: string | null Example: |
Example
{
"comment": "example",
"edmCheckStatus": {
"edmExists": true,
"edmPartners": [
"example"
],
"employeeSetUp": true,
"fnsParticipantIds": {},
"isCheckIgnored": true,
"orgSetUp": true,
"signerSetUp": true
},
"email": "example",
"employeeID": "example",
"facsimileFileSrvId": "example",
"isExecutor": true,
"isForwarder": true,
"isOn": true,
"isOrganizationVerified": true,
"name": "example",
"orgName": "example",
"organizationID": "example",
"phone": "example",
"position": "example",
"tin": "example",
"userID": "example"
}
UsersUserEmployeesGetListV0Response
|
Name |
Description |
|
empls |
Type: UsersUserEmployeesGetListV0EmployeeInfo[] | null Список вариантов доступов к коменнтарию Example
|
Example
{
"empls": [
{
"comment": "example",
"edmCheckStatus": {
"edmExists": true,
"edmPartners": [
"example"
],
"employeeSetUp": true,
"fnsParticipantIds": {},
"isCheckIgnored": true,
"orgSetUp": true,
"signerSetUp": true
},
"email": "example",
"employeeID": "example",
"facsimileFileSrvId": "example",
"isExecutor": true,
"isForwarder": true,
"isOn": true,
"isOrganizationVerified": true,
"name": "example",
"orgName": "example",
"organizationID": "example",
"phone": "example",
"position": "example",
"tin": "example",
"userID": "example"
}
]
}
400 Bad Request
Bad Request
Body
application/json
{
"error": {
"info": {},
"message": "example",
"message_code": "example"
}
}
|
Name |
Description |
|
error |
Type: Error Example
|
Error
|
Name |
Description |
|
info |
Type: object Example
|
|
message |
Type: string Example: |
|
message_code |
Type: string Example: |
Example
{
"info": {},
"message": "example",
"message_code": "example"
}
403 Forbidden
Forbidden
Body
application/json
{
"error": {
"info": {},
"message": "example",
"message_code": "example"
}
}
|
Name |
Description |
|
error |
Type: Error Example
|
500 Internal Server Error
Internal Server Error
Body
application/json
{
"error": {
"info": {},
"message": "example",
"message_code": "example"
}
}
|
Name |
Description |
|
error |
Type: Error Example
|