CreateEmployee

Примечание

Вызов метода доступен только администраторам организации.

Добавляет в организацию сотрудника с указанными реквизитами.

Если сотрудника с указанными реквизитами не существует, то метод его создаст.

POST /CreateEmployee
Query Parameters:
  • boxId – идентификатор ящика организации.

Request Headers:
Request Body:

Тело запроса должно содержать структуру EmployeeToCreate.

Status Codes:
  • 200 OK – операция успешно завершена.

  • 400 Bad Request – данные в запросе имеют неверный формат или отсутствуют обязательные параметры.

  • 401 Unauthorized – в запросе отсутствует HTTP-заголовок Authorization или в этом заголовке содержатся некорректные авторизационные данные.

  • 402 Payment Required – у указанного ящика закончилась подписка на API.

  • 403 Forbidden – доступ к ящику с предоставленным авторизационным токеном запрещен или запрос сделан не от имени администратора.

  • 405 Method Not Allowed – используется неподходящий HTTP-метод.

  • 409 Conflict – указанный сотрудник уже добавлен в ящик.

  • 500 Internal Server Error – при обработке запроса возникла непредвиденная ошибка.

Response Body:

Тело ответа содержит структуру Employee с информацией о добавленном или созданном сотруднике.

Метод отправляет добавляемому сотруднику уведомление на электронную почту.

Если сотрудник был создан по сертификату, то после добавления его в ящик нужно отправить заявление участника ЭДО методом SendFnsRegistrationMessage.

Примеры использования

Создание сотрудника по логину

Пример HTTP-запроса:

POST /CreateEmployee?boxId={{boxid}} HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Content-Type: application/json; charset=utf-8

Пример тела запроса:

{
    "Credentials": {
        "Login": {
            "Login": "email@example.com",
            "FullName": {
                "LastName": "Иванов",
                "FirstName": "Иван",
                "MiddleName": "Иванович"
            }
        }
    },
    "Position": "Бухгалтер",
    "CanBeInvitedForChat": false,
    "Permissions": {
        "UserDepartmentId": "00000000-0000-0000-0000-000000000000",
        "IsAdministrator": false,
        "DocumentAccessLevel": "DepartmentAndSubdepartments",
        "Actions": [
            { "Name": "CreateDocuments", "IsAllowed": true },
            { "Name": "DeleteRestoreDocuments", "IsAllowed": true },
            { "Name": "SignDocuments", "IsAllowed": true },
            { "Name": "AddResolutions", "IsAllowed": false },
            { "Name": "RequestResolutions", "IsAllowed": false },
            { "Name": "ManageCounteragents", "IsAllowed": true },
        ]
    }
}

Пример тела ответа:

{
    "User": {
        "UserId": "6dc8c481-7cec-4675-8fd3-711cbe752eaa",
        "Login": "email@example.com",
        "FullName": {
            "LastName": "Иванов",
            "FirstName": "Иван",
            "MiddleName": "Иванович"
        },
        "IsRegistered": true
    },
    "Permissions": {
        "UserDepartmentId": "00000000-0000-0000-0000-000000000000",
        "IsAdministrator": false,
        "DocumentAccessLevel": "DepartmentAndSubdepartments",
        "SelectedDepartmentIds": [],
        "Actions": [
            {
                "Name": "CreateDocuments",
                "IsAllowed": true
            },
            {
                "Name": "DeleteRestoreDocuments",
                "IsAllowed": true
            },
            {
                "Name": "SignDocuments",
                "IsAllowed": true
            },
            {
                "Name": "AddResolutions",
                "IsAllowed": false
            },
            {
                "Name": "RequestResolutions",
                "IsAllowed": false
            },
            {
                "Name": "ManageCounteragents",
                "IsAllowed": true
            }
        ],
        "AuthorizationPermission": {
            "IsBlocked": false
        }
    },
    "Position": "Бухгалтер",
    "CanBeInvitedForChat": false,
    "CreationTimestamp": {
        "Ticks": 638791852178971102
    }
}

Пример запроса с использованием C# SDK:

var employee = api.CreateEmployee(
    token,
    boxId,
    new EmployeeToCreate
    {
        Credentials = new EmployeeToCreateCredentials
        {
            Login = new EmployeeToCreateByLogin
            {
                Login = "email@example.com",
                FullName = new FullName
                {
                    FirstName = "Иван",
                    MiddleName = "Иванович",
                    LastName = "Иванов"
                }
            }
        },
        Position = "Бухгалтер",
        Permissions = new EmployeePermissions
        {
            UserDepartmentId = "15d57c9b-645d-4710-85fa-b166e2cfcfc8",
            IsAdministrator = false,
            DocumentAccessLevel = DocumentAccessLevel.DepartmentAndSubdepartments,
            Actions =
            {
                new EmployeeAction { Name = "CreateDocuments", IsAllowed = true },
                new EmployeeAction { Name = "DeleteRestoreDocuments", IsAllowed = true },
                new EmployeeAction { Name = "SignDocuments", IsAllowed = true },
                new EmployeeAction { Name = "AddResolutions", IsAllowed = false },
                new EmployeeAction { Name = "RequestResolutions", IsAllowed = false },
                new EmployeeAction { Name = "ManageCounteragents", IsAllowed = true }
            }
        }
    });

