Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Загальна інформація

З метою автоматичного перевиставлення лотів, що відповідає Постанові №75 від 21 січня 2026 в системі Prozorro.Sale на сервісі Jobber реалізовано нову сутність з pipelineMethod: sanctionedAuctionChain

Сервіс, який вже вміє публікувати Процедури за певною логікою - Jobber. Саме на ньому реалізовані Інформаційні Повідомлення, які використовуємо в процесі Малої і Великої Приватизації. Тому для "ланцюжків" санкційного також використовуємо існуючий сервіс - Jobber.

Swagger можна знайти ТУТ на табі з відповідною назвою "Jobber" (зараз там ще нічого немає, але буде)

Майданчик повинен забезпечити можливість Організатору створити та керувати процесом реалізації санкційного активу шляхом публікації об'єкта типу: jobber.sanctionedAuctionChain

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

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

Шлях Організатора на Майданчику

Публікація ланцюжка

У Організатора повинна бути можливість запустити Процес реалізації санкційного активу (ланцюжок аукціонів) шляхом публікації в ЦБД першого аукціону.

Note

Важливо, що нормативно не існує такого поняття, як "ланцюжок". Організатор публікує саме перший аукціон (процедуру), але від Майданчика ЦБД буде очікувати запит на публікацію обʼєкта jobber.sanctionedAuctionChain

Організатор запускає саме "Процес реалізації санкційного активу".
"Ланцюжок" - це внутрішня назва

Публікація може (і бажано) виглядати як створення Процедури.


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

Обовʼязкові поля

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

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

Назва поляfieldКоментар
Інформація про організатора аукціонуinitialProps.sellingEntityЯкщо якісь дані по організатору заповнюються автоматично або вручну Майданчиком, то це дозволяється
Номер лотуinitialProps.lotId
Назва аукціонуinitialProps.title
Опис аукціонуinitialProps.description
Наявність умов продажуinitialProps.saleConditions
Стартова ціна лотаinitialProps.value
На фінальну суму нараховується ПДВinitialProps.valueAddedTaxChargedОрганізатор може не передати це значення і тоді ЦБД автоматично проставить, що НЕ нараховується (false)
Розмір кроку аукціонуinitialProps.minimalStep
Info
titleВ Постанові

крок (мінімальний крок) аукціону, що встановлюється на рівні 1 відсотка стартової ціни активів для кожного аукціону;

ЦБД не валідує значення, яке передає Майданчик.


Майданчик може на своїй стороні розраховувати 1% від стратової автоматично без участі Організатора і передати в запиті розраховане значення в полі initialProps.minimalStep.amount

Це передане значення буде враховуватись для Першої процедури в ланцюжку.

Для другої і третьої процедур ЦБД розрахує значення автоматично, як 1% від Стартової відповідного аукціону

Деталі розрахунку описані в ТЗ до Ланцюжків санкційного

Розмір гарантійного внескуinitialProps.guarantee
Info
titleВ Постанові

гарантійний внесок - сума коштів

  • 5 відсотків стартової ціни, якщо вона дорівнює або перевищує 250 млн. гривень, або
  • 20 відсотків стартової ціни, якщо вона є меншою, ніж 250 млн. гривень),

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

Значення, яке вкаже Організатор, - на ЦБД не валідується.

Використовуватись буде тільки для першої Процедури.

Для другої і третьої - ЦБД автоматично розрахує значення і авто-опублікує Процедуру з розрахованим значенням.

Деталі розрахунку описані в ТЗ до Ланцюжків санкційного

Розмір реєстраційного внескуinitialProps.registrationFee
Info
titleВ Постанові

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

  • 0,2 мінімальної заробітної плати, встановленої станом на 1 січня поточного року, - для активів, стартова ціна яких є меншою, ніж 250 млн. гривень, та у розмірі
  • 10 мінімальних заробітних плат, встановлених станом на 1 січня поточного року, - для активів, стартова ціна яких дорівнює або перевищує 250 млн. гривень;

Поле не обовʼязкове для публікації Ланцюжка! Процедури можуть існувати без цього поля.

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

Значення, яке передається на ЦБД в запиті - не валідується.

Використовуватись буде для першої Процедури.

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

Банківські рахункиinitialProps.bankAccountsОбов'язково один банківський рахунок з типом guarantee і валютою UAH.
Склад лотаinitialProps.itemsВикористовується стандартна логіка (можна взяти із вже розробленої Процедури SAE)
Інформація про дати і періоди аукціонівextraSpecs.periods

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

Поле в інтерфейсіПоясненняВалідації
Дата початку першого аукціону (календарна дата)
Info
titleПостанова

Електронні аукціони з реалізації активів за методом підвищення ціни проводяться не раніше ніж через

  • 25 днів та не пізніше ніж 35 днів з дати опублікування відповідного оголошення (стосовно активу, стартова ціна якого становить менше 250 млн. гривень) або не раніше ніж через
  • 60, але не пізніше ніж через 90 днів з дати опублікування відповідного оголошення (стосовно активу, стартова ціна якого більше або дорівнює 250 млн. гривень).


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

