ЕСОЗ - публічна документація

UA_Complete Person documents upload

Мета

Цей WS призначений для завершення процесу завантаження документів особи через інформаційну систему особи (PIS).

Ключові положення

  1. Даний метод використовується тільки PIS.

  2. Цей метод перевіряє список документів, які потрібно завантажити, щодо особи та URL-адреси. Якщо всі документи особи були завантажені, статус перевірки особи нсзу оновлюється.

  3. Особа отримується від користувача, який виконує метод.

Специфікація

Apiary

Перевірки

Авторизація

  • Перевірити валідність токену доступу

    • в разі помилки - повернути 401 (“Invalid access token”)

  • Перевірити, що токен дійсний

    • в разі помилки - повернути 401 (“Invalid access token”)

  • Перевірити скоупи користувача на можливість виконання даної дії (scope = 'person_documents:write')

    • в разі невалідних скоупів - повернути 403 (“Your scope does not allow to access this resource. Missing allowances: person_documents:write”)

Перевірити персону

  • Отримати person_id по користувачу

  • Перевірити, що персона існує в базі даних mpi та активна (status = ‘active’ та is_active=true)

    • в разі помилки - повернути 404 ('Person does not exist or is not active')

Сервісна логіка

  1. Отримати список документів особи, які потрібно завантажити в сховище даних (для кожного типу документів, якщо спрацювало кілька правил, очікується лише один файл):

    1. Викликати Check confidant person relationship, відправити person_id = person.id та confidant_person_id = applicant_person_id (з токену) в разі, якщо метод повертає“ok”:

      1. Перевірити на документи з назвою confidant_person.{confidant_person.id}.documents_relationship.[:].{type}

      2. Перевірити на документи з назвою confidant_person.{confidant_person.relationship_type}.{person.confidant_person.[:].documents_person.[:].type}

    2. якщо один з документів персони має тип = ‘BIRTH_CERTIFICATE_FOREIGN’ та відсутні ті ж документи в {person.confidant_person.[:].documents_relationship.[:]} та вік персони < значення глобального параметру no_self_auth_age, то

      1. Перевірити на документи з назвою person.BIRTH_CERTIFICATE_FOREIGN

    3. якщо один з документів персони має тип = ‘PERMANENT_RESIDENCE_PERMIT’ та вік персони >= no_self_auth_age значення глобального параметру, то

      1. Перевірити на документ з назвою person.PERMANENT_RESIDENCE_PERMIT

    4. якщо автентифікаційний метод персони = ‘OFFLINE’ або ‘THIRD_PERSON’ автентифікаційний метод = ‘OFFLINE’

      1. Перевірити на документ з назвою person.{documents.[:].type} or third_person.{third_person.documents.[:].type}

    5. якщо поле person.unzr не пусте та перші 8 цифр unzr != birth_date персони

      1. Перевірити на документ з назвою person.unzr

    6. якщо вік персони більше глобального паарметру no_self_registration_age, але менше глобального параметру person_full_legal_capacity_age
      та один з документів персони має тип з конфігураційного парметру PIS_PERSON_LEGAL_CAPACITY_DOCUMENT_TYPES, то

      1. Отримати тип документу, що було знайдено
        ТА перевірити на документи з назвою person.{type}

  2. Перевірте наявність кожного документа в існуючому сховищі даних для особи:

    1. persons

    2. person_requests

    3. authentication_methods_requests

  3. Згенеруйте підписані URL-адреси для кожного документа, який потрібно завантажити, але не існує в сховищі даних по особі.

  4. Якщо всі очікувані документи особи існують у сховищі даних по особі та nhs_verification_status = ‘NOT_VERIFIED’ персони та nhs_verification_reason = ‘DOCUMENTS_TRIGGERED’, оновити верифікаційний статус нсзу по персоні у відповідності до логіки, описаної тут Sign person request | Manual NHS verification

  5. Відобразити відповідь у відповідності до специфікації.

ЕСОЗ - публічна документація