Дебітор - замовник закупівлі на платформі Прозорро.
Кредитор - переможець закупівлі. Той, хто надає послугу / товар дебітору, а в подальшому продає право вимоги за договором факторинговій компанії. В системі Прозорро.Продажі є організатором.
Фактор - факторингова компанія (найчастіше - банк), розміщує пропозиції по викупу права вимоги за договором. Має ліцензію на здійснення факторингової діяльності. В системі Прозорро.Продажі є учасником.
Нормативні засади
Наразі нормативні документи знаходяться в розробці НБУ. З поточних проблем - організатори продають декілька разів права за вимогами по одному договору.
По завершенню періоду подання заяв відразу розпочинається період кваліфікації (без аукціону).
На кожен bid в статусі active має створитися award в статусі pending_waiting. Якщо бідів декілька, в такому випадку формується декілька авардів в статусі pending_waiting.
Організатор передивляється кожну пропозицію одночасно та має можливість зробити наступні дії:
Відхилити пропозицію. В такому випадку статус пропозиції змінюється на discarded. Статус є термінальним.
Обрати переможця. В такому випадку статус обраної пропозиції змінюється на pending. Одночасно може бути тільки один авард в статусі pending. При цьому статус інших пропозицій залишається pending_waiting.
Статус не обраних пропозицій змінюється на cancelled тільки у момент завершення процедури.
У випадку, якщо організатор дискваліфікує попередньо обрану пропозицію, в такому випадку організатор може обрати будь-яку іншу пропозицію в статусі pending_waiting та розпочати процес кваліфікації з другим обраним переможцем.
Якщо організатор попередньо відхилив всі пропозиції, в такому випадку у разі дискваліфікації єдиного обраного організатором переможця процедура набуває статусу unsuccessful.
Технічна назва статусу
Бізнес назва статусу
Перехід з
За умови
pending_waiting
Очікується рішення
момент створення award
створюється за умови початку періоду кваліфікації, для кожного учасника, що подав закриту пропозицію (bid)
pending
Очікується протокол
pending_waiting
організатор обирає найкращу на свою думку пропозицію
active
Переможець. Очікується акт/договір та оплата
pending
в момент підтвердження Протоколу Організатором
discarded
Пропозицію відхилено
pending_waiting
організатор відхилив пропозицію учасника
unsuccessful (термінальний статус)
Дискваліфіковано
pending, active
в момент дискваліфікації учасника, що кваліфікується
cancelled (термінальний статус)
Учасник не став переможцем
pending_waiting
в момент успішного завершення процедури (переходу процедури в статус complete)
Функціонал користувачів
Ролі користувачів
Організатор - користувач, що створив оголошення процедури та отримав токен доступу для ролі Організатора.
Користувач - користувач авторизований на майданчичку
Прекваліфікований учасник - Користувач, що подав заяву на участь в аукціоні (отримав id та токен доступу)
Переможець - Учасник для якого сформовано award в статусі pending (якого обрав організатор як переможця)
Учасник, що очікує - Учасник для якого сформовано award в статусі pending_waiting
Функціонал доступний Організатору
Публікація оголошення
Документи оголошення:
Анкета кредитора* -creditorApplication
Фінансова звітність: річна/квартальна на останню звітну дату та за аналогічний період попереднього року, з відміткою повноважених органів Державного комітету статистики України про прийняття звітності - statutoryFinancialReport
Оборотно-сальдові відомості 361 та 631 рахунків за останні 6 місяців - turnoverBalanceReport
Картка 361 рахунку Дебітора за останні 6 місяців - debitorAccountCard
Договори поставок з Дебіторами, що передаються на факторинг* - factoringContractProforma
Всі документи вище мають бути повністю анонімізовані і недоступні для перегляду спостерігачу.
Вимоги до відображення на інтерфейсі майданчика
Майданчик має гарантувати, що на одну закупівлю (на один lot) одночасно існує тільки одна процедура факторингу в активному статусі, або в статусі completed.
При публікації процедури через майданчик, організатору необхідно дати можливість вказати productEntity.id, productEntity.humanId, productEntity.lotId. В одній закупівлі може бути одночасно декілька лотів, і на кожен лот можна створювати окрему процедуру факторингу. Організатор вказує tenderId в форматі "UA-2020-09-22-000016-b". Необхідно знайти за цим айді закупівлю, і відобразити всі лоти, які є в закупівлі (якщо вони є). Якщо є один лот, треба автоматично проставити айді лота lotId в форматі "9ee6ebbf2ad21ac0c5ad52b06e776fa4".
Перевірити, чи організатор є реально переможцем лоту або закупівлі.
Якщо лотів декілька, необхідно відобразити всі лоти організатору і дати можливість обрати той лот, за яким створюється процедура факторингу.
Якщо лот порожній, треба передати в значення lotId null.
В разі наявності в lotId одного чи декількох items, необхідно вказати основний класифікатор кожного з айтемів. Вказаний на прозоро класифікатор збігається з класифікатором CAV в прозоро продажі, тому необхідно автоматично заповнити основний класифікатор.
По підтягуванню даних - опціональні вимоги. Можна реалізувати для зручності організатора автоматичний перенос даних, наприклад в item.
При створенні процедури закупівлі, необхідно переконатись, що за вказаним організатором productEntity.id (якщо productEntity.lotId відсутній), або за комбінацією productEntity.id та productEntity.lotId відсутні процедури факторингу в нетермінальному статусі (крім completed). Якщо такі процедури є, в такому випадку організатор має отримати помилку при спробі створення процедури факторингу.
string($date-time) readOnly:true x-default:now x-legalNameUa:Дата публікації процедури x-legalNameEn:Published date
dateModified
string($date-time) readOnly:true x-legalNameUa:Остання дата зміни процедури x-legalNameEn:Procedure date modified
spec
{
x-format
"multidict"
}
auctionId
string readOnly:true x-legalNameUa:Ідентифікатор аукціону x-legalNameEn:Auction ID
disqualifiedBids
[ readOnly:true default:List []string]
previousAuctionId
string example:FRW000-UA-YYYYMMDD-00000/UA-PS-YYYY-MM-DD-000000-0 pattern:^(BS[ED][0-9]{3}-UA-[0-9]{8}-[0-9]{5}|[a-zA-Z]{2}-[a-zA-Z]{2}-[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{6}-[0-9])$ minLength:1 x-legalNameUa:Ідентифікатор попереднього аукціону x-legalNameEn:Previous auction Id
Якщо tenderAttempts > 1 заповнюється вручну, має відповідати auctionId попереднього аукціону. Якщо tenderAttempts = 1 то previousAuctionId не використовується
string minLength:1 x-legalNameUa:Назва українською x-legalNameEn:Ukrainian name
en_US
string 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*
{...}
representativeInfo
string 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_US
string x-legalNameUa:Назва англійською x-legalNameEn:English name
string minLength:1 x-legalNameUa:Назва українською x-legalNameEn:Ukrainian name
en_US
string 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*
{...}
representativeInfo
string 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_US
string x-legalNameUa:Назва англійською x-legalNameEn:English name
string minLength:1 x-legalNameUa:Назва українською x-legalNameEn:Ukrainian name
en_US
string x-legalNameUa:Назва англійською x-legalNameEn:English name
x-legalNameUa
"Перелік та вимоги до оформлення документів"
x-legalNameEn
"List and requirements of registration documents"
}
x_additionalInformation
base.MultiLang{
description:
Multi language string model
uk_UA*
string minLength:1 x-legalNameUa:Назва українською x-legalNameEn:Ukrainian name
en_US
string x-legalNameUa:Назва англійською x-legalNameEn:English name
x-legalNameUa
"Додаткові відомості"
x-legalNameEn
"Other requirements and additional information"
}
value*
base.realTenderValue{
description:
Value model Містить дані щодо вартості. За замовчуванням: валюта - гривня, ПДВ - включено. Може використовуватися для стартової ціни лота, кроку аукціону і т.д.
Value model Містить дані щодо вартості. За замовчуванням: валюта - гривня, ПДВ - включено. Може використовуватися для стартової ціни лота, кроку аукціону і т.д.
Ідентифікатор, що відображається тільки в документі digitalSignature та використовується для відображення зв'язку між цифровим підписом та документом сутності процедури.
string($date-time) readOnly:true x-default:now x-legalNameUa:Дата публікації документу x-legalNameEn:Document publishing date
dateModified
string($date-time) readOnly:true x-default:now x-legalNameUa:Остання дата редагування документу x-legalNameEn:Document modified date
index
integer($int64) x-legalNameUa:Параметр сортування ілюстрацій x-legalNameEn:Document index
Чим менше значення поля, тим вище документ буде при відображенні на майданчиках. Основним документом вважається документ з мінімальним значенням індексу. Якщо параметр не зазначений, документи будуть виводитись останніми у переліку. Якщо кілька документів мають однакове значення параметру, порядок сортування буде залежати від dateModified, Пріоритет у документів доданих раніше.
format
string readOnly:true x-legalNameUa:Формат документу x-legalNameEn:Document format
language
string x-legalNameUa:Мова документу x-legalNameEn:Document language
string 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_US
string x-legalNameUa:Назва англійською x-legalNameEn:English name
string readOnly:true example:/api/auth/auction?token=token x-format:rel-auth-url x-legalNameUa:Веб-адреса для участі в аукціоні x-legalNameEn:Bidder participation link
Веб-адреса, яка доступна тільки для учасника, що подав заяву на участь в аукціоні. Час генерації посилання відповідає моменту набуття процедурою статусу active.auction
order
integer($int64) readOnly:true
inactiveBidDate
string($date-time) readOnly:true x-legalNameUa:Дата деактивації заяви на участь x-legalNameEn:Inactive bid date
Question model Описує сервіс обговорення аукціону (запитання-відповідь)
owner
string readOnly:true x-legalNameUa:Ідентифікатор майданчика x-legalNameEn:Broker ID
ownerToken
string($uuid) readOnly:true x-default:hex
id
string 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_US
string x-legalNameUa:Назва англійською x-legalNameEn:English name
[ x-format:list-object default:List [] readOnly:true x-legalNameUa:Додаткова інформація x-legalNameEn:Additional informationbase.AdditionalInformation{
id
string readOnly:true x-legalNameUa:Ідентифікатор об'єкту додаткової інформації x-legalNameEn:Additional information ID x-default:hex
owner
string readOnly:true x-legalNameUa:Ідентифікатор власника об'єкта додаткової інформації x-legalNameEn:Owner ID
datePublished
string($date-time) readOnly:true x-default:now x-legalNameUa:Дата публікації x-legalNameEn:Publish date
dateModified
string($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
string x-dictionaries:List [ "additional_info_reason" ] x-legalNameUa:Причина публікації додаткової інформації x-legalNameEn:Additional information reason
Обов’язковий —CAV. Має співпадати з класифікатором items в lot на Прозорро.
Додатковий:
Видаляємо
Редагування Процедури
Редагування оголошення для Процедур, в яких Період Редагування розпочинається разом з Періодом подання заяв на участь (rectificationPeriod.startDate == tenderingPeriod.startDate)
При редагуванні деяких полів процедури відбувається деактивація бідів (bid status: active → inactive).
Перелік полів, які деактивують заяви на участь:
debitor
value
expectedTenderValue
documents
valueAddedTaxCharged
title
description
items
x_additionalInformation
Поля, які вказують на айді тендера та / або лота (productEntity.id, productEntity.humanId, productEntity.lotId) редагувати не можна!
Функціонал доступний у випадку початку періоду кваліфікації процедуриqualificationPeriod.
Вимоги до відображення на інтерфейсі майданчика
Організатору необхідно відобразити одночасно всі award в статусі pending_waiting. Тобто, по завершенню періоду подання пропозицій, та на початку періоду кваліфікації, організатору необхідно відобразити кожен з авардів. На стороні ЦБД буде створено авард в даному статусі на кожен активний бід.
У організатора має бути можливість зробити з кожним з авардів наступні дії:
Обрати переможця. В такому випадку статус аварда буде змінено на pending, і організатор буде працювати з обраним авардом за стандартним флоу.
Відхилити пропозицію. У випадку, якщо організатор категорично не хоче розглядати певну пропозицію, в такому випадку вони можуть відхилити певну пропозицію. Відхилення пропозиції має супроводжуватись сповіщенням для організатора, що у разі відхилення пропозиції, у них не буде більше можливості знов розглянути цю пропозицію, оскільки її буде переведено в термінальний статус.
Зміна статусу контракту з pending на signed відбувається автоматично після того як загружено контракт.
Для того, щоб статус контракту змінився з signed на active необхідно підтвердити отримання коштів в аварді (зміна lotPaymentConfirmation з false на true), додатковою є валідація на наявність документів purchaseContractEndorsement та handoverCertificate
Період оплати
Період оплати розпочинається після того, як завантажено підписаний договір. В цей період фактор має перерахувати кошти організатору (поза системою), а організатор - підтвердити отримання коштів.
Кожен учасник, який бере участь в процедурі факторингу має бути прекваліфікований. Що таке прекваліфікація? Для того, щоб отримати доступ до документів процедури факторингу, майданчик має прекваліфікувати такого учасника на етапі створення акаунту учасника. Для прекваліфікації учасника необхідно переконатись, що даний учасник дійсно має право на ведення факторингової діяльності. Має бути завантажена ліцензія на ведення такої діяльності.
Доступ до документів процедури
Документи процедури необхідно приховати від неавторизованих непрекваліфікованих користувачів.
Для того, щоб передивитися документи процедури факторингу, учаснику необхідно створити бід в статусі draft. В цій процедурі бід в даному статусі буде створюватись і на стороні ЦБД. В цьому біді має обов'язково бути вказаний ідентифікатор учасника (РНОКПП). У випадку, якщо цей учасник є попередньо прекваліфікованим, то такий учасник зможе передивитись документи процедури, і відредагувати / уточнити свою пропозицію після ознайомлення з документами.
Майданчик має гарантувати, що доступ до документів отримають тільки прекваліфіковані учасники.
Функціонал доступний Учаснику
Робота з bid`ом
(перелік документів описано вище)
Активація заяви на участь (Зміна статуса Bid-а з draft АБО inactive на active)