Versions Compared

Key

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

...

  • При створенні ланцюжка немає повʼязаного обʼєкта типу "Обʼєкт реєстру". Обʼєкт SAC Ланцюжок - перший обʼєкт, який створюється на ЦБД в процесі реалізації Санкційного майна
  • При створенні ланцюжка Організатор має вказати:
    • Дату аукціону для першої процедури
    • Період експозиції (tenderPeriod) для другої і третьої процедури в ланцюжку (присутні валідації, які детально описані нижче)
  • При створенні ланцюжка Організатор має вказати Стартову ціну реалізації для першого аукціону, а для другого і третього ЦБД розрахує автоматично згідно описаних нижче правил.
  • В ланцюжку зберігаються ідентифікатори Процедур, які були автоматично створені цим ланцюжком
  • Лацюжок складається максимум з трьох процедур, де кожна наступна процедура створюється автоматично за умови, що попередня процедура "неуспішна"


(Андрій)
Note
titleПИТАННЯ
  1. Чи будемо відображати сутність "Процес реалізації санкційного активу" на Порталі чи на будь-якому іншому фронті?

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

В такому випадку не бачу потреби розділяти статуси "успішний" та "неуспішний" процес. Процес (ланцюжок) або "діючий", або "закритий"


2. (Діма)

Якщо Джоббер створив Процедуру і Орг редагує процедуру (наприклад Стартову ціну), то чи зможе Джобер, коли буде створювати другу процедуру забрати із першої Стартову ціну, а не із мастер-обʼєкта? - Так

3. (Андрій) В Нормативці вказано: Оголошення про проведення аукціону, що публікується організатором аукціону, повинно містити такі відомості: ... 

  • стартова ціна активу для кожного аукціону;

  • розмір гарантійного внеску електронного аукціону для кожного аукціону;

Просимо Орга передавати в запиті вже розраховані поза системою значення для всіх трьох процедур?

Або розраховуємо самі при авто-публікації, а Орга просимо передати тільки для першої? В нормативці написано, що має передати для кожної.

Орг передає Стартову ціну і Гарантійний внесок тільки для першої процедури. Для наступних в ланцюжку розраховуємо автоматично (+ Орг може відредагувати протягом 48 годин після створення процедури)

АБО

Орг передає Стартову ціну і Гарантійний внесок для кожної процедури. (+ Орг може відредагувати протягом 48 годин після створення процедури)


3. 

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


Info
title
Info
titleПро гарантійку

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

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

Обʼєкт SanctionedAuctionChain

Статуси обʼєкта


Обʼєкт SanctionedAuctionChain

Статуси обʼєкта

draw.io Diagramdrawio
bordertrue
diagramNameSAC_statuses
simpleViewerfalse
width
linksauto
tbstyletop
lboxtrue
diagramWidth137347
revision24


techУКР назваАНГЛ назваПерехід зЗа умовиКоментар
pendingОпублікованоCreated-перший статус, який отримує обʼєкт при публікації

Статус, в якому перебуває обʼєкт до моменту створення першої процедури в ланцюжку

Дії Організатора відсутні (тому що планую максимально швидко створювати повʼязану першу процедуру)

Протягом 5 хвилин має автоматично опублікуватися Перша процедура SAE

activeactive_auctionПроходить аукціонAuctionpendingСтворено першу процедуру в ланцюжкуОбʼєкт має цей статус з моменту створення першої процедури в ланцюжку і до моменту, поки:
  • третя в ланцюжку процедура не набуває термінального статусу (procedure.status: complete OR unsuccessful)
    АБО
  • будь-яка процедура в цьому ланцюжку набуває статусу cancelled
soldЗавершеноПроданоFinishedSoldactive_auction

Будь-яка процедура в цьому ланцюжку набуває статусу procedure.status: complete

Термінальний статус
dissolvedНе проданоDissolved active

Будь-яка процедура в цьому ланцюжку набуває статусу procedure.status: cancelled

Третя в ланцюжку процедура набуває статусу procedure.status: unsuccessful

