Вітаємо на сайті документації по openprocurement.planning.api¶
Будь ласка повідомляйте про всі проблеми та поради покращень чи через розсилку, чи через issue tracker.
Зміст:
Огляд¶
Open Procurement API це єдиний інтерфейс для бази даних Open Procurement, що є основним елементом інфраструктури Open Procurement
Ця документація стосується планів закупівлі
Плани закупівлі¶
Після затвердження бюджету/фінансового плану організації, ця інформація заноситься в систему у вигляді структурованої інформації. Річний план закупівель деталізується до п’ятого знаку класифікатора ДК 016:2010, третього знаку ДК 021:2015 та коду КЕКВ (якщо закупівля здійснюється за кошти державного бюджету). Поступово ця інформація деталізується Змовником через внесення змін до річного плану, у яких зазначається місяць початку процедури і предмет закупівлі.
На основі змін до річного плану, Замовник може створювати оголошення закупівлі у статусі “Планується” із детальним описом предмету закупівлі, технічних умов і кваліфікаційних критеріїв. Цей пункт є не обов’язковим і використовуватиметься замовниками за бажанням.
Для внесення річного плану і змін до нього Замовник може використовувати будь-який Майданчик, приєднаний до системи Prozorro і авторизований для обслуговування замовників.
Корисні посилання¶
Репозиторій джерельних текстів цього проекту: https://github.com/openprocurement/openprocurement.planning.api
Репозиторій API: https://github.com/openprocurement/openprocurement.api.
Повідомляйте про всі проблеми та поради через issue tracker (реєстрація на GitHub обов’язкова).
Загальне обговорення відбувається через розсилку Open Procurement General.
Загальну інформацію, пояснення та технічні специфікації можна знайти на сайті openprocurement.org.
Туторіал¶
Створення плану¶
Створення плану закупівлі¶
Створимо план
POST /api/2.3/plans?opt_pretty=1 HTTP/1.0
Authorization: Basic YnJva2VyOg==
Content-Length: 2454
Content-Type: application/json
Host: api-sandbox.openprocurement.org
{
"data": {
"classification": {
"scheme": "ДК021",
"description": "Seeds",
"id": "03111000-2"
},
"items": [
{
"description": "Насіння гірчиці",
"classification": {
"scheme": "ДК021",
"description": "Mustard seeds",
"id": "03111600-8"
},
"additionalClassifications": [
{
"scheme": "ДКПП",
"id": "01.11.92",
"description": "Насіння гірчиці"
}
],
"deliveryDate": {
"endDate": "2017-07-06T17:41:39.677983"
},
"unit": {
"code": "KGM",
"name": "кг"
},
"quantity": 1000
},
{
"description": "Насіння соняшнику",
"classification": {
"scheme": "ДК021",
"description": "Sunflower seeds",
"id": "03111300-5"
},
"additionalClassifications": [
{
"scheme": "ДКПП",
"id": "01.11.95",
"description": "Насіння соняшнику"
}
],
"deliveryDate": {
"endDate": "2017-07-07T17:41:39.677983"
},
"unit": {
"code": "KGM",
"name": "кг"
},
"quantity": 2000
},
{
"description": "Насіння бавовнику",
"classification": {
"scheme": "ДК021",
"description": "Cotton seeds",
"id": "03111400-6"
},
"additionalClassifications": [
{
"scheme": "ДКПП",
"id": "01.11.84",
"description": "Насіння бавовнику"
}
],
"deliveryDate": {
"endDate": "2017-07-08T17:41:39.677983"
},
"unit": {
"code": "KGM",
"name": "кг"
},
"quantity": 3000
}
],
"budget": {
"amountNet": 12222,
"description": "budget_description",
"project": {
"name": "proj_name",
"id": "123"
},
"currency": "UAH",
"amount": 10000,
"id": "12303111000-2"
},
"additionalClassifications": [
{
"scheme": "КЕКВ",
"id": "1",
"description": "-"
}
],
"procuringEntity": {
"identifier": {
"scheme": "UA-EDR",
"id": "111983",
"legalName": "ДП Державне Управління Справами"
},
"name": "ДУС"
},
"tender": {
"procurementMethod": "open",
"procurementMethodType": "belowThreshold",
"tenderPeriod": {
"startDate": "2017-06-28T17:41:39.677983"
}
}
}
}
Response: 201 Created
Content-Type: application/json; charset=UTF-8
Location: http://api-sandbox.openprocurement.org/api/2.3/plans/52862ec099ff4debbf9f26a0980f27f3
{
"access": {
"token": "fc9c0f555bf24dffa2b855ed618bc81c"
},
"data": {
"classification": {
"scheme": "ДК021",
"description": "Seeds",
"id": "03111000-2"
},
"items": [
{
"description": "Насіння гірчиці",
"classification": {
"scheme": "ДК021",
"description": "Mustard seeds",
"id": "03111600-8"
},
"additionalClassifications": [
{
"scheme": "ДКПП",
"id": "01.11.92",
"description": "Насіння гірчиці"
}
],
"deliveryDate": {
"endDate": "2017-07-06T17:41:39.677983+03:00"
},
"id": "f8173e5bf8754aec89a47a624b3cefd1",
"unit": {
"code": "KGM",
"name": "кг"
},
"quantity": 1000
},
{
"description": "Насіння соняшнику",
"classification": {
"scheme": "ДК021",
"description": "Sunflower seeds",
"id": "03111300-5"
},
"additionalClassifications": [
{
"scheme": "ДКПП",
"id": "01.11.95",
"description": "Насіння соняшнику"
}
],
"deliveryDate": {
"endDate": "2017-07-07T17:41:39.677983+03:00"
},
"id": "3b0208637aa44a99b388a9b540533a1c",
"unit": {
"code": "KGM",
"name": "кг"
},
"quantity": 2000
},
{
"description": "Насіння бавовнику",
"classification": {
"scheme": "ДК021",
"description": "Cotton seeds",
"id": "03111400-6"
},
"additionalClassifications": [
{
"scheme": "ДКПП",
"id": "01.11.84",
"description": "Насіння бавовнику"
}
],
"deliveryDate": {
"endDate": "2017-07-08T17:41:39.677983+03:00"
},
"id": "7266c3c7b95246718021ab671207335e",
"unit": {
"code": "KGM",
"name": "кг"
},
"quantity": 3000
}
],
"planID": "UA-P-2017-06-21-000001",
"budget": {
"amountNet": 12222.0,
"description": "budget_description",
"project": {
"id": "123",
"name": "proj_name"
},
"currency": "UAH",
"amount": 10000.0,
"id": "12303111000-2"
},
"datePublished": "2017-06-21T17:41:40.564867+03:00",
"tender": {
"procurementMethod": "open",
"procurementMethodType": "belowThreshold",
"tenderPeriod": {
"startDate": "2017-06-28T17:41:39.677983+03:00"
}
},
"additionalClassifications": [
{
"scheme": "КЕКВ",
"id": "1",
"description": "-"
}
],
"procuringEntity": {
"identifier": {
"scheme": "UA-EDR",
"id": "111983",
"legalName": "ДП Державне Управління Справами"
},
"name": "ДУС"
},
"owner": "broker",
"dateModified": "2017-06-21T17:41:40.588719+03:00",
"id": "52862ec099ff4debbf9f26a0980f27f3"
}
}
Ми отримали код відповіді 201 Created, заголовок Location і тіло з додатковим ідентифікатором id, planID та властивість dateModified - дату, що показує час, коли план закупівлі востаннє модифікувався.
Перевіримо, що містить реєстр планів закупівель:
GET /api/2.3/plans HTTP/1.0
Host: api-sandbox.openprocurement.org
Response: 200 OK
Content-Type: application/json; charset=UTF-8
{
"next_page": {
"path": "/api/2.3/plans?offset=",
"uri": "http://api-sandbox.openprocurement.org/api/2.3/plans?offset=",
"offset": ""
},
"data": []
}
Відображається id - внутрішній ідентифікатор (який можна використовувати, щоб побудувати повну URL-адресу, додаючи http://api-sandbox.openprocurement.org/api/0/plans/ на початку) та мітка часу dateModified.
Модифікація плану закупівлі¶
Оновимо план шляхом надання їй усіх інших важливих властивостей:
PATCH /api/2.3/plans/52862ec099ff4debbf9f26a0980f27f3?acc_token=fc9c0f555bf24dffa2b855ed618bc81c HTTP/1.0
Authorization: Basic YnJva2VyOg==
Content-Length: 652
Content-Type: application/json
Host: api-sandbox.openprocurement.org
{
"data": {
"items": [
{
"description": "Насіння овочевих культур",
"classification": {
"scheme": "ДК021",
"description": "Vegetable seeds",
"id": "03111700-9"
},
"additionalClassifications": [
{
"scheme": "ДКПП",
"id": "01.13.6",
"description": "Насіння овочевих культур"
}
],
"deliveryDate": {
"endDate": "2016-06-01T23:06:30.023018+03:00"
},
"unit": {
"code": "KGM",
"name": "кг"
},
"quantity": 5000
}
]
}
}
Response: 200 OK
Content-Type: application/json; charset=UTF-8
{
"data": {
"classification": {
"scheme": "ДК021",
"description": "Seeds",
"id": "03111000-2"
},
"items": [
{
"description": "Насіння овочевих культур",
"classification": {
"scheme": "ДК021",
"description": "Vegetable seeds",
"id": "03111700-9"
},
"additionalClassifications": [
{
"scheme": "ДКПП",
"id": "01.13.6",
"description": "Насіння овочевих культур"
}
],
"deliveryDate": {
"endDate": "2016-06-01T23:06:30.023018+03:00"
},
"id": "f8173e5bf8754aec89a47a624b3cefd1",
"unit": {
"code": "KGM",
"name": "кг"
},
"quantity": 5000
}
],
"planID": "UA-P-2017-06-21-000001",
"budget": {
"amountNet": 12222.0,
"description": "budget_description",
"project": {
"id": "123",
"name": "proj_name"
},
"currency": "UAH",
"amount": 10000.0,
"id": "12303111000-2"
},
"datePublished": "2017-06-21T17:41:40.564867+03:00",
"tender": {
"procurementMethod": "open",
"procurementMethodType": "belowThreshold",
"tenderPeriod": {
"startDate": "2017-06-28T17:41:39.677983+03:00"
}
},
"additionalClassifications": [
{
"scheme": "КЕКВ",
"id": "1",
"description": "-"
}
],
"procuringEntity": {
"identifier": {
"scheme": "UA-EDR",
"id": "111983",
"legalName": "ДП Державне Управління Справами"
},
"name": "ДУС"
},
"owner": "broker",
"dateModified": "2017-06-21T17:41:40.747307+03:00",
"id": "52862ec099ff4debbf9f26a0980f27f3"
}
}
Ми бачимо, що додаткові властивості об’єднані з існуючими даними плану. Додатково оновлена властивість dateModified, щоб відображати останню дату модифікації.
Ще одна перевірка списку відображає нову дату модифікації:
GET /api/2.3/plans HTTP/1.0
Host: api-sandbox.openprocurement.org
Response: 200 OK
Content-Type: application/json; charset=UTF-8
{
"next_page": {
"path": "/api/2.3/plans?offset=2017-06-21T17%3A41%3A40.588719%2B03%3A00",
"uri": "http://api-sandbox.openprocurement.org/api/2.3/plans?offset=2017-06-21T17%3A41%3A40.588719%2B03%3A00",
"offset": "2017-06-21T17:41:40.588719+03:00"
},
"data": [
{
"id": "52862ec099ff4debbf9f26a0980f27f3",
"dateModified": "2017-06-21T17:41:40.588719+03:00"
}
]
}
Стандарт даних¶
Стандарт даних змодельований згідно Open Contracting Standard з розширеннями в тих областях, які він не покриває.
Contract¶
Схема¶
id: | uid, генерується автоматично OpenContracting Description: Ідентифікатор цього договору. |
---|---|
awardID: | рядок, обов’язковий OpenContracting Description: Award.id вказує на рішення, згідно якого видається договір. |
contractID: | рядок, генерується автоматично, лише для читання |
title: | рядок, обов’язковий OpenContracting Description: Назва договору |
description: | рядок OpenContracting Description: Опис договору |
items: | Список об’єктів Item, генерується автоматично, лише для читання Товари, послуги та інші нематеріальні результати у цій угоді. Звернуть увагу: Якщо список співпадає з визначенням переможця award, то його не потрібно повторювати. |
suppliers: | Список об’єктів Organization, генерується автоматично, лише для читання |
status: | рядок, обов’язковий OpenContracting Description: Поточний статус договору. Можливі значення:
|
period: |
OpenContracting Description: Дата початку та завершення договору. |
value: | Об’єкт Value, генерується автоматично, лише для читання OpenContracting Description: Загальна вартість договору. |
dateSigned: | рядок, Date, генерується автоматично OpenContracting Description: Дата підписання договору. Якщо було декілька підписань, то береться дата останнього підписання. |
documents: | Список об’єктів Document OpenContracting Description: Усі документи та додатки пов’язані з договором, включно з будь-якими повідомленнями. |
Item¶
Схема¶
id: | рядок, генерується автоматично |
||||||
---|---|---|---|---|---|---|---|
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, якщо вони обидва вказані. |
|||||||
relatedLot: | рядок ID пов’язаного Lot. |
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. |
documentOf: | рядок Можливі значення:
|
relatedItem: | рядок |
Tender¶
Схема¶
title: | рядок, багатомовний Назва тендера, яка відображається у списках. Можна включити такі елементи:
|
||||||||
---|---|---|---|---|---|---|---|---|---|
description: | рядок, багатомовний Детальний опис закупівлі |
||||||||
tenderID: | рядок, генерується автоматично, лише для читання Ідентифікатор закупівлі, щоб знайти закупівлю у “паперовій” документації OpenContracting Description: TenderID повинен завжди співпадати з OCID. Його включають, щоб зробити структуру даних більш зручною. |
||||||||
procuringEntity: | |||||||||
Organization, обов’язково Організація, що проводить закупівлю. OpenContracting Description: Об’єкт, що управляє закупівлею. Він не обов’язково є покупцем, який платить / використовує закуплені елементи. |
|||||||||
value: | Value, обов’язково Повний доступний бюджет закупівлі. OpenContracting Description: Загальна кошторисна вартість закупівлі. |
||||||||
items: | список об’єктів Item, обов’язково Список об’єктів Document OpenContracting Description: Товари та послуги, що будуть закуплені, поділені на спискові елементи, де це можливо. Елементи не повинні дублюватись, замість цього вкажіть кількість 2. |
||||||||
documents: | Список об’єктів Document OpenContracting Description: Всі документи та додатки пов’язані із закупівлею. |
||||||||
awards: | Список об’єктів Award Усі кваліфікації (дискваліфікації та переможці). |
||||||||
contracts: |
OpenContracting Description: Дата або період, коли очікується визначення переможця. |
||||||||
status: | рядок
Статус Закупівлі. |
||||||||
cancellations: | Список об’єктів Cancellation. Містить 1 об’єкт зі статусом active на випадок, якщо Закупівлю буде відмінено. Об’єкт Cancellation описує причину скасування закупівлі та надає відповідні документи, якщо такі є. |
||||||||
procurementMethod: | |||||||||
рядок, генерується автоматично
Метод закупівлі. |
|||||||||
procurementMethodRationale: | |||||||||
рядок, багатомовний Обгрунтування використання такого методу закупівлі. |
|||||||||
procurementMethodType: | |||||||||
рядок
|
|||||||||
dateModified: | рядок, Date |
||||||||
owner: | рядок, генерується автоматично |