Вітаємо на сайті документації по openprocurement.api!¶
Будь ласка повідомляйте про всі проблеми та поради покращень чи через розсилку чи через issue tracker.
Зміст:
Огляд¶
Open Procurement API це єдиний інтерфейс для бази даних Open Procurement, що є основним елементом інфраструктури Open Procurement.
Open Procurement API це REST-ful інтерфейс, що надає програмний доступ до бази даних Tender системи Open Procurement. Він надає URL-адреси для доступу до ресурсів і використовує вбудовані HTTP особливості, щоб отримувати команди та повертати відповіді. Це полегшує спілкування.
API приймає JSON або form-encoded вміст у запитах. Він повертає JSON вміст у всіх свої відповідях, включно з помилками. Підтримується лише UTF-8 кодування і для запитів, і для відповідей.
Домовленості¶
Всі API POST та PUT запити очікують об’єкт верхнього рівня з єдиним елементом з назвою data. Відповіді з повідомленням про успіх будуть віддзеркалювати цей формат. Елемент data повинен сам бути об’єктом, що містить параметри запиту. Якщо створюється нова закупівля, то це ті поля, які ми хочемо встановити на самій закупівлі.
Якщо запит був успішним, ми отримаємо код відповіді 201, який вказує, що об’єкт був створений. Ця відповідь буде мати data поле на верхньому рівні, яке вміщуватиме повну інформацію про нову закупівлю, включно з ID.
Якщо під час запиту виникли труднощі, ми отримаємо інший код стану та JSON, який при поверненні міститиме errors поле на верхньому рівні зі списком проблем. Ми дивимось на першу з них і видруковуємо її повідомлення.
Основні задачі¶
Бізнес логіка¶
Стан проекту¶
Статус цього проекту - перед-альфа
Репозиторій джерельних текстів цього проекту є на GitHub:
https://github.com/openprocurement/openprocurement.api
Повідомляйте про всі проблеми та поради через issue tracker. Загальне обговорення відбувається через розсилку Open Procurement General.
Стабільність API¶
API є дуже нестабільним. Хоча точки входу API будуть відносно стабільними, формати обміну даними будуть часно змінюватись. Зміни в API обговорюються через Open Procurement API розсилку.
Звіт про зміни¶
0.8¶
Випущено: 2015-05-12
Нові властивості:
Період зупинки для кожної винагороди окремо
Додано новий механізм скасування тендера
0.7¶
Випущено: 2015-03-13
Нові властивості:
Обов’язкове встановлення назви, класифікації та additionalClassifications
Додана валідація для однакових cpv груп товарів
Дадано завантаження документів закупівлі користувачем аукціону
Закриття закупівлі підписанням контракту
Жорсткий режим для операцій з патчами
Відміна активної винагороди
Модифікації:
Автентифікований доступ до бази даних couchdb
Виправлена аутентифікація методів PUT та PATCH
Оптимізовано запити до БД при старті
Виправлені поля deliveryLocation
Виправлено поле редагування формату в Документах
Виправлені обмеження заватаження документів цінової пропозиції
0.6¶
Випущено: 2014-12-15
Нові властивості:
Авторизація токена брокера
Авторизація токена дійової особи
Додано Item.deliveryLocation
Блокування завершення закупівлі через невирішені скарги
Перенесення невдалих аукціонів
0.5¶
Випущено: не випущено
Нові властивості:
Генерація токена дійової особи
Додано Item.deliveryAddress
Логіка послідовного розгляду визначення переможця
Модифікації:
Tender.deliveryDate перенесено до Item.deliveryDate
0.4¶
Випущено: 2014-12-01
Нові властивості:
Подання скарги на визначення переможця
Додатки до скарг
Відміна закупівлі
Видимість авторів питань
Модифікації:
Уточнення списку статусів закупівлі
0.3¶
Випущено: 2014-11-21
Нові властивості:
Можливість задавати питання
Подача скарги на тендерні умови
Можливість відповідати на запитання
Публікація вирішення скарги
Вичитка запитань та відповідей, скарг та їх рішень
Планувальник аукціону
Контролер аукціону
Модифікації:
Стандарт даних налаштований відповідно до Open Contracting 1.0RC
точки входу /bidders/ перейменовані в /bids/
властивість modified перейменована в modificationDate
0.2¶
Випущено: 2014-11-07
Сортування списку закупівель (оптимізоване для синхронних операцій)
Вичитка документів
Відстеження змін
Опції: Pretty-print, JSONP
Впровадження станів та перемикання станів з урахуванням часу
0.1¶
Випущено: 2014-10-24
Налаштування загальної збірки, тестування, розгортання та ci фреймворка.
Створення/модифікація закупівлі
Додавання/модифікація/відміна цінової пропозиції
Визначення переможця/дискваліфікація цінових пропозицій
Наступні кроки¶
Можливо вам буде цікаво прочитати Туторіал, або API Довідник.
Аутентифікація¶
Деякі запити API (особливо GET запити лише для читання) не потребують аутентифікації. Інші, ті, які модифікують дані у базі даних, потребують аутентифікації брокера через ключ API. Додатково видаються токени власника, щоб забезпечити кілька ролей дійових осіб при створенні об’єкта.
Ключі API¶
Ключ API - це ім’я користувача, що буде використовуватись зі схемою Базової аутентифікації.
Токени власника¶
Отримання токена¶
Токен видається, коли об’єкт створюється в базі даних:
$ http --auth broker: -j POST https://api-sandbox.openprocurement.org/api/0/tenders data:=@./school-tender.json
POST /api/0/tenders HTTP/1.1
Authorization: Basic YnJva2VyOg==
Content-Type: application/json; charset=utf-8
{
"data": {
"enquiryPeriod": {
"endDate": "2015-12-01"
},
"items": [
{
"description": "Послуги шкільних їдалень"
}
],
"minimalStep": {
"amount": 35000,
"currency": "UAH",
"valueAddedTaxIncluded": true
},
"procuringEntity": {
"address": {
"countryName": "Україна",
"locality": "м. Вінниця",
"postalCode": "21027",
"region": "м. Вінниця",
"streetAddress": "вул. Стахурського. 22"
},
"contactPoint": {
"name": "Куца Світлана Валентинівна",
"telephone": "+380 (432) 46-53-02",
"url": "http://sch10.edu.vn.ua/"
},
"identifier": {
"id": "21725150",
"legalName": "Заклад \"Загальноосвітня школа І-ІІІ ступенів № 10 Вінницької міської ради\"",
"scheme": "UA-EDR"
},
"name": "ЗОСШ #10 м.Вінниці"
},
"tenderPeriod": {
"endDate": "2015-12-10"
},
"value": {
"amount": 500000,
"currency": "UAH",
"valueAddedTaxIncluded": true
}
}
}
HTTP/1.1 201 Created
Content-Type: application/json; charset=UTF-8
Location: https://api-sandbox.openprocurement.org/api/0/tenders/166b4a36611047a492d85c3693b86b4e
{
"access": {
"token": "953613dd25d6421588b2597504b747ed"
},
"data": {
"dateModified": "2014-12-26T21:30:56.586789+02:00",
"enquiryPeriod": {
"endDate": "2015-12-01T00:00:00+02:00",
"startDate": "2014-12-26T21:30:56.522694+02:00"
},
"id": "166b4a36611047a492d85c3693b86b4e",
"items": [
{
"description": "Послуги шкільних їдалень"
}
],
"minimalStep": {
"amount": 35000.0,
"currency": "UAH",
"valueAddedTaxIncluded": true
},
"owner": "broker",
"procuringEntity": {
"address": {
"countryName": "Україна",
"locality": "м. Вінниця",
"postalCode": "21027",
"region": "м. Вінниця",
"streetAddress": "вул. Стахурського. 22"
},
"contactPoint": {
"name": "Куца Світлана Валентинівна",
"telephone": "+380 (432) 46-53-02",
"url": "http://sch10.edu.vn.ua/"
},
"identifier": {
"id": "21725150",
"legalName": "Заклад \"Загальноосвітня школа І-ІІІ ступенів № 10 Вінницької міської ради\"",
"scheme": "UA-EDR"
},
"name": "ЗОСШ #10 м.Вінниці"
},
"status": "active.enquiries",
"tenderID": "UA-2014-12-26-000050",
"tenderPeriod": {
"endDate": "2015-12-10T00:00:00+02:00",
"startDate": "2015-12-01T00:00:00+02:00"
},
"value": {
"amount": 500000.0,
"currency": "UAH",
"valueAddedTaxIncluded": true
}
}
}
У відповіді є access разом з token. Це значення можна використати для модифікації об’єктів у “ролі Власника”.
Використання токена¶
Ви можете передати токен доступу такими способами:
параметр рядка URL запиту acc_token
заголовок HTTP запиту X-Access-Token
access.token в тілі запитів POST/PUT/PATCH
Ось приклад, де токен передається як рядок URL запиту:
$ http --auth broker: -j PATCH https://api-sandbox.openprocurement.org/api/0/tenders/166b4a36611047a492d85c3693b86b4e?acc_token=953613dd25d6421588b2597504b747ed data:=@./school-tender-patch.json
PATCH /api/0/tenders/166b4a36611047a492d85c3693b86b4e?acc_token=953613dd25d6421588b2597504b747ed HTTP/1.1
Authorization: Basic YnJva2VyOg==
Content-Type: application/json; charset=utf-8
{
"data": {
"enquiryPeriod": {
"endDate": "2015-05-29T00:00:00"
},
"items": [
{
"additionalClassifications": [
{
"description": "Послуги шкільних їдалень",
"id": "55.51.10.300",
"scheme": "ДКПП"
}
],
"classification": {
"description": "Послуги з харчування у школах",
"id": "55523100-3",
"scheme": "CPV"
},
"description": "Послуги шкільних їдалень",
"quantity": 9,
"unit": {
"code": "MON",
"name": "month"
}
}
],
"minimalStep": {
"amount": 35000,
"currency": "UAH",
"valueAddedTaxIncluded": true
},
"tenderPeriod": {
"endDate": "2015-06-07T10:00:00",
"startDate": "2015-05-29T00:00:00"
},
"value": {
"amount": 500000,
"currency": "UAH",
"valueAddedTaxIncluded": true
}
}
}
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": {
"dateModified": "2014-12-26T21:30:58.424362+02:00",
"enquiryPeriod": {
"endDate": "2015-05-29T00:00:00+02:00",
"startDate": "2014-12-26T21:30:56.522694+02:00"
},
"id": "166b4a36611047a492d85c3693b86b4e",
"items": [
{
"additionalClassifications": [
{
"description": "Послуги шкільних їдалень",
"id": "55.51.10.300",
"scheme": "ДКПП"
}
],
"classification": {
"description": "Послуги з харчування у школах",
"id": "55523100-3",
"scheme": "CPV"
},
"description": "Послуги шкільних їдалень",
"quantity": 9,
"unit": {
"code": "MON",
"name": "month"
}
}
],
"minimalStep": {
"amount": 35000.0,
"currency": "UAH",
"valueAddedTaxIncluded": true
},
"owner": "broker",
"procuringEntity": {
"address": {
"countryName": "Україна",
"locality": "м. Вінниця",
"postalCode": "21027",
"region": "м. Вінниця",
"streetAddress": "вул. Стахурського. 22"
},
"contactPoint": {
"name": "Куца Світлана Валентинівна",
"telephone": "+380 (432) 46-53-02",
"url": "http://sch10.edu.vn.ua/"
},
"identifier": {
"id": "21725150",
"legalName": "Заклад \"Загальноосвітня школа І-ІІІ ступенів № 10 Вінницької міської ради\"",
"scheme": "UA-EDR"
},
"name": "ЗОСШ #10 м.Вінниці"
},
"status": "active.enquiries",
"tenderID": "UA-2014-12-26-000050",
"tenderPeriod": {
"endDate": "2015-06-07T10:00:00+02:00",
"startDate": "2015-05-29T00:00:00+02:00"
},
"value": {
"amount": 500000.0,
"currency": "UAH",
"valueAddedTaxIncluded": true
}
}
}
Відповіді¶
Після обробки API завжди надає відповідь, звітуючи або про успіх, або про помилку.
Коди стану¶
У будь-якому випадку API повинен повернути Код стану HTTP, що вказуватиме природу помилки (див. внизу), з тілом відповіді у форматі JSON, що міститиме додаткову інформацію.
- 200
Успіх. Якщо це був запит про інформацію, то вона буде доступна у data полі на верхньому рівні тіла відповіді.
- 201
Успіх (для створення об’єкта). Його інформація доступна у data полі на верхньому рівні тіла відповіді. API URL, де об’єкт можна прочитати, міститься у Location заголовку відповіді.
- 400
Невірний запит. Зазвичай це відбувається через відсутній або неправильний параметр. Перевірте документацію та синтаксис вашого запиту і спробуйте ще раз.
- 401
Відсутність прав. Не було надано дійсного API ключа разом із запитом, тому API не може зв’язати користувача із запитом.
- 403
Заборонено. API ключ та синтаксис запиту були дійсними, але сервер відмовляється виконати запит. Це може статися, якщо ви пробуєте прочитати або записати об’єкти чи властивості, до яких не маєте доступу.
- 404
Не знайдено. Або даний метод та шлях запиту не вказують відому дію для API, або об’єкт, вказаний у запиті, не існує.
- 429
Перевищено допустиму частоту запитів.
- 500
Помилка сервера. Була проблема зі сторони OpenProcurement.
Відповідь з повідомленням про успіх¶
Кожен успішний запит вичитки, створення, оновлення, чи заміни отримує відповідь, що містить data атрибут. Цей data атрибут містить повне представлення JSON об’єкта після операції. Якщо деякі дані були згенеровані у результаті обробки (наприклад, нові ID об’єкта або modified дата), то вони присутні у відповіді.
Запити списку отримують схожі відповіді, але замість одного об’єкта в data атрибуті, JSON відповідь містить колекцію об’єктів.
Приклад відповіді з повідомленням про успіх¶
Це відповідь, що описує закупівлю.
HTTP/1.1 200 OK
{
"data":{
"id": "64e93250be76435397e8c992ed4214d1",
"tenderID": "UA-2014-DUS-156",
"dateModified": "2014-10-27T08:06:58.158Z",
"procuringEntity": {
"name": "ДУС"б
"identifier": {
"name": "Державне управління справами",
"scheme": "UA-EDR",
"uid": "00037256"
},
"address": {
"countryName": "Україна",
"postalCode": "01220",
"region": "м. Київ",
"locality": "м. Київ",
"streetAddress": "вул. Банкова, 11, корпус 1"
}
},
"value": {
"amount": 500,
"currency": "UAH",
"valueAddedTaxIncluded": true
},
"items": [
{
"description": "футляри до державних нагород",
"classification": {
"scheme": "CPV",
"id": "44617100-9",
"description": "Cartons"
},
"additionalClassifications": [
{
"scheme": "ДКПП",
"id": "17.21.1",
"description": "папір і картон гофровані, паперова й картонна тара"
}
],
"quantity": 5,
"unit": {
"name": "item"
},
"deliveryDate": {
"endDate": "2014-11-20T00:00:00"
}
}
],
"clarificationPeriod": {
"endDate": "2014-10-31T00:00:00"
},
"tenderPeriod": {
"startDate": "2014-11-03T00:00:00",
"endDate": "2014-11-06T10:00:00"
},
"minimalStep": {
"amount": 35,
"currency", "UAH",
"valueAddedTaxIncluded": true
}
}
}
Відповідь з повідомленням про помилку¶
У випадку помилки, тіло відповіді міститиме errors поле на вищому рівні. Воно містить масив як мінімум одного помилкового об’єкта описаного нижче:
location: | Частина запиту спричинює помилку. Можливі значення це header (заголовок) або body (тіло). |
---|---|
name: |
|
description: | Докладний (придатний для читання людиною) опис помилки. |
Приклад відповіді з повідомленням про помилку¶
Зразок нижче вказує на неповний запит.
HTTP/1.1 400 Missing input
{
"status": "error",
"errors": [
{
"location": "body",
"name": "data",
"description": "No JSON object could be decoded"
}
]
}
Опції¶
Крім надання полів та їхніх значень у запиті ви можете ще вказати опції для контролю над тим, як буде оброблятись запит і як буде генеруватись відповідь. Для GET запитів, опції вказуються як URL параметри з префіксом opt_. Для POST чи PUT запитів опції вказуються в тілі, всередині об’єктів опцій вищого рівня (схожих на обє’кт даних). Опція вказана в тілі перевизначає opt_ опцію з URL параметра.
Ці опції можна комбінувати в одному запиті, хоча деякі з них можуть викликати конфлікт у відповіді.
pretty: | ?opt_pretty options: { pretty: true } Надає відповідь у форматі “pretty”. У випадку з JSON це означає правильне розбиття рядків і відступи для зручності читання. Це займе додатковий час і збільшить розмір відповіді, тому краще буде використовувати цю опцію тільки під час налагоджування (debugging). |
---|---|
jsonp: | ?opt_jsonp=myCallback Повертає відповідь у форматі JSON-P замість простого JSON, щоб дозволити запитам приходити з браузерів і працювати навколо “однакової політики походження (same origin policy).” Функція названа так само як значення параметра opt_jsonp буде викликана з одним аргументом - JavaScript об’єктом, що представляє відповідь. |
fields: | ?opt_fields=comma,separated,field,list Список додаткових полів, що міститимуться у відповіді. |
Завантаження документів¶
Всі точки входу API завантаження документів використовують той самий набір правил.
Content-Type: multipart/form-data¶
Це стандартний підхід до HTML форми завантаження файлів, що визначається RFC 1867. Вимоги:
Елемент форми повинен мати назву file.
Завантажити можна лише один документ.
Приклад cURL:
curl --form file=@page.pdf http://api-sandbox.openprocurement.org/api/0/tenders/f6882fa63d5141bcabec54a4766eec61/documents
Приклад HTTPie:
http -f POST http://api-sandbox.openprocurement.org/api/0/tenders/f6882fa63d5141bcabec54a4766eec61/documents file@page.pdf
Сам запит повинен виглядати так:
POST /api/0.2/tenders/f6882fa63d5141bcabec54a4766eec61/documents HTTP/1.1
Content-Type: multipart/form-data; boundary=28e02f7d4a3c4da19c4e2589329ad36f
Host: api-sandbox.openprocurement.org
--28e02f7d4a3c4da19c4e2589329ad36f
Content-Disposition: form-data; name="file"; filename="page.pdf"
..Contents of PDF goes here...
--28e02f7d4a3c4da19c4e2589329ad36f--
Туторіал¶
Розглянемо основні правила¶
Подивимось як працює точка входу /tenders:
$ http https://api-sandbox.openprocurement.org/api/0/tenders
GET /api/0/tenders HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": [],
"next_page": {
"offset": "2014-12-01T17:39:19.104103+02:00",
"path": "/api/0/tenders?offset=2014-12-01T17%3A39%3A19.104103%2B02%3A00",
"uri": "http://api-sandbox.openprocurement.org/api/0/tenders?offset=2014-12-01T17%3A39%3A19.104103%2B02%3A00"
}
}
При виклику видає пустий набір.
Спробуймо створити нову закупівлю:
$ http POST https://api-sandbox.openprocurement.org/api/0/tenders
POST /api/0/tenders HTTP/1.1
HTTP/1.1 415 Unsupported Media Type
Content-Type: application/json; charset=UTF-8
{
"errors": [
{
"description": "Content-Type header should be one of ['application/json']",
"location": "header",
"name": "Content-Type"
}
],
"status": "error"
}
Помилка вказує, що єдиний прийнятний тип вмісту це application/json.
Задовольнимо вимогу типу вмісту (Content-type):
$ http -j POST https://api-sandbox.openprocurement.org/api/0/tenders
POST /api/0/tenders HTTP/1.1
Content-Type: application/json; charset=utf-8
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json; charset=UTF-8
{
"errors": [
{
"description": "No JSON object could be decoded",
"location": "body",
"name": "data"
}
],
"status": "error"
}
Помилка вказує, що data не знайдено у тілі JSON.
Створення закупівлі¶
Введемо data атрибут у поданому тілі:
$ http -j POST https://api-sandbox.openprocurement.org/api/0/tenders data:={}
POST /api/0/tenders HTTP/1.1
Content-Type: application/json; charset=utf-8
{
"data": {}
}
HTTP/1.1 201 Created
Content-Type: application/json; charset=UTF-8
Location: http://api-sandbox.openprocurement.org/api/0/tenders/779630aecd87417097dcfb48871b6990
{
"access": {
"token": "8f36838c54af4d79bf33cf00915926d1"
},
"data": {
"dateModified": "2014-12-01T17:39:21.504836+02:00",
"enquiryPeriod": {
"startDate": "2014-12-01T17:39:21.504836+02:00"
},
"id": "779630aecd87417097dcfb48871b6990",
"status": "active.enquiries",
"tenderID": "UA-779630aecd87417097dcfb48871b6990"
}
}
Успіх! Тепер ми бачимо, що новий об’єкт було створено. Код відповіді 201 та заголовок відповіді Location вказує місцерозташування створеного об’єкта. Тіло відповіді показує інформацію про створену закупівлю, її внутрішнє id (яке співпадає з сегментом Location), її офіційне tenderID та dateModified дату, що показує час, коли закупівля востаннє модифікувалась. Зверніть увагу, що закупівля створюється зі статусом active.enquiries.
Використаємо URL створеного об’єкта (заголовок відповіді Location):
$ http https://api-sandbox.openprocurement.org/api/0/tenders/779630aecd87417097dcfb48871b6990
GET /api/0/tenders/779630aecd87417097dcfb48871b6990 HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": {
"dateModified": "2014-12-01T17:39:21.504836+02:00",
"enquiryPeriod": {
"startDate": "2014-12-01T17:39:21.504836+02:00"
},
"id": "779630aecd87417097dcfb48871b6990",
"status": "active.enquiries",
"tenderID": "UA-779630aecd87417097dcfb48871b6990"
}
}
Ми бачимо, що ту ж відповідь, що і після створення закупівлі.
Подивимось, що показує список закупівель:
$ http https://api-sandbox.openprocurement.org/api/0/tenders
GET /api/0/tenders HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": [
{
"dateModified": "2014-12-01T17:39:23.440187+02:00",
"id": "779630aecd87417097dcfb48871b6990"
}
],
"next_page": {
"offset": "2014-12-01T17:39:24.322407+02:00",
"path": "/api/0/tenders?offset=2014-12-01T17%3A39%3A24.322407%2B02%3A00",
"uri": "http://api-sandbox.openprocurement.org/api/0/tenders?offset=2014-12-01T17%3A39%3A24.322407%2B02%3A00"
}
}
Ми бачимо внутрішнє id закупівлі (що може бути використано для побудови повної URL-адреси, якщо додати http://api-sandbox.openprocurement.org/api/0/”-“tenders/) та її dateModified дату.
Спробуймо створити закупівлю з більшою кількістю даних використовуючи procuringEntity закупівлі:
$ http --auth broker: -j POST https://api-sandbox.openprocurement.org/api/0/tenders data:=@./school-tender.json
POST /api/0/tenders HTTP/1.1
Authorization: Basic YnJva2VyOg==
Content-Type: application/json; charset=utf-8
{
"data": {
"enquiryPeriod": {
"endDate": "2015-12-01"
},
"items": [
{
"description": "Послуги шкільних їдалень"
}
],
"minimalStep": {
"amount": 35000,
"currency": "UAH",
"valueAddedTaxIncluded": true
},
"procuringEntity": {
"address": {
"countryName": "Україна",
"locality": "м. Вінниця",
"postalCode": "21027",
"region": "м. Вінниця",
"streetAddress": "вул. Стахурського. 22"
},
"contactPoint": {
"name": "Куца Світлана Валентинівна",
"telephone": "+380 (432) 46-53-02",
"url": "http://sch10.edu.vn.ua/"
},
"identifier": {
"id": "21725150",
"legalName": "Заклад \"Загальноосвітня школа І-ІІІ ступенів № 10 Вінницької міської ради\"",
"scheme": "UA-EDR"
},
"name": "ЗОСШ #10 м.Вінниці"
},
"tenderPeriod": {
"endDate": "2015-12-10"
},
"value": {
"amount": 500000,
"currency": "UAH",
"valueAddedTaxIncluded": true
}
}
}
HTTP/1.1 201 Created
Content-Type: application/json; charset=UTF-8
Location: https://api-sandbox.openprocurement.org/api/0/tenders/166b4a36611047a492d85c3693b86b4e
{
"access": {
"token": "953613dd25d6421588b2597504b747ed"
},
"data": {
"dateModified": "2014-12-26T21:30:56.586789+02:00",
"enquiryPeriod": {
"endDate": "2015-12-01T00:00:00+02:00",
"startDate": "2014-12-26T21:30:56.522694+02:00"
},
"id": "166b4a36611047a492d85c3693b86b4e",
"items": [
{
"description": "Послуги шкільних їдалень"
}
],
"minimalStep": {
"amount": 35000.0,
"currency": "UAH",
"valueAddedTaxIncluded": true
},
"owner": "broker",
"procuringEntity": {
"address": {
"countryName": "Україна",
"locality": "м. Вінниця",
"postalCode": "21027",
"region": "м. Вінниця",
"streetAddress": "вул. Стахурського. 22"
},
"contactPoint": {
"name": "Куца Світлана Валентинівна",
"telephone": "+380 (432) 46-53-02",
"url": "http://sch10.edu.vn.ua/"
},
"identifier": {
"id": "21725150",
"legalName": "Заклад \"Загальноосвітня школа І-ІІІ ступенів № 10 Вінницької міської ради\"",
"scheme": "UA-EDR"
},
"name": "ЗОСШ #10 м.Вінниці"
},
"status": "active.enquiries",
"tenderID": "UA-2014-12-26-000050",
"tenderPeriod": {
"endDate": "2015-12-10T00:00:00+02:00",
"startDate": "2015-12-01T00:00:00+02:00"
},
"value": {
"amount": 500000.0,
"currency": "UAH",
"valueAddedTaxIncluded": true
}
}
}
І знову код відповіді 201 Created, заголовок Location і тіло з додатковим id, tenderID, та властивість dateModified.
Перевіримо, що містить реєстр закупівель:
$ http https://api-sandbox.openprocurement.org/api/0/tenders
GET /api/0/tenders HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": [
{
"dateModified": "2014-12-01T17:39:23.440187+02:00",
"id": "779630aecd87417097dcfb48871b6990"
},
{
"dateModified": "2014-12-01T17:39:25.289180+02:00",
"id": "327c00d16cff4c37be5bd4915cdff8a3"
}
],
"next_page": {
"offset": "2014-12-01T17:39:26.138720+02:00",
"path": "/api/0/tenders?offset=2014-12-01T17%3A39%3A26.138720%2B02%3A00",
"uri": "http://api-sandbox.openprocurement.org/api/0/tenders?offset=2014-12-01T17%3A39%3A26.138720%2B02%3A00"
}
}
Дійсно, в нас зараз є дві закупівлі.
Модифікація закупівлі¶
Оновимо закупівлю шляхом надання їй усіх інших важливих властивостей:
$ http --auth broker: -j PATCH https://api-sandbox.openprocurement.org/api/0/tenders/166b4a36611047a492d85c3693b86b4e?acc_token=953613dd25d6421588b2597504b747ed data:=@./school-tender-patch.json
PATCH /api/0/tenders/166b4a36611047a492d85c3693b86b4e?acc_token=953613dd25d6421588b2597504b747ed HTTP/1.1
Authorization: Basic YnJva2VyOg==
Content-Type: application/json; charset=utf-8
{
"data": {
"enquiryPeriod": {
"endDate": "2015-05-29T00:00:00"
},
"items": [
{
"additionalClassifications": [
{
"description": "Послуги шкільних їдалень",
"id": "55.51.10.300",
"scheme": "ДКПП"
}
],
"classification": {
"description": "Послуги з харчування у школах",
"id": "55523100-3",
"scheme": "CPV"
},
"description": "Послуги шкільних їдалень",
"quantity": 9,
"unit": {
"code": "MON",
"name": "month"
}
}
],
"minimalStep": {
"amount": 35000,
"currency": "UAH",
"valueAddedTaxIncluded": true
},
"tenderPeriod": {
"endDate": "2015-06-07T10:00:00",
"startDate": "2015-05-29T00:00:00"
},
"value": {
"amount": 500000,
"currency": "UAH",
"valueAddedTaxIncluded": true
}
}
}
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": {
"dateModified": "2014-12-26T21:30:58.424362+02:00",
"enquiryPeriod": {
"endDate": "2015-05-29T00:00:00+02:00",
"startDate": "2014-12-26T21:30:56.522694+02:00"
},
"id": "166b4a36611047a492d85c3693b86b4e",
"items": [
{
"additionalClassifications": [
{
"description": "Послуги шкільних їдалень",
"id": "55.51.10.300",
"scheme": "ДКПП"
}
],
"classification": {
"description": "Послуги з харчування у школах",
"id": "55523100-3",
"scheme": "CPV"
},
"description": "Послуги шкільних їдалень",
"quantity": 9,
"unit": {
"code": "MON",
"name": "month"
}
}
],
"minimalStep": {
"amount": 35000.0,
"currency": "UAH",
"valueAddedTaxIncluded": true
},
"owner": "broker",
"procuringEntity": {
"address": {
"countryName": "Україна",
"locality": "м. Вінниця",
"postalCode": "21027",
"region": "м. Вінниця",
"streetAddress": "вул. Стахурського. 22"
},
"contactPoint": {
"name": "Куца Світлана Валентинівна",
"telephone": "+380 (432) 46-53-02",
"url": "http://sch10.edu.vn.ua/"
},
"identifier": {
"id": "21725150",
"legalName": "Заклад \"Загальноосвітня школа І-ІІІ ступенів № 10 Вінницької міської ради\"",
"scheme": "UA-EDR"
},
"name": "ЗОСШ #10 м.Вінниці"
},
"status": "active.enquiries",
"tenderID": "UA-2014-12-26-000050",
"tenderPeriod": {
"endDate": "2015-06-07T10:00:00+02:00",
"startDate": "2015-05-29T00:00:00+02:00"
},
"value": {
"amount": 500000.0,
"currency": "UAH",
"valueAddedTaxIncluded": true
}
}
}
Ми бачимо, що додаткові властивості об’єднані з існуючими даними закупівлі. Додатково оновлена властивість dateModified, щоб відображати останню дату модифікації.
Ще одна перевірка списку відображає нову дату модифікації:
$ http https://api-sandbox.openprocurement.org/api/0/tenders
GET /api/0/tenders HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": [
{
"dateModified": "2014-12-01T17:39:23.440187+02:00",
"id": "779630aecd87417097dcfb48871b6990"
},
{
"dateModified": "2014-12-01T17:39:26.929784+02:00",
"id": "327c00d16cff4c37be5bd4915cdff8a3"
}
],
"next_page": {
"offset": "2014-12-01T17:39:27.728690+02:00",
"path": "/api/0/tenders?offset=2014-12-01T17%3A39%3A27.728690%2B02%3A00",
"uri": "http://api-sandbox.openprocurement.org/api/0/tenders?offset=2014-12-01T17%3A39%3A27.728690%2B02%3A00"
}
}
Завантаження документації¶
Замовник може завантажити PDF файл у створену закупівлю. Завантаження повинно відбуватись згідно правил Завантаження документів.
$ http --form POST https://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents file@./Notice.pdf
POST /api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents HTTP/1.1
Content-Type: multipart/form-data; boundary=2add052250fb42cd8d2736fd34baa7f9
+-----------------------------------------+
| NOTE: binary data not shown in terminal |
+-----------------------------------------+
HTTP/1.1 201 Created
Content-Type: application/json; charset=UTF-8
Location: http://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents/86b33019f2174f37b5d715c924ae6cd4
{
"data": {
"dateModified": "2014-12-01T17:39:29.001262+02:00",
"datePublished": "2014-12-01T17:39:29.001218+02:00",
"format": "text/plain",
"id": "86b33019f2174f37b5d715c924ae6cd4",
"title": "Notice.pdf",
"url": "http://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents/86b33019f2174f37b5d715c924ae6cd4?download=d0267f352f384acca5081a04347fd64d"
}
}
Код відповіді 201 Created та заголовок Location підтверджують, що документ було створено. Додатково можна зробити запит точки входу API колекції документів, щоб підтвердити дію:
$ http https://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents
GET /api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": [
{
"dateModified": "2014-12-01T17:39:29.001262+02:00",
"datePublished": "2014-12-01T17:39:29.001218+02:00",
"format": "text/plain",
"id": "86b33019f2174f37b5d715c924ae6cd4",
"title": "Notice.pdf",
"url": "http://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents/86b33019f2174f37b5d715c924ae6cd4?download=d0267f352f384acca5081a04347fd64d"
}
]
}
Один елемент масиву описує завантажений документ. Ми можемо завантажити більше документів:
$ http --form POST https://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents file@./AwardCriteria.pdf
POST /api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents HTTP/1.1
Content-Type: multipart/form-data; boundary=dbae19b2722a47c481e3072c8ed958d4
+-----------------------------------------+
| NOTE: binary data not shown in terminal |
+-----------------------------------------+
HTTP/1.1 201 Created
Content-Type: application/json; charset=UTF-8
Location: http://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents/4b65c046be264da4a430823d4376a757
{
"data": {
"dateModified": "2014-12-01T17:39:31.443132+02:00",
"datePublished": "2014-12-01T17:39:31.443089+02:00",
"format": "text/plain",
"id": "4b65c046be264da4a430823d4376a757",
"title": "AwardCriteria.pdf",
"url": "http://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents/4b65c046be264da4a430823d4376a757?download=d0ef7d53169041ed8093172c6ba6870c"
}
}
І знову можна перевірити, що є два завантажених документа.
$ http https://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents
GET /api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": [
{
"dateModified": "2014-12-01T17:39:29.001262+02:00",
"datePublished": "2014-12-01T17:39:29.001218+02:00",
"format": "text/plain",
"id": "86b33019f2174f37b5d715c924ae6cd4",
"title": "Notice.pdf",
"url": "http://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents/86b33019f2174f37b5d715c924ae6cd4?download=d0267f352f384acca5081a04347fd64d"
},
{
"dateModified": "2014-12-01T17:39:31.443132+02:00",
"datePublished": "2014-12-01T17:39:31.443089+02:00",
"format": "text/plain",
"id": "4b65c046be264da4a430823d4376a757",
"title": "AwardCriteria.pdf",
"url": "http://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents/4b65c046be264da4a430823d4376a757?download=d0ef7d53169041ed8093172c6ba6870c"
}
]
}
Якщо сталась помилка, ми можемо ще раз завантажити документ поверх старої версії:
$ http --form PUT https://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents/4b65c046be264da4a430823d4376a757 file@./AwardCriteria-v2.pdf
PUT /api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents/4b65c046be264da4a430823d4376a757 HTTP/1.1
Content-Type: multipart/form-data; boundary=fdb76865e76a4140994502a017fd6e14
+-----------------------------------------+
| NOTE: binary data not shown in terminal |
+-----------------------------------------+
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": {
"dateModified": "2014-12-01T17:39:33.717002+02:00",
"datePublished": "2014-12-01T17:39:31.443089+02:00",
"format": "text/plain",
"id": "4b65c046be264da4a430823d4376a757",
"title": "AwardCriteria-v2.pdf",
"url": "http://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents/4b65c046be264da4a430823d4376a757?download=e8300d4763ff4968aef4c71b4e15a297"
}
}
І ми бачимо, що вона перекриває оригінальну версію:
$ http https://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents
GET /api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": [
{
"dateModified": "2014-12-01T17:39:29.001262+02:00",
"datePublished": "2014-12-01T17:39:29.001218+02:00",
"format": "text/plain",
"id": "86b33019f2174f37b5d715c924ae6cd4",
"title": "Notice.pdf",
"url": "http://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents/86b33019f2174f37b5d715c924ae6cd4?download=d0267f352f384acca5081a04347fd64d"
},
{
"dateModified": "2014-12-01T17:39:33.717002+02:00",
"datePublished": "2014-12-01T17:39:31.443089+02:00",
"format": "text/plain",
"id": "4b65c046be264da4a430823d4376a757",
"title": "AwardCriteria-v2.pdf",
"url": "http://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents/4b65c046be264da4a430823d4376a757?download=e8300d4763ff4968aef4c71b4e15a297"
}
]
}
Уточнення¶
Коли закупівля має статус active.enquiry, зацікавлені сторони можуть задавати питання:
$ http --auth broker: -j POST https://api-sandbox.openprocurement.org/api/0/tenders/9b791af414c64892bb9b1f41e91a84af/questions data:=@./question.json
POST /api/0/tenders/9b791af414c64892bb9b1f41e91a84af/questions HTTP/1.1
Authorization: Basic YnJva2VyOg==
Content-Type: application/json; charset=utf-8
{
"data": {
"author": {
"address": {
"countryName": "Україна",
"locality": "м. Вінниця",
"postalCode": "21100",
"region": "м. Вінниця",
"streetAddress": "вул. Островського, 33"
},
"contactPoint": {
"email": "soleksuk@gmail.com",
"name": "Сергій Олексюк",
"telephone": "+380 (432) 21-69-30"
},
"identifier": {
"id": "13313462",
"legalName": "Державне комунальне підприємство громадського харчування «Школяр»",
"scheme": "UA-EDR",
"uri": "http://sch10.edu.vn.ua/"
},
"name": "ДКП «Школяр»"
},
"description": "Просимо додати таблицю потрібної калорійності харчування по місяцях",
"title": "Калорійність по місяцях"
}
}
HTTP/1.1 201 Created
Content-Type: application/json; charset=UTF-8
Location: https://api-sandbox.openprocurement.org/api/0/tenders/9b791af414c64892bb9b1f41e91a84af/questions/3dfbb32cc2f44f75bfe5b44a3a0c287c
{
"data": {
"author": {
"address": {
"countryName": "Україна",
"locality": "м. Вінниця",
"postalCode": "21100",
"region": "м. Вінниця",
"streetAddress": "вул. Островського, 33"
},
"contactPoint": {
"email": "soleksuk@gmail.com",
"name": "Сергій Олексюк",
"telephone": "+380 (432) 21-69-30"
},
"identifier": {
"id": "13313462",
"legalName": "Державне комунальне підприємство громадського харчування «Школяр»",
"scheme": "UA-EDR",
"uri": "http://sch10.edu.vn.ua/"
},
"name": "ДКП «Школяр»"
},
"date": "2014-12-26T23:43:08.277770+02:00",
"description": "Просимо додати таблицю потрібної калорійності харчування по місяцях",
"id": "3dfbb32cc2f44f75bfe5b44a3a0c287c",
"title": "Калорійність по місяцях"
}
}
Учасник відповідає на них:
$ http --auth broker: -j PATCH https://api-sandbox.openprocurement.org/api/0/tenders/9b791af414c64892bb9b1f41e91a84af/questions/3dfbb32cc2f44f75bfe5b44a3a0c287c?acc_token=7face74d65fe4d37ba752aac8f409a0c data:=@./answer.json
PATCH /api/0/tenders/9b791af414c64892bb9b1f41e91a84af/questions/3dfbb32cc2f44f75bfe5b44a3a0c287c?acc_token=7face74d65fe4d37ba752aac8f409a0c HTTP/1.1
Authorization: Basic YnJva2VyOg==
Content-Type: application/json; charset=utf-8
{
"data": {
"answer": "Таблицю додано в файлі \"Kalorijnist.xslx\""
}
}
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": {
"answer": "Таблицю додано в файлі \"Kalorijnist.xslx\"",
"date": "2014-12-26T23:43:08.277770+02:00",
"description": "Просимо додати таблицю потрібної калорійності харчування по місяцях",
"id": "3dfbb32cc2f44f75bfe5b44a3a0c287c",
"title": "Калорійність по місяцях"
}
}
Можна отримати список запитань:
$ http -j https://api-sandbox.openprocurement.org/api/0/tenders/17f405f826424ae4949e98ff915412c9/questions
GET /api/0/tenders/17f405f826424ae4949e98ff915412c9/questions HTTP/1.1
Content-Type: application/json; charset=utf-8
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": [
{
"answer": "Таблицю додано в файлі \"Kalorijnist.xslx\"",
"date": "2014-12-26T23:27:51.300952+02:00",
"description": "Просимо додати таблицю потрібної калорійності харчування по місяцях",
"id": "88fe3d515eda494983a3973e699ba30d",
"title": "Калорійність по місяцях"
}
]
}
та окрему відповідь:
$ http -j https://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/questions/74fb1c83ec7549e0abd7284e05287b8b
GET /api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/questions/74fb1c83ec7549e0abd7284e05287b8b HTTP/1.1
Content-Type: application/json; charset=utf-8
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": {
"answer": "Таблицю додано в файлі \"Kalorijnist.xslx\"",
"date": "2014-12-01T17:39:35.616161+02:00",
"description": "Просимо додати таблицю потрібної калорійності харчування по місяцях",
"id": "74fb1c83ec7549e0abd7284e05287b8b",
"title": "Калорійність по місяцях"
}
}
Реєстрація пропозиції¶
Коли приходить Tender.tenderingPeriod.startDate, Закупівля отримує статус active.tendering, що дозволяє реєстрацію пропозицій.
Учасник може зареєструвати цінову пропозицію:
$ http -j POST https://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/bids data:=@./catering-bid.json
POST /api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/bids HTTP/1.1
Content-Type: application/json; charset=utf-8
{
"data": {
"tenderers": [
{
"address": {
"countryName": "Україна",
"locality": "м. Вінниця",
"postalCode": "21100",
"region": "м. Вінниця",
"streetAddress": "вул. Островського, 33"
},
"contactPoint": {
"email": "soleksuk@gmail.com",
"name": "Сергій Олексюк",
"telephone": "+380 (432) 21-69-30"
},
"identifier": {
"id": "13313462",
"legalName": "Державне комунальне підприємство громадського харчування «Школяр»",
"scheme": "https://ns.openprocurement.org/ua/edrpou",
"uri": "http://sch10.edu.vn.ua/"
},
"name": "ДКП «Школяр»"
}
],
"value": {
"amount": 475000
}
}
}
HTTP/1.1 201 Created
Content-Type: application/json; charset=UTF-8
Location: http://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/bids/9b2c1ec83e1646edb2ce6056d653d390
{
"data": {
"date": "2014-12-01T17:39:39.940339+02:00",
"id": "9b2c1ec83e1646edb2ce6056d653d390",
"tenderers": [
{
"address": {
"countryName": "Україна",
"locality": "м. Вінниця",
"postalCode": "21100",
"region": "м. Вінниця",
"streetAddress": "вул. Островського, 33"
},
"contactPoint": {
"email": "soleksuk@gmail.com",
"name": "Сергій Олексюк",
"telephone": "+380 (432) 21-69-30"
},
"identifier": {
"id": "13313462",
"legalName": "Державне комунальне підприємство громадського харчування «Школяр»",
"scheme": "https://ns.openprocurement.org/ua/edrpou",
"uri": "http://sch10.edu.vn.ua/"
},
"name": "ДКП «Школяр»"
}
],
"value": {
"amount": 475000.0,
"currency": "UAH",
"valueAddedTaxIncluded": true
}
}
}
І завантажити документ пропозиції:
$ http --form POST https://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/bids/9b2c1ec83e1646edb2ce6056d653d390/documents file@./Proposal.pdf
POST /api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/bids/9b2c1ec83e1646edb2ce6056d653d390/documents HTTP/1.1
Content-Type: multipart/form-data; boundary=77f84476a6c44bceb5d66b90b906ed1e
+-----------------------------------------+
| NOTE: binary data not shown in terminal |
+-----------------------------------------+
HTTP/1.1 201 Created
Content-Type: application/json; charset=UTF-8
Location: http://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/bids/9b2c1ec83e1646edb2ce6056d653d390/documents/316aecfb5cd9407ebc2ae980d86812d8
{
"data": {
"dateModified": "2014-12-01T17:39:41.114476+02:00",
"datePublished": "2014-12-01T17:39:41.114422+02:00",
"format": "text/plain",
"id": "316aecfb5cd9407ebc2ae980d86812d8",
"title": "Proposal.pdf",
"url": "http://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/bids/9b2c1ec83e1646edb2ce6056d653d390/documents/316aecfb5cd9407ebc2ae980d86812d8?download=efad340688de454486f267f8575477dc"
}
}
Можна перевірити завантажені документи:
$ http https://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/bids/9b2c1ec83e1646edb2ce6056d653d390/documents
GET /api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/bids/9b2c1ec83e1646edb2ce6056d653d390/documents HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": [
{
"dateModified": "2014-12-01T17:39:41.114476+02:00",
"datePublished": "2014-12-01T17:39:41.114422+02:00",
"format": "text/plain",
"id": "316aecfb5cd9407ebc2ae980d86812d8",
"title": "Proposal.pdf",
"url": "http://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/bids/9b2c1ec83e1646edb2ce6056d653d390/documents/316aecfb5cd9407ebc2ae980d86812d8?download=efad340688de454486f267f8575477dc"
}
]
}
Для найкращого результату (найбільшої економії) Закупівля повинна мати багато зареєстрованих учасників.
$ http -j POST https://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/bids data:=@./catering2-bid.json
POST /api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/bids HTTP/1.1
Content-Type: application/json; charset=utf-8
{
"data": {
"tenderers": [
{
"address": {
"countryName": "Україна",
"locality": "м. Вінниця",
"postalCode": "21018",
"region": "м. Вінниця",
"streetAddress": "вул. Юності, 30"
},
"contactPoint": {
"email": "alla.myhailova@i.ua",
"name": "Алла Михайлова",
"telephone": "+380 (432) 460-665"
},
"identifier": {
"id": "13306232",
"legalName": "Державне комунальне підприємство громадського харчування «Меридіан»",
"scheme": "https://ns.openprocurement.org/ua/edrpou",
"uri": "http://sch10.edu.vn.ua/"
},
"name": "ДКП «Меридіан»"
}
],
"value": {
"amount": 480000
}
}
}
HTTP/1.1 201 Created
Content-Type: application/json; charset=UTF-8
Location: http://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/bids/007f0144404c47829ba5b0a5eb9b9f17
{
"data": {
"date": "2014-12-01T17:39:42.828066+02:00",
"id": "007f0144404c47829ba5b0a5eb9b9f17",
"tenderers": [
{
"address": {
"countryName": "Україна",
"locality": "м. Вінниця",
"postalCode": "21018",
"region": "м. Вінниця",
"streetAddress": "вул. Юності, 30"
},
"contactPoint": {
"email": "alla.myhailova@i.ua",
"name": "Алла Михайлова",
"telephone": "+380 (432) 460-665"
},
"identifier": {
"id": "13306232",
"legalName": "Державне комунальне підприємство громадського харчування «Меридіан»",
"scheme": "https://ns.openprocurement.org/ua/edrpou",
"uri": "http://sch10.edu.vn.ua/"
},
"name": "ДКП «Меридіан»"
}
],
"value": {
"amount": 480000.0,
"currency": "UAH",
"valueAddedTaxIncluded": true
}
}
}
Аукціон¶
Після того, як аукціон заплановано, будь-хто може його відвідати для перегляду. Аукціон можна подивитись за допомогою Tender.auctionUrl:
$ http -j https://api-sandbox.openprocurement.org/api/0/tenders/e9ecf1e8f5da47c68d47f8d2c1499946
GET /api/0/tenders/e9ecf1e8f5da47c68d47f8d2c1499946 HTTP/1.1
Content-Type: application/json; charset=utf-8
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": {
"auctionPeriod": {
"startDate": "2014-12-04T00:00:00+02:02"
},
"auctionUrl": "http://auction-sandbox.openprocurement.org/tenders/e9ecf1e8f5da47c68d47f8d2c1499946",
"bids": [
{
"value": {
"amount": 475000.0,
"currency": "UAH",
"valueAddedTaxIncluded": true
}
},
{
"value": {
"amount": 480000.0,
"currency": "UAH",
"valueAddedTaxIncluded": true
}
}
],
"complaints": [
{
"author": {
"address": {
"countryName": "Україна",
"locality": "м. Вінниця",
"postalCode": "21100",
"region": "м. Вінниця",
"streetAddress": "вул. Островського, 33"
},
"contactPoint": {
"email": "soleksuk@gmail.com",
"name": "Сергій Олексюк",
"telephone": "+380 (432) 21-69-30"
},
"identifier": {
"id": "13313462",
"legalName": "Державне комунальне підприємство громадського харчування «Школяр»",
"scheme": "https://ns.openprocurement.org/ua/edrpou",
"uri": "http://sch10.edu.vn.ua/"
},
"name": "ДКП «Школяр»"
},
"date": "2014-12-03T22:59:57.858006+02:00",
"description": "Умови виставлені замовником не містять достатньо інформації, щоб заявка мала сенс.",
"documents": [
{
"dateModified": "2014-12-03T23:00:02.929901+02:00",
"datePublished": "2014-12-03T23:00:02.929858+02:00",
"format": "text/plain",
"id": "af38e9210b0d43aab68491fcf726b8e9",
"title": "ComplaintResolution.pdf",
"url": "http://api-sandbox.openprocurement.org/api/0/tenders/e9ecf1e8f5da47c68d47f8d2c1499946/complaints/8c7e05c5bd1a4fca927298677d6e5399/documents/af38e9210b0d43aab68491fcf726b8e9?download=578e4f998b9e444d9c78fd9fd13b3fe3"
}
],
"id": "8c7e05c5bd1a4fca927298677d6e5399",
"status": "declined",
"title": "Недостатньо інформації"
}
],
"dateModified": "2014-12-03T23:00:27.392833+02:00",
"documents": [
{
"dateModified": "2014-12-03T23:00:06.170772+02:00",
"datePublished": "2014-12-03T23:00:06.170728+02:00",
"format": "text/plain",
"id": "357a3f75f58e4519a548e2bff502a066",
"title": "Notice.pdf",
"url": "http://api-sandbox.openprocurement.org/api/0/tenders/e9ecf1e8f5da47c68d47f8d2c1499946/documents/357a3f75f58e4519a548e2bff502a066?download=b35eb8140f62471d8cdb4f0658fb30c2"
},
{
"dateModified": "2014-12-03T23:00:09.292528+02:00",
"datePublished": "2014-12-03T23:00:09.292481+02:00",
"format": "text/plain",
"id": "ac4306402dba448996c5fe7151cd01ca",
"title": "AwardCriteria.pdf",
"url": "http://api-sandbox.openprocurement.org/api/0/tenders/e9ecf1e8f5da47c68d47f8d2c1499946/documents/ac4306402dba448996c5fe7151cd01ca?download=7471f23ba2c346b2a539aa96a9bcca04"
},
{
"dateModified": "2014-12-03T23:00:12.252334+02:00",
"datePublished": "2014-12-03T23:00:09.292481+02:00",
"format": "text/plain",
"id": "ac4306402dba448996c5fe7151cd01ca",
"title": "AwardCriteria-v2.pdf",
"url": "http://api-sandbox.openprocurement.org/api/0/tenders/e9ecf1e8f5da47c68d47f8d2c1499946/documents/ac4306402dba448996c5fe7151cd01ca?download=6181d1e5014d438f8b71e55c0ae8dd7b"
}
],
"enquiryPeriod": {
"endDate": "2015-05-29T00:00:00+02:02",
"startDate": "2014-12-03T22:59:53.557296+02:00"
},
"id": "e9ecf1e8f5da47c68d47f8d2c1499946",
"items": [
{
"additionalClassifications": [
{
"description": "Послуги шкільних їдалень",
"id": "55.51.10.300",
"scheme": "ДКПП"
}
],
"classification": {
"description": "Послуги з харчування у школах",
"id": "55523100-3",
"scheme": "CPV"
},
"description": "Послуги шкільних їдалень",
"quantity": 5,
"unit": {
"name": "item"
}
}
],
"minimalStep": {
"amount": 35000.0,
"currency": "UAH",
"valueAddedTaxIncluded": true
},
"procuringEntity": {
"address": {
"countryName": "Україна",
"locality": "м. Вінниця",
"postalCode": "21027",
"region": "м. Вінниця",
"streetAddress": "вул. Стахурського. 22"
},
"identifier": {
"id": "21725150",
"legalName": "Заклад \"Загальноосвітня школа І-ІІІ ступенів № 10 Вінницької міської ради\"",
"scheme": "https://ns.openprocurement.org/ua/edrpou",
"uri": "http://sch10.edu.vn.ua/"
},
"name": "ЗОСШ #10 м.Вінниці"
},
"questions": [
{
"answer": "Таблицю додано в файлі \"Kalorijnist.xslx\"",
"date": "2014-12-03T23:00:14.683574+02:00",
"description": "Просимо додати таблицю потрібної калорійності харчування по місяцях",
"id": "e0c46b4e52bd4b05bbc9f41a657da1f0",
"title": "Калорійність по місяцях"
}
],
"status": "active.auction",
"tenderID": "UA-e9ecf1e8f5da47c68d47f8d2c1499946",
"tenderPeriod": {
"endDate": "2015-06-07T10:00:00+02:02",
"startDate": "2014-11-03T00:00:00+02:02"
},
"value": {
"amount": 500000.0,
"currency": "UAH",
"valueAddedTaxIncluded": true
}
}
}
Учасники можуть дізнатись свої URL-адреси для участі через свої пропозиції:
$ http -j https://api-sandbox.openprocurement.org/api/0/tenders/e9ecf1e8f5da47c68d47f8d2c1499946/bids/8565ea796fcd40ddaf35ff67f98cb33a
GET /api/0/tenders/e9ecf1e8f5da47c68d47f8d2c1499946/bids/8565ea796fcd40ddaf35ff67f98cb33a HTTP/1.1
Content-Type: application/json; charset=utf-8
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": {
"participationUrl": "http://auction-sandbox.openprocurement.org/tenders/e9ecf1e8f5da47c68d47f8d2c1499946?bidder_id=8565ea796fcd40ddaf35ff67f98cb33a",
"value": {
"amount": 475000.0,
"currency": "UAH",
"valueAddedTaxIncluded": true
}
}
}
Дивіться на Bid.participationUrl у відповіді. Схожу, але іншу, URL-адресу можна отримати для інших учасників.
$ http -j https://api-sandbox.openprocurement.org/api/0/tenders/e9ecf1e8f5da47c68d47f8d2c1499946/bids/5f040175aed54468b424aefd4780a2b7
GET /api/0/tenders/e9ecf1e8f5da47c68d47f8d2c1499946/bids/5f040175aed54468b424aefd4780a2b7 HTTP/1.1
Content-Type: application/json; charset=utf-8
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": {
"participationUrl": "http://auction-sandbox.openprocurement.org/tenders/e9ecf1e8f5da47c68d47f8d2c1499946?bidder_id=5f040175aed54468b424aefd4780a2b7",
"value": {
"amount": 480000.0,
"currency": "UAH",
"valueAddedTaxIncluded": true
}
}
}
Підтвердження кваліфікації¶
Кваліфікаційна комісія реєструє своє рішення через такий виклик:
$ http -j POST http://api-sandbox.openprocurement.org/api/0/tenders/d2d03d6abc5e49708e73b97236b61945/awards data:={"awardStatus":"pending"}
POST /api/0/tenders/d2d03d6abc5e49708e73b97236b61945/awards HTTP/1.1
Content-Type: application/json; charset=utf-8
{
"data": {
"awardStatus": "pending"
}
}
HTTP/1.1 201 Created
Content-Type: application/json; charset=UTF-8
{
"data": {
"awardDate": "2014-11-18T14:06:41.505869+00:00",
"awardID": "4bf007cb7e424ec09c71ccc809393e10",
"awardStatus": "pending"
}
}
Скасування закупівлі¶
Той, хто створив закупівлю, може скасувати її у будь-який момент. Для цього виконайте наступні кроки:
Приготуйте запит на скасування
Наповніть його протоколом про причини скасування
Скасуйте закупівлю через подані причини
Запит на скасування, який не пройшов активації (3-й крок), не матиме сили, тобто, для скасування закупівлі буде обов’язковим не тільки створити заявку, але і активувати її.
Див. структуру запиту Cancellation для більш детальної інформації.
Формування запиту на скасування¶
POST /tenders/{id}/cancellations
Ви повинні передати змінні reason, status у стані pending. id генерується автоматично і повертається у додатковому заголовку відповіді Location:
Location: /tenders/{id}/cancellations/{cancellation-id}
Наповнення протоколом та іншою супровідною документацією¶
Завантаження вмісту файлу
POST /tenders/{id}/cancellations/{cancellation-id}/documents
Зміна опису документа та інших властивостей
PATCH /tenders/{id}/cancellations/{cancellation-id}/documents/{document-id}
Завантаження нової версії документа
PUT /tenders/{id}/cancellations/{cancellation-id}/documents/{document-id}
Активація запиту та скасування закупівлі¶
PATCH /tenders/{id}/cancellations/{cancellation-id}
{“data”:{“status”:”active”}}
Стандарт даних¶
Стандарт даних змодельований згідно Open Contracting Standard з розширеннями в тих областях, які він не покриває.
Tender¶
Схема¶
title: | рядок, багатомовний Назва тендера, яка відображається у списках. Можна включити такі елементи:
|
||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
description: | рядок, багатомовний Детальний опис закупівлі |
||||||||||||||||||||||
tenderID: | рядок, генерується автоматично, лише для читання Ідентифікатор закупівлі, щоб знайти закупівлю у “паперовій” документації OpenContracting Description: TenderID повинен завжди співпадати з OCID. Його включають, щоб зробити структуру даних більш зручною. |
||||||||||||||||||||||
procuringEntity: | |||||||||||||||||||||||
Organization, обов’язково Організація, що проводить закупівлю. OpenContracting Description: Об’єкт, що управляє закупівлею. Він не обов’язково є покупцем, який платить / використовує закуплені елементи. |
|||||||||||||||||||||||
value: | Value, обов’язково Повний доступний бюджет закупівлі. Пропозиції, що більші за value будуть відхилені. OpenContracting Description: Загальна кошторисна вартість закупівлі. |
||||||||||||||||||||||
items: | список об’єктів Item, обов’язково Список, який містить елемент, що закуповується. OpenContracting Description: Товари та послуги, що будуть закуплені, поділені на спискові елементи, де це можливо. Елементи не повинні дублюватись, замість цього вкажіть кількість 2. |
||||||||||||||||||||||
documents: | Список об’єктів Document OpenContracting Description: Всі документи та додатки пов’язані із закупівлею. |
||||||||||||||||||||||
questions: | Список об’єктів Question Питання до procuringEntity і відповіді на них. |
||||||||||||||||||||||
complaints: | Список об’єктів Complaint Скарги на умови закупівлі та їх вирішення. |
||||||||||||||||||||||
bids: | Список об’єктів Bid Список усіх пропозицій зроблених під час закупівлі разом з інформацією про учасників закупівлі, їхні пропозиції та інша кваліфікаційна документація. OpenContracting Description: Список усіх компаній, які подали заявки для участі у закупівлі. |
||||||||||||||||||||||
minimalStep: | Value, обов’язково Мінімальний крок аукціону (редукціону). Правила валідації:
|
||||||||||||||||||||||
awards: | Список об’єктів Award Усі кваліфікації (дискваліфікації та переможці). |
||||||||||||||||||||||
enquiryPeriod: | Period, обов’язково Період, коли дозволено задавати питання. Повинна бути вказана хоча б endDate дата. OpenContracting Description: Період, коли можна зробити уточнення та отримати відповіді на них. |
||||||||||||||||||||||
tenderPeriod: | Period, обов’язково Період, коли подаються пропозиції. Повинна бути вказана хоча б endDate дата. OpenContracting Description: Період, коли закупівля відкрита для подачі пропозицій. Кінцева дата - це дата, коли перестають прийматись пропозиції. |
||||||||||||||||||||||
auctionPeriod: | Period, лише для читання Період, коли проводиться аукціон. |
||||||||||||||||||||||
awardPeriod: | Period, лише для читання Період, коли відбувається визначення переможця. OpenContracting Description: Дата або період, коли очікується визначення переможця. |
||||||||||||||||||||||
status: | рядок
Статус Закупівлі. |
||||||||||||||||||||||
cancellations: | Список об’єктів Cancellation. Містить 1 об’єкт зі статусом active на випадок, якщо Закупівлю буде відмінено. Об’єкт Cancellation описує причину скасування закупівлі та надає відповідні документи, якщо такі є. |
||||||||||||||||||||||
revisions: | Список об’єктів Revision, генерується автоматично Зміни властивостей об’єктів Закупівлі |
Дати закупівлі повинні бути послідовними:
Поточний час
- enquiryPeriod.startDate
- enquiryPeriod.endDate
- tenderPeriod.startDate
- tenderPeriod.endDate
Organization¶
Схема¶
name: | рядок, багатомовний OpenContracting Description: Назва організації. |
---|---|
identifier: |
OpenContracting Description: Ідентифікатор цієї організації. |
additionalIdentifiers: | |
Список об’єктів Identifier |
|
address: | Address, обов’язково |
contactPoint: | ContactPoint, обов’язково |
Identifier¶
Схема¶
scheme: | рядок OpenContracting Description: Ідентифікатори організації беруться з існуючої схеми ідентифікації. Це поле вказує схему або список кодів, де можна знайти ідентифікатор організації. Це значення повинно братись зі Схеми Ідентифікації Організацій. |
---|---|
id: | рядок, обов’язковий OpenContracting Description: Ідентифікатор організації у вибраній схемі. Дозволеними є коди зі спику кодів “Organisation Registration Agency” Стандарту IATI з додаванням коду UA-EDR для організацій, зареєстрованих в Україні (ЄДРПОУ та ІПН). |
legalName: | рядок, багатомовний OpenContracting Description: Легально зареєстрована назва організації. |
uri: | uri OpenContracting Description: URI для ідентифікації організації, наприклад, ті, які надають Open Corporates або інші постачальники URI. Це не для вебсайту організації, його можна надати в полі url в ContactPoint організації. |
Address¶
Схема¶
streetAddress: | рядок OpenContracting Description: Вулиця. Наприклад, вул.Хрещатик, 22. |
---|---|
locality: | рядок OpenContracting Description: Населений пункт. Наприклад, Київ. |
region: | рядок OpenContracting Description: Область. Наприклад, Київська. |
postalCode: | рядок OpenContracting Description: Поштовий індекс, Наприклад, 78043. |
countryName: | рядок, обов’язковий OpenContracting Description: Назва країни. Наприклад, Україна. |
ContactPoint¶
Схема¶
name: | рядок, багатомовний, обов’язковий OpenContracting Description: Ім’я контактної особи, назва відділу чи контактного пункту для листування, що стосується цього процесу укладання договору. |
---|---|
email: | OpenContracting Description: Адреса електронної пошти контактної особи/пункту. |
telephone: | рядок OpenContracting Description: Номер телефону контактної особи/пункту. Повинен включати міжнародний телефонний код. |
faxNumber: | рядок OpenContracting Description: Номер факсу контактної особи/пункту. Повинен включати міжнародний телефонний код. |
url: | url OpenContracting Description: Веб адреса контактної особи/пункту. |
Повинне бути заповнене хоча б одне з полів: або email, або telephone.
Item¶
Схема¶
description: | рядок, багатомовний, обов’язковий OpenContracting Description: Опис товарів та послуг, які повинні бути надані. |
||||||
---|---|---|---|---|---|---|---|
classification: |
OpenContracting Description: Початкова класифікація елемента. Дивіться у itemClassificationScheme, щоб визначити бажані списки класифікації, включно з CPV та GSIN. Класифікація classification.scheme обов’язково повинна бути CPV. classification.id повинно бути дійсним CPV кодом. |
||||||
additionalClassifications: | |||||||
Список об’єктів Classification OpenContracting Description: Масив додаткових класифікацій для елемента. Дивіться у список кодів itemClassificationScheme, щоб використати поширені варіанти в OCDS. Також можна використовувати для представлення кодів з внутрішньої схеми класифікації. Обов’язково мати хоча б один елемент з ДКПП у стрічці scheme. |
|||||||
unit: |
OpenContracting Description: Опис одиниці виміру товару, наприклад, години, кілограми. Складається з назви одиниці та значення однієї одиниці. |
||||||
quantity: | ціле число OpenContracting Description: Кількість необхідних одиниць. |
||||||
deliveryDate: |
Період, протягом якого елемент повинен бути доставлений. |
||||||
deliveryAddress: | |||||||
Адреса місця, куди елемент повинен бути доставлений. |
|||||||
deliveryLocation: | |||||||
словник Географічні координати місця доставки. Складається з таких компонентів:
deliveryLocation зазвичай має вищий пріоритет ніж deliveryAddress, якщо вони обидва вказані. |
Classification¶
Схема¶
scheme: | рядок OpenContracting Description: Класифікація повинна бути взята з існуючої схеми або списку кодів. Це поле використовується, щоб вказати схему/список кодів, з яких буде братись класифікація. Для класифікацій лінійних елементів це значення повинно представляти відому Схему Класифікації Елементів, де це можливо. |
---|---|
id: | рядок OpenContracting Description: Код класифікації взятий з вибраної схеми. |
description: | рядок OpenContracting Description: Текстовий опис або назва коду. |
uri: | uri OpenContracting Description: URI для ідентифікації коду. Якщо індивідуальні URI не доступні для елементів у схемі ідентифікації це значення треба залишити пустим. |
Unit¶
Схема¶
code: | рядок, обов’язковий Код одиниці в UN/CEFACT Recommendation 20. |
---|---|
name: | рядок OpenContracting Description: Назва одиниці |
Document¶
Схема¶
id: | рядок, генерується автоматично |
---|---|
documentType: | рядок Можливі значення для Tender
Можливі значення для Award
Можливі значення для Contract
|
title: | рядок, багатомовний OpenContracting Description: Назва документа. |
description: | рядок, багатомовний OpenContracting Description: Короткий опис документа. Якщо документ не буде доступний онлайн, то поле опису можна використати для вказання способу отримання копії документа. |
format: | рядок OpenContracting Description: Формат документа зі списку кодів IANA Media Types, з одним додатковим значенням ‘offline/print’, що буде використовуватись, коли запис цього документа використовується для опису офлайнової публікації документа. |
url: | рядок, генерується автоматично OpenContracting Description: Пряме посилання на документ чи додаток. |
datePublished: | рядок, Date OpenContracting Description: Дата, коли документ був опублікований вперше. |
dateModified: | рядок, Date OpenContracting Description: Дата, коли документ був змінений востаннє. |
language: | рядок OpenContracting Description: Вказує мову документа, використовуючи або двоцифровий код ISO 639-1, або розширений BCP47 language tags. |
Bid¶
Схема¶
tenderers: | Список об’єктів Organization |
---|---|
date: | рядок, Date |
id: | uid, генерується автоматично |
status: | рядок Можливі значення:
|
value: | Value, обов’язково Правила валідації:
|
documents: | Список об’єктів Document |
Award¶
Схема¶
id: | рядок, генерується автоматично, лише для читання OpenContracting Description: Ідентифікатор цього рішення. |
---|---|
bid_id: | рядок, генерується автоматично, лише для читання ID пропозиції, що виграла закупівлю |
title: | рядок, багатомовний OpenContracting Description: Назва рішення. |
description: | рядок, багатомовний OpenContracting Description: Опис рішення. |
status: | рядок OpenContracting Description: Поточний статус рішення, взятий зі списку кодів awardStatus. Можливі значення:
|
date: | рядок, Date, генерується автоматично, лише для читання OpenContracting Description: Дата рішення про підписання договору. |
value: | Список об’єктів Value, генерується автоматично, лише для читання OpenContracting Description: Загальна вартість згідно цього рішення. |
suppliers: | Список об’єктів Organization, генерується автоматично, лише для читання OpenContracting Description: Постачальники, що були визнані переможцями згідно цього рішення. |
items: | Список об’єктів Item, генерується автоматично, лише для читання OpenContracting Description: Товари та послуги, що розглядались цим рішенням, поділені на окремі рядки, де це можливо. Елементи не повинні бути продубльовані, а повинні мати вказану кількість. |
documents: | Список об’єктів Document OpenContracting Description: Усі документи та додатки пов’язані з рішенням, включно з будь-якими повідомленнями. |
complaints: | Список об’єктів Complaint |
contracts: | Список об’єктів Contract |
complaintPeriod: | |
Період часу, під час якого можна подавати скарги. |
Question¶
Схема¶
id: | uid, генерується автоматично |
---|---|
author: | Organization, обов’язково Хто задає питання (contactPoint - людина, identification - організація, яку ця людина представляє). |
title: | рядок, обов’язковий Назва запитання. |
description: | рядок Опис запитання. |
date: | рядок, Date, генерується автоматично Дата публікації. |
answer: | рядок Відповідь на задане питання. |
Complaint¶
Схема¶
id: | uid, генерується автоматично |
---|---|
author: | Organization, обов’язково Організація, яка подає скаргу (contactPoint - людина, identification - організація, яку ця людина представляє). |
title: | рядок, обов’язковий Заголовок скарги. |
description: | Опис запитання. |
date: | рядок, Date, генерується автоматично Дата подання. |
status: | рядок Можливі значення:
|
resolution: | рядок |
documents: | Список об’єктів Document |
Contract¶
Схема¶
id: | uid, генерується автоматично OpenContracting Description: Ідентифікатор цього договору. |
---|---|
awardID: | рядок, обов’язковий OpenContracting Description: Award.id вказує на рішення, згідно якого видається договір. |
title: | рядок, обов’язковий OpenContracting Description: Назва договору |
description: | рядок OpenContracting Description: Опис договору |
status: | рядок, обов’язковий OpenContracting Description: Поточний статус договору. Можливі значення:
|
period: |
OpenContracting Description: Дата початку та завершення договору. |
value: |
OpenContracting Description: Загальна вартість договору. |
dateSigned: | рядок, Date, генерується автоматично OpenContracting Description: Дата підписання договору. Якщо було декілька підписань, то береться дата останнього підписання. |
documents: | Список об’єктів Document OpenContracting Description: Усі документи та додатки пов’язані з договором, включно з будь-якими повідомленнями. |
Period¶
Date¶
Дата/час у Формат дати: ISO 8601.
Value¶
Схема¶
amount: | float, обов’язково OpenContracting Description: Кількість як число. Повинно бути додатнім. |
---|---|
currency: | рядок, обов’язковий OpenContracting Description: Валюта у трибуквенному форматі ISO 4217. |
valueAddedTaxIncluded: | |
bool, обов’язково |
Cancellation¶
Схема¶
id: | uid, генерується автоматично |
||||
---|---|---|---|---|---|
reason: | рядок, багатомовний, обов’язковий Причина, з якої скасовується закупівля. |
||||
status: | рядок
|
||||
documents: | Список об’єктів Document Супровідна документація скасування: Протокол рішення Тендерного комітету Замовника про скасування закупівлі. |
||||
date: | рядок, Date Дата скасування |
Отримання інформації про закупівлі¶
Отримати список всіх закупівель¶
GET /tenders HTTP/1.1
HTTP/1.1 200 OK
Сортування¶
Повернені закупівлі просортовані за датою модифікації.
Обмежити кількість Закупівель, що повертаються¶
Ви можете контролювати кількість data записів потоку даних закупівлі (розмір пакета) за допомогою параметра limit. Якщо він не вказаний, то дані будуть повернені пакетами по 100 елементів.
Пакети¶
The response contains next_page element with the following properties:
offset: | Це параметр, який ви повинні додати до вихідного запиту, щоб отримати наступну сторінку. |
---|---|
path: | Це частина шляху URL-адреси з вихідними параметрами та доданим/заміненим offset параметром вище. |
uri: | Повна версія URL-адреси для наступної сторінки. |
Якщо запит наступної сторінки повертається без даних (наприклад, пустий масив), тоді немає сенсу викликати сторінки далі.
Синхронізація¶
It is often necessary to be able to syncronize central database changes with other database (we’ll call it “local”). The default sorting “by modification date” together with Batching mechanism allows one to implement synchronization effectively. The synchronization process can go page by page until there is no new data returned. Then the synchronizer has to pause for a while to let central database register some changes and attempt fetching subsequent page. The next_page guarantees that all changes from the last request are included in the new batch.
Безпечна частота запитів на синхронізацію це раз в 5 хвилин.
Прочитати інформацію про окремі закупівлі¶
GET /tenders/64e93250be76435397e8c992ed4214d1 HTTP/1.1
HTTP/1.1 200 OK
Прочитати список документів закупівлі¶
GET /tenders/64e93250be76435397e8c992ed4214d1/documents HTTP/1.1
HTTP/1.1 200 OK
Приклад запиту:
$ http https://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents
GET /api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": [
{
"dateModified": "2014-12-01T17:39:29.001262+02:00",
"datePublished": "2014-12-01T17:39:29.001218+02:00",
"format": "text/plain",
"id": "86b33019f2174f37b5d715c924ae6cd4",
"title": "Notice.pdf",
"url": "http://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents/86b33019f2174f37b5d715c924ae6cd4?download=d0267f352f384acca5081a04347fd64d"
},
{
"dateModified": "2014-12-01T17:39:31.443132+02:00",
"datePublished": "2014-12-01T17:39:31.443089+02:00",
"format": "text/plain",
"id": "4b65c046be264da4a430823d4376a757",
"title": "AwardCriteria.pdf",
"url": "http://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents/4b65c046be264da4a430823d4376a757?download=d0ef7d53169041ed8093172c6ba6870c"
}
]
}
Прочитати документ закупівлі¶
Документ можна отримати за допомогою запиту url-адреси з відповіді на запит списку документів у data[*].url. URL для скачування безпечно надавати кінцевому користувачу.
Операції для організації-замовника закупівлі¶
Реєстрація Закупівлі¶
Tender registration consists of primary record creation and documentation uploading.
Cтворення початкового запису Закупівлі¶
При реєстрації закупівлі у базі даних потрібно надати всі основні деталі закупівлі (окрім двійкових документів) в тілі запиту.
POST /tenders HTTP/1.1
The produced response will contain URL of the created tender in Location header of response, and in data.id of body.
HTTP/1.1 201 Created
Location: /tenders/64e93250be76435397e8c992ed4214d1
Завантаження документації¶
All tender documentation should be uploaded with the following request - one request per document. You can see supported request types in Завантаження документів section.
POST /tenders/64e93250be76435397e8c992ed4214d1/documents HTTP/1.1
The response produced will have URL of the tender uploaded document in Location header of response and in data.id of body.
HTTP/1.1 201 Created
Location: /tenders/64e93250be76435397e8c992ed4214d1/documents/6a7d13bd8ec449e08882aeb92180d938
Приклад запиту:
$ http --form POST https://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents file@./Notice.pdf
POST /api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents HTTP/1.1
Content-Type: multipart/form-data; boundary=2add052250fb42cd8d2736fd34baa7f9
+-----------------------------------------+
| NOTE: binary data not shown in terminal |
+-----------------------------------------+
HTTP/1.1 201 Created
Content-Type: application/json; charset=UTF-8
Location: http://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents/86b33019f2174f37b5d715c924ae6cd4
{
"data": {
"dateModified": "2014-12-01T17:39:29.001262+02:00",
"datePublished": "2014-12-01T17:39:29.001218+02:00",
"format": "text/plain",
"id": "86b33019f2174f37b5d715c924ae6cd4",
"title": "Notice.pdf",
"url": "http://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents/86b33019f2174f37b5d715c924ae6cd4?download=d0267f352f384acca5081a04347fd64d"
}
}
Зміна Закупівлі¶
Замовник закупівлі може змінити і початковий запис, і відповідну документацію.
Зміна початкового запису Закупівлі¶
Procuring Entity can change the Tender properties with the following request. Data to change should be in payload of the message.
PATCH /tenders/64e93250be76435397e8c992ed4214d1 HTTP/1.1
HTTP/1.1 200 OK
Зміна існуючих документів¶
Замовник може завантажити нові версії документів закупівлі. Всі типи запитів, які підтримуються, ви можете побачити в секції Завантаження документів.
PUT /tenders/64e93250be76435397e8c992ed4214d1/documents/6a7d13bd8ec449e08882aeb92180d938 HTTP/1.1
HTTP/1.1 200 OK
Приклад запиту:
$ http --form PUT https://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents/4b65c046be264da4a430823d4376a757 file@./AwardCriteria-v2.pdf
PUT /api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents/4b65c046be264da4a430823d4376a757 HTTP/1.1
Content-Type: multipart/form-data; boundary=fdb76865e76a4140994502a017fd6e14
+-----------------------------------------+
| NOTE: binary data not shown in terminal |
+-----------------------------------------+
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": {
"dateModified": "2014-12-01T17:39:33.717002+02:00",
"datePublished": "2014-12-01T17:39:31.443089+02:00",
"format": "text/plain",
"id": "4b65c046be264da4a430823d4376a757",
"title": "AwardCriteria-v2.pdf",
"url": "http://api-sandbox.openprocurement.org/api/0/tenders/327c00d16cff4c37be5bd4915cdff8a3/documents/4b65c046be264da4a430823d4376a757?download=e8300d4763ff4968aef4c71b4e15a297"
}
}
Завантаження додаткових документів¶
Так само як Завантаження документації.
Операції для учасників закупівлі¶
Реєстрація цінової пропозиції¶
POST /tenders/64e93250be76435397e8c992ed4214d1/bids/ HTTP/1.1
HTTP/1.1 201 Created
Location: /tenders/64e93250be76435397e8c992ed4214d1/bids/4879d3f8ee2443169b5fbbc9f89fa607
Завантаження документів пропозиції¶
POST /tenders/64e93250be76435397e8c992ed4214d1/bids/4879d3f8ee2443169b5fbbc9f89fa607/documents HTTP/1.1
HTTP/1.1 201 Created
Location: /tenders/64e93250be76435397e8c992ed4214d1/bids/4879d3f8ee2443169b5fbbc9f89fa607/documents/bd2e4c64179445cab93987fff3d58d23
Оновлення пропозиції¶
PATCH /tenders/64e93250be76435397e8c992ed4214d1/bids/4879d3f8ee2443169b5fbbc9f89fa607 HTTP/1.1
HTTP/1.1 200 OK
Оновлення документів пропозиції¶
PUT /tenders/64e93250be76435397e8c992ed4214d1/bids/4879d3f8ee2443169b5fbbc9f89fa607/documents/bd2e4c64179445cab93987fff3d58d23 HTTP/1.1
HTTP/1.1 200 Created
{
"data": {
...
"id": "ddd45992f1c545b9b03302205962265b",
...
"url": ".../tenders/64e93250be76435397e8c992ed4214d1/bids/4879d3f8ee2443169b5fbbc9f89fa607/documents/bd2e4c64179445cab93987fff3d58d23?download=7d56370415484488bbb621b8cea6315b"
}
}
Відміна пропозиції¶
DELETE /tenders/64e93250be76435397e8c992ed4214d1/bids/4879d3f8ee2443169b5fbbc9f89fa607 HTTP/1.1
HTTP/1.1 200 OK
Список пропозицій¶
Після закінчення аукціону можна отримати повну інформацію про пропозиції та учасників, які їх подали:
GET /api/0/tenders/6f73bf0f7f734f459f7e37e3787054a0/bids HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": [
{
"date": "2014-12-16T04:44:23.569815+02:00",
"documents": [
{
"dateModified": "2014-12-16T04:44:25.010930+02:00",
"datePublished": "2014-12-16T04:44:25.010885+02:00",
"format": "text/plain",
"id": "ff001412c60c4164a0f57101e4eaf8aa",
"title": "Proposal.pdf",
"url": "http://api-sandbox.openprocurement.org/api/0/tenders/6f73bf0f7f734f459f7e37e3787054a0/bids/f7fc1212f9f140bba5c4e3cd4f2b62d9/documents/ff001412c60c4164a0f57101e4eaf8aa?download=4f45bbd414104cd78faf620208efd824"
}
],
"id": "f7fc1212f9f140bba5c4e3cd4f2b62d9",
"tenderers": [
{
"address": {
"countryName": "Україна",
"locality": "м. Вінниця",
"postalCode": "21100",
"region": "м. Вінниця",
"streetAddress": "вул. Островського, 33"
},
"contactPoint": {
"email": "soleksuk@gmail.com",
"name": "Сергій Олексюк",
"telephone": "+380 (432) 21-69-30"
},
"identifier": {
"id": "13313462",
"legalName": "Державне комунальне підприємство громадського харчування «Школяр»",
"scheme": "UA-EDR",
"uri": "http://sch10.edu.vn.ua/"
},
"name": "ДКП «Школяр»"
}
],
"value": {
"amount": 475000.0,
"currency": "UAH",
"valueAddedTaxIncluded": true
}
},
{
"date": "2014-12-16T04:44:26.973605+02:00",
"id": "25261352d2d042ff8639f65b68e95e9f",
"tenderers": [
{
"address": {
"countryName": "Україна",
"locality": "м. Вінниця",
"postalCode": "21018",
"region": "м. Вінниця",
"streetAddress": "вул. Юності, 30"
},
"contactPoint": {
"email": "alla.myhailova@i.ua",
"name": "Алла Михайлова",
"telephone": "+380 (432) 460-665"
},
"identifier": {
"id": "13306232",
"legalName": "Державне комунальне підприємство громадського харчування «Меридіан»",
"scheme": "UA-EDR",
"uri": "http://sch10.edu.vn.ua/"
},
"name": "ДКП «Меридіан»"
}
],
"value": {
"amount": 480000.0,
"currency": "UAH",
"valueAddedTaxIncluded": true
}
},
{
"date": "2014-12-16T04:44:27.976478+02:00",
"id": "7ec725815ef448a9b857129024395638",
"tenderers": [
{
"address": {
"countryName": "Україна",
"locality": "м. Вінниця",
"postalCode": "21018",
"region": "м. Вінниця",
"streetAddress": "вул. Юності, 30"
},
"contactPoint": {
"email": "alla.myhailova@i.ua",
"name": "Алла Михайлова",
"telephone": "+380 (432) 460-665"
},
"identifier": {
"id": "13306232",
"legalName": "Державне комунальне підприємство громадського харчування «Меридіан»",
"scheme": "UA-EDR",
"uri": "http://sch10.edu.vn.ua/"
},
"name": "ДКП «Меридіан2»"
}
],
"value": {
"amount": 482000.0,
"currency": "UAH",
"valueAddedTaxIncluded": true
}
}
]
}
Вичитка пропозиції¶
Окрему пропозицію можна прочитати за її id:
GET /api/0/tenders/6f73bf0f7f734f459f7e37e3787054a0/bids/f7fc1212f9f140bba5c4e3cd4f2b62d9 HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": {
"date": "2014-12-16T04:44:23.569815+02:00",
"documents": [
{
"dateModified": "2014-12-16T04:44:25.010930+02:00",
"datePublished": "2014-12-16T04:44:25.010885+02:00",
"format": "text/plain",
"id": "ff001412c60c4164a0f57101e4eaf8aa",
"title": "Proposal.pdf",
"url": "http://api-sandbox.openprocurement.org/api/0/tenders/6f73bf0f7f734f459f7e37e3787054a0/bids/f7fc1212f9f140bba5c4e3cd4f2b62d9/documents/ff001412c60c4164a0f57101e4eaf8aa?download=4f45bbd414104cd78faf620208efd824"
}
],
"id": "f7fc1212f9f140bba5c4e3cd4f2b62d9",
"tenderers": [
{
"address": {
"countryName": "Україна",
"locality": "м. Вінниця",
"postalCode": "21100",
"region": "м. Вінниця",
"streetAddress": "вул. Островського, 33"
},
"contactPoint": {
"email": "soleksuk@gmail.com",
"name": "Сергій Олексюк",
"telephone": "+380 (432) 21-69-30"
},
"identifier": {
"id": "13313462",
"legalName": "Державне комунальне підприємство громадського харчування «Школяр»",
"scheme": "UA-EDR",
"uri": "http://sch10.edu.vn.ua/"
},
"name": "ДКП «Школяр»"
}
],
"value": {
"amount": 475000.0,
"currency": "UAH",
"valueAddedTaxIncluded": true
}
}
}
Операції кваліфікації¶
When auction is over, the qualification process starts. The status of tender is active.qualification then. Right after results are submitted to Central DB, there is award generated for auction winner.
Перегляд результатів оцінки¶
The pending award can be retrieved via request to list all available awards:
GET /tenders/64e93250be76435397e8c992ed4214d1/awards HTTP/1.1
When the award is in pending status, it means that procuring entity has to review documents describing the bid and other bidder documents.
Дискваліфікація¶
Протокол рішення Кваліфікаційного комітету повинен бути завантажений у вигляді документа до рішення. Пізніше його статус повинен бути змінений або на active (якщо його прийнято), або на unsuccessful (якщо відмовлено).
POST /tenders/64e93250be76435397e8c992ed4214d1/awards/{}/documents HTTP/1.1
The Qualification Comittee can upload several documents, for example, decisions to prolong the qualification process - in order to allow the bidder to collect all necessary documents or correct errors. Such documents would help to have procedure as transparent as possible and will reduce risk of cancellation by Complaint Review Body.
PATCH /tenders/64e93250be76435397e8c992ed4214d1/awards/{} HTTP/1.1
{
"data":{
"status": "unsuccessful"
}
}
HTTP/1.1 200 OK
Location: /tenders/64e93250be76435397e8c992ed4214d1/awards/ea36a10ad89649ccac253f23d8e0e80d HTTP/1.1
Note that after award rejection the next bid in the value-sorted bid sequence becomes subject of subsequent award. For convenience you can use the Location response header from the response above that is pointing to an award in “pending” state.
Винагорода (визначення переможця з ціллю підписання договору)¶
Завантаження протоколу:
POST /tenders/64e93250be76435397e8c992ed4214d1/awards/{}/documents HTTP/1.1
Підтвердження визначення переможця:
PATCH /tenders/64e93250be76435397e8c992ed4214d1/awards/{} HTTP/1.1
{
"data":{
"status": "active"
}
}
HTTP/1.1 200 OK
The procuring entity can wait until bidder provides all missing documents (licenses, certificates, statements, etc.) or update original bid documents to correct errors. Alternatively, they can reject the bid if provided documents do not satisfy the pass/fail criteria of tender (even before full package of supplementary documents is available).
Скасування активної винагороди¶
Іноді Учасник відмовляється підписати договір, навіть після проходження процесу кваліфікації. У цьому випадку замовник закупівлі повинен мати можливість відмовитися від затвердженого переможця, а потім дискваліфікувати його цінову пропозицію.
Коли стадія Визначення переможця активна
GET /tenders/64e93250be76435397e8c992ed4214d1/awards/fbccb31b3b864c7b80ca19ebd510ee72 HTTP/1.1
{
"data": {
"status": "active",
"contracts": [
{
"status": "pending",
"awardID": "fbccb31b3b864c7b80ca19ebd510ee72",
"id": "40d0fe977c0f4560a1de71ab122a6fae"
}
],
"suppliers": [
{
"contactPoint": {
"name": "Розалія Піддубний",
"telephone": "014 883 59 49"
},
"identifier": {
"scheme": "UA-EDR",
"id": "0000741"
},
"name": "Чуйко-Скопенко",
"address": {
"postalCode": "21100",
"countryName": "Україна",
"streetAddress": "21284 Данько Cape",
"region": "м. Вінниця",
"locality": "м. Вінниця"
}
}
],
"bid_id": "1af1d3169c5947c3a30450d2f8c8e7a2",
"value": {
"currency": "UAH",
"amount": 39000.0,
"valueAddedTaxIncluded": true
},
"date": "2015-03-04T14:21:01.006685+02:00",
"id": "fbccb31b3b864c7b80ca19ebd510ee72"
}
}
Є необхідність її скасувати
PATCH /tenders/64e93250be76435397e8c992ed4214d1/awards/fbccb31b3b864c7b80ca19ebd510ee72 HTTP/1.1
{
"data":{
"status": "cancelled"
}
}
HTTP/1.1 200 OK
Location: /tenders/6d01584306ad4138bd78c9cf41056ea3/awards/77272dfb3e9645b4ab499e1d42913b87 HTTP/1.1
{
"data": {
"status": "cancelled",
"contracts": [
{
"status": "cancelled",
"awardID": "fbccb31b3b864c7b80ca19ebd510ee72",
"id": "40d0fe977c0f4560a1de71ab122a6fae"
}
],
"suppliers": [
{
"contactPoint": {
"name": "Розалія Піддубний",
"telephone": "014 883 59 49"
},
"identifier": {
"scheme": "UA-EDR",
"id": "0000741"
},
"name": "Чуйко-Скопенко",
"address": {
"postalCode": "21100",
"countryName": "Україна",
"streetAddress": "21284 Данько Cape",
"region": "м. Вінниця",
"locality": "м. Вінниця"
}
}
],
"bid_id": "1af1d3169c5947c3a30450d2f8c8e7a2",
"value": {
"currency": "UAH",
"amount": 39000.0,
"valueAddedTaxIncluded": true
},
"date": "2015-03-04T14:21:01.006685+02:00",
"id": "fbccb31b3b864c7b80ca19ebd510ee72"
}
}
Note that there is Location header returned that aids in locating the “fresh” award that is most likely subject for disqualification:
POST /tenders/64e93250be76435397e8c992ed4214d1/awards/ea36a10ad89649ccac253f23d8e0e80d/documents HTTP/1.1
PATCH /tenders/6d01584306ad4138bd78c9cf41056ea3/awards/77272dfb3e9645b4ab499e1d42913b87 HTTP/1.1
{
"data":{
"awardStatus": "unsuccessful"
}
}
HTTP/1.1 200 OK
Location: /tenders/6d01584306ad4138bd78c9cf41056ea3/awards/2beef6aa944c4a8ba0e9654ed5e25993
{
"data": {
"status": "unsuccessful",
"suppliers": [
{
"contactPoint": {
"name": "Розалія Піддубний",
"telephone": "014 883 59 49"
},
"identifier": {
"scheme": "UA-EDR",
"id": "0000741"
},
"name": "Чуйко-Скопенко",
"address": {
"postalCode": "21100",
"countryName": "Україна",
"streetAddress": "21284 Данько Cape",
"region": "м. Вінниця",
"locality": "м. Вінниця"
}
}
],
"bid_id": "1af1d3169c5947c3a30450d2f8c8e7a2",
"value": {
"currency": "UAH",
"amount": 39000.0,
"valueAddedTaxIncluded": true
},
"date": "2015-03-04T14:22:07.937667+02:00",
"id": "77272dfb3e9645b4ab499e1d42913b87"
}
}
GET /tenders/64e93250be76435397e8c992ed4214d1/awards HTTP/1.1
{
"data": [
{
"status": "cancelled",
"contracts": [
{
"status": "cancelled",
"awardID": "fbccb31b3b864c7b80ca19ebd510ee72",
"id": "40d0fe977c0f4560a1de71ab122a6fae"
}
],
"suppliers": [
{
"contactPoint": {
"name": "Розалія Піддубний",
"telephone": "014 883 59 49"
},
"identifier": {
"scheme": "UA-EDR",
"id": "0000741"
},
"name": "Чуйко-Скопенко",
"address": {
"postalCode": "21100",
"countryName": "Україна",
"streetAddress": "21284 Данько Cape",
"region": "м. Вінниця",
"locality": "м. Вінниця"
}
}
],
"bid_id": "1af1d3169c5947c3a30450d2f8c8e7a2",
"value": {
"currency": "UAH",
"amount": 39000.0,
"valueAddedTaxIncluded": true
},
"date": "2015-03-04T14:21:01.006685+02:00",
"id": "fbccb31b3b864c7b80ca19ebd510ee72"
},
{
"status": "unsuccessful",
"suppliers": [
{
"contactPoint": {
"name": "Розалія Піддубний",
"telephone": "014 883 59 49"
},
"identifier": {
"scheme": "UA-EDR",
"id": "0000741"
},
"name": "Чуйко-Скопенко",
"address": {
"postalCode": "21100",
"countryName": "Україна",
"streetAddress": "21284 Данько Cape",
"region": "м. Вінниця",
"locality": "м. Вінниця"
}
}
],
"bid_id": "1af1d3169c5947c3a30450d2f8c8e7a2",
"value": {
"currency": "UAH",
"amount": 39000.0,
"valueAddedTaxIncluded": true
},
"date": "2015-03-04T14:22:07.937667+02:00",
"id": "77272dfb3e9645b4ab499e1d42913b87"
},
{
"status": "pending",
"suppliers": [
{
"contactPoint": {
"name": "пан Остап Пелех",
"telephone": "+38 (485) 390-29-49"
},
"identifier": {
"scheme": "UA-EDR",
"id": "00003195"
},
"name": "Ємець and Sons",
"address": {
"postalCode": "21100",
"countryName": "Україна",
"streetAddress": "93546 John Street",
"region": "м. Вінниця",
"locality": "м. Вінниця"
}
}
],
"bid_id": "bbb0b1a3344b4d79b67298af4b143bce",
"value": {
"currency": "UAH",
"amount": 40000.0,
"valueAddedTaxIncluded": true
},
"date": "2015-03-04T14:22:11.530927+02:00",
"id": "2beef6aa944c4a8ba0e9654ed5e25993"
}
]
}
In the case when there is another Bid for qualification, there will be Location header in the response pointing to its Award.
Вплив задовільненої скарги¶
Якщо рішення замовника вважатиметься несправедливим, будь-який учасник може подати скаргу і, після її відповідного розгляду, весь процес визначення переможця може вернутись до цього рішення. Коли орган розгляду скарг задовільнить скаргу, всі рішення зареєстровані в системі (включно з тим, проти якого подана скарга) відміняються (отримують статус cancelled). Генерується новий процес визначення переможця і Замовник зобов’язаний кваліфікувати його знову, зважаючи на рекомендації зазначені в звіті органу розгляду скарг.
Питання замовнику¶
Як подати питання¶
Будь-хто (але не анонімно) може задати питання:
$ http --auth broker: -j POST https://api-sandbox.openprocurement.org/api/0/tenders/9b791af414c64892bb9b1f41e91a84af/questions data:=@./question.json
POST /api/0/tenders/9b791af414c64892bb9b1f41e91a84af/questions HTTP/1.1
Authorization: Basic YnJva2VyOg==
Content-Type: application/json; charset=utf-8
{
"data": {
"author": {
"address": {
"countryName": "Україна",
"locality": "м. Вінниця",
"postalCode": "21100",
"region": "м. Вінниця",
"streetAddress": "вул. Островського, 33"
},
"contactPoint": {
"email": "soleksuk@gmail.com",
"name": "Сергій Олексюк",
"telephone": "+380 (432) 21-69-30"
},
"identifier": {
"id": "13313462",
"legalName": "Державне комунальне підприємство громадського харчування «Школяр»",
"scheme": "UA-EDR",
"uri": "http://sch10.edu.vn.ua/"
},
"name": "ДКП «Школяр»"
},
"description": "Просимо додати таблицю потрібної калорійності харчування по місяцях",
"title": "Калорійність по місяцях"
}
}
HTTP/1.1 201 Created
Content-Type: application/json; charset=UTF-8
Location: https://api-sandbox.openprocurement.org/api/0/tenders/9b791af414c64892bb9b1f41e91a84af/questions/3dfbb32cc2f44f75bfe5b44a3a0c287c
{
"data": {
"author": {
"address": {
"countryName": "Україна",
"locality": "м. Вінниця",
"postalCode": "21100",
"region": "м. Вінниця",
"streetAddress": "вул. Островського, 33"
},
"contactPoint": {
"email": "soleksuk@gmail.com",
"name": "Сергій Олексюк",
"telephone": "+380 (432) 21-69-30"
},
"identifier": {
"id": "13313462",
"legalName": "Державне комунальне підприємство громадського харчування «Школяр»",
"scheme": "UA-EDR",
"uri": "http://sch10.edu.vn.ua/"
},
"name": "ДКП «Школяр»"
},
"date": "2014-12-26T23:43:08.277770+02:00",
"description": "Просимо додати таблицю потрібної калорійності харчування по місяцях",
"id": "3dfbb32cc2f44f75bfe5b44a3a0c287c",
"title": "Калорійність по місяцях"
}
}
Як прочитати питання¶
Question author identities are not revealed before auction ends:
$ http -j https://api-sandbox.openprocurement.org/api/0/tenders/17f405f826424ae4949e98ff915412c9/questions
GET /api/0/tenders/17f405f826424ae4949e98ff915412c9/questions HTTP/1.1
Content-Type: application/json; charset=utf-8
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": [
{
"answer": "Таблицю додано в файлі \"Kalorijnist.xslx\"",
"date": "2014-12-26T23:27:51.300952+02:00",
"description": "Просимо додати таблицю потрібної калорійності харчування по місяцях",
"id": "88fe3d515eda494983a3973e699ba30d",
"title": "Калорійність по місяцях"
}
]
}
Відповіді¶
Як надати відповідь¶
Замовник закупівлі може відповісти на питання:
$ http --auth broker: -j PATCH https://api-sandbox.openprocurement.org/api/0/tenders/9b791af414c64892bb9b1f41e91a84af/questions/3dfbb32cc2f44f75bfe5b44a3a0c287c?acc_token=7face74d65fe4d37ba752aac8f409a0c data:=@./answer.json
PATCH /api/0/tenders/9b791af414c64892bb9b1f41e91a84af/questions/3dfbb32cc2f44f75bfe5b44a3a0c287c?acc_token=7face74d65fe4d37ba752aac8f409a0c HTTP/1.1
Authorization: Basic YnJva2VyOg==
Content-Type: application/json; charset=utf-8
{
"data": {
"answer": "Таблицю додано в файлі \"Kalorijnist.xslx\""
}
}
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": {
"answer": "Таблицю додано в файлі \"Kalorijnist.xslx\"",
"date": "2014-12-26T23:43:08.277770+02:00",
"description": "Просимо додати таблицю потрібної калорійності харчування по місяцях",
"id": "3dfbb32cc2f44f75bfe5b44a3a0c287c",
"title": "Калорійність по місяцях"
}
}
Подання скарг¶
If tender conditions are favoriting only one provider, or in any other viable case, one can submit Tender Conditions Complaint.
Подання скарги на умови закупівлі¶
$ http -j POST https://api-sandbox.openprocurement.org/api/0/tenders/c0c01003785344829136c3890ddf8192/complaints data:=@./complaint.json
POST /api/0/tenders/c0c01003785344829136c3890ddf8192/complaints HTTP/1.1
Content-Type: application/json; charset=utf-8
{
"data": {
"author": {
"address": {
"countryName": "Україна",
"locality": "м. Вінниця",
"postalCode": "21100",
"region": "м. Вінниця",
"streetAddress": "вул. Островського, 33"
},
"contactPoint": {
"email": "soleksuk@gmail.com",
"name": "Сергій Олексюк",
"telephone": "+380 (432) 21-69-30"
},
"identifier": {
"id": "13313462",
"legalName": "Державне комунальне підприємство громадського харчування «Школяр»",
"scheme": "https://ns.openprocurement.org/ua/edrpou",
"uri": "http://sch10.edu.vn.ua/"
},
"name": "ДКП «Школяр»"
},
"description": "Умови виставлені замовником не містять достатньо інформації, щоб заявка мала сенс.",
"title": "Недостатньо інформації"
}
}
HTTP/1.1 201 Created
Content-Type: application/json; charset=UTF-8
Location: http://api-sandbox.openprocurement.org/api/0/tenders/c0c01003785344829136c3890ddf8192/complaints/8e17d36ac7a049b6889ed2e01687db88
{
"data": {
"author": {
"address": {
"countryName": "Україна",
"locality": "м. Вінниця",
"postalCode": "21100",
"region": "м. Вінниця",
"streetAddress": "вул. Островського, 33"
},
"contactPoint": {
"email": "soleksuk@gmail.com",
"name": "Сергій Олексюк",
"telephone": "+380 (432) 21-69-30"
},
"identifier": {
"id": "13313462",
"legalName": "Державне комунальне підприємство громадського харчування «Школяр»",
"scheme": "https://ns.openprocurement.org/ua/edrpou",
"uri": "http://sch10.edu.vn.ua/"
},
"name": "ДКП «Школяр»"
},
"date": "2014-12-02T22:35:25.198141+02:00",
"description": "Умови виставлені замовником не містять достатньо інформації, щоб заявка мала сенс.",
"id": "8e17d36ac7a049b6889ed2e01687db88",
"status": "pending",
"title": "Недостатньо інформації"
}
}
Отримання інформації про скарги на умови закупівлі¶
Ви можете отримати список всіх скарг на умови закупівлі:
$ http -j https://api-sandbox.openprocurement.org/api/0/tenders/c0c01003785344829136c3890ddf8192/complaints
GET /api/0/tenders/c0c01003785344829136c3890ddf8192/complaints HTTP/1.1
Content-Type: application/json; charset=utf-8
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": [
{
"author": {
"address": {
"countryName": "Україна",
"locality": "м. Вінниця",
"postalCode": "21100",
"region": "м. Вінниця",
"streetAddress": "вул. Островського, 33"
},
"contactPoint": {
"email": "soleksuk@gmail.com",
"name": "Сергій Олексюк",
"telephone": "+380 (432) 21-69-30"
},
"identifier": {
"id": "13313462",
"legalName": "Державне комунальне підприємство громадського харчування «Школяр»",
"scheme": "https://ns.openprocurement.org/ua/edrpou",
"uri": "http://sch10.edu.vn.ua/"
},
"name": "ДКП «Школяр»"
},
"date": "2014-12-02T22:35:25.198141+02:00",
"description": "Умови виставлені замовником не містять достатньо інформації, щоб заявка мала сенс.",
"id": "8e17d36ac7a049b6889ed2e01687db88",
"status": "pending",
"title": "Недостатньо інформації"
}
]
}
And check individual complaint:
$ http -j https://api-sandbox.openprocurement.org/api/0/tenders/c0c01003785344829136c3890ddf8192/complaints/8e17d36ac7a049b6889ed2e01687db88
GET /api/0/tenders/c0c01003785344829136c3890ddf8192/complaints/8e17d36ac7a049b6889ed2e01687db88 HTTP/1.1
Content-Type: application/json; charset=utf-8
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": {
"author": {
"address": {
"countryName": "Україна",
"locality": "м. Вінниця",
"postalCode": "21100",
"region": "м. Вінниця",
"streetAddress": "вул. Островського, 33"
},
"contactPoint": {
"email": "soleksuk@gmail.com",
"name": "Сергій Олексюк",
"telephone": "+380 (432) 21-69-30"
},
"identifier": {
"id": "13313462",
"legalName": "Державне комунальне підприємство громадського харчування «Школяр»",
"scheme": "https://ns.openprocurement.org/ua/edrpou",
"uri": "http://sch10.edu.vn.ua/"
},
"name": "ДКП «Школяр»"
},
"date": "2014-12-02T22:35:25.198141+02:00",
"description": "Умови виставлені замовником не містять достатньо інформації, щоб заявка мала сенс.",
"id": "8e17d36ac7a049b6889ed2e01687db88",
"status": "pending",
"title": "Недостатньо інформації"
}
}
Подання скарги на визначення переможця¶
Отримання інформації про скарги на визначення переможця¶
Ви можете отримати список всіх скарг:
And check individual complaint:
Вирішення скарг¶
Відхилення скарги на умови закупівлі¶
$ http -j PATCH https://api-sandbox.openprocurement.org/api/0/tenders/c0c01003785344829136c3890ddf8192/complaints/8e17d36ac7a049b6889ed2e01687db88 data:={"status":"invalid"}
PATCH /api/0/tenders/c0c01003785344829136c3890ddf8192/complaints/8e17d36ac7a049b6889ed2e01687db88 HTTP/1.1
Content-Type: application/json; charset=utf-8
{
"data": {
"status": "invalid"
}
}
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": {
"author": {
"address": {
"countryName": "Україна",
"locality": "м. Вінниця",
"postalCode": "21100",
"region": "м. Вінниця",
"streetAddress": "вул. Островського, 33"
},
"contactPoint": {
"email": "soleksuk@gmail.com",
"name": "Сергій Олексюк",
"telephone": "+380 (432) 21-69-30"
},
"identifier": {
"id": "13313462",
"legalName": "Державне комунальне підприємство громадського харчування «Школяр»",
"scheme": "https://ns.openprocurement.org/ua/edrpou",
"uri": "http://sch10.edu.vn.ua/"
},
"name": "ДКП «Школяр»"
},
"date": "2014-12-02T22:35:25.198141+02:00",
"description": "Умови виставлені замовником не містять достатньо інформації, щоб заявка мала сенс.",
"id": "8e17d36ac7a049b6889ed2e01687db88",
"status": "invalid",
"title": "Недостатньо інформації"
}
}
Подання рішення по скарзі на умови закупівлі¶
Орган, що розглядає скарги, завантажує документ з рішенням:
$ http --form POST https://api-sandbox.openprocurement.org/api/0/tenders/c0c01003785344829136c3890ddf8192/complaints/8e17d36ac7a049b6889ed2e01687db88/documents file@./ComplaintResolution.pdf
POST /api/0/tenders/c0c01003785344829136c3890ddf8192/complaints/8e17d36ac7a049b6889ed2e01687db88/documents HTTP/1.1
Content-Type: multipart/form-data; boundary=29b5edbb4280422ba5e565003ce36030
+-----------------------------------------+
| NOTE: binary data not shown in terminal |
+-----------------------------------------+
HTTP/1.1 201 Created
Content-Type: application/json; charset=UTF-8
Location: http://api-sandbox.openprocurement.org/api/0/tenders/c0c01003785344829136c3890ddf8192/complaints/8e17d36ac7a049b6889ed2e01687db88/documents/d74ba2b8c92744b283dc693ceb6e3f2c
{
"data": {
"dateModified": "2014-12-02T22:35:28.720221+02:00",
"datePublished": "2014-12-02T22:35:28.720178+02:00",
"format": "text/plain",
"id": "d74ba2b8c92744b283dc693ceb6e3f2c",
"title": "ComplaintResolution.pdf",
"url": "http://api-sandbox.openprocurement.org/api/0/tenders/c0c01003785344829136c3890ddf8192/complaints/8e17d36ac7a049b6889ed2e01687db88/documents/d74ba2b8c92744b283dc693ceb6e3f2c?download=527a0cb2ca8948118969fff9d8da6fc6"
}
}
And either resolves complaint:
$ http -j PATCH https://api-sandbox.openprocurement.org/api/0/tenders/c0c01003785344829136c3890ddf8192/complaints/8e17d36ac7a049b6889ed2e01687db88 data:={"status":"resolved"}
PATCH /api/0/tenders/c0c01003785344829136c3890ddf8192/complaints/8e17d36ac7a049b6889ed2e01687db88 HTTP/1.1
Content-Type: application/json; charset=utf-8
{
"data": {
"status": "resolved"
}
}
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": {
"author": {
"address": {
"countryName": "Україна",
"locality": "м. Вінниця",
"postalCode": "21100",
"region": "м. Вінниця",
"streetAddress": "вул. Островського, 33"
},
"contactPoint": {
"email": "soleksuk@gmail.com",
"name": "Сергій Олексюк",
"telephone": "+380 (432) 21-69-30"
},
"identifier": {
"id": "13313462",
"legalName": "Державне комунальне підприємство громадського харчування «Школяр»",
"scheme": "https://ns.openprocurement.org/ua/edrpou",
"uri": "http://sch10.edu.vn.ua/"
},
"name": "ДКП «Школяр»"
},
"date": "2014-12-02T22:35:25.198141+02:00",
"description": "Умови виставлені замовником не містять достатньо інформації, щоб заявка мала сенс.",
"documents": [
{
"dateModified": "2014-12-02T22:35:28.720221+02:00",
"datePublished": "2014-12-02T22:35:28.720178+02:00",
"format": "text/plain",
"id": "d74ba2b8c92744b283dc693ceb6e3f2c",
"title": "ComplaintResolution.pdf",
"url": "http://api-sandbox.openprocurement.org/api/0/tenders/c0c01003785344829136c3890ddf8192/complaints/8e17d36ac7a049b6889ed2e01687db88/documents/d74ba2b8c92744b283dc693ceb6e3f2c?download=527a0cb2ca8948118969fff9d8da6fc6"
}
],
"id": "8e17d36ac7a049b6889ed2e01687db88",
"status": "resolved",
"title": "Недостатньо інформації"
}
}
Або відхиляє:
$ http -j PATCH https://api-sandbox.openprocurement.org/api/0/tenders/c0c01003785344829136c3890ddf8192/complaints/8e17d36ac7a049b6889ed2e01687db88 data:={"status":"declined"}
PATCH /api/0/tenders/c0c01003785344829136c3890ddf8192/complaints/8e17d36ac7a049b6889ed2e01687db88 HTTP/1.1
Content-Type: application/json; charset=utf-8
{
"data": {
"status": "declined"
}
}
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": {
"author": {
"address": {
"countryName": "Україна",
"locality": "м. Вінниця",
"postalCode": "21100",
"region": "м. Вінниця",
"streetAddress": "вул. Островського, 33"
},
"contactPoint": {
"email": "soleksuk@gmail.com",
"name": "Сергій Олексюк",
"telephone": "+380 (432) 21-69-30"
},
"identifier": {
"id": "13313462",
"legalName": "Державне комунальне підприємство громадського харчування «Школяр»",
"scheme": "https://ns.openprocurement.org/ua/edrpou",
"uri": "http://sch10.edu.vn.ua/"
},
"name": "ДКП «Школяр»"
},
"date": "2014-12-02T22:35:25.198141+02:00",
"description": "Умови виставлені замовником не містять достатньо інформації, щоб заявка мала сенс.",
"documents": [
{
"dateModified": "2014-12-02T22:35:28.720221+02:00",
"datePublished": "2014-12-02T22:35:28.720178+02:00",
"format": "text/plain",
"id": "d74ba2b8c92744b283dc693ceb6e3f2c",
"title": "ComplaintResolution.pdf",
"url": "http://api-sandbox.openprocurement.org/api/0/tenders/c0c01003785344829136c3890ddf8192/complaints/8e17d36ac7a049b6889ed2e01687db88/documents/d74ba2b8c92744b283dc693ceb6e3f2c?download=527a0cb2ca8948118969fff9d8da6fc6"
}
],
"id": "8e17d36ac7a049b6889ed2e01687db88",
"status": "declined",
"title": "Недостатньо інформації"
}
}