Аутентифікація

Деякі запити API (особливо GET запити лише для читання) не потребують аутентифікації. Інші, ті, які модифікують дані у базі даних, потребують аутентифікації брокера через ключ API. Додатково видаються токени власника, щоб забезпечити кілька ролей дійових осіб при створенні об’єкта.

Ключі API

Ключ API - це ім’я користувача, що буде використовуватись зі схемою базової аутентифікації (див. RFC 2617#section-2).

Токени власника

Отримання токена

Токен видається, коли об’єкт створюється в базі даних:

POST /api/2.3/tenders?opt_pretty=1 HTTP/1.0
Authorization: Basic YnJva2VyOg==
Content-Length: 4164
Content-Type: application/json
Host: api-sandbox.openprocurement.org

{
  "data": {
    "features": [
      {
        "code": "OCDS-123454-AIR-INTAKE",
        "description": "Ефективна потужність всмоктування пилососа, в ватах (аероватах)",
        "title": "Потужність всмоктування",
        "enum": [
          {
            "value": 0.1,
            "title": "До 1000 Вт"
          },
          {
            "value": 0.15,
            "title": "Більше 1000 Вт"
          }
        ],
        "title_en": "Air Intake",
        "relatedItem": "e214fbd9ed204c9bb42f9e1f628109f8",
        "featureOf": "item"
      },
      {
        "code": "OCDS-123454-YEARS",
        "description": "Кількість років, які організація учасник працює на ринку",
        "title": "Років на ринку",
        "enum": [
          {
            "value": 0.05,
            "title": "До 3 років"
          },
          {
            "value": 0.1,
            "title": "Більше 3 років, менше 5 років"
          },
          {
            "value": 0.15,
            "title": "Більше 5 років"
          }
        ],
        "title_en": "Years trading",
        "featureOf": "tenderer"
      }
    ],
    "title": "футляри до державних нагород",
    "minimalStep": {
      "currency": "UAH",
      "amount": 35
    },
    "enquiryPeriod": {
      "endDate": "2017-08-01T17:36:49.331754"
    },
    "title_en": "Cases with state awards",
    "value": {
      "currency": "UAH",
      "amount": 500
    },
    "mode": "test",
    "procurementMethodType": "belowThreshold",
    "procuringEntity": {
      "contactPoint": {
        "name": "Державне управління справами",
        "telephone": "0440000000"
      },
      "identifier": {
        "scheme": "UA-EDR",
        "id": "00037256",
        "uri": "http://www.dus.gov.ua/"
      },
      "name": "Державне управління справами",
      "kind": "general",
      "address": {
        "countryName": "Україна",
        "postalCode": "01220",
        "region": "м. Київ",
        "streetAddress": "вул. Банкова, 11, корпус 1",
        "locality": "м. Київ"
      }
    },
    "title_ru": "футляры к государственным наградам",
    "items": [
      {
        "description": "футляри до державних нагород",
        "classification": {
          "scheme": "ДК021",
          "id": "44617100-9",
          "description": "Cartons"
        },
        "description_en": "Cases with state awards",
        "additionalClassifications": [
          {
            "scheme": "ДКПП",
            "id": "17.21.1",
            "description": "папір і картон гофровані, паперова й картонна тара"
          }
        ],
        "description_ru": "футляры к государственным наградам",
        "id": "e214fbd9ed204c9bb42f9e1f628109f8",
        "unit": {
          "code": "44617100-9",
          "name": "item"
        },
        "quantity": 5
      }
    ],
    "tenderPeriod": {
      "endDate": "2017-08-08T17:36:49.331754"
    }
  }
}


201 Created
Content-Type: application/json; charset=UTF-8
Location: http://api-sandbox.openprocurement.org/api/2.3/tenders/e5d1cd890bd54669972755ca7e8604de

{
  "access": {
    "token": "1a6350b26a094a39adf455ee9a495f6c"
  },
  "data": {
    "procurementMethod": "open",
    "features": [
      {
        "code": "OCDS-123454-AIR-INTAKE",
        "description": "Ефективна потужність всмоктування пилососа, в ватах (аероватах)",
        "title": "Потужність всмоктування",
        "enum": [
          {
            "value": 0.1,
            "title": "До 1000 Вт"
          },
          {
            "value": 0.15,
            "title": "Більше 1000 Вт"
          }
        ],
        "title_en": "Air Intake",
        "relatedItem": "e214fbd9ed204c9bb42f9e1f628109f8",
        "featureOf": "item"
      },
      {
        "code": "OCDS-123454-YEARS",
        "description": "Кількість років, які організація учасник працює на ринку",
        "title": "Років на ринку",
        "enum": [
          {
            "value": 0.05,
            "title": "До 3 років"
          },
          {
            "value": 0.1,
            "title": "Більше 3 років, менше 5 років"
          },
          {
            "value": 0.15,
            "title": "Більше 5 років"
          }
        ],
        "title_en": "Years trading",
        "featureOf": "tenderer"
      }
    ],
    "enquiryPeriod": {
      "startDate": "2017-07-25T17:36:55.784983+03:00",
      "endDate": "2017-08-01T17:36:49.331754+03:00"
    },
    "submissionMethod": "electronicAuction",
    "next_check": "2017-08-01T17:36:49.331754+03:00",
    "awardCriteria": "lowestCost",
    "owner": "broker",
    "id": "e5d1cd890bd54669972755ca7e8604de",
    "title": "[ТЕСТУВАННЯ] футляри до державних нагород",
    "tenderID": "UA-2017-07-25-000002",
    "dateModified": "2017-07-25T17:36:55.787215+03:00",
    "status": "active.enquiries",
    "tenderPeriod": {
      "startDate": "2017-08-01T17:36:49.331754+03:00",
      "endDate": "2017-08-08T17:36:49.331754+03:00"
    },
    "procurementMethodType": "belowThreshold",
    "title_en": "[TESTING] Cases with state awards",
    "date": "2017-07-25T17:36:55.785011+03:00",
    "minimalStep": {
      "currency": "UAH",
      "amount": 35.0,
      "valueAddedTaxIncluded": true
    },
    "items": [
      {
        "description": "футляри до державних нагород",
        "classification": {
          "scheme": "ДК021",
          "description": "Cartons",
          "id": "44617100-9"
        },
        "description_en": "Cases with state awards",
        "additionalClassifications": [
          {
            "scheme": "ДКПП",
            "id": "17.21.1",
            "description": "папір і картон гофровані, паперова й картонна тара"
          }
        ],
        "description_ru": "футляры к государственным наградам",
        "id": "e214fbd9ed204c9bb42f9e1f628109f8",
        "unit": {
          "code": "44617100-9",
          "name": "item"
        },
        "quantity": 5
      }
    ],
    "value": {
      "currency": "UAH",
      "amount": 500.0,
      "valueAddedTaxIncluded": true
    },
    "mode": "test",
    "title_ru": "[ТЕСТИРОВАНИЕ] футляры к государственным наградам",
    "procuringEntity": {
      "contactPoint": {
        "name": "Державне управління справами",
        "telephone": "0440000000"
      },
      "identifier": {
        "scheme": "UA-EDR",
        "id": "00037256",
        "uri": "http://www.dus.gov.ua/"
      },
      "name": "Державне управління справами",
      "kind": "general",
      "address": {
        "postalCode": "01220",
        "countryName": "Україна",
        "streetAddress": "вул. Банкова, 11, корпус 1",
        "region": "м. Київ",
        "locality": "м. Київ"
      }
    }
  }
}

У відповіді є access разом з token. Це значення можна використати для модифікації об’єктів у “ролі Власника”.

Використання токена

Ви можете передати токен доступу такими способами:

  1. параметр рядка URL запиту acc_token

  2. заголовок HTTP запиту X-Access-Token

  3. access.token в тілі запитів POST/PUT/PATCH

Ось приклад, де токен передається як рядок URL запиту:

PATCH /api/2.3/tenders/f3641d0ba0f042e8b49de06d5c7921af?acc_token=2ef61fa89e8a451ba4149d2f8e31173b HTTP/1.0
Authorization: Basic YnJva2VyOg==
Content-Length: 75
Content-Type: application/json
Host: api-sandbox.openprocurement.org

{
  "data": {
    "tenderPeriod": {
      "endDate": "2017-08-09T17:37:05.888957+03:00"
    }
  }
}


200 OK
Content-Type: application/json; charset=UTF-8

{
  "data": {
    "procurementMethod": "open",
    "status": "active.enquiries",
    "awardCriteria": "lowestCost",
    "tenderPeriod": {
      "startDate": "2017-08-01T17:36:49.306344+03:00",
      "endDate": "2017-08-09T17:37:05.888957+03:00"
    },
    "title": "футляри до державних нагород",
    "minimalStep": {
      "currency": "UAH",
      "amount": 35.0,
      "valueAddedTaxIncluded": true
    },
    "items": [
      {
        "description": "футляри до державних нагород",
        "classification": {
          "scheme": "ДК021",
          "description": "Cartons",
          "id": "44617100-9"
        },
        "additionalClassifications": [
          {
            "scheme": "ДКПП",
            "id": "17.21.1",
            "description": "папір і картон гофровані, паперова й картонна тара"
          }
        ],
        "deliveryAddress": {
          "postalCode": "79000",
          "countryName": "Україна",
          "streetAddress": "вул. Банкова 1",
          "region": "м. Київ",
          "locality": "м. Київ"
        },
        "deliveryDate": {
          "startDate": "2017-07-27T17:36:49.306344+03:00",
          "endDate": "2017-07-30T17:36:49.306344+03:00"
        },
        "id": "4ee2b0431a064e0eb155eeb650bdfdd0",
        "unit": {
          "code": "44617100-9",
          "name": "item"
        },
        "quantity": 5
      }
    ],
    "procurementMethodType": "belowThreshold",
    "value": {
      "currency": "UAH",
      "amount": 500.0,
      "valueAddedTaxIncluded": true
    },
    "submissionMethod": "electronicAuction",
    "date": "2017-07-25T17:36:55.659566+03:00",
    "next_check": "2017-08-01T17:36:49.306344+03:00",
    "procuringEntity": {
      "contactPoint": {
        "name": "Державне управління справами",
        "telephone": "0440000000"
      },
      "identifier": {
        "scheme": "UA-EDR",
        "id": "00037256",
        "uri": "http://www.dus.gov.ua/"
      },
      "name": "Державне управління справами",
      "kind": "general",
      "address": {
        "postalCode": "01220",
        "countryName": "Україна",
        "streetAddress": "вул. Банкова, 11, корпус 1",
        "region": "м. Київ",
        "locality": "м. Київ"
      }
    },
    "enquiryPeriod": {
      "startDate": "2017-07-25T17:36:55.659520+03:00",
      "endDate": "2017-08-01T17:36:49.306344+03:00"
    },
    "owner": "broker",
    "dateModified": "2017-07-25T17:36:55.921421+03:00",
    "id": "f3641d0ba0f042e8b49de06d5c7921af",
    "tenderID": "UA-2017-07-25-000001"
  }
}