Вітаємо на сайті документації по openprocurement.planning.api

Будь ласка повідомляйте про всі проблеми та поради покращень чи через розсилку, чи через issue tracker.

Зміст:

Огляд

Open Procurement API це єдиний інтерфейс для бази даних Open Procurement, що є основним елементом інфраструктури Open Procurement

Ця документація стосується планів закупівлі

Плани закупівлі

Після затвердження бюджету/фінансового плану організації, ця інформація заноситься в систему у вигляді структурованої інформації. Річний план закупівель деталізується до п’ятого знаку класифікатора ДК 016:2010, третього знаку ДК 021:2015 та коду КЕКВ (якщо закупівля здійснюється за кошти державного бюджету). Поступово ця інформація деталізується Змовником через внесення змін до річного плану, у яких зазначається місяць початку процедури і предмет закупівлі.

На основі змін до річного плану, Замовник може створювати оголошення закупівлі у статусі “Планується” із детальним описом предмету закупівлі, технічних умов і кваліфікаційних критеріїв. Цей пункт є не обов’язковим і використовуватиметься замовниками за бажанням.

Для внесення річного плану і змін до нього Замовник може використовувати будь-який Майданчик, приєднаний до системи Prozorro і авторизований для обслуговування замовників.

Туторіал

Створення плану

Створення плану закупівлі

Створимо план

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: Поточний статус договору.

Можливі значення:

  • pending - цей договір запропоновано, але він ще не діє. Можливо очікується його підписання.

  • active - цей договір підписаний всіма учасниками, і зараз діє на законних підставах.

  • cancelled - цей договір було скасовано до підписання.

  • terminated - цей договір був підписаний та діяв, але вже завершився. Це може бути пов’язано з виконанням договору, або з достроковим припиненням через якусь незавершеність.

period:

Period

OpenContracting Description: Дата початку та завершення договору.

value:

Об’єкт Value, генерується автоматично, лише для читання

OpenContracting Description: Загальна вартість договору.

dateSigned:

рядок, Date, генерується автоматично

OpenContracting Description: Дата підписання договору. Якщо було декілька підписань, то береться дата останнього підписання.

documents:

Список об’єктів Document

OpenContracting Description: Усі документи та додатки пов’язані з договором, включно з будь-якими повідомленнями.

Схема роботи Contract

digraph G {
    A [ label="pending*" ]
    B [ label="active"]
    C [ label="cancelled"]
     A -> B;
     A -> C;
}

* позначає початковий стан

Item

Схема

id:

рядок, генерується автоматично

description:

рядок, багатомовний, обов’язковий

OpenContracting Description: Опис товарів та послуг, які повинні бути надані.

classification:

Classification

OpenContracting Description: Початкова класифікація елемента. Дивіться у itemClassificationScheme, щоб визначити бажані списки класифікації, включно з CPV та GSIN.

Класифікація classification.scheme обов’язково повинна бути CPV. classification.id повинно бути дійсним CPV кодом.

additionalClassifications:
 

Список об’єктів Classification

OpenContracting Description: Масив додаткових класифікацій для елемента. Дивіться у список кодів itemClassificationScheme, щоб використати поширені варіанти в OCDS. Також можна використовувати для представлення кодів з внутрішньої схеми класифікації.

Обов’язково мати хоча б один елемент з ДКПП у стрічці scheme.

unit:

Unit

OpenContracting Description: Опис одиниці виміру товару, наприклад, години, кілограми. Складається з назви одиниці та значення однієї одиниці.

quantity:

ціле число

OpenContracting Description: Кількість необхідних одиниць.

deliveryDate:

Period

Період, протягом якого елемент повинен бути доставлений.

deliveryAddress:
 

Address

Адреса місця, куди елемент повинен бути доставлений.

deliveryLocation:
 

словник

Географічні координати місця доставки. Складається з таких компонентів:

latitude:

рядок, обов’язковий

longitude:

рядок, обов’язковий

elevation:

стрічка, не обов’язково, переважно не використовується

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

  • notice - Повідомлення про закупівлю

    Офіційне повідомлення, що містить деталі закупівлі. Це може бути посилання на документ, веб-сторінку, чи на офіційний бюлетень, де розміщено повідомлення.

  • technicalSpecifications - Технічні специфікації

    Детальна технічна інформація про товари або послуги, що повинні бути надані.

  • shortlistedFirms - Фірми у короткому списку

  • riskProvisions - Положення для управління ризиками та зобов’язаннями

  • billOfQuantity - Кошторис

  • conflictOfInterest - Виявлені конфлікти інтересів

  • debarments - Недопущення до закупівлі

Можливі значення для Award

  • notice - Повідомлення про рішення

    Офіційне повідомлення, що містить деталі рішення про визначення переможця. Це може бути посилання на документ, веб-сторінку, чи на офіційний бюлетень, де розміщено повідомлення.

  • evaluationReports - Звіт про оцінку

    Звіт про оцінку пропозицій і застосування критеріїв оцінки, у тому числі, обґрунтування рішення про визначення переможця.

  • complaints - Скарги та рішення

Можливі значення для Contract

  • notice - Повідомлення про договір

    Офіційне повідомлення, що містить деталі підписання доовору та початку його реалізації. Це може бути посилання на документ, веб-сторінку, чи на офіційний бюлетень, де розміщено повідомлення.

  • contractSigned - Підписаний договір

  • contractArrangements - Заходи для припинення договору

  • contractSchedule - Розклад та етапи

  • contractAnnexe - Додатки до договору

  • contractGuarantees - Гарантії

  • subContract - Субпідряд

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:

рядок

Можливі значення:

  • tender
  • item
  • lot
relatedItem:

рядок

ID пов’язаних Lot або Item.

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:

Список об’єктів Contract

OpenContracting Description: Дата або період, коли очікується визначення переможця.

status:

рядок

active:

Активна закупівля (за замовчуванням)

complete:

Завершена закупівля

cancelled:

Відмінена закупівля

unsuccessful:

Закупівля не відбулась

Статус Закупівлі.

cancellations:

Список об’єктів Cancellation.

Містить 1 об’єкт зі статусом active на випадок, якщо Закупівлю буде відмінено.

Об’єкт Cancellation описує причину скасування закупівлі та надає відповідні документи, якщо такі є.

procurementMethod:
 

рядок, генерується автоматично

limited:

За замовчуванням.

Метод закупівлі.

procurementMethodRationale:
 

рядок, багатомовний

Обгрунтування використання такого методу закупівлі.

procurementMethodType:
 

рядок

reporting:

ідентифікатор процедури реєстрації угоди

negotiation:

ідентифікатор переговорної процедури

negotiation.quick:
 

ідентифікатор скороченої переговорної процедури

dateModified:

рядок, Date

owner:

рядок, генерується автоматично

Схема роботи Tender

digraph G {
    A [ label="active*" ]
    B [ label="complete"]
    C [ label="cancelled"]
     A -> B;
     A -> C;
}

* позначає початковий стан

API Довідник

Індекси та таблиці