Призначення
Ендпоінт надає довідкову інформацію щодо того, з якої дати (і, за наявності, до якої дати)Організатор може встановити auctionPeriod.startDate для процедури з конкретним sellingMethod.
Ендпоінт обчислює календарні межі згідно правил, описаних у конфігурації.
URL
GET /api/procedures/{sellingMethod}/auctionPeriod
де {sellingMethod} — технічна назва напрямку (наприклад, basicSell-english, legitimatePropertyLease-english тощо)
Відповідь
Ендпоінт повертає JSON з об’єктом startDate, який містить:
minDate— найраніша допустима дата/час для auctionPeriod.startDatemaxDate— найпізніша допустима дата/час (повертається лише якщо для sellingMethod у конфігу задано validation.max)
Приклад (тільки minDate)
| Code Block | ||
|---|---|---|
| ||
{
"startDate": {
"minDate": "2026-03-04T09:00:00+00:00"
}
} |
Приклад (minDate + maxDate)
| Code Block | ||
|---|---|---|
| ||
{
"startDate": {
"minDate": "2026-03-02T09:00:00+00:00",
"maxDate": "2026-03-31T10:00:00+00:00"
}
} |
Джерело правил: конфіг specs
Посилання на конфіг: https://procedure.prozorro.sale/api/specs
Розрахунок дат виконується на основі конфігурації конкретного sellingMethod, секція: periods.procedure.auctionPeriod.startDate.validation
Ключові параметри:
Робочий/неробочий день
is_business_day: true означає, що результуюча дата має припадати на робочий день (після застосування diff і direction).
Мінімальна дата (validation.min)
Описує правило, як отримати minDate:
| Code Block |
|---|
"min": {
"diff": "8 days",
"direction": "forward",
"from": "now",
"time": "11:00"
} |
Логіка:
Береться базова точка відліку from (у прикладах це
now— поточна дата/час на момент запиту).Застосовується зміщення diff у напрямку direction:
forward — вперед від базової точки
backward — назад (для цього ендпоінту зазвичай не використовується, але механізм конфігураційно можливий)
Якщо задано is_business_day: true — дата нормалізується/підбирається так, щоб потрапити на робочий день.
Встановлюється час:
якщо
timeвказаний як одна година ("11:00") — використовується цей час;якщо вказано інтервал (
"11:00 - 13:00") — дляminDateвикористовується початок інтервалу (логіка “найраніший можливий час”).
Результат повертається в ISO-8601.
Максимальна дата (validation.max)
Якщо в конфігу присутній блок validation.max, ендпоінт додатково обчислює та повертає maxDate.
Приклад:
| Code Block |
|---|
"max": {
"diff": "35 days",
"direction": "forward",
"from": "now",
"time": "13:00",
"is_business_day": true
} |
Логіка аналогічна min, але:
для maxDate береться “найпізніший допустимий час”.
якщо
time— інтервал, то дляmaxDateвикористовується кінець інтервалу (логіка “найпізніший можливий час”).
Про startDate.time та conditions
У деяких sellingMethod у startDate додатково є:
time: "11:00 - 13:00"— допустиме вікно часу проведення аукціону (впливає на вибір часу в межах доби)conditions[]— правила для автовстановлення або альтернативної логіки (наприклад, коли auto_set: true і case.isPerishable: true)
Практичне використання на майданчиках
Майданчик може використовувати відповідь ендпоінту для:
обмеження вибору дати в UI:
minDateяк мінімально доступна дата,maxDateяк максимально доступна дата (якщо присутня)
валідації введеного значення до відправки в API запиті
відображення підказки Організатору типу:
“Найраніша дата початку аукціону: …”
“Дозволений діапазон: … – …”
Висновок
Ендпоінт повертає розрахунок на момент запиту (прив’язаний до
now).Ендпоінт є допоміжним: фінальна валідність auctionPeriod.startDate все одно перевіряється ЦБД при створенні/оновленні процедури згідно тих самих правил конфігу.
Якщо для sellingMethod не визначено validation.max, то maxDate не повертається.