Термінальний статус

Періоди обʼєкта

Періоди відсутні

...

При публікації обʼєкта SAС необхідно передати документи першої Процедури ланцюжка.

В другу і третю процедури модель documents[] копіюється із попередньох процедури цього ланцюжка.

Перелік документів описано в ТЗ до Процедури ТУТ

...

Організатор публікує обʼєкт SAC"Ланцюжка", в якому передає:

  • всі поля, які потрібні для публікації першої англійської процедури і голл (перелік полів ТУТ)і голландської
  • період експозиції (в днях) для другої процедури
  • період експозиції (в днях) для третьої процедури
  • розмір гарантійного внеску для другої процедури (в грн)
  • розмір гарантійного внеску для третьої процедури (в грн)
    • АБО один раз, якщо будемо авторозраховувати

Після успішно опублікованого обʼєкта SAC, протягом 5 хвилин автоматично створюється перша процедура.

...

  • період експозиції (в днях) для другої процедури
  • розмір гарантійного внеску для другої процедури (в грн) (лише якщо не авторозраховуємо)

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

...

  • період експозиції (в днях) для третьої процедури
  • розмір гарантійного внеску для третьої процедури (в грн) (лише якщо не авторозраховуємо)

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

...

Якщо стартова 88,73, то для другого - 44,37 грн

Структура даних обʼєкта SAC


Скасування

Скасувати "ланцюжок" окремим запитом неможливо.

При скасуванні будь-якої процедури ланцюжка - автоматично скасовується ланцюжок.


Структура даних обʼєкта SAC


Field nameRequired for publishingType
field namerequired for publishingtype
readOnlyx-legalNameUax-legalNameEncomment
1owner-stringtrueІдентифікатор майданчикаBroker Name
2ownerToken-string($uuid)true

x-default: hex
3_id-string

trueВнутрішній ідентифікаторIDx-default: object_id
x-serialize_when_none: false

x-format: object-id
4datePublished-string($date-time)
trueДата публікаціїPublished datex-default: now
5dateModified-string($date-time)
trueОстання дата зміниDate modified
6objectId-string
trueІдентифікатор ланцюжкаChain IDexample: SAC001-UA-20260217-12345
7status-stringtrueСтатус процедуриProcedure status

enum:

  • pending
  • active
  • sold
  • dissolved
8pipelineMethod+
stringfalseТипChain type

enum:

  • sanctionedAuctionChain
  • sanctionedAuctionChain-fast
  • sanctionedAuctionChain-manual
  • sanctionedAuctionChain-ultrafast
  • sanctionedAuctionChain-fast-prod
  • sanctionedAuctionChain-fast-prod-fast-first
9
8
initialProps
 
+
 Все, що в initialProps - це стосується ПЕРШОГо обʼєкта
objectfalseЗагальна інформація про процедуриProcedure informantion


10extraSpecs+list[ ] of objects falseІнформація для базових специфікаційBase information
11_meta -    

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

9
12
sellingEntity
additionalInformation -
base.SellingEntity
  
Інформація про Організатора аукціону
  
Organizer information

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

модель

Очікуємо цей параметр в запиті на публікації SAC

При авто-створенні першої процедури копіюємо значення в неї.

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

логіка

13metaInfo -    

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


Anchor
initialProps
initialProps
initialProps


field namerequired for publishingtypereadOnlyx-legalNameUax-legalNameEncomment
1sellingEntity base.SellingEntity Інформація про Організатора аукціонуOrganizer information
10title+base.MultiLangfalseНазва аукціонуAuction title

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

Очікуємо цей параметр в запиті на публікації SAC

При авто-створенні першої процедури копіюємо значення в неї.

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

11
2
description
title+base.MultiLangfalse
Опис
Назва аукціонуAuction
description
title

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

Очікуємо цей параметр в запиті на публікації SAC

При авто-створенні першої процедури копіюємо значення в неї.

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

12
3
x_documentRequirements
description
-
+base.MultiLangfalse
Перелік та вимоги до оформлення документів
Опис аукціонуAuction description

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