Создание сотрудника по сертификату

Пример HTTP-запроса:

POST /CreateEmployee?boxId={{boxid}} HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Content-Type: application/json; charset=utf-8

Пример тела запроса:

    {
        "Credentials": {
            "Certificate": {
                "Content": "<certificateBytesBase64>",
                "AccessBasis": "Доверенность №39 от 21.08.2018",
                "Email": "email@example.com"
            }
        },
        "Position": "Директор",
        "CanBeInvitedForChat": false,
        "Permissions": {
            "UserDepartmentId": "00000000-0000-0000-0000-000000000000",
            "IsAdministrator": true,
            "DocumentAccessLevel": "SelectedDepartments",
            "SelectedDepartmentIds": [
                "4eef75de-44f3-4df6-8599-6c3fad74e31e"
            ],
            "Actions": [
                { "Name": "CreateDocuments", "IsAllowed": true },
                { "Name": "DeleteRestoreDocuments", "IsAllowed": true },
                { "Name": "SignDocuments", "IsAllowed": true },
                { "Name": "AddResolutions", "IsAllowed": true },
                { "Name": "RequestResolutions", "IsAllowed": true },
                { "Name": "ManageCounteragents", "IsAllowed": true }
            ]
        }
    }

Пример тела ответа:

{
    "User": {
        "UserId": "6dc8c481-7cec-4675-8fd3-711cbe752eaa",
        "Login": "email@example.com",
        "FullName": {
            "LastName": "Иванов",
            "FirstName": "Иван",
            "MiddleName": "Иванович"
        },
        "IsRegistered": true
    },
    "Permissions": {
        "UserDepartmentId": "00000000-0000-0000-0000-000000000000",
        "IsAdministrator": true,
        "DocumentAccessLevel": "SelectedDepartments",
        "SelectedDepartmentIds": [
            "4eef75de-44f3-4df6-8599-6c3fad74e31e"
        ],
        "Actions": [
            {
                "Name": "CreateDocuments",
                "IsAllowed": true
            },
            {
                "Name": "DeleteRestoreDocuments",
                "IsAllowed": true
            },
            {
                "Name": "SignDocuments",
                "IsAllowed": true
            },
            {
                "Name": "AddResolutions",
                "IsAllowed": true
            },
            {
                "Name": "RequestResolutions",
                "IsAllowed": true
            },
            {
                "Name": "ManageCounteragents",
                "IsAllowed": true
            }
        ],
        "AuthorizationPermission": {
            "IsBlocked": false
        }
    },
    "Position": "Директор",
    "CanBeInvitedForChat": false,
    "CreationTimestamp": {
        "Ticks": 638791835404680580
    }
}

Пример запроса с использованием C# SDK:

var employee = api.CreateEmployee(
    token,
    boxId,
    new EmployeeToCreate
    {
        Credentials = new EmployeeToCreateCredentials
        {
            Certificate = new EmployeeToCreateByCertificate
            {
                Content = certificateBytes,
                AccessBasis = "Доверенность №39 от 21.08.2018",
                Email = "email@example.com"
            }
        },
        Position = "Директор",
        Permissions = new EmployeePermissions
        {
            UserDepartmentId = "00000000-0000-0000-0000-000000000000",
            IsAdministrator = true,
            DocumentAccessLevel = DocumentAccessLevel.SelectedDepartments,
            SelectedDepartmentIds =
            {
                "4eef75de-44f3-4df6-8599-6c3fad74e31e"
            },
            Actions =
            {
                new EmployeeAction { Name = "CreateDocuments", IsAllowed = true },
                new EmployeeAction { Name = "DeleteRestoreDocuments", IsAllowed = true },
                new EmployeeAction { Name = "SignDocuments", IsAllowed = true },
                new EmployeeAction { Name = "AddResolutions", IsAllowed = true },
                new EmployeeAction { Name = "RequestResolutions", IsAllowed = true },
                new EmployeeAction { Name = "ManageCounteragents", IsAllowed = true }
            }
        }
    });

См. также

Инструкции:
Методы для работы с сотрудниками:
  • CreateEmployee — добавляет в организацию сотрудника с указанными реквизитами

  • DeleteEmployee — удаляет сотрудника организации

  • GetEmployee — возвращает данные сотрудника организации по указанному идентификатору

  • GetEmployees — возвращает список сотрудников указанной организации

  • GetMyEmployee — возвращает данные сотрудника организации, от имени которого вызывается метод

  • GetSubscriptions — возвращает информацию о подписках сотрудника организации на почтовые уведомления

  • UpdateEmployee — изменяет данные сотрудника организации

  • UpdateSubscriptions — изменяет подписки сотрудника организации на почтовые уведомления