Получить доступные профили сотрудников

Порядок работы для агента · Методы 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
{
  "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"
    }
  ]
}

MapStringString

Объект со строковыми значениями

Name

Description

[additional]

Type: string

Example: 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
[
  "example"
]

fnsParticipantIds

Any of 2 types
  • Type: MapStringString

    Объект со строковыми значениями

    Example
    {}
    
  • Type: object | null

    Const: null

    Example
    {}
    

Коды систем ЭДО по идентификаторам участников

Example
{}
Example
{
  "edmExists": true,
  "edmPartners": [
    "example"
  ],
  "employeeSetUp": true,
  "fnsParticipantIds": {},
  "isCheckIgnored": true,
  "orgSetUp": true,
  "signerSetUp": true
}

UsersUserEmployeesGetListV0EmployeeInfo

Name

Description

edmCheckStatus

Type: UsersUserEmployeesGetListV0EdmCheckStatus

Example
{
  "edmExists": true,
  "edmPartners": [
    "example"
  ],
  "employeeSetUp": true,
  "fnsParticipantIds": {},
  "isCheckIgnored": true,
  "orgSetUp": true,
  "signerSetUp": true
}

email

Type: string

Example: example

employeeID

Type: string

Example: example

isExecutor

Type: boolean

isForwarder

Type: boolean

isOn

Type: boolean

isOrganizationVerified

Type: boolean

name

Type: string

Example: example

organizationID

Type: string

Example: example

orgName

Type: string

Example: example

phone

Type: string

Example: example

position

Type: string

Example: example

tin

Type: string

Example: example

userID

Type: string

Example: example

comment

Type: string | null

Example: example

facsimileFileSrvId

Type: string | null

Example: 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
[
  {
    "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"
  }
]
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
{
  "info": {},
  "message": "example",
  "message_code": "example"
}

Error

Name

Description

info

Type: object

Example
{}

message

Type: string

Example: example

message_code

Type: string

Example: 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
{
  "info": {},
  "message": "example",
  "message_code": "example"
}

500 Internal Server Error

Internal Server Error

Body

application/json
{
  "error": {
    "info": {},
    "message": "example",
    "message_code": "example"
  }
}

Name

Description

error

Type: Error

Example
{
  "info": {},
  "message": "example",
  "message_code": "example"
}