List and requirements of registration documents

Очікуємо цей параметр в запиті на публікації SAC

При авто-створенні першої процедури копіюємо значення в неї.

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

13
4x_
additionalInformation
documentRequirements-base.MultiLangfalse
Додаткові відомості
Перелік та вимоги до оформлення документівList and requirements of registration documents
Other requirements and additional information

Очікуємо цей параметр в запиті на публікації SAC

При авто-створенні першої процедури копіюємо значення в неї.

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

14
5
saleCondition
x_additionalInformation
+
-
stringenum: yes,
base.MultiLangfalse
Наявність умов продажуSale conditions
Додаткові відомостіOther requirements and additional information

Очікуємо цей параметр в запиті на публікації SAC

При авто-створенні першої процедури копіюємо значення в неї.

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

6saleCondition+stringfalseНаявність умов продажуSale conditions

enum:

  • yes
  • no

Очікуємо цей параметр в запиті на публікації SAC

При авто-створенні першої процедури копіюємо значення в неї.

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

15
7value+base.ValueWithTaxfalseСтартова цінаStart price

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

nametypereadOnly

Comment

currency *string
false

default: UAH
x-legalNameUa: Валюта

x-legalNameEn: Currency

Enum:
[ UAH, USD, EUR ]

amount *number($float)falseexample: 10
minimum: 2

exclusiveMinimum: true

x-format: decimal-float

x-legalNameUa: Сума

x-legalNameEn: Amount
valueAddedTaxIncludedbooleanfalsedefault: true
x-legalNameUa: Податок

x-legalNameEn: Tax

Очікуємо цей параметр в запиті на публікації SAC

При авто-створенні першої процедури копіюємо значення в неї.

При авто-створенні другої та\або третьої процедури в ланцюжку відбувається авторозрахунок згідно правил

16
8valueAddedTaxCharged-booleanfalseНа фінальну суму нараховується ПДВValue added tax charged

default: false

При авто-створенні першої процедури копіюємо значення в неї.

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

17
9guarantee+
list[ ] of objects

base.Value

falseРозмір гарантійного внескуGuarantee Fee
Очікуємо в запиті три обʼєкта guarantee для кожної із процедур ланцюжка відповідно


field nametypereadOnlycomment
currency *string
false

default: UAH
x-legalNameUa: Валюта

x-legalNameEn: Currency

Enum:
[ UAH, USD, EUR ]

amount *number($float)falseexample: 10
minimum: 0

exclusiveMinimum: true

x-format: decimal-float

x-legalNameUa: Сума

x-legalNameEn: Amount

При авто-створенні першої процедури копіюємо значення в неї.

При авто-створенні другої та\або третьої процедури в ланцюжку відбувається авторозрахунок згідно правил

Info
titleПостанова

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

  • 5 % стартової ціни, якщо вона дорівнює або перевищує 250 млн. гривень
  • 20 % стартової ціни, якщо вона є меншою, ніж 250 млн. гривень
18
10registrationFee+base.ValuefalseРозмір реєстраційного внеску
field nametypereadOnlycomment
currency *string
false

default: UAH
x-legalNameUa: Валюта

x-legalNameEn: Currency

Enum:
[ UAH, USD, EUR ]

amount *number($float)falseexample: 10
minimum: 0

exclusiveMinimum: true

x-format: decimal-float

x-legalNameUa: Сума

x-legalNameEn: Amount


Info
titleПостанова

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

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

Залишаємо на відповідальність Майданчика. ЦБД отримує значення і не валідує їх

Тільки, що значення >0

При авто-створенні першої процедури копіюємо значення в неї.

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

19
11minNumberOfQualifiedBids-integer($int64)falseМінімальна кількість заявMinimal number of bidsdefault: 1
minimum: 1

maximum: 2

При публікації обʼєкта можна не передавати. ЦБД автоматично згенерує == 1.

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

При авто-створенні першої процедури копіюємо значення в неї.

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

