...
Метою розробки є автоматизація та централізація створення звіту про КБВ (кінцевого бенефеціарного власника) для учасників що є юридичними особами. Даний документ може бути обовʼязковим/не обовʼязковим для певних процедур (наразі розробка відбувається тільки для процедур SUE / SUD - є обовʼязковим для допуску учасників для визначеної процедури). Перевірка повинна виконуватись в момент активації заяви на участь.
Бізнес логіка
- Майданчик, залучає користувача до участі в аукціоні де звіт з інформацією про КБВ є обовʼязковим
- Учасник є юридичною особою
- Учасник подає заявку на участь
- Майданчик активує заявку на участь
- ЦБД отримує дані про активацію заявки на участь
- ЦБД перевіряє чи є документ з типом в заявці
- ЦБД надсилає івент до системи з технічним id користувача та кодом ЄДРПОУ користувача та owner
- Система фіксує івент і фіксує отримані дані
- Перевіряє чи документ з типом в
- Система надсилає запит до ЄДР з авторизаційним ключем і даними для пошуку
- ЄДР повертає відповідь на запит:
- в форматі переліку полів для формування звіту
- Система опрацьовую отриману інформацію
- Система формує звіт
- в форматі звіту
- помилка (перелік можливих зазначено нижче)
- в форматі переліку полів для формування звіту
- Система додає сформований звіт до документ сервісу з привʼязкою до технічного id учасника
- Варіанти наступних дій:
- 1.Варіант
- Система додає інформацію в transfer блок bid
- Майданчик отримує id документа і підвантажує його до потрібного користувача
- Учасник бачить звіт в своєму кабінеті
- 2. Система підвантажує дані
- 1.Варіант
User Story
- Як учасник аукціону, я хочу мати звіт з інформацією про КБВ, для проходження успішної кваліфікації
Як працює сервіс ЄДР
Сервіс ЄДР реалізований як API для автоматичного отримання даних для формування звіту/документу звіту про КБВ учасника торгів. Взаємодія працює по протоколу HTTP з використанням авторизації через JWT. Загальна логіка процесу: спочатку через метод авторизації отримуємо access та refresh токени, а потім використовуємо їх для виклику ендпоінту отримання даних для формування звіту/документу звіту за кодом ЄДРПОУ. - Детальніше буде додано після отримання тестового ключа
Дія тестового ключа 6 місяців
Доступні ендпоінти
Авторизація (отримання токенів)
Оновлення access_token
Метод отримання унікального ідентифікатора
Метод: POST
Ендпоінт: https://targetServer/1.0/subjects?code=ХХХХХХХХ, де code - код ЄДРПОУ учасника
Приймає на вхід:
- Обовʼязковий query-параметр: code
- Заголовок:
Authorization: Bearer <access_token>
Приклад запиту:
Приклади відповіді:
Якщо code знайдено, а також токен авторизації є валідним:
Якщо code не знайдено:
Якщо сплив термін дії токена авторизації:
Якщо сервіс наразі недоступний:
Метод отримання звіту
Метод: POST
Ендпоінт: https://targetServer/2.0/get-documents/ID, де ID - унікальний ідентифікатор
Приймає на вхід:
Обовʼязковий query-параметр: ID
Заголовок:
Authorization: Bearer <access_token>
Приклад запиту:
Приклади відповіді:
Якщо ID знайдено, а також токен авторизації є валідним:
Якщо ID не знайдено:
Якщо сплив термін дії токена авторизації:
Якщо сервіс наразі недоступний:
- Метод отримання даних для формування звіту
- Метод: POST
- Ендпоінт: https://targetServer/1.0/subjects?code=ХХХХХХХХ, де code - код ЄДРПОУ учасника
- Приймає на вхід:
- Обовʼязковий query-параметр: code
- Заголовок:
Authorization: Bearer <access_token>
Приклад запиту:
Приклади відповіді:
Якщо code знайдено, а також токен авторизації є валідним:
Якщо code не знайдено:
Якщо сплив термін дії токена авторизації:
Якщо сервіс наразі недоступний:
...
Коди помилок та відповідей:
Коди відповідей HTTP
Код | Текст | Пояснення |
|---|---|---|
200 | OK | Запит успішно оброблено і повернуто результат |
400 | Bad Request | Запит має помилку або не може бути оброблений. Відповідне повідомлення з поясненнями додане до відповіді. |
401 | Unauthorized | Параметри авторизації не правильні, або не вказані взагалі. |
402 | PaymentRequired | Для виконання запиту необхідна оплата. |
403 | Forbidden | Запит вірний але в обробці відмовлено. Відповідне повідомлення з поясненнями додано до відповіді. |
404 | Not Found | Адреса не правильна або ресурс до якого йде запит не існує. |
406 | Not Acceptable | Дані передані в запиті мають не зрозумілий формат. |
429 | Many Requests | API повертає таку відповідь коли вичерпано обмеження запитів до ресурсу. |
500 | Internal Server Error | Щось зламалось. |
502 | Bad Gateway | Сервіс вимкнено або проходить оновлення. |
Повідомлення з інформацією про помилку.
...
У відповіді, окрім повідомлення з поясненням, додатково надається код помилки, який можна використовувати для автоматизованої обробки. Протягом часу, текстове повідомлення може модифікуватись, але код залишається незмінним.
Код | Текст | Пояснення |
1 | Could not authenticate you або Authentication credentials were not provided | Помилка аутентифікації. |
2 | Invalid or expired token | Недіючий або некоректний токен. |
3 | Your account is not permitted to access this resource | Відповідь надається разом із HTTP статусом 403. Користувач, з використанням токену якого було виконано аутентифікацію, не має достатніх прав для виконання запиту. |
4 | Sorry, that page does not exist | Відповідь надається разом із HTTP статусом 404. Сторінка до якої виконується запит не знайдена. |
5 | Paiment required | Відповідь надається разом із HTTP статусом 402. Недостатньо коштів для виконання платного запиту. |
6 | Parse Error або `search_date` has wrong format | Відповідь надається разом із HTTP статусом 400. Не правильний формат одного або декількох параметрів запиту. |
9 | Rate limit exceeded | Відповідь надається разом із HTTP статусом 429. Вичерпано кількість запитів, дозволених виконати протягом проміжку часу. |
10 | `code` or `passport` parameter must be provided. | У запиті не надано параметрів необхідних для виконання пошуку. |
11 | `passport` parameter has wrong value. | Один або більше параметрів запиту має невірний формат. |
20 | Internal error | Відповідь надається разом із HTTP статусом 500. |
Зміни в АРІ ЦБД
Необхідно додати валідацію на активацію заяви на участь виключно для процедур RCE, RCD.
...