Перейти до основного вмісту

Authorization/Verify-2fa-by-sign

URI: /account/verify-2fa-by-sign/

Метод завершує вхід в систему Skarb Cloud через КЕП (кваліфікований електронний підпис). Використовуйте його після успішного /account/login/ замість /account/verify-2fa/, якщо підтвердження виконується підписом, а не OTP-кодом.

Сервер розбирає signed_string, витягує РНОКПП (ДРФО) з сертифіката КЕП і звіряє його з даними користувача, що виконує вхід.

Після успішного підтвердження API продовжує той самий token, отриманий на етапі login, і повертає оновлене значення expires_in.

Запит виконується методом POST з тілом запиту у форматі JSON.

Детальніше про загальні вимоги до запитів — у розділі Формат запитів до API.

Заголовки

Запит обов'язково повинен мати заголовок Content-Type: application/json, інакше запит буде вважатися некоректним навіть при валідному JSON у ньому.

Для підтвердження запиту користувача API необхідно передавати заголовок API-Key (той самий ключ, що й для /account/login/).

попередження

На цьому кроці не передавайте заголовок Authorization. Для підтвердження використовуйте лише pre_auth_token у тілі запиту

інформація

Параметр pre_auth_token отримується методом /account/login/ після успішної перевірки email і пароля

попередження

Тимчасовий pre_auth_token дійсний лише 5 хвилин. Якщо час вичерпано, повторіть /account/login/

Параметри запиту

Ім'яТипОбов'язковийОпис
pre_auth_tokenstringТакТимчасовий токен попередньої авторизації, отриманий після успішного /account/login/
signed_stringstringТакПідписані дані КЕП у форматі, який очікує API (рядок підпису, сформований клієнтом або SmartSign)

Приклад запиту

Запит: /api/v2/account/verify-2fa-by-sign/
{
"pre_auth_token": "xyz789...",
"signed_string": "MIIG...base64..."
}

Параметри відповіді

Ім'яТипОпис
dataobjectДані авторизації
data.tokenstringТой самий токен, що отримано після /account/login/, з продовженим терміном дії
data.expires_inintegerОновлений термін дії токена в секундах
data.urlstringПосилання для авторизації в eHealth (якщо потрібно для вашого сценарію)

Приклад успішної відповіді

200 OK

Успішна відповідь: /api/v2/account/verify-2fa-by-sign/
{
"data": {
"token": "97jJdHs9vkl9TvfkDl0n6VY6QgFRVQQt",
"expires_in": 28800,
"url": "https://..."
}
}

Приклади неуспішних відповідей

У разі помилки API повертає об'єкт errors. Текст помилки зазвичай відповідає таблиці нижче; ключ у errors може бути message, code, pre_auth_token, signed_string.

Прострочений або некоректний pre_auth_token

422 Unprocessable Entity

Неуспішна відповідь: /api/v2/account/verify-2fa-by-sign/
{
"errors": {
"message": "Токен недійсний або прострочений"
}
}

Що робити: повторіть POST /account/login/, отримайте новий pre_auth_token і надішліть verify знову протягом 5 хвилин.

Некоректний або невалідний підпис

422 Unprocessable Entity

Неуспішна відповідь: /api/v2/account/verify-2fa-by-sign/
{
"errors": {
"message": "Невірний електронний підпис"
}
}

Що робити: перевірте коректність signed_string, термін дії сертифіката КЕП і повторіть підписання.

РНОКПП (ДРФО) не збігається з користувачем

422 Unprocessable Entity

Неуспішна відповідь: /api/v2/account/verify-2fa-by-sign/
{
"errors": {
"message": "РНОКПП з КЕП не відповідає обліковому запису"
}
}

Що робити: використайте особистий КЕП того співробітника, під обліковим записом якого виконується вхід.

Некоректний API-Key

403 Forbidden

Неуспішна відповідь: /api/v2/account/verify-2fa-by-sign/
{
"errors": {
"message": "Помилка авторизації некоректний заголовок API-Key"
}
}

Що робити: перевірте наявність і значення заголовка API-Key (без заголовка Authorization на цьому кроці).