...
- Додати до базової моделі award необовʼязкову до заповнення модель даних beneficiaryInfo (модель даних наведено нижче)
- Налаштувати інтеграцію з ЄДР де :
- В момент створення award в процедурі для статусів: pending_waiting, pending_admission pending та тип моделі award.bidders.identifier.UA-EDR
- Направляється асинхронний запит на сервіс ЄДР Отримується відповідь на запит
- Відповідь містить дані → Отримані дані вносяться в створену модель даних Відповідь не містить даних → Поля залишаються пустимипісля відпраку запиту заповнюється модель beneficiaryInfo
- При внесенні інформації змінюємо award.dateModified, dateModified (procedure) та systemDateModified
- Майданчики відображають дану інформацію організатору в його кабінеті. Відображення в інших місцях не є обовʼязковою (портал, кабінети учасників)Відповідь може містити 1 і більше відповідей
- Модель даних beneficiaryInfo
dateTime name multilang % float
...
- Майданчик, залучає користувача до участі в аукціоні де звіт з інформацією про КБВ (x_ultimateBeneficiaryInfo) визначений як тип документу
- Учасник є юридичною особою
- Учасник подає заявку на участь
- Майданчик активує заявку на участьУчасник кваліфікується в аукціоні
- Варіант 1.ЦБД направляє запит в ЄДР з авторизаційним ключем і даними для пошуку де виконуються умови:
- Для процедур де x_ultimateBeneficiaryInfo є типом документу. Перелік процедур
- LLE, LLD, LLP - Оренда за законом
- LRE - Земельні торги - оренда
- LSE + LSP - Земельні торги - продаж/продаж з переважним правом
- REM - Процедури розподілу квот
- SSW -
- SPE + SPD - Мала приватизація
- LPE - Велика приватизація
- LAE + LAP + LAW - Продаж арештованої землі
- APE + APD - Арештовані активи АРМА
- SAE + SAD - Санкційне майно
- SUE+SUD - Спеціальні дозволи на користування надрами
- Для award в статусах: pending_waiting, pending_admission pending
- Для award.bidders.identifier.UA-EDR
- Під час створення award (асинхронний запит)
- Для процедур де x_ultimateBeneficiaryInfo є типом документу. Перелік процедур
- ЦБД отримує дані з ЄДР
- Перевіряє отримані дані:ЦБД вносить дані в award учасника
- Якщо в отриманій відповіді містяться дані, які не можна внести в award → ЦБД додає їхне вносить дані в award
- Якщо в отриманій відповіді містяться дані, які можна внести в award → ЦБД додає їх
- Перевіряє отримані дані:ЦБД вносить дані в award учасника
- Варіант 2.
- Організатор активує елемент "Отримати КБВ з ЄДР"
- Майданчик надсилає запит на ЦБД
- ЦБД надсилає запит в ЄДР з авторизаційним ключем і даними для пошуку
- ЦБД отримує відповідь
- ЦБД пересилає відповідь майданчику
- Майданчик заповнює поля і передає їх в ЦБД
- Майданчик обовʼязково відображає поля організатору в його кабінеті
- Майданчик може відображати дані на порталі та в кабінетах учасників
- ЦБД перевіряє чи є документ з типом в заявці якщо витяг ЄДР - x_tenderersRegisterExtract, якщо заява в довільній формі - x_ultimateBeneficiaryInfo - наразі цих типів документів немає в SUE/SUD
- Якщо в bid немає документа з визначеним типом:
- ЦБД надсилає івент до системи з технічним id користувача та кодом ЄДРПОУ користувача та owner
- Система фіксує івент і фіксує отримані дані
- Перевіряє чи документ з типом в
- Система надсилає запит до ЄДР з авторизаційним ключем і даними для пошуку
- ЄДР повертає відповідь на запит:
- в форматі переліку полів для формування звіту
- Система опрацьовую отриману інформацію
- Система формує звіт
- в форматі звіту
- помилка (перелік можливих зазначено нижче)
- в форматі переліку полів для формування звіту
- Система додає сформований звіт до документ сервісу з привʼязкою до технічного id учасника
- Варіанти наступних дій:
- 1.Варіант
- Система додає інформацію в transfer блок bid
- Майданчик отримує токен до документа і надає користувачу відповідно до технічного id bid виконувати дії над документом
- Учасник бачить звіт в своєму кабінеті
- 2.Варіант Система підвантажує дані в bid самостійно - не виглядає як релевантний кейс
- Майданчик забирає в разі потреби викачує документ
- 1.Варіант
- Якщо в bid наявний документ з визначеним типом:
- ЦБД не надсилає івент до системи
- Якщо в bid немає документа з визначеним типом:
Проблемні питання:
- вносить дані в award
- При внесенні даних змінюється:
- award.dateModified
- dateModified (procedure)
- systemDateModified
- При внесенні даних змінюється:
- вносить дані в award
Особливості:
- Тип поля beneficiaryInfo в award - list of objects
- Запит на ЄДР може віддати дані про декількох КБВ
- Потрібно передбачити що повторний запит відправляється в разі отримання відповіді 500 або 502
- Чи потрібно виводити якийсь текст якщо нам не вдалось отримати відповідь ? - запитання до Ксенії
- Нам потрібно фіксувати повідомленням в Slack канал якщо отримуємо відповіді:
- 400
- 401
- 402
- 403
- 404
- 406
- 429
- Використання існуючого документ сервісу. Відповідно до загальної логіки роботи з документ сервісом і документів які завантажені в procedure/bid/award/contract зі сторони Адміністратора ми не зможемо завантажувати документи від учасника тощо, відповідно вони не зможуть з ним працювати якщо не скачають і заново не завантажать в біда а тоді буде дублювання інформації.
- Для процедур де цей документ є обовʼязковим, учасники не зможуть активувати біда без наявності цих документів, відповідно логіка повинна відпрацювати на етапі створення bid учасника в статусі draft.
- Питання юридичної можливості вносити зміни в bid якщо ми будемо вносити зміни в учасника а не через схему майданчик надсилає нам запит і у відповідь отримує звіт ?
- Питання відповідно до того що нам треба закрити можливість створювати декілька запитів від одного учасника
- Технічне рішення яке може закрити дану можливість
- Фіксація технічного id учасника та owner, яке використовувалось для надсилання запиту
- Аналіз кількості запитів та/або блокування наступних запитів на формування звітів (order = 1 )
- Технічне рішення яке може закрити дану можливість
- Питання який саме звіт/документ хочемо отримувати ? (Наразі є варіанти:
- Відомості (витяг) з Єдиного державного реєстру юридичних осіб, фізичних осіб-підприємців та громадських формувань з підписом технічного адміністратора - Підходить для ЮО та ФОП (але для ФОП немає сенсу якщо потрібна інформація про КБВ)
- Відомості (витяг) з Єдиного державного реєстру юридичних осіб, фізичних осіб-підприємців та громадських формувань без підписа технічного адміністратора- Підходить для ЮО та ФОП (але для ФОП немає сенсу якщо потрібна інформація про КБВ)
- Інформація про кінцевого бенефіціарного власника юридичної особи - документ сформований учасником на імʼя директора ЕТМ
- Структура власності майданчика - документ сформований учасником
Як працює сервіс ЄДР
Сервіс ЄДР реалізований як API для автоматичного отримання даних для формування звіту/документу звіту про КБВ учасника торгів. Взаємодія працює по протоколу HTTP з використанням авторизації через JWT. Загальна логіка процесу: спочатку через метод авторизації отримуємо access та refresh токени, а потім використовуємо їх для виклику ендпоінту отримання даних для формування звіту/документу звіту за кодом ЄДРПОУ. - Детальніше буде додано після отримання тестового ключа
Дія тестового ключа 6 місяців
Доступні ендпоінти (Потребує перевірки та доповнення після отримання тестових ключей)
Авторизація (отримання токенів)
Оновлення access_token
Метод отримання унікального ідентифікатора
Метод: POST
Ендпоінт: https://targetServer/1.0/subjects?code=ХХХХХХХХ, де code - код ЄДРПОУ учасника
Приймає на вхід:
- Обовʼязковий query-параметр: code
Приклад запиту:
Приклади відповіді:
Якщо code знайдено, а також токен авторизації є валідним:
Якщо code не знайдено:
Якщо сплив термін дії токена авторизації:
Якщо сервіс наразі недоступний:
Метод отримання звіту
Метод: POST
Ендпоінт: https://targetServer/2.0/get-documents/ID, де ID - унікальний ідентифікатор
Приймає на вхід:
Обовʼязковий query-параметр: ID
Приклад запиту:
Приклади відповіді:
Якщо ID знайдено, а також токен авторизації є валідним:
Якщо ID не знайдено:
Якщо сплив термін дії токена авторизації:
Якщо сервіс наразі недоступний:
- Метод отримання даних для формування звіту
- Метод: POST
- Ендпоінт: https://targetServer/1.0/subjects?code=ХХХХХХХХ, де code - код ЄДРПОУ учасника
- Приймає на вхід:
- Обовʼязковий query-параметр: code
Приклад запиту:
Приклади відповіді:
Якщо code знайдено, а також токен авторизації є валідним:
Якщо code не знайдено:
Якщо сплив термін дії токена авторизації:
Якщо сервіс наразі недоступний:
...