Глоссарій

Дебітор - замовник закупівлі на платформі Прозорро. 

Кредитор переможець закупівлі. Той, хто надає послугу / товар дебітору, а в подальшому продає право вимоги за договором факторинговій компанії. В системі Прозорро.Продажі є організатором

Фактор - факторингова компанія (найчастіше - банк), розміщує пропозиції по викупу права вимоги за договором. Має ліцензію на здійснення факторингової діяльності. В системі Прозорро.Продажі є учасником

Нормативні засади

Наразі нормативні документи знаходяться в розробці НБУ. З поточних проблем - організатори продають декілька разів права за вимогами по одному договору. 

Timeline процедури

Timeline процедури factoring
- Створення тендеру на Прозорро
-Підписання актів (поза системою)
Попередній період
(prelіminaryPeriod)
Прийняття заяв на участь
(active_tendering)
Період редагування
(rectificationPeriod)
Період запитань*
(questionPeriod)
Період подання пропозицій
(tenderPeriod) - мін. 5 к.д.
Період обрання переможця
(winnerSelectionPeriod) - 6-ти р.д.
Очікується підписання договору 
(active_awarded)
Період підписання договору
(signingPeriod) - 20 к.д.
- Реєстрація на майданчику
- Підготовка та публікація оголошення на Майданчику
- Внесення змін до оголошення (за потреби)
- Можливість завантажувати, видаляти або замінювати документи процедури (документи кредитора та дебітора).
- Надання відповідей на запитання Учасника
- Можливість скасувати аукціон
- Отримання результатів аукціону
- Перегляд розкритих цінових пропозицій учасників
- Завантажити підписані дебітором документи
- Можливість дискваліфікувати учасника
- Завантажити підписаний контракт факторингу
- Можливість скасувати процедуру
- Надіслати кошти організатору
ДебіторУчасник (фактор)
Період відповідей*
(enquiryPeriod)
Період кваліфікації
(qualificationPeriod) - 25 к. д.
* Завершується за 1 робочий день до дня початку періоду аукціону о 20:00
Поза системою
Статус процедури
Організатор(кредитор)
- Виконання умов тендеру на Прозорро
- Підписання актів
- Створення актів 
Майданчик
- Перевірка документів фактора (преклаліфікація)
- Відображення документів кредитора та дебітора тільки прекваліфікованим учасникам
- Реєстрація на майданчику
- Подання документів на прекваліфікацію
- Ознайомлення з документами кредитора та дебітора
- Подання закритих цінових і нецінових пропозицій
- Можливість задати запитання щодо лота Організатору аукціону
- Перегляд розкритих цінових пропозицій учасників
- Вибір фактора (переможця)
- Перевірка документів Учасника
- Дискваліфікація учасника (unsuccessful)
- Можливість скасувати аукціон (до моменту завершення аукціону)
- Можливість відхилити пропозицію учасника
- Можливість дискваліфікувати учасника
- Оприлюднення інформації про пропозиції
ВСІ ДІЇ ВІДБУВАЮТЬСЯ ПОЗА СИСТЕМОЮ
- Підписати сповіщення про переуступку договору
- Підписати акт прийому передачі 
- Підтвердити умови та строки оплати
- Підписати договір факторингу
Очікується оплата
(pending_payment)
Період оплати
(paymentPeriod) - 5-ти р.д.
- Підтвердити отримання коштів від учасника (фактора)
- Можливість дискваліфікувати учасника
- Можливість скасувати процедуру
- Можливість завершити процедуру
- Підписати контракт факторингу (поза системою)

Періоди процедури

Технічна назва періодуБізнес назва періодуДата початкуЗавершенняРезультат завершенняКоментар
rectificationPeriodПеріод редагуванняДата та час публікації процедури в ЦБДза день до кінця tender period о 20:00Редагування полів процедури та документів більше недоступне.

Робота з редагуванням полів та редагуванням документів завершується в цей період. 

tenderPeriod

Період подання пропозиційз базової (20:00)Статус процедури змінюється на “Очікується підписання договору” (active_awarded). У випадку відсутності активних бідів статус процедури змінюється на "Неуспішно" (unsuccessful). 

questionPeriodПеріод запитаньз базовоїКористувач більше не може задати запитання до аукціону
enquiryPeriodПеріод відповідейОрганізатор більше не може надіслати відповідь на запитання

qualificationPeriod

Період кваліфікаці

  • Дата та час завершення tenderPeriod, за умови наявності щонайменше 1 bid

25 к.д., не враховуючи день початку періоду

На рівні ЦБД: відсутній

На рівні майданчика: за 24 години до завершення, надсилання повідомлення Організатору про завершення періоду кваліфікації. 

У випадку дискваліфікації переможця, організатор обирає наступного переможця серед авардів в статусі pending_waiting. 
winnerSelectionPeriodПеріод обрання переможця
  • Дата та час завершення tenderPeriod, за умови наявності щонайменше 1 bid
6 к.д., не враховуючи день початку періоду

На рівні ЦБД: відсутній

На рівні майданчика: за 24 години до завершення, надсилання повідомлення Організатору про завершення періоду обрання переможця. 

Оскільки протоколів немає, то в цей період організатору необхідно обрати переможця, та вручну активувати його. 

Періоди авардів

Технічна назва періодуБізнес назва періодуДата початкуЗавершенняРезультат завершенняКоментар

signingPeriod

Період підписання договору

  • Розпочинається окремо для кожного award в момент переходу зі статусу pending_waiting в active
20 к.д., не враховуючи день початку періоду

На рівні ЦБД: відсутній

На рівні майданчика: за 24 години до завершення, надсилання повідомлення Організатору про завершення періоду підписання договору.


 paymentPeriodПеріод оплати
  • Розпочинається після переходу contract в статус singed
  • Розпочинається окремо для кожного award. При цьому award має бути в статусі active.

5 р.д., не враховуючи день початку періоду

На рівні ЦБД: відсутній

На рівні майданчика: за 24 години до завершення, надсилання повідомлення Організатору про завершення періоду оплати.


Статуси процедури:

Діаграма статусів процедури

Технічна назва статусуБізнес назва статусу

Перехід з

За умови

active_tenderingПрийняття заяв на участьмомент публікації оголошення в ЦБД-
active_awardedОчікується підписання договору active_tendering

В процедурі наявний принаймні 1 bid в статусі active. 

pending_paymentОчікується оплата active_awarded
  1. Організатор обрав переможця процедури
  2. В процедурі присутній contract в статусі singed
  3. В процедурі присутній award в статусі active

complete
(термінальний статус)

Аукціон завершено. Договір підписано

pending_payment

Після завершення роботи з контрактом (contract в статусі active), надіслано запит на завершення процедури.

unsuccessful
(термінальний статус)




Аукціон не відбувся
active_tendering

відсутні валідні bid'и в момент завершення періоду подання пропозицій (tenderPeriod)

pending_payment

При дискваліфікації учасника, якщо учасник, що очікує (award status == pending_waiting) відсутній 



active_awarded

cancelled
(термінальний статус)

Аукціон скасовано

будь-який нетермінальний статус процедури

Організатор надіслав запит на скасування процедури

Статуси заяви на участь (bid)

Діаграма зміни статусів

Використовуються базові статуси заяви в процедурі: draft, active, inactive, deleted

Статуси об’єкту кваліфікації (award)

Діаграма зміни статусів

Логіка обрання переможця наступна:

  1. По завершенню періоду подання заяв відразу розпочинається період кваліфікації (без аукціону).
  2. На кожен bid в статусі active має створитися award в статусі pending_waiting. Якщо бідів декілька, в такому випадку формується декілька авардів в статусі pending_waiting. 
  3. Організатор передивляється кожну пропозицію одночасно та має можливість зробити наступні дії:
    1. Відхилити пропозицію. В такому випадку статус пропозиції змінюється на discarded. Статус є термінальним. 
    2. Обрати переможця. В такому випадку статус обраної пропозиції змінюється на active. Одночасно може бути тільки один авард в статусі active. При цьому статус інших пропозицій залишається pending_waiting. 
  4. Статус не обраних пропозицій змінюється на cancelled тільки у момент завершення процедури.
  5. У випадку, якщо організатор дискваліфікує попередньо обрану пропозицію, в такому випадку організатор може обрати будь-яку іншу пропозицію в статусі pending_waiting та розпочати процес кваліфікації з другим обраним переможцем. 
  6. Якщо організатор попередньо відхилив всі пропозиції, в такому випадку у разі дискваліфікації єдиного обраного організатором переможця процедура набуває статусу unsuccessful. 
Технічна назва статусуБізнес назва статусу

Перехід з

За умови

pending_waitingОчікується рішення

момент створення award 

створюється за умови початку періоду кваліфікації, для кожного учасника, що подав закриту пропозицію (bid)
activeПереможець. Очікується договірpending_waitingорганізатор підтверджує найкращу пропозицію
discarded
Пропозицію відхилено
pending_waitingорганізатор відхилив пропозицію учасника
unsuccessful
(термінальний статус)
Дискваліфікованоactiveв момент дискваліфікації учасника, що кваліфікується
cancelled
(термінальний статус)

Учасник не став переможцем

pending_waiting

в момент успішного завершення процедури (переходу процедури в статус complete)

Функціонал користувачів 

Ролі користувачів

Організатор - користувач, що створив оголошення процедури та отримав токен доступу для ролі Організатора.

Прекваліфікований учасник - Користувач, що подав заяву на участь в аукціоні (отримав id та токен доступу)

Переможець - Учасник для якого сформовано award в статусі active (якого обрав організатор як переможця)

Учасник, що очікує - Учасник для якого сформовано award в статусі pending_waiting

Спостерігач - Користувач, який може переглядати результати успішних аукціонів факторингу. 

Документи

Всі документи процедури, біда, аварду, контракту мають бути private exclamation mark 

Функціонал доступний Організатору

Публікація оголошення

Документи оголошення: 

  1. Анкета кредитора* - creditorApplication
  2. Фінансова звітність: річна/квартальна, з відміткою Держкомстату - statutoryFinancialReport
  3. Оборотно-сальдові відомості 361 та 631 рахунків за останні 6 місяців - turnoverBalanceReport
  4. Картка 361 рахунку Дебітора за останні 6 місяців - debitorAccountCard
  5. Договори поставок з Дебіторами* - factoringContractProforma

Всі документи вище мають бути повністю приховані і недоступні для перегляду спостерігачу. На ЦБД буде додано валідацію на можливість додавання тільки приватних документів. 

Вимоги до відображення на інтерфейсі майданчика

На ЦБД реалізовано валідацію, що на один тендер закупівель (на один lot, в разі наявності в тендері лотів) одночасно існує тільки одна процедура факторингу в активному статусі active_tendering, active_awarded, pending_payment, complete.