20
12minimalStep+base.ValuefalseРозмір кроку аукціонуMinimal step

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

При авто-створенні першої процедури копіюємо значення в неї.

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

21
13accessDetails-base.MultiLangfalseПорядок ознайомлення з майном, час і місце проведення огляду об’єктаAuction access details

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

Очікуємо цей параметр в запиті на публікації SAC

При авто-створенні першої процедури копіюємо значення в неї.

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

22
14bankAccounts+sanctionedAssets.BankAccountsByTypefalseБанківські рахунки організатораBank accounts

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

Обов'язково один банківський рахунок з типом guarantee і валютою UAH. Рахунків для кожного типу в UAH/USD/EUR може бути безліч. 

field nametypecomment
accountTypestring

x-dictionaries: List [ "accountType" ]

Enum:
[ registrationFee, guarantee, other, payment ]

accountscommercialSell.BankAccountWithCurrencyx-baseClass: "prozorro_sale.procedure.models.base.BankAccount"

Очікуємо цей параметр в запиті на публікації SAC

При авто-створенні першої процедури копіюємо значення в неї.

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

23
15tenderAttempts+integer($int64)
trueЛот виставляєтьсяAttempt number

Не повинно

юути

відображатися в моделі SAC як окреме поле, але має авто-розраховуватись і відображатись в Процедурі

При публікації SAC не очікуємо в запиті поля tenderAttempts.

При авто-публікації першої процедури ЦБД має проставити:

1-й процедурі: tenderAttempts = 1

2-й процедурі: tenderAttempts = 2 та у полі previousAuctionId значення auctionId від першої процедури цього ланцюжка

3-й процедурі: tenderAttempts = 3 та у полі previousAuctionId значення auctionId від другої процедури цього ланцюжка

24
16lotId+
stringfalseНомер лотаLot number

Очікуємо цей параметр в запиті на публікації SAC

При авто-створенні першої процедури копіюємо значення в неї.

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

25
17 items +sanctionedAssets.ItemfalseСклад лотаLot composition

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

x-format: list-object
minItems: 1

default: List []

26
18
dutchStep
documents +
base
 base.
DutchStep
Documents
 Крок голландського раундуDutch step

Поля dutchStepPercent та dutchStepValue автогенеруються на рівні ЦБД, без можливості внесення змін Організатором
Для поля dutchStepQuantity ЦБД формує дефолтне значення згідно процедури, Організатор має можливість змінити дефолтне значення.

namedutchStepQuantityinteger($int64)
maximum: 99

default: 99

minimum: 1

x-legalNameUa: Кількість кроків

x-legalNameEn: Dutch steps quantity
dutchStepPercentinteger($int64)
default: 1

readOnly: true

x-legalNameUa: Відсоток зниження, %

