Register
Находит или создает в Диадоке организацию по сертификату и добавляет владельца сертификата в сотрудники этой организации.
- POST /Register
- Request Headers:
Authorization – данные, необходимые для авторизации.
- 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.
Примеры использования
Примеры запросов
С телом сертификата
POST /Register HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Content-Type: application/json; charset=utf-8
{
"CertificateContent": "<certificateBytesBase64>"
}
С отпечатком сертификата
POST /Register HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Content-Type: application/json; charset=utf-8
{
"Thumbprint": "B0E10292B0024E7197A76B741CE0D271FEAD7E10"
}
Примеры ответов
Регистрация завершилась созданием сотрудника
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"RegistrationStatus": "RegistrationIsCompleted",
"BoxId": "99a4b249-a144-4f11-9d7b-4d84fdb68f8b"
}
Требуется подтвердить владение закрытым ключом
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"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);
См. также
- Инструкции:
- Методы для работы с организациями:
GetMyOrganizations — возвращает список организаций, к которым пользователь имеет доступ
GetOrganization — возвращает данные организации по указанному идентификатору
GetOrganizationFeatures — возвращает список дополнительных функций организации
GetOrganizationsByInnKpp — возвращает данные организации по ИНН
GetOrganizationsByInnList (V2) — возвращает список организаций и их статус партнерства по списку ИНН
GetResolutionRoutes — возвращает список всех неудаленных включенных маршрутов согласования для указанного ящика
Register — находит или создает в Диадоке организацию по сертификату и добавляет владельца сертификата в сотрудники этой организации
RegisterConfirm — подтверждает владение закрытым ключом сертификата для регистрации в организацию