Тобто, у Організатора не буде можливості створити "дубль" процедури по тій самій комбінації productEntity.id+productEntity.lotId закупівлі, або дві закупівлі з однаковим productEntity.id.

При публікації процедури, Організатору необхідно дати можливість вказати productEntity.humanId - це tenderId тендеру Закупівель. (productEntity.id, який є технічним ідентифікатором, необхідно заповнити автоматично (підтягнути id по повʼязаному tenderId). Відображати його організатору не обов'язково.

Для заповнення в процедурі productEntity.lotId, необхідно Організатору підтягнути і відобразити список lots із тендеру Закупівель, якщо вони є, і дати організатору обрати необхідний лот (доступний вибір тільки одного лоту із переліку).

Логіка відображення списку лотів залишається на розсуд майданчика.

В одному тендері закупівель може бути одночасно декілька лотів, і на кожен лот можна створювати окрему процедуру факторингу. Не повинно бути можливості обрати із тендеру закупівель декілька лотів для публікації процедури факторингу.

В тендері Закупівель lots можуть бути взагалі відсутні.
Організатор відображає productEntity.humanId в форматі "UA-2020-09-22-000016-b". Необхідно знайти за цим humanId закупівлю, і відобразити всі лоти, які є в закупівлі (якщо вони є). Якщо є тільки один лот, треба автоматично проставити humanId лота в productEntity.lotId в форматі "9ee6ebbf2ad21ac0c5ad52b06e776fa4".

Перевірити, чи організатор є реально переможцем лоту або закупівлі по ЄДРПОУ або РНОКПП. 

За посиланням можна переглянути API документацію Прозорро. Дані щодо тендеру та переможця/ів закупівлі треба брати з API Прозорро. Для пошуку закупок за humanId можна використовувати наступний запит: https://prozorro.gov.ua/api/search/tenders?text=UA-2024-07-22-001721-a

Якщо лотів декілька, необхідно відобразити всі лоти організатору і дати можливість обрати той лот, за яким створюється процедура факторингу.

Якщо лот в тендері відсутній, в такому випадку передавати ніякого значення не потрібно. 

Нижче розглянемо сценарії створеняя процедури в залежності від наявності лотів. 

Сценарій #1. В процедурі закупок відсутні lots. 

Сценарій #2. В процедурі закупок присутні lots

Посилання на приклад даної процедури.

При створенні процедури факторингу на закупівлю такого типу, організатор має вказати productEntity.humanId. За цим айді майданчик має знайти на прозорро процедуру, та автоматино заповнити productEntity.id.

Оскількі лотів в цій процедурі немає, поле productEntity.lotId лишається порожнім. 

Далі необхідно валідувати, що процедуру факторингу створює переможець тендеру. Для цього можна використовувати awards.0.suppliers, порівнявши чи збігається значення хоча б одного awards.0.suppliers.0.identifier.id з sellingEntity.identifier.id.

Далі необхідно попередньо заповнити items, але у організатора повинна бути можливість редагувати їх. items знаходяться на верхньому рівні, відсутнє relatedLot, тому items заповнити автоматично. Необхідно перенести всі items, які є в тендері. 

Також необхідно попередньо заповнити з можливістю редагування поля productEntity.initialValue, productEntity.finalValue. 

Посилання на приклад даної процедури. 

При створенні процедури факторингу на закупівлю такого типу, організатор має вказати productEntity.humanId. За цим айді майданчик має знайти на прозорро процедуру, та автоматино заповнити productEntity.id. 

Далі майданчик має відобразити організатору можливість обрати один з lots для створення процедури факторингу. Якщо лот в закупівлі тільки один, заповнити productEntity.lotId автоматично.

exclamation mark Якщо в тендері є хоча б один лот, майданчик має зробити заповнення lotId (або вибір лоту, якщо їх декілька) обовʼязковим. На стороні майданчика не має бути можливості створити процедуру факторингу без lotId, якщо lotId є в тендері. 

Процедура факторингу створюється завжди тільки на один лот. 

Далі необхідно валідувати, що процедуру факторингу створює переможець лоту в тендері. Для цього можна використати awards.0.suppliers, порівнявши чи збігається значення хоча б одного awards.0.suppliers.0.identifier.id з sellingEntity.identifier.id. Але в даному випадку необхідно буде також провалідувати значення awards.0.lotId, він має відповідати productEntity.lotId, на який організатор створює процедуру факторингу.

Далі треба попередньо заповнити items, необхідно взяти значення relatedLot в кожному item. Дане поле відповідає productEntity.lotId. У організатора має бути можливість редагувати items. 

В процедуру факторингу необхідно перенести всі items, які відносяться до лоту, на який організатор створює процедуру факторингу. 

Також необхідно попередньо заповнити з можливістю редагування поля productEntity.initialValue, productEntity.finalValue. 

Таблиця відповідності даних 

Prozorro.sale

Prozorro

productEntity.id

id

productEntity.humanId

tenderId

productEntity.lotId

lots.0.id (лотів може бути декілька, брати id з того лота, який обирає організатор при створенні процедури факторингу

productEntity.debitor.name

procuringEntity.name

productEntity.debitor.identifier

procuringEntity.identifier

productEntity.debitor.address

procuringEntity.address

productEntity.debitor.contactPoint

procuringEntity.contactPoint

productEntity.debitor.representativeInfo

-

productEntity.items.id

-

productEntity.items.description

items.description

productEntity.items.classification

items.classification

productEntity.items.unit

items.unit

productEntity.items.quantity

items.quantity

productEntity.items.address

items.address

productEntity.initialValue (у разі відсутності lots)

value

productEntity.initialValue (у разі присутності lots)

lots.0.value (значення брати з того лота, на який створюється процедура факторингу)

productEntity.finalValue (у разі відсутності lots)

awards.0.value (необхідно брати значення з аварду переможця)

productEntity.finalValue (у разі присутності lots)

awards.0.value (значення брати з того аварду, де lotId збігається з productEntity.lotId. брати значення лише з аварду переможця)

double exclamation mark ВИКЛЮЧЕННЯ double exclamation mark Для анонімізованих закупок на прозорро не потрібно автоматично переносити дані. 

В разі наявності в productEntity.lotId одного чи декількох items, необхідно вказати основний класифікатор кожного з айтемів. Вказаний на прозоро класифікатор збігається з класифікатором  CAV в прозоро продажі, тому необхідно автоматично заповнити основний класифікатор. 

Щодо документів, то документи мають бути завантажено тільки з _ds_scope = private. Замінювати це значення на public не можна. 

По підтягуванню даних - необхідно реалізувати для зручності організатора автоматичний перенос даних. Для даних, які переносяться з закупівлі Прозорро було створено об'єкт productEntity. Зверніть увагу, що поле debitor є обовʼязковим. 

Відображення списку процедур факторингу для організаторів

Для організатора необхідно відобразити список тільки його процедур факторингу в усіх статусах, тобто тільки ті процедури, який створив даний організатор. 

Публікація оголошення відбувається за базовим флоу публікації оголошення

При публікації процедури на ЦБД має бути валідація, яка перевіряє, що одночасно існує тільки одна процедура факторингу на один тендер або лот в нетермінальному статусі (крім complete).

Якщо процедура публікується з зазначенням productEntity.id ТА productEntity.lotId, ми маємо робити перевірку на комбінацію цих двох значень, і якщо знайдено процедуру з таким самим productEntity.id та productEntity.lotId в нетермінальному статусі (крім complete), повернути помилку "Факторинг за цим лотом вже було створено".

Якщо процедура публікується з зазначенням лише productEntity.id, необхідно зробити перевірку на наявність процедур в ЦБД з зазначеним productEntity.id, якщо такі процедури знайдено (як з productEntity.lotId, так і без), і статус знайдених процедур нетермінальний (крім complete), в такому випадку необхідно повернути помилку "Факторинг за цим лотом вже було створено". 

Приклади комбінацій: 

  1. Публікую процедуру з productEntity.id1. Якщо знайдено співпадіння по productEntity.id1, і статус знайденої процедури != unsuccessful, cancelled, вертаємо помилку.
    1. Якщо знайдено процедуру з productEntity.id1 та productEntity.lotId1, і статус знайденої процедури != unsuccessful, cancelled, вертаємо помилку.
  2. Публікую процедуру з productEntity.id1 та productEntity.lotId1. Якщо знайдено співпадіння по productEntity.id1 (тобто така процедура є, але її було створено без лоту), і статус процедури != unsuccessful, cancelled, вертаємо помилку. В цьому кейсі і потрібна валідація майданчика на етапі створення процедури, не давати можливості організатору створити процедуру без лотів, якщо лоти є на закупках.
  3. Публікую процедуру з productEntity.id1 та productEntity.lotId1. Якщо знайдено співпадіння по productEntity.id1, і по productEntity.lotId1, і статус процедури != unsuccessful, cancelled, вертаємо помилку.
  4. Публікую процедуру з productEntity.id1 та productEntity.lotId2. Якщо знайдено співпадіння по productEntity.id1, а по productEntity.lotId2 співпадінь немає, публікуємо успішно процедуру


Поля оголошення:


description:

governmentFactoring-withoutAuction model GFW


ownerstring
readOnly: true

x-legalNameUa: Ідентифікатор майданчика

ownerTokenstring($uuid)
readOnly: true

x-default: hex

_idstring
readOnly: true

x-legalNameUa: Внутрішній ідентифікатор аукціону

x-legalNameEn: ID

x-default: object_id

x-serialize_when_none: false

x-format: object-id

datePublishedstring($date-time)
readOnly: true

x-default: now

x-legalNameUa: Дата публікації процедури

x-legalNameEn: Published date

dateModifiedstring($date-time)
readOnly: true

x-legalNameUa: Остання дата зміни процедури

x-legalNameEn: Procedure date modified

spec{
x-format"multidict"
}

auctionIdstring
readOnly: true

x-legalNameUa: Ідентифікатор аукціону

x-legalNameEn: Auction ID

previousAuctionIdstring
example: GFW000-UA-YYYYMMDD-00000

pattern:
^GF[W][0-9]{3}-UA-[0-9]{8}-[0-9]{5}$
minLength: 1

x-legalNameUa: Ідентифікатор попереднього аукціону

x-legalNameEn: Previous auction Id

Якщо tenderAttempts > 1 заповнюється вручну, має відповідати auctionId попереднього аукціону.
Якщо tenderAttempts = 1 то previousAuctionId не використовується


inactivationDatestring($date-time)
readOnly: true

x-legalNameUa: Дата деактивації заяви на участь

x-legalNameEn: Inactive bid date

sellingMethod*string
x-legalNameUa: Тип процедури

x-legalNameEn: Procedure type
Enum:
[ governmentFactoring-withoutAuction, governmentFactoring-withoutAuction-ultra-fast, governmentFactoring-withoutAuction-fast, governmentFactoring-withoutAuction-fast-manual, governmentFactoring-withoutAuction-initial-qualification, governmentFactoring-withoutAuction-initial-qualification-prod ]

sellingEntity*base.Organization{
description:

Organization model
Містить дані про учасника аукціону (у тому числі ідентифікаційні дані, місцезнаходження та дані контактної особи учасника)

namebase.MultiLang{
description:

автогенерується з поля identifier.legalName

uk_UA*string
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name
x-legalNameUa"Повна юридична назва організації або ПІБ"
x-legalNameEn"Legal name or Full Name"
}
identifier*base.Identifier{
description:

Identifier model Містить дані щодо ідентифікації учасника аукціону

scheme*string
x-dictionaries: List [ "identifiers", "ua_identifiers" ]

x-legalNameUa: Ідентифікатори організації

x-legalNameEn: ID type

Обирається одне значення зі словників:
https://procedure-sandbox.prozorro.sale/api/classifiers/identifiers
https://procedure-sandbox.prozorro.sale/api/classifiers/ua_identifiers

legalName*base.MultiLang{
description:

Multi language string model

uk_UA*string
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name
x-legalNameUa"Повна юридична назва організації"
x-legalNameEn"Legal name"
}
id*string
x-legalNameUa: Код ЄДРПОУ або ІПН або паспорт

x-legalNameEn: ID
x-baseClass"prozorro_sale.procedure.models.base.Identifier"
x-legalNameUa"Ідентифікатори організації або особи"
x-legalNameEn"Identifier"
}
address*{...}
representativeInfostring
example: Довіреність № 123 від 22.02.2012, дійсна до 30.03.2012/Наказ № 142 від 14.12.2019/Статут ТОВ Кульбаба від 24.07.2002

x-legalNameUa: Інформація щодо підтвердження повноважень

x-legalNameEn: Representative information

Інформація про документ або дані, що підтверджують повноваження представника юридичної особи (наприклад довіреність)

contactPoint*base.ContactPoint{
description:

ContactPoint model
Містить дані про контакту особу та може використовуватися для організатора, учасника і автора запитання в моделях SellingEntity та Organization

name*base.MultiLang{
description:

Multi language string model

uk_UA*string
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name
x-legalNameUa"ПІБ"
x-legalNameEn"Main contact name"
}
email*string($email)
x-legalNameUa: Адреса електронної пошти

x-legalNameEn: Main contact e-mail
telephone*string
pattern: ^[+0][0-9]+$

x-legalNameUa: Номер телефону

x-legalNameEn: Main contact tel
faxNumberstring
pattern: ^[+][0-9]+$

x-legalNameUa: Номер факсу

x-legalNameEn: Main contact fax
urlstring($uri)
example: http://string.com

x-legalNameUa: Веб адреса

x-legalNameEn: Website
x-legalNameUa"Контактна особа"
x-legalNameEn"Main contact"
}
x-baseClass"prozorro_sale.procedure.models.base.OrganizationWithoutContacts"
x-legalNameUa"Інформація про Організатора аукціону"
x-legalNameEn"Organizer information"
}

lotIdstring
x-legalNameUa: Номер лота
 
x-legalNameEn: Lot number

title*base.MultiLang{
description:

Multi language string model

uk_UA*string
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name
x-legalNameUa"Назва аукціону"
x-legalNameEn"Auction title"
}

description*base.MultiLang{
description:

Multi language string model

uk_UA*string
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name
x-legalNameUa"Опис аукціону"
x-legalNameEn"Auction description"
}

bankAccounts*

[
minItems: 1

x-legalNameUa: Банківські рахунки організатора
x-legalNameEn: Bank accounts factoring.BankAccountsByType{

description:

Гарантійного внеску немає, тому тут валідації на рахунок з типом guarantee робити не будемо. Але обов'язково має бути рахунок в UAH та типом payment. 

accountTypestring
x-dictionaries: List [ "accountType" ]

Посилання на словник https://procedure-sandbox.prozorro.sale/api/dictionaries/accountType

Enum:
[ other, payment ]
accounts[
default: List []
base.BankAccountWithCurrency{
description:

BankAccount model with currency
Містить дані про банківські реквизити з вказуванням валюти

idstring
readOnly: true

x-default: hex

x-legalNameUa: Ідентифікатор банківського рахунку

x-legalNameEn: Bank account ID
bankNamebase.MultiLang{
description:

Multi language string model

uk_UA*string
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name
x-legalNameUa"Назва банку"
x-legalNameEn"Bank name"
}
descriptionbase.MultiLang{
description:

Multi language string model

uk_UA*string
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name
x-legalNameUa"Опис"
x-legalNameEn"Bank account description"
}
accountHolder*base.BankAccountHolder{
description:

BankAccountHolder model
Містить дані про банківські реквизити одержувача
Обов'язкове до заповнення

namebase.MultiLang{
description:

автогенерується з поля identifier.legalName

uk_UA*string
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name
x-legalNameUa"Найменування одержувача"
x-legalNameEn"Account holder"
}
identifier*base.Identifier{
description:

Identifier model Містить дані щодо ідентифікації учасника аукціону

scheme*string
x-dictionaries: List [ "identifiers", "ua_identifiers" ]

x-legalNameUa: Ідентифікатори організації

x-legalNameEn: ID type

Обирається одне значення зі словників:
https://procedure-sandbox.prozorro.sale/api/classifiers/identifiers
https://procedure-sandbox.prozorro.sale/api/classifiers/ua_identifiers

legalName*base.MultiLang{
description:

Multi language string model

uk_UA*string
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name
x-legalNameUa"Повна юридична назва організації"
x-legalNameEn"Legal name"
}
id*string
x-legalNameUa: Код ЄДРПОУ або ІПН або паспорт

x-legalNameEn: ID
x-baseClass"prozorro_sale.procedure.models.base.Identifier"
x-legalNameUa"Ідентифікатор одержувача"
x-legalNameEn"Identifier"
}
x-baseClass"prozorro_sale.procedure.models.base.BankAccountHolder"
x-legalNameUa"Реквізити одержувача"
x-legalNameEn"Account holder"
}
accountIdentifications*[
default: List []

minItems: 1

x-legalNameUa: Банківські реквізити

x-legalNameEn: Account identificationsbase
.AccountIdentification{
description:

АccountIdentification model
Містить дані щодо можливих, до заповнення, банківських ідентифікаторів, є обов'язковою складовою моделі BankAccount

descriptionbase.MultiLang{
description:

Multi language string model

uk_UA*string
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name
x-legalNameUa"Опис до банківських реквізитів"
x-legalNameEn"Account identification description"
}
scheme*string
x-dictionaries: List [ "accountIdentifiers" ]

x-legalNameUa: Тип банківського ідентифікатора

x-legalNameEn: Account identification type

Обирається одне значення зі словника https://procedure-sandbox.prozorro.sale/api/dictionaries/accountIdentifiers

id*string
x-legalNameUa: Ідентифікатор

x-legalNameEn: Account identification ID
x-baseClass"prozorro_sale.procedure.models.base.AccountIdentification"
}]
currency*string
x-legalNameUa: Валюта

x-legalNameEn: Currency
Enum:
[ UAH, USD, EUR ]
x-baseClass"prozorro_sale.procedure.models.base.BankAccount"
}]
x-legalNameUa"Банківські рахунки"
x-legalNameEn"Bank accounts"
}]

x_documentRequirementsbase.MultiLang{
description:

Multi language string model

uk_UA*string
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name
x-legalNameUa"Перелік та вимоги до оформлення документів"
x-legalNameEn"List and requirements of registration documents"
}

x_additionalInformationbase.MultiLang{
description:

Multi language string model

uk_UA*string
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name
x-legalNameUa"Додаткові відомості"
x-legalNameEn"Other requirements and additional information"
}

value*

base.Value{
description:

Value model
Містить дані щодо вартості. За замовчуванням: валюта - гривня, ПДВ - включено. Може використовуватися для стартової ціни лота, кроку аукціону і т.д.

currency*string
default: UAH

x-legalNameUa: Валюта

x-legalNameEn: Currency
Enum:
Array [ 3 ]
amount*number($float)
example: 10

minimum: 0

exclusiveMinimum: true

x-format: decimal-float

x-legalNameUa: Сума

x-legalNameEn: Amount
valueAddedTaxIncludedboolean
default: true

x-legalNameUa: Податок

x-legalNameEn: Tax
x-baseClass"prozorro_sale.procedure.models.base.ValueWithTax"
x-legalNameUa"Реальна сума угоди закупівлі" 
x-legalNameEn"Real tender value"
}
NEW

paymentTerms

ПРИХОВАТИ

{
durationinteger($int64)
default: 0

x-legalNameUa: Кількість днів на виконання платежу за договором

x-legalNameEn: Number of days required to submit the payment
descriptionbase.MultiLang{
description:

Multi language string model

uk_UA*string
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name
x-legalNameUa"Додаткова інформація щодо умов розрахунку дебітора за договором"
x-legalNameEn"Additional information regarding the debitor's payment"
}
x-legalNameUa"Умови виконання оплати дебітором за договором організатору"
x-legalNameEn"Payment conditions from debitor to organizer"
}
NEWproductEntity{
id*string
pattern: [a-zA-Z0-9]{32}

x-legalNameUa: Машинний ідентифікатор процедури закупівлі Прозорро

x-legalNameEn: Prozorro tender technical id
humanId*string
pattern: [a-zA-Z]{2,}-[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{6}-[a-zA-Z]{1}

x-legalNameUa: Користувацький ідентифікатор процедури закупівлі Прозорро

x-legalNameEn: Prozorro tender human id
lotIdstring
pattern: [a-zA-Z0-9]{32}

x-legalNameUa: Машинний ідентифікатор лота закупівлі Прозорро

x-legalNameEn: Prozorro lot technical id
debitor*{
description:

Organization model
Містить дані про суб'єкта'

name*base.Multilang{
description:

автогенерується з поля identifier.legalName

uk_UAstring
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name
x-baseClass"prozorro_sale.registry.models.base.MultiLang"
x-legalNameUa"Повна юридична назва організації або ПІБ"
x-legalNameEn"Legal name or Full Name"
}
identifier*

base.Identifier

Identifier model Містить дані щодо ідентифікації суб'єкта'

address*Адреса організації
contactPoint*base.ContactPoint
representativeInfostring
example: Довіреність № 123 від 22.02.2012, дійсна до 30.03.2012/Наказ № 142 від 14.12.2019/Статут ТОВ Кульбаба від 24.07.2002

x-legalNameUa: Інформація щодо підтвердження повноважень

x-legalNameEn: Representative information
x-baseClass"prozorro_sale.registry.models.base.Organization"
x-legalNameUa"Інформація про Дебітора"
x-legalNameEn"Debitor information"
}
items[
x-format: list-object

minItems: 1

default: List []

x-legalNameUa: Предмет закупівлі

x-legalNameEn: Tender items
{
description:

Item model
Описує склад лота.

idstring
readOnly: true

x-default: hex

x-legalNameUa: Внутрішній ідентифікатор об'єкта

x-legalNameEn: Item ID
description*base.Multilang{
description:

автогенерується з поля identifier.legalName

uk_UAstring
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name
x-baseClass"prozorro_sale.registry.models.base.MultiLang"
x-legalNameUa"Повна юридична назва організації або ПІБ"
x-legalNameEn"Legal name or Full Name"
}
classification*
unit*
quantity*
address
scheme
x-baseClass"prozorro_sale.procedure.models.base.Item"
}]
initialValuebase.ValueWithTax{
description:

Value model
Містить дані щодо вартості. За замовчуванням: валюта - гривня, ПДВ - включено. Може використовуватися для стартової ціни лота, кроку аукціону і т.д.

currency*string
default: UAH

x-legalNameUa: Валюта

x-legalNameEn: Currency
Enum:
[ UAH, USD, EUR ]
amount*number($float)
example: 10

minimum: 0

exclusiveMinimum: true

x-format: decimal-float

x-legalNameUa: Сума

x-legalNameEn: Amount
valueAddedTaxIncludedboolean
default: true

x-legalNameUa: Податок

x-legalNameEn: Tax
x-baseClass"prozorro_sale.procedure.models.base.ValueWithTax"
x-legalNameUa"Стартова ціна закупівлі"
x-legalNameEn"Final tender value"
finalValuebase.ValueWithTax{
description:

Value model
Містить дані щодо вартості. За замовчуванням: валюта - гривня, ПДВ - включено. Може використовуватися для стартової ціни лота, кроку аукціону і т.д.

currency*string
default: UAH

x-legalNameUa: Валюта

x-legalNameEn: Currency
Enum:
[ UAH, USD, EUR ]
amount*number($float)
example: 10

minimum: 0

exclusiveMinimum: true

x-format: decimal-float

x-legalNameUa: Сума

x-legalNameEn: Amount
valueAddedTaxIncludedboolean
default: true

x-legalNameUa: Податок

x-legalNameEn: Tax
x-baseClass"prozorro_sale.procedure.models.base.ValueWithTax"
x-legalNameUa"Фінальна ціна закупівлі"
x-legalNameEn"Final tender value"
x-baseClass"prozorro_sale.procedure.packages.governmentFactoring.procedure.ProductEntity"
x-legalNameUa"Опис предметів закупівлі"
x-legalNameEn"Tender item description"
}


valueAddedTaxCharged

boolean
default: false

x-legalNameUa: На фінальну суму нараховується ПДВ

x-legalNameEn: Value added tax charged

minNumberOfQualifiedBidsinteger($int64)
default: 2

minimum: 1

maximum: 2

x-legalNameUa: Мінімальна кількість заяв

x-legalNameEn: Minimal number of bids

за замовчуванням 1, можливості редагування немає


tenderAttempts*integer($int64)
default: 1

minimum: 1

example: 10

x-legalNameUa: Лот виставляється

x-legalNameEn: Attempt number

documents

ПРИХОВАТИ

[
x-format: list-object

default: List []

x-legalNameUa: Всі документи аукціону та пов'язані додатки

x-legalNameEn: Documents
base.Document{
description:

Document model
Містить дані щодо структури документу та є складовою моделей процедури (Items, Bid, Award, Contract, Cancellation, Pocedure)

idstring
readOnly: true

x-default: hex

x-legalNameUa: Ідентифікатор документу

x-legalNameEn: Document ID
title*base.MultiLang{
description:

Multi language string model

uk_UA*string
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name
x-legalNameUa"Назва документу"
x-legalNameEn"Document title"
}
descriptionbase.MultiLang{
description:

Multi language string model

uk_UA*string
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name
x-legalNameUa"Опис документу"
x-legalNameEn"Document description"
}
urlstring
readOnly: true

example: http://string.com

x-format: ds-url

x-legalNameUa: Посилання на документ

x-legalNameEn: Document link
relatedDocumentstring
example: 5e300ec4080b60d45dc28bb8

x-legalNameUa: Пов'язаний документ

x-legalNameEn: Related document

Ідентифікатор, що відображається тільки в документі digitalSignature та використовується
для відображення зв'язку між цифровим підписом та документом сутності процедури.

documentOf*string
x-legalNameUa: Об'єкт документу

x-legalNameEn: Document object
Enum:
[ announcement, large_announcement, asset, large_asset, auction, bid, award, contract, cancellation, prolongation ]

documentType

stringEnum:
[ creditorApplication, statutoryFinancialReport, turnoverBalanceReport, debitorAccountCard, factoringContractProforma, contractProforma, x_presentation, clarifications, digitalSignature, purchaseContractEndorsement, handoverCertificate ]
datePublishedstring($date-time)
readOnly: true

x-default: now

x-legalNameUa: Дата публікації документу

x-legalNameEn: Document publishing date
dateModifiedstring($date-time)
readOnly: true

x-default: now

x-legalNameUa: Остання дата редагування документу

x-legalNameEn: Document modified date
indexinteger($int64)
x-legalNameUa: Параметр сортування ілюстрацій

x-legalNameEn: Document index

Чим менше значення поля, тим вище документ буде при відображенні на майданчиках.
Основним документом вважається документ з мінімальним значенням індексу.
Якщо параметр не зазначений, документи будуть виводитись останніми у переліку.
Якщо кілька документів мають однакове значення параметру, порядок сортування буде залежати від dateModified,
Пріоритет у документів доданих раніше.

formatstring
readOnly: true

x-legalNameUa: Формат документу

x-legalNameEn: Document format
languagestring
x-legalNameUa: Мова документу

x-legalNameEn: Document language
hashstring
x-legalNameUa: Хеш документу

x-legalNameEn: Document hash
_Document__addedInQualificationStateboolean

Індикатор, який вказує, чи був документ доданий у статусі qualification

tokenstring
_ds_idstring
readOnly: true

Ідентифікатор документа в document service

_ds_scopestring
readOnly: true

Тип документа за доступом [public/private]

x-baseClass"prozorro_sale.procedure.models.base.Document"
}]

bids

ПРИХОВАТИ

[
x-format: list-object

default: List []

readOnly: true

x-legalNameUa: Заява на участь

x-legalNameEn: Bid
factoring.Bid{
description:

Bid model
Містить дані заяви на участь, її автора (учасника) та цінову пропозицію

ownerstring
readOnly: true

x-legalNameUa: Ідентифікатор майданчика

x-legalNameEn: Broker ID
ownerTokenstring($uuid)
readOnly: true

x-default: hex
idstring
readOnly: true

x-default: hex

x-legalNameUa: Ідентифікатор заяви на участь

x-legalNameEn: Bid ID
bidders*[
minItems: 1

maxItems: 1

x-legalNameUa: Інформація про учасника

x-legalNameEn: Bidder
base.Organization{
description:

Organization model
Містить дані про учасника аукціону (у тому числі ідентифікаційні дані, місцезнаходження та дані контактної особи учасника)

namebase.MultiLang{
description:

автогенерується з поля identifier.legalName

uk_UA*string
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name
x-legalNameUa"Повна юридична назва організації або ПІБ"
x-legalNameEn"Legal name or Full Name"
}
identifier*base.Identifier{
description:

Identifier model Містить дані щодо ідентифікації учасника аукціону

scheme*string
x-dictionaries: List [ "identifiers", "ua_identifiers" ]

x-legalNameUa: Ідентифікатори організації

x-legalNameEn: ID type

Обирається одне значення зі словників:
https://procedure-sandbox.prozorro.sale/api/classifiers/identifiers
https://procedure-sandbox.prozorro.sale/api/classifiers/ua_identifiers

legalName*base.MultiLang{
description:

Multi language string model

uk_UA*string
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name
x-legalNameUa"Повна юридична назва організації"
x-legalNameEn"Legal name"
}
id*string
x-legalNameUa: Код ЄДРПОУ або ІПН або паспорт

x-legalNameEn: ID
x-baseClass"prozorro_sale.procedure.models.base.Identifier"
x-legalNameUa"Ідентифікатори організації або особи"
x-legalNameEn"Identifier"
}
address*{
x-format"polymodel"
x-claim-func"prozorro_sale.procedure.models.utils.address_claim_func"
x-legalNameUa"Адреса"
x-legalNameEn"Address"
anyOf ->

base.Address{...}
base.AddressUa{...}

}
representativeInfostring
example: Довіреність № 123 від 22.02.2012, дійсна до 30.03.2012/Наказ № 142 від 14.12.2019/Статут ТОВ Кульбаба від 24.07.2002

x-legalNameUa: Інформація щодо підтвердження повноважень

x-legalNameEn: Representative information

Інформація про документ або дані, що підтверджують повноваження представника юридичної особи (наприклад довіреність)

contactPoint*base.ContactPoint{
description:

ContactPoint model
Містить дані про контакту особу та може використовуватися для організатора, учасника і автора запитання в моделях SellingEntity та Organization

name*base.MultiLang{
description:

Multi language string model

uk_UA*string
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name
x-legalNameUa"ПІБ"
x-legalNameEn"Main contact name"
}
email*string($email)
x-legalNameUa: Адреса електронної пошти

x-legalNameEn: Main contact e-mail
telephone*string
pattern: ^[+0][0-9]+$

x-legalNameUa: Номер телефону

x-legalNameEn: Main contact tel
faxNumberstring
pattern: ^[+][0-9]+$

x-legalNameUa: Номер факсу

x-legalNameEn: Main contact fax
urlstring($uri)
example: http://string.com

x-legalNameUa: Веб адреса

x-legalNameEn: Website
x-legalNameUa"Контактна особа"
x-legalNameEn"Main contact"
}
x-baseClass"prozorro_sale.procedure.models.base.OrganizationWithoutContacts"
}]
datePublishedstring($date-time)
readOnly: true

x-default: now

x-legalNameUa: Дата заяви на участь

x-legalNameEn: Bid date
dateModifiedstring($date-time)
readOnly: true

x-default: now

x-legalNameUa: Остання дата редагування ставки

x-legalNameEn: Bid modified date
statusstring
default: draft

x-legalNameUa: Статус заяви на участь

x-legalNameEn: Bid status
Enum:
[ draft, active, deleted, inactive ]
value*base.Value{
description:

Value model Містить дані щодо вартості. За замовчуванням: валюта - гривня. Може використовуватися для реєстраційного і гарантійного внесків і т.д.

currency*string
default: UAH

x-legalNameUa: Валюта

x-legalNameEn: Currency
Enum:
[ UAH, USD, EUR ]
amount*number($float)
example: 10

minimum: 0

x-format: decimal-float

x-legalNameUa: Сума

x-legalNameEn: Amount
x-legalNameUa"Цінова пропозиція"
x-legalNameEn"Bid price amount"
}
documents[...] 
orderinteger($int64)
readOnly: true
perks
NEW
{
description:

Додаткові нецінові критерії пропозиції учасника

description*base.MultiLang{
description:

Multi language string model

uk_UA*string
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name
x-legalNameUa"ПІБ"
x-legalNameEn"Main contact name"
}
x-legalNameUa"Нецінові пропозиції та додаткові умови"
x-legalNameEn"Benefits and additional conditions"
}
inactiveBidDatestring($date-time)
readOnly: true

x-legalNameUa: Дата деактивації заяви на участь

x-legalNameEn: Inactive bid date
bankAccounts{
description:

Гарантійного внеску немає, тому тут валідації на рахунок з типом guarantee немає.

accountTypestring
x-dictionaries: List [ "accountType" ]

Посилання на словник https://procedure-sandbox.prozorro.sale/api/dictionaries/accountType

Enum:
[ other, payment ]
accountsdefault: List base.BankAccountWithCurrency
x-legalNameUa"Банківські рахунки"
x-legalNameEn"Bank accounts"
}
}]

questions

ПРИХОВАТИ

[
x-format: list-object

default: List []

x-legalNameUa: Сервіс обговорення аукціону (запитання-відповідь)

x-legalNameEn: Q&A

readOnly: true
base.Question{
description:

Question model
Описує сервіс обговорення аукціону (запитання-відповідь)

ownerstring
readOnly: true

x-legalNameUa: Ідентифікатор майданчика

x-legalNameEn: Broker ID
ownerTokenstring($uuid)
readOnly: true

x-default: hex
idstring
readOnly: true

x-default: hex

x-legalNameUa: Ідентифікатор запитання

x-legalNameEn: Question ID
author*base.ContactPoint{
description:

ContactPoint model
Містить дані про контакту особу та може використовуватися для організатора, учасника і автора запитання в моделях SellingEntity та Organization

name*base.MultiLang{
description:

Multi language string model

uk_UA*string
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name
x-legalNameUa"ПІБ"
x-legalNameEn"Main contact name"
}
email*string($email)
x-legalNameUa: Адреса електронної пошти

x-legalNameEn: Main contact e-mail
telephone*string
pattern: ^[+0][0-9]+$

x-legalNameUa: Номер телефону

x-legalNameEn: Main contact tel
faxNumberstring
pattern: ^[+][0-9]+$

x-legalNameUa: Номер факсу

x-legalNameEn: Main contact fax
urlstring($uri)
example: http://string.com

x-legalNameUa: Веб адреса

x-legalNameEn: Website
x-legalNameUa"Автор запитання"
x-legalNameEn"Question author"
}
title*base.MultiLang{
description:

Multi language string model

uk_UA*string
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name
x-legalNameUa"Назва запитання"
x-legalNameEn"Question title"
}
descriptionbase.MultiLang{
description:

Multi language string model

uk_UA*string
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name
x-legalNameUa"Текст запитання"
x-legalNameEn"Question description"
}
datePublishedstring($date-time)
readOnly: true

x-default: now

x-legalNameUa: Дата публікації запитання

x-legalNameEn: Question date
dateModifiedstring($date-time)
readOnly: true

x-default: now

x-legalNameUa: Дата редагування запитання

x-legalNameEn: Question modification date
dateAnsweredstring($date-time)
readOnly: true

x-legalNameUa: Дата відповіді на запитання

x-legalNameEn: Answer date
answerbase.MultiLang{
description:

Multi language string model

uk_UA*string
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name
x-legalNameUa"Відповідь на запитання"
x-legalNameEn"Answer"
}
canUpdateUntilstring($date-time)
readOnly: true

Верхня межа часу, до якого включно допускається оновлювати створене запитання.
Автогенерується враховуючи дату публікації запитання + 2 години

x-baseClass"prozorro_sale.procedure.models.base.Question"
}]

awards

ПРИХОВАТИ

[
x-format: list-object

default: List []

readOnly: true

x-legalNameUa: Рішення щодо кваліфікації учасників

x-legalNameEn: Award
factoring.Award{
description:

Award model

idstring
readOnly: true

x-legalNameUa: Ідентифікатор кваліфікації учасника аукціону

x-legalNameEn: Award ID

x-default: hex
bidId*string
readOnly: true

x-legalNameUa: Ідентифікатор заяви на участь учасника аукціону

x-legalNameEn: Award bid ID
titlebase.MultiLang{
description:

Multi language string model

uk_UA*string
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name
x-legalNameUa"Назва рішення щодо кваліфікації учасника аукціону"
x-legalNameEn"Award title"
}
descriptionbase.MultiLang{
description:

Multi language string model

uk_UA*string
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name
x-legalNameUa"Опис рішення щодо кваліфікації учасника аукціону"
x-legalNameEn"Award description"
}
statusstring
x-legalNameUa: Статус кваліфікації учасника аукціону

x-legalNameEn: Award status
Enum:
[ pending_waiting, active, cancelled, unsuccessful, discarded ]
terminationReasonstring
x-dictionaries: List [ "governmentFactoringTerminationReason" ]

x-legalNameUa: Причина дискваліфікації/відмови учаснику

x-legalNameEn: Disqualification reason

Посилання на словник https://procedure-sandbox.prozorro.sale/api/dictionaries/governmentFactoringTerminationReason

datePublishedstring($date-time)
readOnly: true

x-legalNameUa: Дата початку кваліфікації учасника аукціону

x-legalNameEn: Award date

x-default: now
value*base.Value{
description:

Value model Містить дані щодо вартості. За замовчуванням: валюта - гривня. Може використовуватися для реєстраційного і гарантійного внесків і т.д.

currency*string
default: UAH

x-legalNameUa: Валюта

x-legalNameEn: Currency
Enum:
Array [ 3 ]
amount*number($float)
example: 10

minimum: 0

x-format: decimal-float

x-legalNameUa: Сума

x-legalNameEn: Amount
x-legalNameUa"Цінова пропозиція"
x-legalNameEn"Award price"
}
perks
NEW
{
description:

Додаткові нецінові критерії пропозиції учасника

description*base.MultiLang{
description:

Multi language string model

uk_UA*string
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name
x-legalNameUa"ПІБ"
x-legalNameEn"Main contact name"
}
x-legalNameUa"Нецінові пропозиції та додаткові умови"
x-legalNameEn"Benefits and additional conditions"
}
buyers[
default: List []

x-legalNameUa: Інформація про учасника

x-legalNameEn: Successful bidders
base.Organization{...}]
documents[
x-format: list-object

default: List []

x-legalNameUa: Документи до аварду

x-legalNameEn: Award Documents
base.Document{...}]
dateModifiedstring($date-time)
readOnly: true

x-legalNameUa: Дата редагування

x-legalNameEn: Award modification date

x-default: now
signingPeriodbase.Period{
description:

Period model
Містить дані щодо кожного з періодів процедури, а також аварду та договору (за наявності).

startDate*string($date-time)
readOnly: true

x-default: now

x-legalNameUa: Дата та час початку

x-legalNameEn: Start date
endDatestring($date-time)
readOnly: true

x-legalNameUa: Дата та час завершення

x-legalNameEn: End date
x-baseClass"prozorro_sale.procedure.models.base.Period"
x-legalNameUa"Період підписання договору"
x-legalNameEn"Signing period"
}
paymentPeriod{
description:

Period model
Містить дані щодо кожного з періодів процедури, а також аварду та договору (за наявності).

startDate*string($date-time)
readOnly: true

x-default: now

x-legalNameUa: Дата та час початку

x-legalNameEn: Start date
endDatestring($date-time)
readOnly: true

x-legalNameUa: Дата та час завершення

x-legalNameEn: End date
x-baseClass"prozorro_sale.procedure.models.base.Period"
x-legalNameUa"Період оплати"
x-legalNameEn"Payment period"
}
bankAccounts{
description:

Гарантійного внеску немає, тому тут валідації на рахунок з типом guarantee немає.

accountTypestring
x-dictionaries: List [ "accountType" ]

Посилання на словник https://procedure-sandbox.prozorro.sale/api/dictionaries/accountType

Enum:
[ other, payment ]
accountsdefault: List base.BankAccountWithCurrency
x-legalNameUa"Банківські рахунки"
x-legalNameEn"Bank accounts"
}
}]

timerstring($date-time)
readOnly: true

x-format: timer

x-serialize_when_none: false

час до наступної події


archiveIdstring
readOnly: true

x-format: object-id

x-serialize_when_none: false

contracts

ПРИХОВАТИ

[
x-format: list-object

default: List []

readOnly: true

x-legalNameUa: Договір

x-legalNameEn: Contract
{
description:

Обов'язковими до заповнення для зміни статусу контракту з pending у signed є наступні об'єкти та/або поля

  • description
  • contractNumber
  • title
  • dateSigned
    Обов'язковими до заповнення для зміни статусу контракту з signed у active є наступні об'єкти та/або поля
  • lotPaymentConfirmation
idstring
readOnly: true

x-default: hex

x-legalNameUa: Внутрішній ідентифікатор контракту

x-legalNameEn: Contract ID
awardId*string
readOnly: true

x-legalNameUa: Ідентифікатор переможця

x-legalNameEn: Award ID
contractNumberstring
minLength: 1

x-legalNameUa: Номер договору

x-legalNameEn: Contract's number
title
description
value
contractTotalValue
contractTime{
description:

LifeTime model Містить дані щодо тривалості періоду (від - до). dateTill > dateFrom

dateFrom*string($date-time)
x-default: now

x-legalNameUa: Період з

x-legalNameEn: Date from
dateTill*string($date-time)
x-legalNameUa: Період по

x-legalNameEn: Date till
x-baseClass"prozorro_sale.procedure.models.base.LifeTime"
x-legalNameUa"Строк дії договору"
x-legalNameEn"Contract's terms"
}
perks{
description:

Додаткові нецінові критерії пропозиції учасника

description*
x-legalNameUa"Нецінові пропозиції та додаткові умови"
x-legalNameEn"Benefits and additional conditions"
}
buyers[
default: List []

readOnly: true

x-legalNameUa: Переможець

x-legalNameEn: Contract's winners
]
statusstring
readOnly: true

default: pending

x-legalNameUa: Статус договору

x-legalNameEn: Contract's status
Enum:
[ pending, signed, active, cancelled ]
lotPaymentConfirmationboolean
x-legalNameUa: Підтвердження сплати за лот

x-legalNameEn: Lot payment confirmation
dateSignedstring($date-time)
x-legalNameUa: Дата підписання договору

x-legalNameEn: Signing date
datePublishedstring($date-time)
readOnly: true

x-default: now

x-legalNameUa: Дата створення об'єкта договору

x-legalNameEn: Contract's creation date
dateModifiedstring($date-time)
readOnly: true

x-default: now

x-legalNameUa: Остання дата редагування договору

x-legalNameEn: Contract's modified date
documents[
x-format: list-object

default: List []

x-legalNameUa: Документи та додатки пов’язані з договором

x-legalNameEn: Contract's document
]
bankAccounts
}]

rectificationPeriodbase.Period{
description:

Period model
Містить дані щодо кожного з періодів процедури, а також аварду та договору (за наявності).

startDate*string($date-time)
readOnly: true

x-default: now

x-legalNameUa: Дата та час початку

x-legalNameEn: Start date
endDatestring($date-time)
readOnly: true

x-legalNameUa: Дата та час завершення

x-legalNameEn: End date
x-baseClass"prozorro_sale.procedure.models.base.Period"
x-legalNameUa"Період редагування"
x-legalNameEn"Rectification period"
}

enquiryPeriodbase.Period{
description:

Period model
Містить дані щодо кожного з періодів процедури, а також аварду та договору (за наявності).

startDate*string($date-time)
readOnly: true

x-default: now

x-legalNameUa: Дата та час початку

x-legalNameEn: Start date
endDatestring($date-time)
readOnly: true

x-legalNameUa: Дата та час завершення

x-legalNameEn: End date
x-baseClass"prozorro_sale.procedure.models.base.Period"
x-legalNameUa"Період відповідей"
x-legalNameEn"Enquiry period"
}

tenderPeriodbase.Period{
description:

Period model
Містить дані щодо кожного з періодів процедури, а також аварду та договору (за наявності).

startDate*string($date-time)
readOnly: true

x-default: now

x-legalNameUa: Дата та час початку

x-legalNameEn: Start date
endDatestring($date-time)
readOnly: true

x-legalNameUa: Дата та час завершення

x-legalNameEn: End date
x-baseClass"prozorro_sale.procedure.models.base.Period"
x-legalNameUa"Період подання заяви на участь в аукціоні"
x-legalNameEn"Tender period"
}

questionPeriodbase.Period{
description:

Period model
Містить дані щодо кожного з періодів процедури, а також аварду та договору (за наявності).

startDate*string($date-time)
readOnly: true

x-default: now

x-legalNameUa: Дата та час початку

x-legalNameEn: Start date
endDatestring($date-time)
readOnly: true

x-legalNameUa: Дата та час завершення

x-legalNameEn: End date
x-baseClass"prozorro_sale.procedure.models.base.Period"
x-legalNameUa"Період запитань"
x-legalNameEn"Question period"
}

qualificationPeriodbase.Period{
description:

Period model
Містить дані щодо кожного з періодів процедури, а також аварду та договору (за наявності).

startDate*string($date-time)
readOnly: true

x-default: now

x-legalNameUa: Дата та час початку

x-legalNameEn: Start date
endDatestring($date-time)
readOnly: true

x-legalNameUa: Дата та час завершення

x-legalNameEn: End date
x-baseClass"prozorro_sale.procedure.models.base.Period"
x-legalNameUa"Період кваліфікації"
x-legalNameEn"Qualification period"
}

winnerSelectionPeriodbase.Period{
description:

Period model
Містить дані щодо кожного з періодів процедури, а також аварду та договору (за наявності).

startDate*string($date-time)
readOnly: true

x-default: now

x-legalNameUa: Дата та час початку

x-legalNameEn: Start date
endDatestring($date-time)
readOnly: true

x-legalNameUa: Дата та час завершення

x-legalNameEn: End date
x-baseClass"prozorro_sale.procedure.models.base.Period"
x-legalNameUa"Період обрання переможця"
x-legalNameEn"Winner selection period"
}

paymentPeriodbase.Period{
description:

Period model
Містить дані щодо кожного з періодів процедури, а також аварду та договору (за наявності).

startDate*string($date-time)
readOnly: true

x-default: now

x-legalNameUa: Дата та час початку

x-legalNameEn: Start date
endDatestring($date-time)
readOnly: true

x-legalNameUa: Дата та час завершення

x-legalNameEn: End date
x-baseClass"prozorro_sale.procedure.models.base.Period"
x-legalNameUa"Період запитань"
x-legalNameEn"Question period"
}

statusstring
readOnly: true

x-legalNameUa: Статус процедури

x-legalNameEn: Procedure status
Enum:
[ active_tenderingpending_payment, active_awarded, complete, cancelled, unsuccessful ]

cancellations

[
x-format: list-object

default: List []

readOnly: true

x-legalNameUa: Скасування Аукціону

x-legalNameEn: Auction Cancellation
base.Cancellation{
description:

Cancellation model
Містить дані щодо скасування аукціону

idstring
readOnly: true

x-legalNameUa: Ідентифікатор об'єкта скасування

x-legalNameEn: Aucton cancellation ID

x-default: hex
reason*base.MultiLang{...}
documents*[
x-format: list-object

default: List []
base.CancellationDocument{...}]
datePublished*string($date-time)
x-legalNameUa: Дата скасування

x-legalNameEn: Cancellation date
x-baseClass"prozorro_sale.procedure.models.base.Cancellation"
}]

_versioninteger($int64)
readOnly: true

_protectedboolean
default: false

readOnly: true

_protect_levelstring
readOnly: true
Enum:
[ high, medium ]

_meta{
x-format"serialize-multidict"
}

additionalInformation[
x-format: list-object

default: List []

readOnly: true

x-legalNameUa: Додаткова інформація

x-legalNameEn: Additional information
base.AdditionalInformation{
idstring
readOnly: true

x-legalNameUa: Ідентифікатор об'єкту додаткової інформації

x-legalNameEn: Additional information ID

x-default: hex
ownerstring
readOnly: true

x-legalNameUa: Ідентифікатор власника об'єкта додаткової інформації

x-legalNameEn: Owner ID
datePublishedstring($date-time)
readOnly: true

x-default: now

x-legalNameUa: Дата публікації

x-legalNameEn: Publish date
dateModifiedstring($date-time)
readOnly: true

x-default: now

x-legalNameUa: Дата модифікації

x-legalNameEn: Modification date
description*base.MultiLang{...}
initiator*string
x-dictionaries: List [ "additional_info_initiators" ]

x-legalNameUa: Ініціатор публікації додаткової інформації

x-legalNameEn: Additional information initiator

обирається зі словника https://procedure-sandbox.prozorro.sale/api/dictionaries/additional_info_initiators

initiatorOtherbase.MultiLang{...}
reason*string
x-dictionaries: List [ "additional_info_reason" ]

x-legalNameUa: Причина публікації додаткової інформації

x-legalNameEn: Additional information reason

обирається зі словника https://procedure-sandbox.prozorro.sale/api/dictionaries/additional_info_reason

reasonOtherbase.MultiLang{...}
documents[...]
x-baseClass"prozorro_sale.procedure.models.base.AdditionalInformation"
}]

Видалені поля:

  1. auctionUrl
  2. accessDetails
  3. auctionPeriod
  4. discount
  5. guarantee
  6. minimalStep
  7. isPerishable
  8. registrationFee

Поля, які необхідно приховати: 

  1. contracts
  2. awards
  3. questions
  4. bids
  5. documents
  6. paymentTerms

Зміни в search та mirror, ролі

Задача полягає в тому, щоб відображати повну інформацію про процедури факторингу тільки організаторам та учасникам, спостерігачі, в свою чергу, для процедур в статусі complete бачать всі поля крім тих, що зазначені як приховати. Щодо процедур в усіх інших статусах - спостерігачі їх не бачать.

Для цього в search ми маємо на запит відображення процедур факторингу віддавати тільки процедури факторингу в статусі complete без прихованих полів

Було додано нову роль - broker. Для тих майданчиків, які планують працювати з даним напрямком, буде додано цю роль. В такому випадку саме ці майданчики отримають всі процедури факторингу в усіх статусах через mirror. Також у цих майданчиків буде можливість отримувати процедури за прямим запитом. Якщо майданчику не буде додано такої ролі, то за прямим запитом майданчик отримає 403 помилку, а в mirror синхронизацію процедур факторингу для таких майданчиків буде пропущено. 

  • для факторингу broker ідентифікується по наявності пермішену read_procedure
  • перероблюються існуючі ендпоінти: виносимо логіку з вьюх і переносимо до стейт машини, всі колишні публічні ендпоінти додаємо як базові, з можливістю переопреділити
  • для факторингу для "публічних" ендпоінтів в стейт машині перевіряємо у юзера наявність пермішенів read_procedure
  • для міррора перевіряємо чи може користувач "читати" процедуру, далі - на основі ролі формуємо поля доступні для читання, іншим користувачам відправляємо noop

таким чином:

  • тим майданчикам, які працюють з напрямом - права read_procedure. В міррорі їм приходять оновлення по напряму, але без тієї доп інформації.
  • іншим майданчикам приходить noop сповіщення, таким чином не ломаючи їхню логіку
  • скачувати документи все ще можливо тільки брокерам (так ми зможемо трекати хто запрошував ці документи) - передивлятись список - всім з правами read_procedure.

Організатор зі своїм токеном бачить всі поля процедури. 

Учасник зі своїм токеном бачить тільки свій бід та авард в усіх статусах процедури. Щодо contract, то в цьому випадку ми маємо відображати тільки його учаснику-переможцю.

Нижче наведено таблицю, де зазначена логіка роботи основних ендпоінтів в залежності від того який токен використовується.

  • Якщо в комірці проставлено plus sign , в такому випадку за запитом з зазначеною комбінацією токенів ендпоінт спрацює та віддасть дані. 
  • Якщо в комірці проставлено minus sign , в такому випадку на запит буде віддано або 403, або 404. 
  • Сірим позначено комбінації, які не будуть використовуватись. 
EndpointNo tokenBroker tokenBroker token + Owner tokenBroker token + Bidder token
Опис
Запит без зазначення токена (публічний доступ)
Стандартний токен майданчика.

Майданчикам, що беруть участь в пілоті, в auth файл буде додано роль broker для отримання процедур факторингу по mirror

Комбінація токену майданчика та токену процедури (токен, який отримує майданчик (організатор) після створення процедури)

Комбінація токену майданчика та токену, який видається учаснику, що створив бід

GET/api​/mirror​/procedures

minus sign


 

plus sign  minus sign


minus sign

Отримує процедуру за виключенням полів bids, awards, contracts. 
GET​/api​/procedures​/{procedure_id} minus sign

plus sign plus sign plus sign
Отримує процедуру за виключенням полів bids, awards, contracts. 

Віддаються всі поля

Віддаються всі поля процедури, але bids, awards, contracts віддаються лише того біда, який виконує запит

POST​/api​/procedures minus sign

plus sign

Якщо в auth додано роль procedure для факторингу

GET​/api​/procedures​/{procedure_id}​/documents minus sign

plus sign

plus sign


plus sign
На відміну від broker token та broker token + owner token, процедурі з'явиться бід учасника, який виконує запит, якщо статус active_tendering
GET​/api​/procedures​/{procedure_id}​/documents​/{doc_id}​/download minus sign plus sign plus sign plus sign
POST​/api​/procedures​/{procedure_id}​/bids minus sign
plus sign

Якщо в auth файлі додано роль bids

GET​/api​/procedures​/{procedure_id}​/bids​/{bid_id} minus sign

minus sign

minus sign plus sign

Побачить, коли статус процедури зміниться на active_qualification

Побачить тільки у випадку, якщо бід було створено учасником, який виконує запит

Для об'єктів історії використовується та сама логіка, яка використовується для відображення полів в  процедурі. Тобто, якщо запит робить broker, в такому випадку буде відображено всі поля, за виключенням bids, awards, contracts. Якщо запит робить організатор але статус об'єкту історії active_tendering, тоді він не побачить bids, awards, contracts. Якщо ж статус інший, тоді ці поля буде відображено. Якщо запит буде робити учасник, то в об'єкті учасник побачить лише свій bid, award, contract. 

GET​/api​/procedures​/{procedure_id}​/history​/{archive_id} minus sign plus sign plus sign plus sign
GET​/api​/procedures​/{procedure_id}​/history minus sign plus sign plus sign plus sign
GET​/api​/procedures​/{procedure_id}​/documents​/{doc_id}​/history minus sign plus sign plus sign plus sign
GET​/api​/procedures​/{procedure_id}​/documents​/history minus sign plus sign plus sign plus sign
GET​/api​/procedures​/{procedure_id}​/awards​/{award_id}​/documents​/{doc_id}​/history minus sign minus sign plus sign plus sign
GET​/api​/procedures​/{procedure_id}​/awards​/{award_id}​/documents​/history minus sign minus sign plus sign plus sign
GET​/api​/procedures​/{procedure_id}​/contracts​/{contract_id}​/documents​/{doc_id}​/history minus sign minus sign plus sign plus sign
GET​/api​/procedures​/{procedure_id}​/contracts​/{contract_id}​/documents​/history minus sign minus sign plus sign plus sign
GET​/api​/procedures​/{procedure_id}​/additionalInformation​/{add_info_id}​/history minus sign plus sign plus sign plus sign
GET​/api​/procedures​/{procedure_id}​/additionalInformation​/history minus sign plus sign plus sign plus sign
GET​/api​/procedures​/{procedure_id}​/additionalInformation​/{add_info_id}​/documents​/{doc_id}​/history minus sign plus sign plus sign plus sign
GET​/api​/procedures​/{procedure_id}​/additionalInformation​/{add_info_id}​/documents​/history minus sign plus sign plus sign plus sign

Отже, підсумовуючи: 

  1. Спостерігач. Бачить публічну інформацію, яка виключає приховані поля. Бачить тільки процедури в статусі complete. Не бачить процедури в статусах відмінних від complete.
  2. Прекваліфікований фактор (прекваліфікований спостерігач). Бачить всі процедури факторингу в усіх статусах, не бачить приховані поля. Майданчик має відобразити списки процедур факторингу тільки для прекваліфікованих учасників. Технічна реалізація передбачає наступну логіку. Згідно конфігурації в auth файлі (внутрішня логіка), буде налаштовано наступну логіку. Для майданчиків, які планують брати участь в пілоті, буде додано права на створення процедури та бідів, і, відповідно, ці майданчики будуть отримувати повний список процедур в усіх статусах (без прихованих полів). Щодо інших майданчиків - вони не будуть отримувати процедури факторингу. 
  3. Учасник. Бачить всі процедури факторингу в усіх статусах, де створив бід. Бачить documents, paymentTerms, questions. Бачить лише свої bids, awards, contracts. 
  4. Організатор. Бачить всі поля. 

Вимоги до відображення на інтерфейсі майданчика

Відповідно до вимог вище, майданчики отримують по mirror процедури в усіх статусах за виключенням полів bids, awards, contracts.

Тому логіка приховання полів для спостерігачів має бути реалізована на стороні майданчика. Тобто для непрекваліфікованих спостерігачів, необхідно відобразити тільки процедури в статусі complete, та в цих виведених процедурах НЕ відображати поля:

  • paymentTerms
  • bids
  • awards
  • contracts
  • documents
  • questions

Повний список процедур необхідно відображати лише тим користувачам, які є прекваліфікованими. Тобто якщо, наприклад, було прекваліфіковано ПУМБ, то для них потрібно відобразити всі процедури в усіх статусах.

Щодо перегляду деталей процедури, то ПУМБ мають бачити paymentTerms, documents, questions (за виключенням questions.author), cancellations, і тільки свої bids, awards, contracts.

Класифікатори

Основний:

  • Обов’язковий CAV. Має співпадати з класифікатором items в lot на Прозорро. 

Додатковий:

  • Видаляємо

Редагування Процедури

Редагування оголошення для Процедур, в яких Період Редагування розпочинається разом з Періодом подання заяв на участь (rectificationPeriod.startDate == tenderingPeriod.startDate)

При редагуванні деяких полів процедури відбувається деактивація бідів (bid status: active → inactive). 

Перелік полів, які деактивують заяви на участь: 

  • value
  • documents
  • valueAddedTaxCharged
  • title
  • description
  • items
  • x_additionalInformation
  • x_documentRequirements
  • paymentTerms
  • productEntity (поля productEntity.id, productEntity.humanId, productEntity.lotId не редагуються)
  • previousAuctionId
  • tenderAttempts
  • sellingEntity
  • lotId
  • bankAccounts

Поля, які вказують на айді тендера та / або лота (productEntity.id, productEntity.humanId, productEntity.lotId) редагувати не можна! 

При редагуванні процедури обов'язково завантаження документу clarifications!

Скасування Процедури

Скасування оголошення відбувається за загальним флоу скасування процедури з відмінностями:

  1. Документи cancellation мають обовʼязково бути private
  2. Документ cancellationDetails є необовʼязковим.
  3. Причина скасування вказується вручну в текстовому полі. 

Відповіді на запитання до Процедури

До завершення Періоду запитань Організатор може надіслати відповідь на запитання учасника, або відредагувати відповідь

Особливості роботи для процедури факторингу: 

  1. Перегляд блоку питання/відповіді доступний лише учасникам після подачі біда.
  2. questions.author недоступно до перегляду в усіх статусах процедур для учасників.
  3. Організатор бачить questions.author після переходу процедури в статус active_awarded або cancelled або unsuccessful або complete. 
  4. Недоступно до перегляду в усіх статусах процедур для майданчика (broker).

Завантаження документів до оголошення / Заміна документів оголошення

Організатор може завантажувати документи оголошення.

Завантаження відбувається по стандартному флоу

Заміна документів відбуваєтсья по стандартному флоу

Кваліфікація переможця

Функціонал доступний у випадку початку періоду кваліфікації процедури qualificationPeriod.

Вимоги до відображення на інтерфейсі майданчика

Організатору необхідно відобразити одночасно всі award в статусі pending_waiting. Тобто, по завершенню періоду подання пропозицій, та на початку періоду кваліфікації, організатору необхідно відобразити кожен з авардів. На стороні ЦБД буде створено авард в даному статусі на кожен активний бід. 

У організатора має бути можливість зробити з кожним з авардів наступні дії: 

  • Обрати переможця. В такому випадку статус аварда буде змінено на active, і організатор буде працювати з обраним авардом за стандартним флоу. 
  • Відхилити пропозицію. У випадку, якщо організатор категорично не хоче розглядати певну пропозицію, в такому випадку вони можуть відхилити певну пропозицію. Відхилення пропозиції має супроводжуватись сповіщенням для організатора, що у разі відхилення пропозиції, у них не буде більше можливості знов розглянути цю пропозицію, оскільки її буде переведено в термінальний статус. 

Робота з award`ом

Технічний ідентифікаторНазва українськоюНазва англійськоюОбов'язковістьПриватністьДеталіХто завантажує
rejectionProtocol

Рішення Організатора про відмову (дискваліфікацію)

Rejection protocolТакprivateЗавантажується у разі дискваліфікації переможця ОрганізаторомОрганізатор
actАкт про відмову переможцяRefusal actТакprivateЗавантажується у разі відмови переможця аукціону від підписання протоколу аукціону або від укладення договору купівлі-продажу, або несплати ним ціни продажу у встановлений строк Організатор
digitalSignatureЦифровий підписDigital signatureНіНабуває значення документу з яким пов'язаний

При цьому обовʼязково звернути увагу, що документи є private

Для зміни статуса Award з pending_waiting на active має відбутися ручна дія організатора. 

Вимоги до відображення на інтерфейсі майданчика

Після початку періоду кваліфікації, організатору необхідно надати можливість попередньо обрати переможця тв відхилити пропозицію. Обидві дії є ручними.

При відхиленні пропозиції, організатору необхідно відобразити повідомлення, що дана дія є незвороньою та запросити додаткове підтвердження дії. Ця дія змінить статус аварду з pending_waiting на discarded.

Коли організатор обирає переможця, в такому випадку необхідно також відобразити організатору попередження, що дія є незворотньою і вимагати додаткове підтвердження дії. Ця дія змінить статус аварду з pending_waiting на active

Завантаження протоколу

Протокол відсутній в даній процедурі

Дискваліфікація переможця

Відбувається за загальним флоу дискваліфікації переможця.

Причини дискваліфікації переможця:


en_USuk_UA
1"Refusal or non-signing of the contract""Відмова або непідписання договору"
2"Missing required documents""Відсутні обов’язкові документи"
3"Violation of the prepayment/payment""Невнесення передоплати або оплати за договором"
4"Participation from more than 1 marketplace""Участь в аукціоні з більше, ніж 1 майданчика"

Робота з contract`ом

exclamation mark Всі документи контракту є private! 

Поля contract‘у беремо з базової процедури процедури факторингу. 

Організатор має завантажити підписаний договір факторингу як контракт. 

Статуси роботи з контрактом: Зміна статусу контракту governmentFactoring-withoutAuction

Додаткові документи контракту: 

Технічний ідентифікаторНазва українськоюНазва англійськоюОбов'язковістьПриватністьДеталіХто завантажує
contractSignedПідписаний договірSigned contractТакprivateПідписаний договірОрганізатор
contractAnnexeДодатки до договоруContract annexeНіprivateДодатки до договоруОрганізатор
purchaseContractEndorsementСповіщення про переуступку договоруPurchase contract endorsementТакprivateПідписана дебітором додаткова угода до договору закупівлі/сповіщення про переуступку договоруОрганізатор
handoverCertificate

Акт прийому/передачі

Handover certificateТакprivateДокумент, що підтверджує передачу товару чи надання послугОрганізатор

Зміна статусу контракту з pending на signed відбувається за допомогою окремого ендпоінта. Після підтвердження попереднього контракту розпочинається період оплати. 

Для того, щоб статус контракту змінився з signed на active необхідно підтвердити отримання коштів в аварді (зміна lotPaymentConfirmation з false на true)додатковою є валідація на наявність документів purchaseContractEndorsement та handoverCertificate

Період оплати

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

Вимоги до відображення на інтерфейсі майданчика

Робота з контрактом розпочинається після того, як організатор обрав переможця.

У організатора має бути можливість завантажити документ контракту, а також два додаткових обов'язкових документа: purchaseContractEndorsement та handoverCertificate. Ці документи можна завантажити як до завантаження контракту, так і після, завантажувати оновлені версії цих документів. Але після переходу контракту в статус active ці документи змінювати не можна. 

Після того, як завантажено документ контракту, організатор має попередньо підтвердити контракт окремою дією.

В цей момент у організатора має бути можливість заповнити поля контракту, а також поставити маркер lotPaymentConfirmation = true. Активувати та деактивувати цей маркер можна до переходу контракту в статус active, тобто в статусі signed. Для того, щоб контракт перейшов в статус active, обов'язково:

  • мають бути заповнені всі обов'язкові поля
  • завантажено документи purchaseContractEndorsement та handoverCertificate
  • завантажено документ контракту
  • lotPaymentConfirmation має бути обрано як true. 

Активація контракту має бути ручною дією, при виконанні цієї дії, організатора необхідно попередити, що ця дія є незворотньою. 

Завершення процедури

Відбувається за загальним флоу завершення процедури

Вимоги до відображення на інтерфейсі майданчика

  • Надсилання запиту на завершення процедури відбувається шляхом натискання кнопки “Завершити аукціон”.
  • Кнопка "Завершити аукціон" може бути доступна тільки після того, коли статус contract == active

Функціонал доступний Користувачу та Учаснику

Надсилання запитання Організатору

Надсилання запитання відбувається  за загальним флоу роботи з запитаннями

Редагування запитання  відбувається за загальним флоу редагування.

Функціонал доступний Користувачу

Вимоги до відображення на інтерфейсі майданчика

Тобто додавати процедури факторингу в загальний список процедур (якщо такий є) не треба. 

Робота з bid`ом

exclamation mark Всі документи біда мають бути private!
Створення біда можливо без документів, але обов'язково необхідно вказати ЄДРПОУ. 

exclamation mark В даній процедурі створення біда в статусі draft необхідно додати на сторону ЦБД для можливості відображення документів учасникам. 


Для зміни статуса bid-а з draft на active обов'язкові документи, а також необхідно провалідувати поля value, perks та bankAccounts. Вони не мають бути порожніми. 

Щодо валідації на поле value. Необхідно прибрати валідацію, що bid.value має дорівнювати або бути більшим procedure.value, оскільки банки будуть пропонувати меншу суму угоди, ніж ціна закупівлі. 

Додаткова умова - додати валидацію на bidders identifier.scheme. Для створення заяви на участь ми маємо пропускати тільки UA-EDR, щоб унеможливити створення заяви на участь від фізичних осіб або ФОП. 

Технічний ідентифікаторНазва українськоюНазва англійськоюОбов'язковістьПриватністьДля чого Хто завантажує
x_tenderersRegisterExtractВитяг з ЄДРПОУ або копія документа про реєстраціюRegister extractНіprivateКопія витягу з ЄДРПОУ або копію документа про реєстрацію (витяг із торговельного, банківського або судового реєстру тощо) (для юрособи)Учасник
digitalSignatureЦифровий підписDigital signatureНіНабуває значення документу з яким пов'язаний

commercialProposalЗаява на участьBidТакprivateПідписана вручну заява на участьУчасник

Публікація заяви на участь

Дія обов'язкова для участі в аукціоні. Різниця зі стандартним  публікації заяви на участь:

  1. Відстуня валідація на bid.value має обовʼязково бути більша, ніж procedure.value.
  2. У учасника є можливість вказати bankAccounts в bid. Додаткова інформація щодо bankAccounts в bid. В процедурі факторингу було додано банківські рахунки в біди. Це необхідно у звʼязку з тим, що дебітор після успішного завершення процедури факторингу має розрахуватись з учасником (банком). Для цього учасник має вказати банківські рахунки на момент створення біда. В подальшому поле bankAccounts автоматично переносяться в award та в contract
  3. Учасник може вказати perks в bid. В подальшому поле perks автоматично переносяться в award та в contract

Вимоги до відображення на інтерфейсі майданчика

Прекваліфікація учасника

Кожен учасник, який бере участь в процедурі факторингу має бути прекваліфікований. Що таке прекваліфікація? Для того, щоб отримати доступ до документів процедури факторингу, майданчик має прекваліфікувати такого учасника на етапі створення акаунту учасника. Для прекваліфікації учасника необхідно переконатись, що даний учасник дійсно має право на ведення факторингової діяльності. Має бути завантажена ліцензія на ведення такої діяльності. Ліцензія має бути завантажена на стороні майданчика, в ЦБД даний документ вантажити не потрібно. 

Доступ до документів процедури

Документи процедури необхідно приховати від неавторизованих непрекваліфікованих користувачів.

Для того, щоб передивитися документи процедури факторингу, учаснику необхідно створити бід в статусі draft. В цій процедурі бід в даному статусі буде створюватись і на стороні ЦБД. В цьому біді має обов'язково бути вказаний ідентифікатор учасника (ЄДРПОУ). У випадку, якщо цей учасник є попередньо прекваліфікованим, то такий учасник зможе передивитись документи процедури, і відредагувати / уточнити свою пропозицію після ознайомлення з документами.

Майданчик має гарантувати, що доступ до документів отримають тільки прекваліфіковані учасники. 

Створення заяви на участь

Створити заяву на участь можливо лише вказавши хто є учасником (ЄДРПОУ). Зверніть увагу, що для активації заяви на участь, обов'язково мають бути заповнені поля value, bankAccounts, а також perks. Учаснику, який сторив заяву на участь в статусі драфт для того, щоб передивитися документи та прийняти рішення, чи цікава йому дана процедура факторингу, необхідно надати можливість закінчити створення та активацію заяви на участь в процедурі факторингу. Для цього, як вже зазначилось, мають бути обов'язково присутні поля value, bankAccounts, perks. 

Відображення процедур факторингу прекваліфікованим учасникам

Для прекваліфікованих учасників необхідно показати список всіх процедур факторингу в усіх статусах. Біля процедур факторингу, де вже було додано пропозицію від учасника, треба відобразити відповідне інфо, тобто учасник в загальному списку має чітко бачити, на яких процедурах факторингу наявна пропозиція цього учасника та статус цієї пропозиції. Статус необхідно відобразити з тієї причини, що для перегляду документів процедури учаснику необхідно створити бід в статусі драфт, але фактично це не завжди буде повністю сформована пропозиція. 

exclamation mark ВАЖЛИВО exclamation mark Учасник не має бачити кількість пропозицій від інших учасників, а також не має бачити деталі пропозицій інших учасників під час qualification_period та в завершеній процедурі (complete

Функціонал доступний Учаснику

Робота з bid`ом 

(перелік документів описано вище)

Активація заяви на участь (Зміна статуса Bid-а з draft АБО inactive на active)

Дія обов'язкова для участі в аукціоні. Відбувається за загальним флоу активації заяви на участь

Потрібно додати валідацію на наявність полів value, perks та bankAccounts при активації заяви на участь. 

Скасування заяви на участь

Відбувається за загальним флоу скасування заяви на участь учасником

Редагування поданої заяви

Відбувається за загальним флоу Редагування заяви на участь

Завантаження протоколу учасником

Протокол відсутній

Робота з award`ом

Документи було вже зазначено вище. 

Відмова від очікування

Функціонал відмови від очікування необхідно прибрати. 

Сервіс протоколів

Для даної процедури немає протоколів. Ми не маємо підключати сервіс протоколів для цієї процедури. 

Якщо користувач підставить id процедури факторингу в сервіс протоколів, тоді користувач має отримати помилку 404. Тобто запити типу:

  • https://procedure.prozorro.sale/api/protocol/[GFW.id]/download
  • https://procedure.prozorro.sale/api/protocol/[GFW.id]/print
  • https://procedure.prozorro.sale/api/protocol/[GFW.id]/doc

Мають відображати користувачеві помилку стандартну помилку: Procedure with auctionId [auctionId] not found. 

Інші вимоги до майданчиків

Зміни в відображеннях закупівлях (Прозорро)

На сторінці закупівлі: 

  1. Відобразити сповіщення для учасників тендеру, що на дану закупівлю доступна послуга факторингу
  2. Відобразити тултіп, де учасникам буде роз'яснено що таке процедура факторингу
  3. Відобразити останню процедуру факторингу, створену для даної закупівлі або лоту.
  4. По можливості (опціонально) додати можливість переглядати історію процедур факторингу

На сторінці пошуку закупівель:

  1. Додати на картку закупівлі маркування про існування пов'язаної процедури факторингу в активному або завершеному статусі. 
  2. Додати фільтр відображення закупівль, де була створена процедура факторингу.

Взаємодія з організатором закупівлі: 

  1. Організатора необхідно сповіщувати про створення процедури факторингу для його закупівлі. 
  2. Організатора необхідно сповіщувати про зміну статуса процедури факторингу для його закупівлі. 
  3. В кабінеті організатору необхідно відобразити реквізити факторингової компанії, яку обрав постачальник для кожної з закупівель. 

Для постачальника: 

  1. Постачальнику необхідно надати можливість створити процедуру факторингу для тієї закупівлі, де постачальник є переможцем. Уточнення. Кнопку не треба показувати для видів закупівель, результатом яких є відбір учасників для участі в тендері, тобто для "Конкурентний діалог 1-ий етап", "Конкурентний діалог з публікацією англійською мовою 1-ий етап", "Відбір для закупівлі за рамковою угодою".
  • No labels