Register

Находит или создает в Диадоке организацию по сертификату и добавляет владельца сертификата в сотрудники этой организации.

POST /Register
Request Headers:
Request Body:

Тело запроса должно содержать запрос на регистрацию организации по сертификату, представленный структурой RegistrationRequest.

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

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

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

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

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

Response Body:

Тело ответа содержит результат регистрации пользователя в организации по сертификату, представленный структурой RegistrationResponse.

Метод работает по следующим правилам:

  • Если в Диадоке не найдена организация по ИНН из сертификата, то для нее будет создан ящик на основе данных ЕГРЮЛ/ЕГРИП.

  • Если владелец сертификата не является сотрудником организации, то он будет добавлен в соответствии с правилами авторегистрации сотрудника. В процессе регистрации может потребоваться подтверждение владения закрытым ключом сертификата с помощью метода RegisterConfirm.

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

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

POST /Register HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Accept: application/json; charset=utf-8

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

{
    "CertificateContent": "<certificateBytesBase64>"
}

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

{
    "Thumbprint": "B0E10292B0024E7197A76B741CE0D271FEAD7E10"
}

Пример тела ответа cо статусом «Регистрация завершена»:

{
    "RegistrationStatus": "RegistrationIsCompleted",
    "BoxId": "99a4b249-a144-4f11-9d7b-4d84fdb68f8b"
}

Пример тела ответа cо статусом «Нужно подтвердить владение закрытым ключом»:

{
    "RegistrationStatus": "CertificateOwnershipProofIsRequired",
    "BoxId": "2d81936a-d304-4b70-83bc-ab964e7a0f60",
    "DataToSign": "<bytesBase64>"
}

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

var request = new RegistrationRequest
{
    Thumbprint = certificate.Sha1Thumbprint
};

var response = api.Register(token, request);

if (response.RegistrationStatus == RegistrationStatus.CertificateOwnershipProofIsRequired)
{
    api.RegisterConfirm(
        token,
        new RegistrationConfirmRequest
        {
            Thumbprint = certificate.Sha1Thumbprint,
            DataToSign = response.DataToSign,
            Signature = Sign(response.DataToSign, certificate)
        });
        
     response = api.Register(token, request);
}

if (response.RegistrationStatus == RegistrationStatus.RegistrationIsInProcess)
{
    Thread.Sleep(TimeSpan.FromSeconds(5));
    response = api.Register(token, request);
}

Console.WriteLine(string.Format("BoxId: {0}, Status: {1}", response.BoxId, response.RegistrationStatus);

См. также

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

  • GetMyOrganizations — возвращает список организаций, к которым пользователь имеет доступ

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

  • GetOrganizationFeatures — возвращает список дополнительных функций организации

  • GetOrganizationsByInnKpp — возвращает данные организации по ИНН

  • GetOrganizationsByInnList (V2) — возвращает список организаций и их статус партнерства по списку ИНН

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

  • Register — находит или создает в Диадоке организацию по сертификату и добавляет владельца сертификата в сотрудники этой организации

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

  • SendFnsRegistrationMessage — отправляет заявление участника ЭДО для указанного ящика