| Table of Contents |
|---|
| Code Block |
|---|
SAC (master object)
├── Procedure #1 (англійський)
├── Procedure #2 (-50% від стартової)
├── Procedure #3 (голландський з -50% від першого)
└── Procedure status controller |
...
З метою автоматичного перевиставлення лотів, що відповідає Постанові №75 від 21 січня 2026 в системі Prozorro.Sale на сервісі Jobber реалізовано нову сутність з pipelineMethod: sanctionedAuctionChain
| Info |
|---|
Реалізація найбільше схожа на Інформаційні Повідомлення (announcement), які використовуються для Приватизаційних процедур |
Бізнес назва - Процес реалізації санкційного активу
...
Створення та робота із ланцюжком:
- При створенні ланцюжка немає НЕМАЄ повʼязаного обʼєкта типу "Обʼєкт реєстру". "Ланцюжок" - перший обʼєкт, який створюється на ЦБД в процесі реалізації Санкційного майна
- При створенні ланцюжка Організатор має вказати:
- Дату аукціону для першої процедури
- Період експозиції (tenderPeriod) для другої і третьої процедури в ланцюжку (присутні валідації, які детально описані нижче)
- При створенні ланцюжка Організатор має вказати Стартову ціну реалізації для першого аукціону, а для другого і третього ЦБД розрахує автоматично згідно описаних нижче правил
- При створенні ланцюжка Організатор має вказати розмір Гарантійного внеску для першого аукціону, а для другого і третього ЦБД розрахує автоматично згідно описаних нижче правил
- В ланцюжку зберігаються ідентифікатори Процедур, які були автоматично створені цим ланцюжком (в producedEntities)
- Лацюжок складається максимум з трьох процедур, де кожна наступна процедура створюється автоматично за умови, що попередня процедура "неуспішна"
...
| tech | УКР назва | АНГЛ назва | Перехід з | За умови | Коментар |
|---|---|---|---|---|---|
| pending | Опубліковано | Created | - | перший статус, який отримує обʼєкт при публікації | Статус, в якому перебуває обʼєкт до моменту створення першої процедури в ланцюжку Протягом 5 хвилин має автоматично опублікуватися Перша процедура SAE |
| active | Проходить аукціон | Auction | pending | Створено першу процедуру в ланцюжку | Обʼєкт має цей статус з моменту створення першої процедури в ланцюжку і до моменту, поки:
|
| sold | Продано | Sold | active | Будь-яка процедура в цьому ланцюжку набуває статусу procedure.status: complete | Термінальний статус |
| dissolved | Не продано | Dissolved | active | Будь-яка процедура в цьому ланцюжку набуває статусу procedure.status: cancelled Третя в ланцюжку процедура набуває статусу procedure.status: unsuccessful | Термінальний статус |
...
Майданчик може отримати токен від автоматично створеної процедури за endpoint:
| Code Block |
|---|
curl --location 'https://procedure-sandbox.prozorro.sale/api/jobber/sanctionedAuctionChain/sac/{{_id}}/produced_entities?acc_token=******' \
--header 'Authorization: ******' |
З моменту створення першої процедури "ланцюжок" набуває статусу active.
В цьому статусі "ланцюжка" Організатор може редагувати поля:
додати приклад запиту
З моменту створення першої процедури "ланцюжок" набуває статусу active.
В цьому статусі "ланцюжка" Організатор може редагувати поля:
- період експозиції (в днях) для другої процедури до моменту створення другої процедри період експозиції (в днях) для другої процедури до моменту створення другої процедри в ланцюжку
- період експозиції (в днях) для третьої процедури до моменту створення третьої процедри в ланцюжку
...
Розрахунок виконується ЦБД автоматично без участі Організатора.
Гарантійний внесок
Перша процедура
Розмір гарантійного внеску для першої процедури автоматично втановлюється той, який Організатор вказав при публікації обʼєкта SAC
Друга та третя процедура
Гарантійний внесок для другої та третьої процедур розраховується автоматично на основі стартової ціни відповідної процедури
Розрахунок виконується за формулою:
guarantee = startPrice * guaranteeRate
де:
if procedure.value.amount ≥ 250 000 000
then guaranteeRate = 0.05
else guaranteeRate = 0.20
Таким чином:
guaranteeProcedure2 = startPriceProcedure2 * guaranteeRateProcedure2
guaranteeProcedure3 = startPriceProcedure3 * guaranteeRateProcedure3
Розрахунок гарантійного внеску виконується ЦБД автоматично під час створення відповідної процедури.
Організатор не передає гарантійний внесок окремо для другої та третьої процедур.
Номер спроби продажу (tenderAttempts)
При публікації обʼєкта SAC Організатор НЕ передає параметр tenderAttempts
При автоматичній публікації процедур ЦБД встановлює значення поля tenderAttempts відповідно до порядкового номера процедури в ланцюжку:
1-й процедурі: tenderAttempts = 1
2-й процедурі: tenderAttempts = 2 та у полі previousAuctionId значення auctionId від першої процедури цього ланцюжка
3-й процедурі: tenderAttempts = 3 та у полі previousAuctionId значення auctionId від другої процедури цього ланцюжка
Скасування
Скасувати "ланцюжок" окремим запитом неможливо.
При скасуванні будь-якої процедури ланцюжка - автоматично скасовується ланцюжок.
...
| Info | ||
|---|---|---|
| ||
гарантійний внесок - сума коштів (5 відсотків стартової ціни, якщо вона дорівнює або перевищує 250 млн. гривень, або 20 відсотків стартової ціни, якщо вона є меншою, ніж 250 млн. гривень), яка вноситься потенційним покупцем активу для забезпечення виконання його зобов’язання щодо участі в аукціоні у вигляді грошових коштів або банківської гарантії. Банківська гарантія може бути надана тільки системно важливими банками, перелік яких визначається Національним банком та за формою, встановленою Національним банком; |
Перша процедура
Розмір гарантійного внеску для першої процедури автоматично втановлюється той, який Організатор вказав при публікації обʼєкта SAC
Друга та третя процедура
Гарантійний внесок для другої та третьої процедур розраховується автоматично на основі стартової ціни відповідної процедури
Розрахунок виконується за формулою:
guarantee = startPrice * guaranteeRate
де:
if procedure.value.amount ≥ 250 000 000
then guaranteeRate = 0.05
else guaranteeRate = 0.20
Таким чином:
guaranteeProcedure2 = startPriceProcedure2 * guaranteeRateProcedure2
guaranteeProcedure3 = startPriceProcedure3 * guaranteeRateProcedure3
Розрахунок гарантійного внеску виконується ЦБД автоматично під час створення відповідної процедури.
Організатор не передає гарантійний внесок окремо для другої та третьої процедур.
Номер спроби продажу (tenderAttempts)
При публікації обʼєкта SAC Організатор НЕ передає параметр tenderAttempts
При автоматичній публікації процедур ЦБД встановлює значення поля tenderAttempts відповідно до порядкового номера процедури в ланцюжку:
1-й процедурі: tenderAttempts = 1
2-й процедурі: tenderAttempts = 2 та у полі previousAuctionId значення auctionId від першої процедури цього ланцюжка
3-й процедурі: tenderAttempts = 3 та у полі previousAuctionId значення auctionId від другої процедури цього ланцюжка
Скасування
Скасувати "ланцюжок" окремим запитом неможливо.
При скасуванні будь-якої процедури ланцюжка - автоматично скасовується ланцюжок.
| Anchor | ||||
|---|---|---|---|---|
|
| Field name | Required for publishing | Type | readOnly | x-legalNameUa | x-legalNameEn | comment | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | owner | - | string | true | Ідентифікатор майданчика | Broker Name | |||||||||||||||||||||||||
| 2 | ownerToken | - | string($uuid) | true | x-default: hex | ||||||||||||||||||||||||||
| 3 | _id | - | string | true | Field name | Required for publishing | Type | readOnly | x-legalNameUa | x-legalNameEn | comment | 1 | owner | - | string | true | Ідентифікатор майданчика | Broker Name | 2 | ownerToken | - | string($uuid) | true | x-default: hex | 3 | _id | - | stringtrue | Внутрішній ідентифікатор | ID | x-default: object_id x-serialize_when_none: false x-format: object-id |
| 4 | datePublished | - | string($date-time) | true | Дата публікації | Published date | x-default: now | ||||||||||||||||||||||||
| 5 | dateModified | - | string($date-time) | true | Остання дата зміни | Date modified | |||||||||||||||||||||||||
| 6 | objectId | - | string | true | Ідентифікатор ланцюжка | Chain ID | example: SAC001-UA-20260217-12345 | ||||||||||||||||||||||||
| 7 | status | - | string | true | Статус процедури | Procedure status | enum:
| ||||||||||||||||||||||||
| 8 | pipelineMethod | + | string | false | Тип | Chain type | enum:
| ||||||||||||||||||||||||
| 9 | initialProps | + | object | false | Загальна інформація про процедури | Procedure informantion | |||||||||||||||||||||||||
| 10 | extraSpecs | + | list[ ] of objects | false | Інформація для базових специфікацій | Base information | |||||||||||||||||||||||||
| 11 | producedEntities | - | list[ ] of objects | true | Створені обʼєкти | Produced entities | base.ProducedEntity{
| ||||||||||||||||||||||||
| 12 | _ | ||||||||||||||||||||||||||||||
| specs | - | ||||||||||||||||||||||||||||||
| object | true | Розрахункові дані | Calculated data |
| |||||||||||||||||||||||||||
Використовується стандартна логіка | 13 | _meta | - | Використовується стандартна логіка | |||||||||||||||||||||||||||
| 14 | additionalInformation | - | Використовується стандартна логіка | ||||||||||||||||||||||||||||
| 1415 | metaInfo | - | Використовується стандартна логіка |
...
| field name | required for publishing | type | readOnly | x-legalNameUa | x-legalNameEn | comment | ||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| periods | + | base.PeriodSpec | false | Інформація про періоди аукціонів | Periods info |
При публікації "ланцюжка", ЦБД очікує, що в extraSpecs обовʼязково буде передано обʼєкт для кожної процедури. Тобто, всього три обʼєкта в extraSpecs, бо процедур в ланцюжку три. Валідації На рівні ЦБД необхідно встановити валідації для pipelineMethod: sanctionedAuctionChain: Якщо tenderAttempts = 1 ТА
Якщо tenderAttempts = 1 ТА
Якщо tenderAttempts > 1 ТА value.amount >= 250
Необхідно відобразити організатору часовий проміжок, коли можна обрати дату початку аукціону (auctionPeriod.startDate). Мінімальна дата початку - на 30 КД, максимальна - на 90 КД Приклад: Code Block |
Приклад для value.amount < 250 000 000 (двісті п'ятдесят мільйонів):
| |||||||||||||||||||||||||||||||||||||||||||
| dutchStep | + | base.DutchStep | false | Крок голландського раунду | Dutch step | Поля dutchStepPercent та dutchStepValue автогенеруються на рівні ЦБД, без можливості внесення змін Організатором
|
_specs
| Code Block |
|---|
"_specs": { "pipeline": { "stages": [ { "producedEntities": [ { "type": "procedure", "_id": "69945eec410e8611f93bb132", "objectId": "SPE001-UA-20260217-17748", "url": "/api/procedures/69945eec410e8611f93bb132" } ], "status": "unsuccessful", "name": "sp-english-first", "calculatedData": { "value": { "currency": "UAH", "amount": 1000, "valueAddedTaxIncluded": true }, "registrationFee": { "currency": "UAH", "amount": 200 }, "auctionPeriod": { "startDate": "2026-02-17T14:30:31.326000+02:00" }, "sellingMethod": "smallPrivatization-english-fast", "tenderAttempts": 1, "guarantee": { "currency": "UAH", "amount": 500 }, "minimalStep": { " |
...
currency": " |
...
UAH", " |
...
amount": |
...
100 } |
...
|
...
}
|
...
}, { " |
...
producedEntities": [ { |
...
" |
...
type": " |
...
procedure", |
...
"_id": |
...
"69945f5d410e8611f93bb134", "objectId": " |
...
SPE001-UA-20260217-44432", |
...
"url": "/api/procedures/69945f5d410e8611f93bb134"
}
],
"status": "active",
"name": "sp-english-second",
"calculatedData": {
"value": {
"currency": "UAH",
"amount": 500,
"valueAddedTaxIncluded": true
},
"registrationFee": {
"currency": "UAH",
"amount": 200
},
"sellingMethod": "smallPrivatization-english-fast",
"tenderAttempts": 2,
"guarantee": {
"currency": "UAH",
"amount": 100
},
"tenderPeriod": [
{
"unit": "b_day",
"quantity": 344
}
],
"minimalStep": {
"currency": "UAH",
"amount": 5
}
}
},
{},
{}
]
} |
...
Поля dutchStepPercent та dutchStepValue автогенеруються на рівні ЦБД, без можливості внесення змін Організатором
Для поля dutchStepQuantity ЦБД формує дефолтне значення згідно процедури, Організатор має можливість змінити дефолтне значення.
...
integer($int64)
...
integer($int64)
...
x-legalNameUa: Розмір кроку голландського раунду, грн
x-legalNameEn: Dutch step value
автогеровано, розраховується як 1 % від стартової ціни
...
| Note | ||
|---|---|---|
| ||
При цьому дата початку аукціону не може припадати на святковий чи вихідний день! |
...