Загальна логіка
Загальна інформація
Голландський аукціон застосовується для проведення електронних торгів на базі 3х раундного аукціону, де учасники чекають на зниження ціни до найвигіднішої. Коли, протягом першого раунду, буде знайдено покупця за найвигіднішою для нього ціною, відбувається другий раунд на підвищення ціни де всі інші учасники можуть поставити ціну вище. Після цього учасник, який зупинив аукціон на першому раунді має можливість на третьому раунді підвищити ставку учасника з 2го раунду.
Коли процедура набуває статусу active_auction, ЦБД генерує публічне посилання для глядачів аукціону і приватне посилання для кожного учасника, який подав заявку на участь.
Учасник торгів, після отримання цього посилання, переходить за url на свою індивідуальну сторінку, де може брати участь в Аукціоні. Аукціон проводиться централізовано, у модулі аукціону, який є частиною ЦБД.
Опис роботи модулю голландського аукціону
АВТОРИЗАЦІЯ УЧАСНИКА
- Для авторизації необхідно перейти за приватним посиланням учасника та погодитись з умовами проведення торгів
- Для погодження учаснику відображається дисклеймер з відповідним текстом та кнопками “ПОГОДЖУЮСЬ” та “НЕ ПОГОДЖУЮСЬ”
- В разі не погодження з умовами аукціону учасника буде перенаправлено на сторінку Спостерігача, де учасник сможе спостерігати на перебігом аукціону, але не зможе робити ставки і приймати участь.
ПОЧАТОК АУКЦІОНУ
На сторінці модулю аукціонів в блоці “Деталі” висвітлюється:
В заголовку сторінки браузера відображається таймер, що повідомляє про кількість хвилин до початку торгів
Розпочинається аукціон у час та дату, що визначається автоматично ЦБД при публікації процедури окремо для кожного аукціону з 9:30 до 10:00 у робочий день пн-пт
- Загальний час тривалості голландського раунду аукціону - 6 годин 45 хвилин. (де час на крок аукціону розраховується як загальний час / кількість кроків зниження).
- Час тривалості 2го раунду аукціону (закритих цінових пропозицій) 10 хвилин за умови що протягом першого раунду було зупинено голландський раунд.
- Час тривалості 3го раунду аукціону - 5 хвилин за умови що відбулись попередні два раунда.
В момент auctionPeriod.startDate замість логотипу “Прозорро.Продажі” з текстом “Аукціон розпочнеться… date&time” - відображається аукціон з 1-м раундом, де вказано крок та час коли завершується крок в ньому.
Аукціон розпочато
Note:
- При подачі заявки до аукціону - в учасника повинні бути додані контактні дані та документи, регламентовані процедурою.
- Участь в аукціоні приймають bid-и які є активованими. (Активувати можна до кінця голландського аукціону)
- Після початку аукціону наступає ознайомча пауза (30 сек після початку) на сторінці демонструється блок "Кроки зниження аукціону"(де вказано крок та час коли завершується крок аукціону) та відображення 1-го раунду в стадії очікування. З початком торгів переходимо до 1-го раунду, Під час якого в учасників з`являється можливість "зупинити" аукціон (подати ставку) під час одного з кроків на зниження вартості.
- В json (файл з результатами аукціону на основі якого формується протокол торгів) записуються всі раунди аукціону, що відбулися.
ГОЛЛАНДСЬКИЙ РАУНД (dutch_round)
- З початком аукціону наступає перший голландський раунд
- Внизу сторінки відображається таймер, що повідомляє про кількість хвилин до: завершення ходу учасника/завершення кроку аукціону/завершення поточного раунду
- Максимальна тривалість кожного зниження ставки аукціону складає 3 хвилини. Біля раунду відображається максимально допустимий час завершення раунду. Протягом раунду учасник не може скасовувати зупинку ходу аукціону
- Тривалість кожного з раундів є сталою та залежить від кількості кроків (3хв * к-ть кроків)
- Максимальна кількість кроків на зниження 999
- Якщо жоден учасник не "зупинив" аукціон під час 1го раунду, аукціон переходить в статус "Аукціон не відбувся" (unsuccessful)
РАУНД ЗАКРИТИХ ЦІНОВИХ ПРОПОЗИЦІЙ (simultaneous_round)
- Раунд починається в визначений час (якщо в попередньому раунді була "зупинка" аукуціону)
- Всі учасники (окрім переможця послідовного голландського раунду), які хочуть зробити ставку вище ніж ставка "зупинки" аукціону, роблять їх у відведені 10 хвилин одночасно
- Під час проведення раунду учасники не бачать ставки один одного
- Після завершення раунду учасникам відображається наступний раунд в стадії очікування, з відстортованими ставками учасників від найменшої до найбільшої
РАУНД ПОДАННЯ ЦІНОВОЇ ПРОПОЗИЦІЇ ПЕРЕМОЖЦЯ ГОЛЛАНДСЬКОГО РАУНДУ (precedence_round)
- Раунд, де учасник, який "зупинив" голландський раунд аукціону може підвищити максимальну ставку з попереднього раунду
- Тривалість раунду 5 хвилин
- Важливо: якщо учасники не зробили ставок під час другого раунду - аукціон завершується (Переможець - учасник який "зупинив" голландський раунд аукціону)
- При наявності більше 5 учасників в аукціоні - попередні раунди згортаються автоматично. Поточний раунд не згортається ніколи, для зручності користування аукціоном.
- Після завершення 3-х послідовних раундів, за умови наявності одного або декількох учасників, та в хоча б в одного з учасників аукціону ставок вищих ніж сума "зупинки" аукціону+minimalStep - аукціон завершується.
ВІДОБРАЖЕННЯ ХОДУ АУКЦІОНУ
На сторінці аукціону відображається блок з розкладом ходу аукціону.
До його початку в ньому вказано: Початок аукціону з його часом; Раунди 1,2,3 та “Оголошення результатів”.
Після початку аукціону елементи навпроти початку аукціону та першого раунду стають активними, значок раунду відображається в статусі “триває”. Відкриваються проміжки тривалості часу раундів 1,2,3.
СПОВІЩЕННЯ
- До початку аукціону на сторінці відображається блок з інформацією “Корисне”, де вказані кнопки “Учасникам” та “Організаторам” при переході на які відображаються відповідні інструкції. А також кнопка з переглядом всіх аукціонів та переходом до відповідної сторінки.
- Під час аукціону замість інформації “Корисне” відображаються “Оновлення”, в яких вказуються всі дії користувачів та події, що відбуваються під час аукціону з датою настання кожної події. Дана інформація дублюється в верхній плашці аукціону під час виникнення події. Детальніше про сповіщення по всім типам аукціонів описані тут
- Після завершення аукціону замість інформації “Оновлення” знову відображається блок “Корисне”.
ПОДАЧА ПРОПОЗИЦІЙ УЧАСНИКОМ "ЗУПИНКА АУКЦІОНУ" ПІД ЧАС ПОСЛІДОВНОГО РАУНДУ НА ЗНИЖЕННЯ
- Після того, як учасника було авторизовано, він потрапляє на сторінку модуля аукціону, де знизу з’являються кнопка, яка відповідає за виконання дії зробити ставку.
- Учаснику виводиться можливість "зупинити" аукціон на певному кроці зробивши ставку.
- Після натиску на кнопку “Зробити ставку” - ставка приймається та для всіх вона відображається жирним шрифтом..
- Скасувати ставку - неможливо.
- В разі подачі ставки учасником ("зупинки" аукціону) - інші учасники не можуть більше подати ставку в даному раунді.
ПОДАЧА ПРОПОЗИЦІЙ УЧАСНИКОМ ПІД ЧАС РАУНДУ ЗАКРИТИХ ЦІНОВИХ ПРОПОЗИЦІЙ
- Після того, як один учасник зробив ставку в першому раунді ("зупинив" аукціон), інші авторизовані учасник(и), потрапляють на сторінку модуля аукціону, де знизу з’являються кнопки, які відповідають за виконання дій: зробити ставку, та скасувати ставку.
- Учасникам виводиться можливість: ввести ставку в поле ввода вручну, яка повинна бути >= ставка першого раунду+1 копійка.
- Після натиску на кнопку “Зробити ставку” - ставка приймається
- Після натиску на “Скасувати” - змінена під час ходу учасника ставка - відміняється
- В разі подачі ставки учасником з завершенням раунду відкриваються зроблені ставки всіма учасниками і навпроти його ставки відображається текст “Ви”.
- Якщо під час ходу учасника подати ставку >= попередня ставка * 10 відображається попап з текстом "Ваша ставка відрізняється від мінімальної більше ніж у 10 разів. Ви підтверджуєте ставку?" та кнопками "Cкасувати" або "Підтвердити".
- Після зміни ставки учасником та завершення ходу учасника - для всіх вона відображається жирним шрифтом.
ПОДАЧА ПРОПОЗИЦІЙ УЧАСНИКОМ ПІД ЧАС РАУНДУ ПОДАННЯ ЦІНОВОЇ ПРОПОЗИЦІЇ ПЕРЕМОЖЦЯ ГОЛЛАНДСЬКОГО РАУНДУ
- Після того, як учасники зробили ставку в другому раунді, переможець голландського етапу потрапляє на сторінку модуля аукціону, де знизу з’являються кнопки, які відповідають за виконання дій: зробити ставку, та скасувати ставку.
- Учаснику виводиться можливість: ввести ставку в поле ввода вручну, яка повинна бути >= найвища ставка другого раунду+minimalStep
- Після натиску на кнопку “Зробити ставку” - ставка приймається.
- Після натиску на “Скасувати” - змінена під час ходу учасника ставка - відміняється.
- В разі подачі ставки учасником з завершенням раунду відкриваються зроблені ставки всіма учасниками і навпроти його ставки відображається текс “Ви”.
- Якщо під час ходу учасника подати ставку >= попередня ставка * 10 відображається попап з текстом "Ваша ставка відрізняється від мінімальної більше ніж у 10 разів. Ви підтверджуєте ставку?" та кнопками "Cкасувати" або "Підтвердити".
- Після зміни ставки учасником та завершення ходу учасника - для всіх вона відображається жирним шрифтом.
ЗАВЕРШЕННЯ АУКЦІОНУ
- Якщо під час першого раунду не зроблено жодної ставки - аукціон завершується.
- Коли останній раунд завершений, можливість робити ставку втрачається та відображається сторінка оголошення результатів аукціону
ОГОЛОШЕННЯ РЕЗУЛЬТАТІВ
- Під час оголошення результатів відбувається відкриття імен учасників, що подавали пропозиції упродовж аукціону, та визначення переможця торгів.
- В “Оголошенні результатів” вказується “кількість учасників” та “початкова ціна” лоту. А також список учасників аукціону зі ставками в порядку спадання, та переможцем вверху списку позначеного відповідним кольором. Ставки учасників повинні відображатися з урахуванням вирівнювання розрядності чисел, як і у всьому аукціоні в цілому.
- Під оголошенням результатів відображається “Хроніка аукціону” з повним переліком всіх раундів аукціону.
- Якщо в процедурі, що передує 2му раунду аукціону учасники не подали заявок - то аукціон не розпочинається, а в Оголошенні результатів відображається текст “Учасники відсутні. Аукціон не відбувся”.
- Якщо в процедурі, що передує 2му раунду аукціону - подав заявку лише один учасник, то аукціон не переходить на 2й та 3й раунди а в відображенні ходу аукціону змінюється час завершення аукціону, часом завершення 1го раунду і не виводиться інформація про 2й і 3й раунди
ENDPOINTS
| GET | /api/auctions/{auction_id}/protocol |
|---|
Відповідь:
{
"auction_id": "CSD001-UA-20250925-05390",
"items": [ // атрибути procedure.items[]. Копіюються із процедури без змін
{
"address": {
"addressID": {
"scheme": "koatuu",
"name": {
"uk_UA": "КИЇВСЬКИЙ"
},
"id": "0110136600"
},
"countryName": {
"uk_UA": "Україна",
"en_US": "Ukraine"
},
"region": {
"uk_UA": "Київ",
"en_US": "Kyiv"
},
"locality": {
"uk_UA": "-",
"en_US": "-"
},
"streetAddress": {
"uk_UA": "вул. Хрещатик",
"en_US": "-"
},
"postalCode": "01000"
},
"classification": {
"scheme": "CAV",
"description": {
"uk_UA": "Застава - Земельні ділянки",
"en_US": "Pledge - Land plots"
},
"id": "07123000-7"
},
"description": {
"uk_UA": "Опис лоту",
"en_US": "Lot description"
},
"id": "fcf7bc17f6164e68aed428e6dbbcdc4f",
"quantity": 1,
"unit": {
"code": "H87",
"name": {
"uk_UA": "штуки",
"en_US": "piece"
}
}
}
],
"timeline": {
"dutch_round": { // інформація про перший раунд
"bids": [
{
"bidder": "00c6a49f89dd4ddfad5389ba11c6c6a6"
},
{
"bidder": "b27f8f6bce0e4a89ac8752ddb479bfba"
}
],
"stop_bid": "00c6a49f89dd4ddfad5389ba11c6c6a6",
"stop_time": "2025-09-25T05:20:14.561625Z"
},
"simultaneous_round": {
"bids": [
{
"bidder": "b27f8f6bce0e4a89ac8752ddb479bfba",
"amount": 100000,
"time": "2025-09-25T05:21:10.403000Z"
},
{
"bidder": "00c6a49f89dd4ddfad5389ba11c6c6a6",
"amount": 99495.6,
"time": "2025-09-25T05:20:14.561000Z"
}
]
},
"precedence_round": {
"bids": [
{
"bidder": "00c6a49f89dd4ddfad5389ba11c6c6a6",
"amount": 135000,
"time": "2025-09-25T05:21:49.374000Z"
},
{
"bidder": "b27f8f6bce0e4a89ac8752ddb479bfba",
"amount": 100000,
"time": "2025-09-25T05:21:10.403000Z"
}
]
}
}
}
| field_1_lvl | field_2_lvl | field_3_lvl | field_4_lvl | Description |
|---|---|---|---|---|
| auction_id | людиночитаємий id повʼязаної процедури | |||
| items[] | Копіюється із повʼязаної процедури, але тільки вказані нижче моделі: | |||
| address | ||||
| classification | ||||
| description | ||||
| id | ||||
| quantity | ||||
| unit | ||||
| timeline[] | ||||
| dutch_round | Інформація про результати першого раунду голландського аукціону | |||
| bids[] | перелік bid.id із процедури, які мали статус active на момент завершення роботи МА | |||
| bidder | поле містить bid.id конкретного біда із процедури Приклад: "bidder": "f2d7ca0aef4b4cecba15a55d17d85606" | |||
| stop_bid | bid.id учасника, який зупинив голландський раунд | |||
| stop_time | дата та час, коли учасник зупинив голландський раунд | |||
| simultaneous_round | Інформація про раунд закритих цінових пропозицій | |||
| bids[] | перелік bid.id із процедури, які мали статус active на момент завершення роботи МА та їх ставки | |||
| bidder | поле містить bid.id конкретного біда із процедури | |||
| amount | ставка учасника, яка була зроблена ним протягом другого раунду. Якщо не було зроблено ставки, то заповнюється null (для того, хто зупинив перший раунд - відображається розмір кроку, на якому він зупинив голландський раунд) | |||
| time | дата та час, коли учасник робив ставку у другому раунді | |||
| precedence_round | Інформація про раунд подання цінової пропозиції учасником, який зупинив голланський (перший) раунд. відсутній у відповіді, якщо в другому раунді учасники не робили жодних ставок. Приклад | |||
| bids[] | перелік bid.id із процедури, які мали статус active на момент завершення роботи МА | |||
| bidder | bid.id учасника | |||
| amount | ставка учасника, яка була зроблена ним останньою (для учасника, який робив ставку в третьому раунді - його ставка, яку він зробив. Для тих, хто в цьому раунді не робив ставку - відображається остання ставка, яку він робив в попередньому раунді) | |||
| time | дата та час, коли учасник робив ставку у третьому раунді |
Якщо робити запит до завершення роботи модуля аукціону, повертається така відповідь:
Приклади
Приклади проведених голландських аукціонів
https://prozorro.sale/auction/BRD001-UA-20240307-40958/
https://prozorro.sale/auction/LLD001-UA-20240227-39060/
https://prozorro.sale/auction/BSD001-UA-20240219-63871/
https://prozorro.sale/auction/CSD001-UA-20240215-67554/
https://prozorro.sale/auction/RLD001-UA-20240208-82682/
Можливі варіанти взаємодії учасників с модулем аукціонів та визначення переможців
Детальний опис варіантів
Умови торгів
Стартова ціна: 1000 грн
Крок: 100 грн
Сценарій 1: Учасник 1. - переможець 1го раунду та стає pending_active; Учасник 2. очікує на кваліфікацію та стає pending_waiting; Учасник 3. - не кваліфікується
Хід торгів:
1.1й голландський раунд завершився:
- Учасник 1 - 1200
2. 2й раунд закритих цінових пропозицій завершився:
- Учасник 2 - 1400
- Учасник 3 - 1300
3. 3й раунд подання цінової пропозиції переможця голандського раунду завершився:
- Учасник 1 - 1500
4. Оголошення результатів, переможець:
- Учасник 1 - 1500
- Учасник 2 - 1400
Сценарій 2: Учасник 1. - переможець 1го раунду (не підвищів ставку учасника з 2го раунду), очікує кваліфікацію та стає pending_waiting; Учасник 2. переможець 2го раунду та стає pending_active; Учасник 3. не зробив ставку - не кваліфікується
Хід торгів:
1.1й голландський раунд завершився:
- Учасник 1 - 1200
2. 2й раунд закритих цінових пропозицій завершився:
- Учасник 2 - 1400
- Учасник 3 -
3. 3й раунд подання цінової пропозиції переможця голандського раунду завершився:
- Учасник 1 - 1200
4. Оголошення результатів, переможець:
- Учасник 2 - 1400
- Учасник 1 - 1200
Дизайн - Макет Figma




