RegisterConfirm

POST /RegisterConfirm
Request Headers:
Request Body:

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

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

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

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

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

  • 409 Conflict – текущее состояние регистрации не требует подтверждения.

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

Позволяет подтвердить владение закрытым ключом сертификата для регистрации в организацию методом Register.

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

Примеры запросов

С телом сертификата

POST /RegisterConfirm HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: DiadocAuth ddauth_api_client_id=key, ddauth_token=token
Content-Type: application/json; charset=utf-8

{
    "CertificateContent": "<certificateBytesBase64>",
    "DataToSign": "<dataToSignBytesBase64>",
    "Signature": "<signatureBytesBase64>"
}

С отпечатком сертификата

POST /RegisterConfirm HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: DiadocAuth ddauth_api_client_id=key, ddauth_token=token
Content-Type: application/json; charset=utf-8

{
    "Thumbprint": "B0E10292B0024E7197A76B741CE0D271FEAD7E10",
    "DataToSign": "<dataToSignBytesBase64>",
    "Signature": "<signatureBytesBase64>"
}

Пример с использованием 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);