На ЦБД буде валідація залежно від Стартової ціни


Ендпоінт допрацюємо пізніше і він буде повертати мін дату для першої процедури

Тривалість періоду експозиції лоту до другого аукціону (в днях)
Info
titleПостанова 70

Якщо електронний аукціон за методом підвищення ціни визнаний таким, що не відбувся, електронна торгова система автоматично оголошує повторний аукціон за методом підвищення ціни із зниженням стартової ціни на 50 відсотків, який проводиться не раніше ніж

  • на двадцятий та не пізніше ніж на тридцять п’ятий день з дати його оголошення (стосовно активу, стартова ціна якого становить менше 250 млн. гривень) або не раніше ніж
  • на тридцятий та не пізніше ніж на дев’яностий день з дати його оголошення (стосовно активу, стартова ціна якого більше або дорівнює 250 млн. гривень).


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

Наприклад, фронт аналізує Стартову ціну, яку ввів користувач в полі вище і відображає: "Для Стартової ціни менше 250 млн доступний період експозиції, який триває від 20 до 35 днів"

На ЦБД буде валідація залежно від Стартової ціни


Фактично, це кількість днів, яку буде тривати період експозиції (tenderPeriod) з моменту публікації другої процедури до Аукціону другої процедури.

Тривалість періоду експозиції лоту до третього аукціону (в днях)
Info
titleПостанова 71

Якщо повторний аукціон за методом підвищення ціни із зниженням стартової ціни на 50 відсотків визнаний таким, що не відбувся, електронна торгова система автоматично оголошує аукціон за методом покрокового зниження стартової ціни та подальшого подання цінових пропозицій за стартовою ціною, визначеною на рівні стартової ціни попереднього аукціону, який проводиться у строки, визначені в пункті 70 цього Порядку (це пункт вище)


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

Наприклад, фронт аналізує Стартову ціну, яку ввів користувач в полі вище і відображає: "Для Стартової ціни менше 250 млн доступний період експозиції, який триває від 20 до 35 днів"

На ЦБД буде валідація залежно від Стартової ціни


Фактично, це кількість днів, яку буде тривати період експозиції (tenderPeriod) з моменту публікації третьої процедури до Аукціону третьої процедури.


Note

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


Приклад для < 250млн, як це передавати в запиті:

Code Block
"extraSpecs": [
	{
		"periods": [
			{
				"periodName": "auctionPeriod",
				"startDate": "2026-03-20T10:00:00.000000Z"
			}
		]
	},
	{
		"periods": [
			{
				"periodName": "tenderPeriod",
				"duration": [
					{
						"unit": "c_day",
						"quantity": 25
					}
				]
			}
		]
	},
	{
		"periods": [
			{
				"periodName": "tenderPeriod",
				"duration": [
					{
						"unit": "c_day",
						"quantity": 35
					}
				]
			}
		],
		"dutchStep": {
			"dutchStepQuantity": 99
		}
	}
]
 Крок голландського раундуextraSpecs.dutchStep

Кількість кроків в голландському аукціоні, який авто-створюється на ЦБД третім в ланцюжку

Info
titleПостанова

Загальна кількість кроків, на які знижується стартова ціна на аукціоні за методом покрокового зниження стартової ціни та подальшого подання цінових пропозицій, - становить 99 кроків.

ЦБД прийме будь-яке значення.

Згідно постанови потрібно передавати 99 кроків.

В Прикладі вище останнім параметром приклад для dutchStep


Note
titleВажливо

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

На інтерфейсі Майданчика їх можна структурувати та розмістити поля для вводу логічно для зручності Організатора.

Основне - щоб в запиті на публікацію обʼєкта ЦБД були передані всі обовʼязкові поля вказані вище в таблиці

Не обовʼязкові поля

Назва поляfieldКоментар
Документи аукціону та пов'язані додаткиinitialProps.documents

Використовується стандартна логіка

Обовʼязкові документи для публікації ланцюжка відсутні. Описано в ТЗ

Мінімальна кількість заявinitialProps.minNumberOfQualifiedBids

Поле не обовʼязкове для заповнення

Організатор може передати явно 1 або 2 за необхідності

Якщо не заповнює, то ЦБД автоматично проставить 1

Порядок ознайомлення з майном, час і місце проведення огляду об’єктаinitialProps.accessDetails
Додаткові відомостіinitialProps.x_additionalInformation

Технічні поля, які необхідно передати в запиті "невидимо" для Організатора

НазваfieldКоментар
МетодpipelineMethod

Необхідно передати

"pipelineMethod": "sanctionAuctionChain"


Info
titleВ Кабінеті

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

Авто-створення першої процедури в ланцюжку

Коли Організатор заповнив всі обовʼязкові поля і Опублікував "ланцюжок", протягом 5-ти хвилин буде автоматично створено першу процедуру.

Власником (owner) обʼєкта стає Майданчик, який опублікував ланцюжок.

Редагування полів, які заповнив Організатор в "ланцюжку", до створення першої процедури - неможливо.

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