x-legalNameEn: Percentage reduction, %
dutchStepValuebase.Value{
description:

автогеровано, розраховується як 1 % від стартової ціни

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:"Dutch step value"

 

27documents + base.DocumentsfalseВсі документи аукціону та пов'язані додаткиDocuments

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

x-format: list-object
default: List []

28extraSpecs     

 guarantee якщо є в extraSpecs, то авторозраховуємо

якщо передав в initialProps, то беруться ті значення

29status-stringtrueСтатус процедуриProcedure status

enum:

30_meta     

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

31additionalInformation     

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

32metaInfo     

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

extraSpecs

falseВсі документи аукціону та пов'язані додаткиDocuments

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

x-format: list-object
default: List []

Anchor
extraSpecs
extraSpecs
extraSpecs[ ]

field namerequired for publishingtypereadOnlyx-legalNameUax-legalNameEncommentperiodsbase.PeriodSpecІнформація про періоди аукціонівnametypeDescriptioncommentperiodNamestringx-legalNameUa: Назва періода
x-legalNameEn: Period name

enum:

  • auctionPeriod
  • tenderPeriod
startDatestring($date-time)
x-legalNameUa: Дата та час початку
x-legalNameEn: Start date
endDatestring($date-time)
x-legalNameUa: Дата та час завершення
x-legalNameEn: End date
durationbase.Durationx-legalNameUa: Тривалість періоду
x-legalNameEn: Period duration
nametypecommentunitstringEnum:
  • b_day
  • c_day
  • hour
  • minute
  • second
quantityinteger($int64)
minimum: 1
guarantee+

list[ ] of objects

base.Value

falseРозмір гарантійного внескуGuarantee Fee

Очікуємо в запиті три обʼєкта guarantee для кожної із процедур ланцюжка відповідно

field nametypereadOnlycommentcurrency *string
false
field namerequired for publishingtypereadOnlyx-legalNameUax-legalNameEncomment
periods+base.PeriodSpecfalseІнформація про періоди аукціонівPeriods info
nametypeDescriptioncomment
periodNamestringx-legalNameUa: Назва періода
x-legalNameEn: Period name

enum:

  • auctionPeriod
  • tenderPeriod
startDatestring($date-time)

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

endDatestring($date-time)

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

durationbase.Durationx-legalNameUa: Тривалість періоду
x-legalNameEn: Period duration
nametypecomment
unitstringEnum:
  • b_day
  • c_day
  • hour
  • minute
  • second
quantityinteger($int64)

minimum: 1

При публікації "ланцюжка", ЦБД очікує, що в extraSpecs обовʼязково буде передано обʼєкт для кожної процедури.

Тобто, всього три обʼєкта в extraSpecs, бо процедур в ланцюжку три.

Приклад:

Code Block
"extraSpecs": [
	{
		"periods": [
			{
				"periodName": "auctionPeriod",
				"startDate": "2026-04-20T10:00:00.000000Z"
			}
		]
	},
	{
		"periods": [
			{
				"periodName": "tenderPeriod",
				"duration": [
					{
						"unit": "b_day",
						"quantity": 25
					}
				]
			}
		]
	},
	{
		"periods": [
			{
				"periodName": "tenderPeriod",
				"duration": [
					{
						"unit": "b_day",
						"quantity": 25
					}
				]
			}
		],
		"dutchStep": {
			"dutchStepQuantity": 99
		}
	}
]


guarantee+

list[ ] of objects

base.Value

falseРозмір гарантійного внескуGuarantee Fee

Очікуємо в запиті три обʼєкта guarantee для кожної із процедур ланцюжка відповідно


field nametypereadOnlycomment
currency *string
false

default: UAH
x-legalNameUa: Валюта

x-legalNameEn: Currency

Enum:
[ UAH, USD, EUR ]

amount *number($float)falseexample: 10
minimum: 0

exclusiveMinimum: true

x-format: decimal-float

x-legalNameUa: Сума

x-legalNameEn: Amount


Info
titleПостанова

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

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


dutchStep+base.DutchStep
Крок голландського раундуDutch step

Поля dutchStepPercent та dutchStepValue автогенеруються на рівні ЦБД, без можливості внесення змін Організатором
Для поля dutchStepQuantity ЦБД формує дефолтне значення згідно процедури, Організатор має можливість змінити дефолтне значення.

name


dutchStepQuantity

integer($int64)

default: 99
maximum: 99

minimum: 1

x-legalNameUa: Кількість кроків
x-legalNameEn: Dutch steps quantity

dutchStepPercent

integer($int64)

default: 1
readOnly: true

x-legalNameUa: Відсоток зниження, %
x-legalNameEn: Percentage reduction, %

dutchStepValuebase.Value{
description:

автогеровано, розраховується як 1 % від стартової ціни

currencystring

default: UAH

x-legalNameUa: Валюта

x-legalNameEn: Currency
Enum:
Array [
 UAH, USD, EUR 
 3 ]
amount
*
number($float)
false

example: 10

minimum:
0
exclusiveMinimum: true
 0
x-format: decimal-float

x-legalNameUa: Сума

x-legalNameEn: Amount
Info
titleПостанова

x-legalNameUa: Розмір кроку голландського раунду, грн

x-legalNameEn: Dutch step value


 

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

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