Versions Compared

Key

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

...

draw.io Diagram
bordertrue
diagramNameSAC_statuses
simpleViewerfalse
width
linksauto
tbstyletop
lboxtrue
diagramWidth347
revision45


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

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

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

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

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

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

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

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

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

...

Редагування Процедури згідно ТЗ процедури ТУТ (окрім поля tenderAttemps!)Вся логіка процедури залишається без змін. Немає різниці чи Процедура була створена руками до запуску "ланцюжків" чи створена автоматично "ланцюжком".

...

metaInfo object

Field nameRequired for publishingTypereadOnlyx-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: JSC001-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
9initialProps+objectfalseЗагальна інформація про процедуриProcedure informantion


10extraSpecs+list[ ] of objectsfalseІнформація для базових специфікаційBase informationminItems: 3
11producedEntities-list[ ] of objectstrueСтворені обʼєктиProduced entitiesbase.ProducedEntity{
type

string
readOnly: true

default: procedure

Тип зв'язку

_idstring
readOnly: true

x-legalNameUa: Внутрішній ідентифікатор створеної сутності

x-legalNameEn: ID

x-default: object_id

x-serialize_when_none: false

x-format: object-id
objectIdstring
readOnly: true

example: SAE001-UA-20260320-12345

x-legalNameUa: идентифікатор створеної сутності

x-legalNameEn: produced entity id

Людиночитаємий идентифікатор створеної сутності

ownerTokenstring($uuid)
readOnly: true

x-default: hex

Token used for get access to produced entity

urlstring
readOnly: true

Direct url to produced entity.


12_specs-objecttrueРозрахункові даніCalculated data

 

13_meta- objecttrue  

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

14additionalInformation- objecttrue  

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

15
activeScenario-
stringtrue  

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

...

Відображається поточний стан JSC

16archiveId-stringtrue  

x-format: object-id
x-serialize_when_none: false

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

17_protected-booleantrue  

default: false

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

18_version-integer($int64)true  

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

19timer
string($date-time)true  

x-format: timer
x-serialize_when_none: false

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

20periods-

object

base.Period

trueЧас до створення першої процедуриFirst procedure creation time
тех назваRequiredTypeБізнес назва УКРБізнес назва АНГЛ
rectificationPeriod
startDate-string($date-time)Дата та час початкуStart time
endDate-string($date-time)Дата та час завершенняEnd time

 


Anchor
initialProps
initialProps
initialProps

enum:

  • yes
  • no
6valueValueWithTaxStart priceОчікуємо цей параметр відбувається авторозрахунок згідно правилfield minimalStepcomment 0

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

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

Логіка розрахунку описана ТУТ

base

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

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

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

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

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

default: 1
minimum: 1

maximum: 2

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

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

При авто-створенні першої процедури копіюємо baseMultiLangAuction access detailsbaseMultiLangbase.MultiLang18tenderAttempts

field nameRequired for publishingtypereadOnlyx-legalNameUax-legalNameEncomment
1sellingEntity +base.SellingEntity falseІнформація про Організатора аукціонуOrganizer information
field nameRequired for publishingtypereadOnlyx-legalNameUax-legalNameEncomment
1sellingEntity +base.SellingEntity falseІнформація про Організатора аукціонуOrganizer information

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

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

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

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

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

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

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

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

3title+base.MultiLangfalseНазва аукціонуAuction title

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

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

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

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

4description+base.MultiLangfalseОпис аукціонуAuction description

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

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

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

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

52saleConditionlotId+
stringfalseНаявність умов продажуSale conditionsНомер лотаLot number

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

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

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

3
title+base.
MultiLangfalse
Стартова ціна лота
Назва аукціонуAuction title

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

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

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

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

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

4description+base.MultiLangfalseОпис аукціонуAuction description

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

Очікуємо цей параметр

в запиті на публікації JSC

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

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

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

enum:

  • yes
  • no

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

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

default: false

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

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

86value+base.ValueValueWithTaxfalseРозмір кроку аукціонуСтартова ціна лотаStart priceMinimal step

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

  • Для Першої Процедури - значення, що вказав Організатор при створенні ланцюжка у initialProps.minimalStep
  • Для Другої Процедури - значення, що дорівнює 1% від value Поточної Другої Процедури.

  • Для Третьої Процедури - значення, що дорівнює 1% від value Поточної Третьої Процедури.
  • Описано ТУТ

    9guarantee+

    base.Value

    falseРозмір гарантійного внескуGuarantee Fee
    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

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

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

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

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

    default: false

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

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

    8minimalStep+base
    10registrationFee-
    .ValuefalseРозмір кроку аукціонуMinimal step

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

    • Для Першої Процедури - значення, що вказав Організатор при створенні ланцюжка у initialProps.minimalStep
    • Для Другої Процедури - значення, що дорівнює 1% від value Поточної Другої Процедури.
    • Для Третьої Процедури - значення, що дорівнює 1% від value Поточної Третьої Процедури.

    Описано ТУТ

    9guarantee+

    base.Value

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


    field nametypereadOnlycomment
    currency *string
    false

    default: UAH
    x

    реєстраційного внеску
    field nametypereadOnlycomment
    currency *string
    false

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

    x-legalNameEn: Currency

    Enum:
    [ UAH, USD, EUR ]

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

    exclusiveMinimum: true

    x-format: decimal-float

    x-legalNameUa: Сума

    x-legalNameEn: Amount

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

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

    Info
    titleПостанова

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

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

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

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

    Логіка розрахунку описана ТУТ

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

    ЦБД не перевіряє відповідність registrationFee нормативному значенню. Відповідальність за коректність лежить на майданчику.

    Значення >0

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

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

    11bankAccounts+sanctionedAssets.BankAccountsByTypefalseБанківські рахункиBank accounts
    field nametypecomment
    accountTypestring

    x-dictionaries: List [ "accountType" ]

    Enum:
    [ registrationFee, guarantee, other, payment ]

    accountscommercialSell.BankAccountWithCurrencyx-baseClass: "prozorro_sale.procedure.models.base.BankAccount"
    12 items+sanctionedAssets.ItemfalseСклад лотаLot composition

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

    x-format: list-object
    minItems: 1

    default: List []

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

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

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

    14minNumberOfQualifiedBids-integer($int64)falseМінімальна кількість заявMinimal number of bids
    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 млн. гривень
    Note

    ЦБД не перевіряє відповідність registrationFee нормативному значенню. Відповідальність за коректність лежить на майданчику.

    Значення >0

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

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

    11bankAccounts+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"

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

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

    значення в неї.

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

    1512accessDetails items-+sanctionedAssets.ItemfalseПорядок ознайомлення з майном, час і місце проведення огляду об’єктаСклад лотаLot composition

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

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

    При авто-створенні першої процедури копіюємо значення в неї.x-format: list-object
    minItems: 1

    default: List []

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

    1613x_documentRequirementsdocuments- base.DocumentsfalseПерелік та вимоги до оформлення документівList and requirements of registration documentsВсі документи аукціону та пов'язані додаткиDocuments

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

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

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

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

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

    1714x_additionalInformationminNumberOfQualifiedBids-integer($int64)falseДодаткові відомостіOther requirements and additional informationМінімальна кількість заявMinimal number of bidsdefault: 1
    minimum: 1

    maximum: 2

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

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

    При

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

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

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

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

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

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

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

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

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

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

    ...

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

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

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

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

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

    16x_documentRequirements-base.MultiLangfalseПерелік та вимоги до оформлення документівList and requirements of registration documents

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

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

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

    17x_additionalInformation-base.MultiLangfalseДодаткові відомостіOther requirements and additional information

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

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

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

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

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

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

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

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

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

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

    Anchor
    extraSpecs
    extraSpecs
    extraSpecs[ ]

    string($date-time)
    string($date-time)
    integer($int64)

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

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

    Валідації

    На рівні ЦБД необхідно встановити валідації для pipelineMethod: sanctionedAuctionChain:

    field namerequired for publishingtypereadOnlyx-legalNameUax-legalNameEncomment
    periods+base.PeriodSpecfalseІнформація про періоди аукціонівPeriods info
    field nametypenamecomment
    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, бо процедур в ланцюжку три.

    Валідації

    На рівні ЦБД необхідно встановити валідації для pipelineMethod: sanctionedAuctionChain:

    Для першої процедури приймається значення:

    extraSpecs.[0].periods.periodName=="auctionPeriod"

    extraSpecs.[0].periods.startDate ==

    if value.amount <

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

    enum:

    • auctionPeriod
    • tenderPeriod
    startDatex-legalNameUa: Дата та час початку
    x-legalNameEn: Start date
    endDatex-legalNameUa: Дата та час завершення
    x-legalNameEn: End date
    durationbase.Durationx-legalNameUa: Тривалість періоду
    x-legalNameEn: Period duration
    nametypecomment
    unitstringEnum:
    • b_day
    • c_day
    • hour
    • minute
    • second
    quantityminimum: 1

    Для першої процедури приймається значення:

    extraSpecs.[0].periods.periodName=="auctionPeriod"

    extraSpecs.[0].periods.startDate ==

    if value.amount < 250 000 000 (двісті п'ятдесят мільйонів)

    then 
    ЦБД має приймати тільки значення для extraSpecs.[0].periods[0].startDate в діапазоні  currentDate+25 c_day <= startDate <=  currentDate+35 c_day

    ЦБД повинна відхилити запит, якщо знчення extraSpecs.[0].periods[0].startDate, яке передають в запиті на публікацію JSC знаходиться поза цим діапазоном.

    else if value.amount >= 250 000 000 (двісті п'ятдесят мільйонів)

    then 
    ЦБД має приймати тільки значення для auctionPeriod extraSpecs.[0].periods[0].startDate в діапазоні  currentDate+60 25 c_day <=   startDate <=  currentDate+90 35 c_day

    ЦБД повинна відхилити запит, якщо знчення extraSpecs.[0].periods[0].startDate, яке передають в запиті на публікацію JSC знаходиться поза цим діапазоном.

    При цьому дата початку аукціону не може припадати на святковий чи вихідний день! 

    Для другої процедури приймається значення:

    extraSpecs.[1].periods.periodName=="tenderPeriod"

    extraSpecs.[1].periods.duration ==

    if value.amount < else if value.amount >= 250 000 000 (двісті п'ятдесят мільйонів)

    then 
    ЦБД має приймати тільки значення для extraSpecs.[1].periods[0].duration в діапазоні  20 auctionPeriod.startDate в діапазоні  currentDate+60 c_day <= duration  startDate <=  35 currentDate+90 c_day

    ЦБД повинна відхилити запит, якщо знчення duration extraSpecs.[0].periods[0].startDate, яке передають в запиті на публікацію JSC знаходиться поза цим діапазоном.

    При цьому дата початку аукціону не може припадати на святковий чи вихідний день! 

    Для другої процедури приймається значення:

    extraSpecs.[1].periods.periodName=="tenderPeriod"

    extraSpecs.[1].periods.duration ==

    if value.amount < 250 000 000 else if value.amount >= 250 000 000 (двісті п'ятдесят мільйонів) ВАЖЛИВО! value.amount 2-ї процедури = value.amount із JSC*0,5 (тобто, 50% від стартової ціни, яку передає Організатор)

    then 
    ЦБД має приймати тільки значення для extraSpecs.[1].periods[0].duration в діапазоні  30 20 c_day <= duration < <90 35 c_day

    ЦБД повинна відхилити запит, якщо знчення duration, яке передають в запиті на публікацію JSC знаходиться поза цим діапазоном.

    При цьому дата початку аукціону не може припадати на святковий чи вихідний день! 

    Для третьої процедури приймається значення:

    extraSpecs.[2].periods.periodName=="tenderPeriod"

    extraSpecs.[2].periods.duration ==

    if value.amount < 250 000 000 else if value.amount >= 250 000 000 (двісті п'ятдесят мільйонів)

    then 
    ЦБД має приймати тільки значення для extraSpecs.[21].periods[0].duration в діапазоні  20 30 c_day <= duration < <35 90 c_day

    ЦБД повинна відхилити запит, якщо знчення duration, яке передають в запиті на публікацію JSC знаходиться поза цим діапазоном.

    При цьому дата початку аукціону не може припадати на святковий чи вихідний день! 

    Для третьої процедури приймається значення:

    extraSpecs.[2].periods.periodName=="tenderPeriod"

    extraSpecs.[2].periods.duration ==

    else if value.amount >= < 250 000 000 (двісті п'ятдесят мільйонів) ВАЖЛИВО! value.amount 3-ї процедури = value.amount із JSC*0,5 (тобто, 50% від стартової ціни, яку передає Організатор)

    then 
    ЦБД then
    ЦБД має приймати тільки значення для extraSpecs.[2].periods[0].duration в діапазоні  30 20 c_day <= duration < <90 35 c_day

    ЦБД повинна відхилити запит, якщо знчення duration, яке передають в запиті на публікацію JSC знаходиться поза цим діапазоном.

    При цьому дата початку аукціону не може припадати на святковий чи вихідний день! 

    Приклад для

    else if value.amount

    <

    >= 250 000 000 (двісті п'ятдесят мільйонів)

    :

    then
    ЦБД має приймати тільки значення для extraSpecs.[2].periods[0].duration в діапазоні  30 c_day <= duration <=  90 c_day

    ЦБД повинна відхилити запит, якщо знчення duration, яке передають в запиті на публікацію JSC знаходиться поза цим діапазоном.

    При цьому дата початку аукціону не може припадати на святковий чи вихідний день! 

    Note
    titleВАЖЛИВО

    tenderPeriod валідується тільки один рах при створенні і якщо Організатор редагує value.amount то tenderPeriod вже не перераховується і не валідується


    Приклад для value.amount < 250 000 000 (двісті п'ятдесят мільйонів):

    Code Block
    "extraSpecs": [
    	{
    		"periods": [
    
    Code Block
    "extraSpecs": [
    	{
    		"periods": [
    			{
    				"periodName": "auctionPeriod",
    				"startDate": "2026-03-20T10:00:00.000000Z"
    			}
    		]
    	},
    	{
    		"periods": [
    			{
    				"periodName": "tenderPeriod",
    				"duration": [
    					{
    						"unitperiodName": "c_dayauctionPeriod",
    						"quantitystartDate": 25"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
    		}
    	}
    ]


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

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

    field nametypenamecomment
    dutchStepQuantity

    integer($int64)

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

    minimum: 1
    dutchStepPercent

    integer($int64)

    x-legalNameUa: Відсоток зниження, %
    x-legalNameEn: Percentage reduction, %
    default: 1
    readOnly: true
    dutchStepValuebase.Value

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

    x-legalNameEn: Dutch step value

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

    currencystring
    default: UAH

    x-legalNameUa: Валюта

    x-legalNameEn: Currency
    Enum:
    enum: UAH, USD, EUR
    amountnumber($float)
    example: 10

    minimum: 0

    x-format: decimal-float

    x-legalNameUa: Сума

    x-legalNameEn: Amount
     

    ...

    Note
    titleВАЖЛИВО!

    Значення в _specs розраховується один раз під час публікації JSC і далі є “замороженим” прогнозом/планом, а не “дзеркалом” фактичних значень процедур.

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

    Інші значення НЕ перезаписуються.


    Приклад::

    Code Block
    "_specs": {
    	"pipeline": {
    		"stages": [
    			{
    				"producedEntities": [
    					{
    						"type": "procedure",
    						"_id": "69945eec410e8611f93bb132",
    						"objectId": "SAE001-UA-20260320-17748",
    						"url": "/api/procedures/69945eec410e8611f93bb132"
    					}
    				],
    				"status": "unsuccessful",
    				"name": "sa-english-first",
    				"calculatedData": {
    					"value": {
    						"currency": "UAH",
    						"amount": 100000,
    						"valueAddedTaxIncluded": true
    					},
    					"guarantee": {
    						"currency": "UAH",
    						"amount": 10000
    					},
     					"tenderAttempts": 1, 
                        "auctionPeriod": {
    						"startDate": "2026-03-20T14:30:31.326000+02:00"
    					},
    					"sellingMethod": "sanctionedAsset-english",
    					"minimalStep": {
    						"currency": "UAH",
    						"amount": 1200
    					}
    				}
    			},
    			{
    				"producedEntities": [
    					{
    						"type": "procedure",
    						"_id": "69945f5d410e8611f93bb134",
    						"objectId": "SAE001-UA-20260417-44432",
    						"url": "/api/procedures/69945f5d410e8611f93bb134"
    					}
    				],
    				"status": "active",
    				"name": "sa-english-second",
    				"calculatedData": {
    					"value": {
    						"currency": "UAH",
    						"amount": 50000,
    						"valueAddedTaxIncluded": true
    					},
     					"guarantee": {
    						"currency": "UAH",
    						"amount": 10000
    					},
    					"sellingMethod": "sanctionedAsset-english",
    					"tenderAttempts": 2,
    					"tenderPeriod": [
    						{
    							"unit": "с_day",
    							"quantity": 25
    						}
    					],
    					"minimalStep": {
    						"currency": "UAH",
    						"amount": 500
    					}
    				}
    			},
    			{
    				"producedEntities": [],
    				"status": "sheduled",
    				"name": "sa-dutch-first",
    				"calculatedData": {
    					"value": {
    						"currency": "UAH",
    						"amount": 50000,
    						"valueAddedTaxIncluded": true
    					},
     					"guarantee
    Code Block
    "_specs": {
    	"pipeline": {
    		"stages": [
    			{
    				"producedEntities": [
    					{
    						"type": "procedure",
    						"_id": "69945eec410e8611f93bb132",
    						"objectId": "SAE001-UA-20260320-17748",
    						"url": "/api/procedures/69945eec410e8611f93bb132"
    					}
    				],
    				"status": "unsuccessful",
    				"name": "sa-english-first",
    				"calculatedData": {
    					"value": {
    						"currency": "UAH",
    						"amount": 10000010000
    					},
    						"valueAddedTaxIncludedsellingMethod": true"sanctionedAsset-dutch",
    					}"tenderAttempts": 3,
    					"guaranteetenderPeriod": [
    						{
    							"currencyunit": "UAHc_day",
    							"amountquantity": 1000035
    						},
                        "registrationFee
    					],
    					"minimalStep": {
    						"currency": "UAH",
    						"amount": 500
    					}
    						"amount": 800
    					},
     					"tenderAttempts": 1, 
                        "auctionPeriod": {
    						"startDate": "2026-03-20T14:30:31.326000+02:00"
    					},
    					"sellingMethod": "sanctionedAsset-english",
    					"minimalStep": {
    						"currency": "UAH",
    						"amount": 1200
    					}
    				}
    			},
    			{
    				"producedEntities": [
    					{
    						"type": "procedure",
    						"_id": "69945f5d410e8611f93bb134",
    						"objectId": "SAE001-UA-20260417-44432",
    						"url": "/api/procedures/69945f5d410e8611f93bb134"
    					}
    				],
    				"status": "active",
    				"name": "sa-english-second",
    				"calculatedData": {
    					"value": {
    						"currency": "UAH",
    						"amount": 50000,
    						"valueAddedTaxIncluded": true
    					},
     					"guarantee": {
    						"currency": "UAH",
    						"amount": 10000
    					}, 
                        "registrationFee": {
    						"currency": "UAH",
    						"amount": 800
    					},
    					"sellingMethod": "sanctionedAsset-english",
    					"tenderAttempts": 2,
    					"tenderPeriod": [
    						{
    							"unit": "с_day",
    							"quantity": 25
    						}
    					],
    					"minimalStep": {
    						"currency": "UAH",
    						"amount": 500
    					}
    				}
    			},
    			{
    				"producedEntities": [],
    				"status": "sheduled",
    				"name": "sa-dutch-first",
    				"calculatedData": {
    					"value": {
    						"currency": "UAH",
    						"amount": 50000,
    						"valueAddedTaxIncluded": true
    					},
     					"guarantee": {
    						"currency": "UAH",
    						"amount": 10000
    					}, 
                        "registrationFee": {
    						"currency": "UAH",
    						"amount": 800
    					},
    					"sellingMethod": "sanctionedAsset-dutch",
    					"tenderAttempts": 3,
    					"tenderPeriod": [
    						{
    							"unit": "c_day",
    							"quantity": 35
    						}
    					],
    					"minimalStep": {
    						"currency": "UAH",
    						"amount": 500
    					}
    				}
    			}
    		]
    	}
    }}
    			}
    		]
    	}
    }

    Search

    Потрібно реалізувати публічні ендпоінти, які будуть давати можливість отримувати перелік JSC обʼєктів за заданим пошуком

    POST {{baseUrl}}/api/search/sanctionedAuctionChain

    Мають бти реалізовані фільтри:

    Code Block
    languagejs
    {
        "page": 1,
        "limit": 10,
        "filters": [
            {
                "field": "dateModified",
                "operator": "gt",
                "value": "2020-01-01T05:12:47.00Z"
            },
            {
                "field": "dateModified",
                "operator": "gte",
                "value": "2020-01-01T05:12:47.00Z"
            },
            {
                "field": "dateModified",
                "operator": "lte",
                "value": "2022-01-01T05:12:47.00Z"
            },
            {
                "field": "dateModified",
                "operator": "lt",
                "value": "2026-04-01T05:12:47.00Z"
            },
            {
                "field": "datePublished",
                "operator": "lt",
                "value": "2026-04-01T05:12:47.00Z"
            },
            {
                "field": "owner",
                "operator": "eq",
                "value": "auction"
            },
            {
                "field": "producedEntities.type",
                "operator": "eq",
                "value": "procedure"
            },
            {
                "field": "producedEntities.objectId",
                "operator": "eq",
                "value": "SAE001-UA-20221216-99328"
            },
            {
                "field": "producedEntities._id",
                "operator": "eq",
                "value": "639c8a6a8646c52cb6413d2c"
            },
            {
                "field": "extended_filters.human_id",
                "operator": "eq",
                "value": "JSC001-UA-20221216-41456"
            }
        ]
    }

    Має бути можливість отримувати обʼєкти з сортуванням:

    POST {{baseUrl}}/api/search/sanctionedAuctionChain

    Code Block
    languagejs
    {
        "page": 1,
        "limit": 10,
        "sort": [
            {
                "field": "dateModified",
                "direction": "desc"
            }
        ]
    }

    Mirror

    Має бути реалізована можливість майданчикам отримувати обʼєкти JSC по Mirror для сервісу Jobber

    Допрацювання процедур SAE SAD

    ...

    field namerequired for publishingtypereadOnlyx-legalNameUax-legalNameEncomment
    type-stringtrueТип спорідненняRelate typeenum: sanctionedAuctionChain sanctioned_auction_chain
    _id-stringtrueВнутрішній ідентифікатор повʼязаного обʼєктаInternal related object id

    x-default: object_id
    x-serialize_when_none: false

    x-format: object-id

    Поле має заповнитися значенням _id повʼязаного JSC обʼєкта

    objectId-stringtrueІдентифікатор повʼящаного обʼєктаRelated object id

    example: SAE001-UA-20260220-12345

    Поле має заповнитися значенням objectId повʼязаного JSC обʼєкта

    url-stringtrueПосилання на повʼязаний обʼєктURLПосилвання на JSC обʼєкт

    ...

    Організатор на інтерфейсах Майданчика чи на Порталі НЕ має бачити ID ланцюжка. Нормативно ланцюжка не існує, це виключно технічний обʼєкт.

    Для переносу всіх повʼящаних повʼязаних обʼєктів їх ID-шники має доповнити в заявку представник , якизі сторони Prozorro.Sale, який обробляє запит, який надійшов від Організатора.
    Організатор точно в своїй заяві не вкаже ID обʼєкта JSC. Його має знайти і дозаповнити представник від Prozorro.Sale



    Note
    titleПИТАННЯ
    1. Чи будемо відображати сутність "Процес реалізації санкційного активу" на Порталі, Майданчику чи на будь-якому іншому фронті? - На фронті має відображатися період експозиції для майбутніх Процедур, а ця інформація міститься тільки в JSC
    2. Реєстраційний внесок поривʼязаний до мін ЗП і ми його не валідуємо, а віддаємо на Майданчик.
    3. Валідації на Періоди? - так, робимо у нас
    4. ендпоінт на мінСтартДейт робимо пізніше окремою таскою. 

    ...