Info

Можна робити перший запит через 10 секунд після публікації "ланцюжка". Якщо повернувся пустий масив[], то повторний запит через 30 секунд і далі з інтервалом в 1 хв.

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

Можна завʼязатися на Mirror і "відловлювати" обʼєкт там. Фільтр - по полю "owner".

Ця реалізація на розсуд Майданчика, тут описані лише можливі варіанти.

Майданчик повинен забезпечити можливість:

  • перегляду процедури

  • редагування процедури

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

Процедура нічим не відрізняється від стандартної процедури Prozorro.Sale.

Приклад запиту для отримання id і токену процедури:

Code Block
 {{baseUrl}}/api/jobber/sanctionedAuctionChain/jsc/{{object_id}}/produced_entities?acc_token={{object_acc_token}}

Отримавши id і токен першої створеної процедури необхідно надати можливість Організатору переглянути обʼєкт.

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

Відбувається стандартна робота з процедурою, яка не відрізняється від існуючого процесу.

Особливості

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

Майданчик повинен відображати про наступні аукціони тривалість експозиції.

Технічно можна отримати цю інформацію з запиту до обʼєкта JSC в полі _specs. Деталі тут в ТЗ

Спосіб відображення визначається Майданчиком. Наприклад, на сторінці Процедури, де Організатор бачить всю інформацію про поточну процедуру в окремому блоці чи на окремій табі також відображати "Інформацію про майбутні процедури"

З моменту створення першої процедури "ланцюжок" набуває статусу active.

Редагування параметрів ланцюжка

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

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

  • тривалості експозиції третього аукціону

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

Інші поля і документи в JSC редагуванню не підлягають.

Note

У Організатора повинна бути можливість редагувати поля першої створеної процедури, а також можливість редагувати:

"Тривалість періоду експозиції лоту до другого аукціону (в днях)"
"Тривалість періоду експозиції лоту до третього аукціону (в днях)"

Info
titleЗверніть увагу!

Редагування полів із JSC - це окремий запит. Це не редагування процедури.

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

Іншими словами - Організатор може редагувати:

  • поля процедури
  • поля ланцюжка
  • поля процедури і ланцюжка

В першому і другому випадках не потрібно слати два запити: PATCH на процедуру і PATCH на JSC, бо в цьому немає потреби і може призвести до деактивації бідів

Авто-створення другої процедури в ланцюжку

Якщо перша процедура в ланцюжку отримала статус unsuccessful, то протягом 5 хвилин створюється друга процедура, в яку копіюються значення полів із першої процедури, а також встановлюється дата auctionPeriod.startDate відповідно до періода експозиції, який задав Організатор при публікації "ланцюжка"

Обʼєкт "ланцюжка" не змінює статус і залишаєтсья у статусі active

Деталі і приклади розрахунку стартової ціни описані в розділі "Поля що розраховуються автоматично при створенні другої і третьої процедури"

Note
titleВажливо

Такі поля, як:

Інформація про організатора аукціонуsellingEntity
Номер лотуlotId
Назва аукціонуtitle
Опис аукціонуdescription
Наявність умов продажуsaleConditions
Стартова ціна лотаvalue
На фінальну суму нараховується ПДВvalueAddedTaxCharged
Розмір кроку аукціонуminimalStep (тільки в SAE, бо для SAD не актуально)
Розмір гарантійного внескуguarantee
Розмір реєстраційного внескуregistrationFee
Банківські рахункиbankAccounts
Склад лотаitems
Документи аукціону та пов'язані додаткиdocuments
Мінімальна кількість заявminNumberOfQualifiedBids (тільки в SAE, бо для SAD не актуально)
Порядок ознайомлення з майном, час і місце проведення огляду об’єктаaccessDetails
Додаткові відомостіx_additionalInformation

автоматично скопіюються в другу процедуру із першої процедури! (не з "ланцюжка"!)

Тобто, якщо Організатор редагував поля в першій процедурі, то в другу скопіюються відредаговані поля із першої процедури, а не першочергові із "ланцюжка".

Note

У Організатора повинна бути можливість редагувати поля другої створеної процедури, а також можливість редагувати "Тривалість періоду експозиції лоту до третього аукціону (в днях)"

Авто-створення третьої процедури в ланцюжку

Якщо друга процедура в ланцюжку отримала статус unsuccessful, то протягом 5 хвилин створюється третя процедура, в яку копіюються значення полів із другої процедури, а також встановлюється дата auctionPeriod.startDate відповідно до періода експозиції, який задав Організатор при публікації "ланцюжка"

Обʼєкт "ланцюжка" не змінює статус і залишаєтсья у статусі active

Деталі і приклади розрахунку стартової ціни описані в розділі "Поля що розраховуються автоматично при створенні другої і третьої процедури"

Note

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

Копіювання даних між процедурами

Поля копіюються з попередньої процедури, не з JSC.

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

Поведінка інтерфейсу (обовʼязкова функціональність)

Майданчик повинен забезпечити можливість:

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