Restricted access

Framework can have restricted access with next rules

Object

Public API

Private API (Procuring Entity)

Private API (Supplier)

framework

view

view/edit

view

submission

view (all)

view/edit (own)

qualification

view/edit (all)

view (own)

agreement

view/edit (all)

Let’s make an agreement that Procuring Entity and Suppliers will use different brokers for working with API:

  • Procuring Entity uses Broker

  • Supplier 1 uses Broker 1

  • Supplier 2 uses Broker 2

Create Framework with restricted access

First create framework with restricted access by Broker. To do this, we need to set restricted_derivatives field to true in config section of framework creation request.

Request

POST /api/2.5/frameworks HTTP/1.0
Authorization: Bearer broker
Content-Length: 1873
Content-Type: application/json
Host: lb-api-sandbox.prozorro.gov.ua

{
  "data": {
    "frameworkType": "dynamicPurchasingSystem",
    "procuringEntity": {
      "contactPoint": {
        "name": "Державне управління справами",
        "telephone": "+0440000000",
        "email": "aa@aa.com"
      },
      "identifier": {
        "scheme": "UA-EDR",
        "id": "00037256",
        "legalName": "Назва організації"
      },
      "kind": "defense",
      "address": {
        "countryName": "Україна",
        "postalCode": "01220",
        "region": "м. Київ",
        "locality": "м. Київ",
        "streetAddress": "вул. Банкова, 11, корпус 1"
      },
      "name": "Державне управління справами"
    },
    "additionalClassifications": [
      {
        "scheme": "ДК003",
        "id": "17.21.1",
        "description": "папір і картон гофровані, паперова й картонна тара"
      }
    ],
    "classification": {
      "scheme": "ДК021",
      "description": "Mustard seeds",
      "id": "03111600-8"
    },
    "title": "Узагальнена назва закупівлі",
    "description": "Назва предмета закупівлі",
    "qualificationPeriod": {
      "endDate": "2023-03-02T00:00:00+02:00"
    }
  },
  "config": {
    "restrictedDerivatives": true
  }
}

Response

HTTP/1.0 201 Created
Content-Type: application/json
Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/frameworks/6f4f10deaaae4f8b9d117837474a9333

{
  "data": {
    "status": "draft",
    "title": "Узагальнена назва закупівлі",
    "description": "Назва предмета закупівлі",
    "qualificationPeriod": {
      "endDate": "2023-03-02T00:00:00+02:00"
    },
    "classification": {
      "description": "Mustard seeds",
      "scheme": "ДК021",
      "id": "03111600-8"
    },
    "additionalClassifications": [
      {
        "scheme": "ДК003",
        "id": "17.21.1",
        "description": "папір і картон гофровані, паперова й картонна тара"
      }
    ],
    "frameworkType": "dynamicPurchasingSystem",
    "procuringEntity": {
      "name": "Державне управління справами",
      "identifier": {
        "scheme": "UA-EDR",
        "id": "00037256",
        "legalName": "Назва організації"
      },
      "address": {
        "countryName": "Україна",
        "streetAddress": "вул. Банкова, 11, корпус 1",
        "locality": "м. Київ",
        "region": "м. Київ",
        "postalCode": "01220"
      },
      "contactPoint": {
        "name": "Державне управління справами",
        "telephone": "+0440000000",
        "email": "aa@aa.com"
      },
      "kind": "defense"
    },
    "prettyID": "UA-F-2023-01-01-000001",
    "owner": "broker",
    "date": "2023-01-01T00:00:00+02:00",
    "dateCreated": "2023-01-01T00:00:00+02:00",
    "dateModified": "2023-01-01T00:00:00+02:00",
    "id": "6f4f10deaaae4f8b9d117837474a9333"
  },
  "access": {
    "token": "a2ff40fa3e7143baa0a0b38805036fe7",
    "transfer": "0b5fce6b65e4463aa9ec39a7dea1aeb9"
  },
  "config": {
    "restrictedDerivatives": true
  }
}

This framework by itself is visible to everyone in public API.

Note

For ProcuringEntity with defense kind restricted_derivatives field will be set to true automatically.

The second step is moving the framework to active status:

Request

PATCH /api/2.5/frameworks/6f4f10deaaae4f8b9d117837474a9333?acc_token=a2ff40fa3e7143baa0a0b38805036fe7 HTTP/1.0
Authorization: Bearer broker
Content-Length: 30
Content-Type: application/json
Host: lb-api-sandbox.prozorro.gov.ua

{
  "data": {
    "status": "active"
  }
}

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": {
    "prettyID": "UA-F-2023-01-01-000001",
    "title": "Узагальнена назва закупівлі",
    "description": "Назва предмета закупівлі",
    "status": "active",
    "classification": {
      "description": "Mustard seeds",
      "scheme": "ДК021",
      "id": "03111600-8"
    },
    "additionalClassifications": [
      {
        "scheme": "ДК003",
        "id": "17.21.1",
        "description": "папір і картон гофровані, паперова й картонна тара"
      }
    ],
    "owner": "broker",
    "date": "2023-01-01T00:00:00+02:00",
    "dateCreated": "2023-01-01T00:00:00+02:00",
    "dateModified": "2023-01-01T00:00:00+02:00",
    "qualificationPeriod": {
      "endDate": "2023-03-02T00:00:00+02:00",
      "startDate": "2023-01-01T00:00:00+02:00"
    },
    "frameworkType": "dynamicPurchasingSystem",
    "procuringEntity": {
      "name": "Державне управління справами",
      "identifier": {
        "scheme": "UA-EDR",
        "id": "00037256",
        "legalName": "Назва організації"
      },
      "address": {
        "countryName": "Україна",
        "streetAddress": "вул. Банкова, 11, корпус 1",
        "locality": "м. Київ",
        "region": "м. Київ",
        "postalCode": "01220"
      },
      "contactPoint": {
        "name": "Державне управління справами",
        "telephone": "+0440000000",
        "email": "aa@aa.com"
      },
      "kind": "defense"
    },
    "enquiryPeriod": {
      "startDate": "2023-01-01T00:00:00+02:00",
      "endDate": "2023-01-14T00:00:00+02:00",
      "clarificationsUntil": "2023-01-19T00:00:00+02:00"
    },
    "period": {
      "startDate": "2023-01-01T00:00:00+02:00",
      "endDate": "2023-01-31T00:00:00+02:00"
    },
    "next_check": "2023-01-28T00:00:00+02:00",
    "id": "6f4f10deaaae4f8b9d117837474a9333"
  },
  "config": {
    "restrictedDerivatives": true
  }
}

Enquiries

The participant has the opportunity to contact the administrator through the electronic procurement system regarding the review of the requirements for the participant, specified in the announcement of qualification for the electronic catalog within ten working days from the day of its publication.

During enquiry period, interested parties can ask questions:

Request

POST /api/2.5/frameworks/6f4f10deaaae4f8b9d117837474a9333/questions HTTP/1.0
Authorization: Bearer broker
Content-Length: 1525
Content-Type: application/json
Host: lb-api-sandbox.prozorro.gov.ua

{
  "data": {
    "description": "Просимо додати таблицю потрібної калорійності харчування",
    "title": "Калорійність",
    "author": {
      "address": {
        "countryName": "Україна",
        "locality": "м. Львів",
        "postalCode": "79013",
        "region": "Львівська область",
        "streetAddress": "вул. Островського, 34"
      },
      "contactPoint": {
        "email": "aagt@gmail.com",
        "name": "Андрій Олексюк",
        "telephone": "+380322916930"
      },
      "identifier": {
        "scheme": "UA-EDR",
        "legalName": "Державне комунальне підприємство громадського харчування «Школяр 2»",
        "id": "00137226",
        "uri": "http://www.sc.gov.ua/"
      },
      "name": "ДКП «Книга»"
    }
  }
}

Response

HTTP/1.0 201 Created
Content-Type: application/json
Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/frameworks/6f4f10deaaae4f8b9d117837474a9333/questions/bfbf3b0718564cc1b1d4dab56c4d796f

{
  "data": {
    "author": {
      "name": "ДКП «Книга»",
      "identifier": {
        "scheme": "UA-EDR",
        "id": "00137226",
        "legalName": "Державне комунальне підприємство громадського харчування «Школяр 2»",
        "uri": "http://www.sc.gov.ua/"
      },
      "contactPoint": {
        "name": "Андрій Олексюк",
        "email": "aagt@gmail.com",
        "telephone": "+380322916930"
      },
      "address": {
        "streetAddress": "вул. Островського, 34",
        "locality": "м. Львів",
        "region": "Львівська область",
        "postalCode": "79013",
        "countryName": "Україна"
      }
    },
    "title": "Калорійність",
    "description": "Просимо додати таблицю потрібної калорійності харчування",
    "id": "bfbf3b0718564cc1b1d4dab56c4d796f",
    "date": "2023-01-01T00:00:00+02:00"
  }
}

Procuring entity can answer them:

Request

PATCH /api/2.5/frameworks/6f4f10deaaae4f8b9d117837474a9333/questions/bfbf3b0718564cc1b1d4dab56c4d796f?acc_token=a2ff40fa3e7143baa0a0b38805036fe7 HTTP/1.0
Authorization: Bearer broker
Content-Length: 141
Content-Type: application/json
Host: lb-api-sandbox.prozorro.gov.ua

{
  "data": {
    "answer": "Таблицю додано в файлі"
  }
}

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": {
    "id": "bfbf3b0718564cc1b1d4dab56c4d796f",
    "author": {
      "name": "ДКП «Книга»",
      "identifier": {
        "scheme": "UA-EDR",
        "id": "00137226",
        "legalName": "Державне комунальне підприємство громадського харчування «Школяр 2»",
        "uri": "http://www.sc.gov.ua/"
      },
      "contactPoint": {
        "name": "Андрій Олексюк",
        "email": "aagt@gmail.com",
        "telephone": "+380322916930"
      },
      "address": {
        "streetAddress": "вул. Островського, 34",
        "locality": "м. Львів",
        "region": "Львівська область",
        "postalCode": "79013",
        "countryName": "Україна"
      }
    },
    "title": "Калорійність",
    "description": "Просимо додати таблицю потрібної калорійності харчування",
    "date": "2023-01-01T00:00:00+02:00",
    "answer": "Таблицю додано в файлі",
    "dateAnswered": "2023-01-01T00:00:00+02:00"
  }
}

It is allowed to answer the question during the whole enquiryPeriod and between enquiryPeriod.endDate and enquiryPeriod.clarificationUntil. In case procuring entity is answering question after enquiryPeriod.clarificationUntil, the error will be raised:

Request

PATCH /api/2.5/frameworks/6f4f10deaaae4f8b9d117837474a9333/questions/bfbf3b0718564cc1b1d4dab56c4d796f?acc_token=a2ff40fa3e7143baa0a0b38805036fe7 HTTP/1.0
Authorization: Bearer broker
Content-Length: 103
Content-Type: application/json
Host: lb-api-sandbox.prozorro.gov.ua

{
  "data": {
    "answer": "Таблицю додано"
  }
}

Response

HTTP/1.0 403 Forbidden
Content-Type: application/json

{
  "status": "error",
  "errors": [
    {
      "location": "body",
      "name": "data",
      "description": "Allowed to update question only before enquiryPeriod.clarificationsUntil"
    }
  ]
}

Only procuring entity has permission to answer the questions:

Request

PATCH /api/2.5/frameworks/6f4f10deaaae4f8b9d117837474a9333/questions/bfbf3b0718564cc1b1d4dab56c4d796f HTTP/1.0
Authorization: Bearer broker
Content-Length: 141
Content-Type: application/json
Host: lb-api-sandbox.prozorro.gov.ua

{
  "data": {
    "answer": "Таблицю додано в файлі"
  }
}

Response

HTTP/1.0 403 Forbidden
Content-Type: application/json

{
  "status": "error",
  "errors": [
    {
      "location": "url",
      "name": "permission",
      "description": "Forbidden"
    }
  ]
}

To retrieve the questions list:

Request

GET /api/2.5/frameworks/6f4f10deaaae4f8b9d117837474a9333/questions HTTP/1.0
Authorization: Bearer broker
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": [
    {
      "id": "bfbf3b0718564cc1b1d4dab56c4d796f",
      "author": {
        "name": "ДКП «Книга»",
        "identifier": {
          "scheme": "UA-EDR",
          "id": "00137226",
          "legalName": "Державне комунальне підприємство громадського харчування «Школяр 2»",
          "uri": "http://www.sc.gov.ua/"
        },
        "contactPoint": {
          "name": "Андрій Олексюк",
          "email": "aagt@gmail.com",
          "telephone": "+380322916930"
        },
        "address": {
          "streetAddress": "вул. Островського, 34",
          "locality": "м. Львів",
          "region": "Львівська область",
          "postalCode": "79013",
          "countryName": "Україна"
        }
      },
      "title": "Калорійність",
      "description": "Просимо додати таблицю потрібної калорійності харчування",
      "date": "2023-01-01T00:00:00+02:00",
      "answer": "Таблицю додано в файлі",
      "dateAnswered": "2023-01-01T00:00:00+02:00"
    }
  ]
}

To retrieve the individual answer:

Request

GET /api/2.5/frameworks/6f4f10deaaae4f8b9d117837474a9333/questions/bfbf3b0718564cc1b1d4dab56c4d796f HTTP/1.0
Authorization: Bearer broker
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": {
    "id": "bfbf3b0718564cc1b1d4dab56c4d796f",
    "author": {
      "name": "ДКП «Книга»",
      "identifier": {
        "scheme": "UA-EDR",
        "id": "00137226",
        "legalName": "Державне комунальне підприємство громадського харчування «Школяр 2»",
        "uri": "http://www.sc.gov.ua/"
      },
      "contactPoint": {
        "name": "Андрій Олексюк",
        "email": "aagt@gmail.com",
        "telephone": "+380322916930"
      },
      "address": {
        "streetAddress": "вул. Островського, 34",
        "locality": "м. Львів",
        "region": "Львівська область",
        "postalCode": "79013",
        "countryName": "Україна"
      }
    },
    "title": "Калорійність",
    "description": "Просимо додати таблицю потрібної калорійності харчування",
    "date": "2023-01-01T00:00:00+02:00",
    "answer": "Таблицю додано в файлі",
    "dateAnswered": "2023-01-01T00:00:00+02:00"
  }
}

The presence of a question does not block the transition of the qualification announcement to the next status.

The presence or absence of an answer to the question does not block the transition of the qualification announcement to the next status.

The period during which the participant can apply to the administrator through the electronic procurement system to review the requirements for the participant: the date of publication of the announcement + 10 working days.

It is forbidden to ask or answer question outside the enquiry period:

Request

POST /api/2.5/frameworks/6f4f10deaaae4f8b9d117837474a9333/questions HTTP/1.0
Authorization: Bearer broker
Content-Length: 1525
Content-Type: application/json
Host: lb-api-sandbox.prozorro.gov.ua

{
  "data": {
    "description": "Просимо додати таблицю потрібної калорійності харчування",
    "title": "Калорійність",
    "author": {
      "address": {
        "countryName": "Україна",
        "locality": "м. Львів",
        "postalCode": "79013",
        "region": "Львівська область",
        "streetAddress": "вул. Островського, 34"
      },
      "contactPoint": {
        "email": "aagt@gmail.com",
        "name": "Андрій Олексюк",
        "telephone": "+380322916930"
      },
      "identifier": {
        "scheme": "UA-EDR",
        "legalName": "Державне комунальне підприємство громадського харчування «Школяр 2»",
        "id": "00137226",
        "uri": "http://www.sc.gov.ua/"
      },
      "name": "ДКП «Книга»"
    }
  }
}

Response

HTTP/1.0 403 Forbidden
Content-Type: application/json

{
  "status": "error",
  "errors": [
    {
      "location": "body",
      "name": "data",
      "description": "Question can be add only during the enquiry period: from (2023-01-01T00:00:00+02:00) to (2023-01-14T00:00:00+02:00)."
    }
  ]
}

Create and activate Submissions with restricted access

After activating framework, users can register their submissions in period from framework.period.startDate to framework.period.endDate.

Let’s register submission by Broker 1:

Request

POST /api/2.5/submissions HTTP/1.0
Authorization: Bearer broker1
Content-Length: 1236
Content-Type: application/json
Host: lb-api-sandbox.prozorro.gov.ua

{
  "data": {
    "tenderers": [
      {
        "address": {
          "countryName": "Україна",
          "locality": "м. Вінниця",
          "postalCode": "21100",
          "region": "Вінницька область",
          "streetAddress": "вул. Островського, 33"
        },
        "contactPoint": {
          "email": "soleksuk@gmail.com",
          "name": "Сергій Олексюк",
          "telephone": "+380432216930"
        },
        "identifier": {
          "scheme": "UA-EDR",
          "legalName": "Державне комунальне підприємство громадського харчування «Школяр»",
          "id": "00137256",
          "uri": "http://www.sc.gov.ua/"
        },
        "name": "ДКП «Школяр»",
        "scale": "micro"
      }
    ],
    "frameworkID": "6f4f10deaaae4f8b9d117837474a9333"
  },
  "config": {
    "restricted": true
  }
}

Response

HTTP/1.0 201 Created
Content-Type: application/json
Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/submissions/fd9a2e1f2e674531813756d4d0aaa351

{
  "data": {
    "tenderers": [
      {
        "name": "ДКП «Школяр»",
        "scale": "micro",
        "identifier": {
          "scheme": "UA-EDR",
          "id": "00137256",
          "legalName": "Державне комунальне підприємство громадського харчування «Школяр»",
          "uri": "http://www.sc.gov.ua/"
        },
        "address": {
          "streetAddress": "вул. Островського, 33",
          "locality": "м. Вінниця",
          "region": "Вінницька область",
          "postalCode": "21100",
          "countryName": "Україна"
        },
        "contactPoint": {
          "name": "Сергій Олексюк",
          "email": "soleksuk@gmail.com",
          "telephone": "+380432216930"
        }
      }
    ],
    "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
    "status": "draft",
    "submissionType": "dynamicPurchasingSystem",
    "owner": "broker1",
    "date": "2023-01-20T00:00:00+02:00",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "id": "fd9a2e1f2e674531813756d4d0aaa351"
  },
  "access": {
    "token": "25410576c6124986aa4e5dc47fa262bc",
    "transfer": "b031ac75f72541439c08e6cfbb74ff10"
  },
  "config": {
    "restricted": true
  }
}

You can see that restricted field was set to true in config section of submission creation response.

Next activate submission by Broker 1:

Request

PATCH /api/2.5/submissions/fd9a2e1f2e674531813756d4d0aaa351?acc_token=25410576c6124986aa4e5dc47fa262bc HTTP/1.0
Authorization: Bearer broker1
Content-Length: 30
Content-Type: application/json
Host: lb-api-sandbox.prozorro.gov.ua

{
  "data": {
    "status": "active"
  }
}

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": {
    "tenderers": [
      {
        "name": "ДКП «Школяр»",
        "scale": "micro",
        "identifier": {
          "scheme": "UA-EDR",
          "id": "00137256",
          "legalName": "Державне комунальне підприємство громадського харчування «Школяр»",
          "uri": "http://www.sc.gov.ua/"
        },
        "address": {
          "streetAddress": "вул. Островського, 33",
          "locality": "м. Вінниця",
          "region": "Вінницька область",
          "postalCode": "21100",
          "countryName": "Україна"
        },
        "contactPoint": {
          "name": "Сергій Олексюк",
          "email": "soleksuk@gmail.com",
          "telephone": "+380432216930"
        }
      }
    ],
    "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
    "status": "active",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "date": "2023-01-20T00:00:00+02:00",
    "owner": "broker1",
    "submissionType": "dynamicPurchasingSystem",
    "datePublished": "2023-01-20T00:00:00+02:00",
    "qualificationID": "f72e3f40acc64e4085046733e60d7ebb",
    "id": "fd9a2e1f2e674531813756d4d0aaa351"
  },
  "config": {
    "restricted": true
  }
}

Add another Submission by Broker 2:

Request

POST /api/2.5/submissions HTTP/1.0
Authorization: Bearer broker2
Content-Length: 1214
Content-Type: application/json
Host: lb-api-sandbox.prozorro.gov.ua

{
  "data": {
    "tenderers": [
      {
        "address": {
          "countryName": "Україна",
          "locality": "м. Львів",
          "postalCode": "79013",
          "region": "Львівська область",
          "streetAddress": "вул. Островського, 34"
        },
        "contactPoint": {
          "email": "aagt@gmail.com",
          "name": "Андрій Олексюк",
          "telephone": "+380322916930"
        },
        "identifier": {
          "scheme": "UA-EDR",
          "legalName": "Державне комунальне підприємство громадського харчування «Школяр 2»",
          "id": "00137226",
          "uri": "http://www.sc.gov.ua/"
        },
        "name": "ДКП «Книга»",
        "scale": "sme"
      }
    ],
    "frameworkID": "6f4f10deaaae4f8b9d117837474a9333"
  },
  "config": {
    "restricted": true
  }
}

Response

HTTP/1.0 201 Created
Content-Type: application/json
Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/submissions/e0fc16d4a32e49bbb327106221ee3afe

{
  "data": {
    "tenderers": [
      {
        "name": "ДКП «Книга»",
        "scale": "sme",
        "identifier": {
          "scheme": "UA-EDR",
          "id": "00137226",
          "legalName": "Державне комунальне підприємство громадського харчування «Школяр 2»",
          "uri": "http://www.sc.gov.ua/"
        },
        "address": {
          "streetAddress": "вул. Островського, 34",
          "locality": "м. Львів",
          "region": "Львівська область",
          "postalCode": "79013",
          "countryName": "Україна"
        },
        "contactPoint": {
          "name": "Андрій Олексюк",
          "email": "aagt@gmail.com",
          "telephone": "+380322916930"
        }
      }
    ],
    "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
    "status": "draft",
    "submissionType": "dynamicPurchasingSystem",
    "owner": "broker2",
    "date": "2023-01-20T00:00:00+02:00",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "id": "e0fc16d4a32e49bbb327106221ee3afe"
  },
  "access": {
    "token": "7547e10a63d2426a89db2abd0d195c7a",
    "transfer": "01e8c57c0d744464a6bd17d497ec4c9c"
  },
  "config": {
    "restricted": true
  }
}

And activate it:

Request

PATCH /api/2.5/submissions/e0fc16d4a32e49bbb327106221ee3afe?acc_token=7547e10a63d2426a89db2abd0d195c7a HTTP/1.0
Authorization: Bearer broker2
Content-Length: 30
Content-Type: application/json
Host: lb-api-sandbox.prozorro.gov.ua

{
  "data": {
    "status": "active"
  }
}

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": {
    "tenderers": [
      {
        "name": "ДКП «Книга»",
        "scale": "sme",
        "identifier": {
          "scheme": "UA-EDR",
          "id": "00137226",
          "legalName": "Державне комунальне підприємство громадського харчування «Школяр 2»",
          "uri": "http://www.sc.gov.ua/"
        },
        "address": {
          "streetAddress": "вул. Островського, 34",
          "locality": "м. Львів",
          "region": "Львівська область",
          "postalCode": "79013",
          "countryName": "Україна"
        },
        "contactPoint": {
          "name": "Андрій Олексюк",
          "email": "aagt@gmail.com",
          "telephone": "+380322916930"
        }
      }
    ],
    "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
    "status": "active",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "date": "2023-01-20T00:00:00+02:00",
    "owner": "broker2",
    "submissionType": "dynamicPurchasingSystem",
    "datePublished": "2023-01-20T00:00:00+02:00",
    "qualificationID": "7f54f20afbae46de95952e02da039fd8",
    "id": "e0fc16d4a32e49bbb327106221ee3afe"
  },
  "config": {
    "restricted": true
  }
}

Request submissions with restricted access

Let’s check submissions by all participants:

Broker (Procuring Entity)

Let’s check submission feed for Broker that is Procuring Entity and has access to all submissions of framework:

Request

GET /api/2.5/submissions?opt_fields=frameworkID,status HTTP/1.0
Authorization: Bearer broker
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": [
    {
      "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
      "status": "active",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "fd9a2e1f2e674531813756d4d0aaa351"
    },
    {
      "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
      "status": "active",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "e0fc16d4a32e49bbb327106221ee3afe"
    }
  ],
  "next_page": {
    "offset": 1674165600.0,
    "path": "/api/2.5/submissions?opt_fields=frameworkID%2Cstatus&offset=1674165600.0",
    "uri": "http://public-api-sandbox.prozorro.gov.ua/api/2.5/submissions?opt_fields=frameworkID%2Cstatus&offset=1674165600.0"
  }
}

Now make request by Broker for submission that was created by Broker 1:

Request

GET /api/2.5/submissions/fd9a2e1f2e674531813756d4d0aaa351 HTTP/1.0
Authorization: Bearer broker
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": {
    "tenderers": [
      {
        "name": "ДКП «Школяр»",
        "scale": "micro",
        "identifier": {
          "scheme": "UA-EDR",
          "id": "00137256",
          "legalName": "Державне комунальне підприємство громадського харчування «Школяр»",
          "uri": "http://www.sc.gov.ua/"
        },
        "address": {
          "streetAddress": "вул. Островського, 33",
          "locality": "м. Вінниця",
          "region": "Вінницька область",
          "postalCode": "21100",
          "countryName": "Україна"
        },
        "contactPoint": {
          "name": "Сергій Олексюк",
          "email": "soleksuk@gmail.com",
          "telephone": "+380432216930"
        }
      }
    ],
    "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
    "status": "active",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "date": "2023-01-20T00:00:00+02:00",
    "owner": "broker1",
    "submissionType": "dynamicPurchasingSystem",
    "datePublished": "2023-01-20T00:00:00+02:00",
    "qualificationID": "f72e3f40acc64e4085046733e60d7ebb",
    "id": "fd9a2e1f2e674531813756d4d0aaa351"
  },
  "config": {
    "restricted": true
  }
}

Then make request by Broker for submission that was created by Broker 2:

Request

GET /api/2.5/submissions/e0fc16d4a32e49bbb327106221ee3afe HTTP/1.0
Authorization: Bearer broker
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": {
    "tenderers": [
      {
        "name": "ДКП «Книга»",
        "scale": "sme",
        "identifier": {
          "scheme": "UA-EDR",
          "id": "00137226",
          "legalName": "Державне комунальне підприємство громадського харчування «Школяр 2»",
          "uri": "http://www.sc.gov.ua/"
        },
        "address": {
          "streetAddress": "вул. Островського, 34",
          "locality": "м. Львів",
          "region": "Львівська область",
          "postalCode": "79013",
          "countryName": "Україна"
        },
        "contactPoint": {
          "name": "Андрій Олексюк",
          "email": "aagt@gmail.com",
          "telephone": "+380322916930"
        }
      }
    ],
    "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
    "status": "active",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "date": "2023-01-20T00:00:00+02:00",
    "owner": "broker2",
    "submissionType": "dynamicPurchasingSystem",
    "datePublished": "2023-01-20T00:00:00+02:00",
    "qualificationID": "7f54f20afbae46de95952e02da039fd8",
    "id": "e0fc16d4a32e49bbb327106221ee3afe"
  },
  "config": {
    "restricted": true
  }
}

Broker 1 (Supplier 1)

Let’s check submission feed for Broker 1 that is Supplier 1 and has access only to own submissions:

Request

GET /api/2.5/submissions?opt_fields=frameworkID,status HTTP/1.0
Authorization: Bearer broker1
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": [
    {
      "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
      "status": "active",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "fd9a2e1f2e674531813756d4d0aaa351"
    },
    {
      "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "e0fc16d4a32e49bbb327106221ee3afe",
      "restricted": true
    }
  ],
  "next_page": {
    "offset": 1674165600.0,
    "path": "/api/2.5/submissions?opt_fields=frameworkID%2Cstatus&offset=1674165600.0",
    "uri": "http://public-api-sandbox.prozorro.gov.ua/api/2.5/submissions?opt_fields=frameworkID%2Cstatus&offset=1674165600.0"
  }
}

We can see that second submission is partially visible in feed and marked with restricted field set to true.

Now make request by Broker 1 for submission that was created by Broker 1:

Request

GET /api/2.5/submissions/fd9a2e1f2e674531813756d4d0aaa351 HTTP/1.0
Authorization: Bearer broker1
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": {
    "tenderers": [
      {
        "name": "ДКП «Школяр»",
        "scale": "micro",
        "identifier": {
          "scheme": "UA-EDR",
          "id": "00137256",
          "legalName": "Державне комунальне підприємство громадського харчування «Школяр»",
          "uri": "http://www.sc.gov.ua/"
        },
        "address": {
          "streetAddress": "вул. Островського, 33",
          "locality": "м. Вінниця",
          "region": "Вінницька область",
          "postalCode": "21100",
          "countryName": "Україна"
        },
        "contactPoint": {
          "name": "Сергій Олексюк",
          "email": "soleksuk@gmail.com",
          "telephone": "+380432216930"
        }
      }
    ],
    "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
    "status": "active",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "date": "2023-01-20T00:00:00+02:00",
    "owner": "broker1",
    "submissionType": "dynamicPurchasingSystem",
    "datePublished": "2023-01-20T00:00:00+02:00",
    "qualificationID": "f72e3f40acc64e4085046733e60d7ebb",
    "id": "fd9a2e1f2e674531813756d4d0aaa351"
  },
  "config": {
    "restricted": true
  }
}

Then make request by Broker 1 for submission that was created by Broker 2:

Request

GET /api/2.5/submissions/e0fc16d4a32e49bbb327106221ee3afe HTTP/1.0
Authorization: Bearer broker1
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 403 Forbidden
Content-Type: application/json

{
  "status": "error",
  "errors": [
    {
      "location": "body",
      "name": "data",
      "description": "Access restricted for submission object"
    }
  ]
}

We can see error message that submission is restricted for Broker 1.

Broker 2 (Supplier 2)

Let’s check submission feed for Broker 2 that is Supplier 2 and has access only to own submissions:

Request

GET /api/2.5/submissions?opt_fields=frameworkID,status HTTP/1.0
Authorization: Bearer broker1
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": [
    {
      "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
      "status": "active",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "fd9a2e1f2e674531813756d4d0aaa351"
    },
    {
      "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "e0fc16d4a32e49bbb327106221ee3afe",
      "restricted": true
    }
  ],
  "next_page": {
    "offset": 1674165600.0,
    "path": "/api/2.5/submissions?opt_fields=frameworkID%2Cstatus&offset=1674165600.0",
    "uri": "http://public-api-sandbox.prozorro.gov.ua/api/2.5/submissions?opt_fields=frameworkID%2Cstatus&offset=1674165600.0"
  }
}

Now make request by Broker 2 for submission that was created by Broker 1:

Request

GET /api/2.5/submissions/fd9a2e1f2e674531813756d4d0aaa351 HTTP/1.0
Authorization: Bearer broker2
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 403 Forbidden
Content-Type: application/json

{
  "status": "error",
  "errors": [
    {
      "location": "body",
      "name": "data",
      "description": "Access restricted for submission object"
    }
  ]
}

Then make request by Broker 2 for submission that was created by Broker 2:

Request

GET /api/2.5/submissions/e0fc16d4a32e49bbb327106221ee3afe HTTP/1.0
Authorization: Bearer broker2
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": {
    "tenderers": [
      {
        "name": "ДКП «Книга»",
        "scale": "sme",
        "identifier": {
          "scheme": "UA-EDR",
          "id": "00137226",
          "legalName": "Державне комунальне підприємство громадського харчування «Школяр 2»",
          "uri": "http://www.sc.gov.ua/"
        },
        "address": {
          "streetAddress": "вул. Островського, 34",
          "locality": "м. Львів",
          "region": "Львівська область",
          "postalCode": "79013",
          "countryName": "Україна"
        },
        "contactPoint": {
          "name": "Андрій Олексюк",
          "email": "aagt@gmail.com",
          "telephone": "+380322916930"
        }
      }
    ],
    "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
    "status": "active",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "date": "2023-01-20T00:00:00+02:00",
    "owner": "broker2",
    "submissionType": "dynamicPurchasingSystem",
    "datePublished": "2023-01-20T00:00:00+02:00",
    "qualificationID": "7f54f20afbae46de95952e02da039fd8",
    "id": "e0fc16d4a32e49bbb327106221ee3afe"
  },
  "config": {
    "restricted": true
  }
}

Anonymous

Let’s check submission feed with anonymous request (or any broker that is not Broker or Broker 1):

Request

GET /api/2.5/submissions?opt_fields=frameworkID,status HTTP/1.0
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": [
    {
      "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "fd9a2e1f2e674531813756d4d0aaa351",
      "restricted": true
    },
    {
      "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "e0fc16d4a32e49bbb327106221ee3afe",
      "restricted": true
    }
  ],
  "next_page": {
    "offset": 1674165600.0,
    "path": "/api/2.5/submissions?opt_fields=frameworkID%2Cstatus&offset=1674165600.0",
    "uri": "http://public-api-sandbox.prozorro.gov.ua/api/2.5/submissions?opt_fields=frameworkID%2Cstatus&offset=1674165600.0"
  }
}

Now make request for submission that was created by Broker 1:

Request

GET /api/2.5/submissions/fd9a2e1f2e674531813756d4d0aaa351 HTTP/1.0
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 403 Forbidden
Content-Type: application/json

{
  "status": "error",
  "errors": [
    {
      "location": "body",
      "name": "data",
      "description": "Access restricted for submission object"
    }
  ]
}

Then make request for submission that was created by Broker 2:

Request

GET /api/2.5/submissions/e0fc16d4a32e49bbb327106221ee3afe HTTP/1.0
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 403 Forbidden
Content-Type: application/json

{
  "status": "error",
  "errors": [
    {
      "location": "body",
      "name": "data",
      "description": "Access restricted for submission object"
    }
  ]
}

Request Qualifications with restricted access

Let’s check qualifications by all participants:

Broker (Procuring Entity)

Let’s check qualification feed for Broker that is Procuring Entity and has access to all qualifications of framework:

Request

GET /api/2.5/submissions?opt_fields=frameworkID,status HTTP/1.0
Authorization: Bearer broker
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": [
    {
      "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
      "status": "active",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "fd9a2e1f2e674531813756d4d0aaa351"
    },
    {
      "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
      "status": "active",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "e0fc16d4a32e49bbb327106221ee3afe"
    }
  ],
  "next_page": {
    "offset": 1674165600.0,
    "path": "/api/2.5/submissions?opt_fields=frameworkID%2Cstatus&offset=1674165600.0",
    "uri": "http://public-api-sandbox.prozorro.gov.ua/api/2.5/submissions?opt_fields=frameworkID%2Cstatus&offset=1674165600.0"
  }
}

Now make request by Broker for qualification of submission that was created by Broker 1:

Request

GET /api/2.5/qualifications/f72e3f40acc64e4085046733e60d7ebb HTTP/1.0
Authorization: Bearer broker
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": {
    "submissionID": "fd9a2e1f2e674531813756d4d0aaa351",
    "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
    "status": "pending",
    "date": "2023-01-20T00:00:00+02:00",
    "qualificationType": "dynamicPurchasingSystem",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "id": "f72e3f40acc64e4085046733e60d7ebb"
  },
  "config": {
    "restricted": true
  }
}

Then make request by Broker for qualification of submission that was created by Broker 2:

Request

GET /api/2.5/qualifications/7f54f20afbae46de95952e02da039fd8 HTTP/1.0
Authorization: Bearer broker
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": {
    "submissionID": "e0fc16d4a32e49bbb327106221ee3afe",
    "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
    "status": "pending",
    "date": "2023-01-20T00:00:00+02:00",
    "qualificationType": "dynamicPurchasingSystem",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "id": "7f54f20afbae46de95952e02da039fd8"
  },
  "config": {
    "restricted": true
  }
}

Broker 1 (Supplier 1)

Let’s check qualification feed for Broker 1 that is Supplier 1 and has access only to qualifications of it own submissions:

Request

GET /api/2.5/qualifications?opt_fields=frameworkID,status HTTP/1.0
Authorization: Bearer broker1
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": [
    {
      "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
      "status": "pending",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "f72e3f40acc64e4085046733e60d7ebb"
    },
    {
      "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "7f54f20afbae46de95952e02da039fd8",
      "restricted": true
    }
  ],
  "next_page": {
    "offset": 1674165600.0,
    "path": "/api/2.5/qualifications?opt_fields=frameworkID%2Cstatus&offset=1674165600.0",
    "uri": "http://public-api-sandbox.prozorro.gov.ua/api/2.5/qualifications?opt_fields=frameworkID%2Cstatus&offset=1674165600.0"
  }
}

We can see that second qualification is partially visible in feed and marked with restricted field set to true.

Now make request by Broker 1 for qualification of submission that was created by Broker 1:

Request

GET /api/2.5/qualifications/f72e3f40acc64e4085046733e60d7ebb HTTP/1.0
Authorization: Bearer broker1
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": {
    "submissionID": "fd9a2e1f2e674531813756d4d0aaa351",
    "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
    "status": "pending",
    "date": "2023-01-20T00:00:00+02:00",
    "qualificationType": "dynamicPurchasingSystem",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "id": "f72e3f40acc64e4085046733e60d7ebb"
  },
  "config": {
    "restricted": true
  }
}

Then make request by Broker 1 for qualification of submission that was created by Broker 2:

Request

GET /api/2.5/qualifications/7f54f20afbae46de95952e02da039fd8 HTTP/1.0
Authorization: Bearer broker1
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 403 Forbidden
Content-Type: application/json

{
  "status": "error",
  "errors": [
    {
      "location": "body",
      "name": "data",
      "description": "Access restricted for qualification object"
    }
  ]
}

We can see error message that qualification is restricted for Broker 1.

Broker 2 (Supplier 2)

Let’s check qualification feed for Broker 2 that is Supplier 2 and has access only to qualifications of it own submissions:

Request

GET /api/2.5/qualifications?opt_fields=frameworkID,status HTTP/1.0
Authorization: Bearer broker1
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": [
    {
      "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
      "status": "pending",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "f72e3f40acc64e4085046733e60d7ebb"
    },
    {
      "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "7f54f20afbae46de95952e02da039fd8",
      "restricted": true
    }
  ],
  "next_page": {
    "offset": 1674165600.0,
    "path": "/api/2.5/qualifications?opt_fields=frameworkID%2Cstatus&offset=1674165600.0",
    "uri": "http://public-api-sandbox.prozorro.gov.ua/api/2.5/qualifications?opt_fields=frameworkID%2Cstatus&offset=1674165600.0"
  }
}

Now make request by Broker 2 for qualification of submission that was created by Broker 1:

Request

GET /api/2.5/qualifications/f72e3f40acc64e4085046733e60d7ebb HTTP/1.0
Authorization: Bearer broker2
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 403 Forbidden
Content-Type: application/json

{
  "status": "error",
  "errors": [
    {
      "location": "body",
      "name": "data",
      "description": "Access restricted for qualification object"
    }
  ]
}

Then make request by Broker 2 for qualification of submission that was created by Broker 2:

Request

GET /api/2.5/qualifications/7f54f20afbae46de95952e02da039fd8 HTTP/1.0
Authorization: Bearer broker2
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": {
    "submissionID": "e0fc16d4a32e49bbb327106221ee3afe",
    "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
    "status": "pending",
    "date": "2023-01-20T00:00:00+02:00",
    "qualificationType": "dynamicPurchasingSystem",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "id": "7f54f20afbae46de95952e02da039fd8"
  },
  "config": {
    "restricted": true
  }
}

Anonymous

Let’s check qualification feed with anonymous request (or any broker that is not Broker or Broker 1):

Request

GET /api/2.5/qualifications?opt_fields=frameworkID,status HTTP/1.0
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": [
    {
      "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "f72e3f40acc64e4085046733e60d7ebb",
      "restricted": true
    },
    {
      "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "7f54f20afbae46de95952e02da039fd8",
      "restricted": true
    }
  ],
  "next_page": {
    "offset": 1674165600.0,
    "path": "/api/2.5/qualifications?opt_fields=frameworkID%2Cstatus&offset=1674165600.0",
    "uri": "http://public-api-sandbox.prozorro.gov.ua/api/2.5/qualifications?opt_fields=frameworkID%2Cstatus&offset=1674165600.0"
  }
}

Now make request for qualification of submission that was created by Broker 1:

Request

GET /api/2.5/qualifications/f72e3f40acc64e4085046733e60d7ebb HTTP/1.0
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 403 Forbidden
Content-Type: application/json

{
  "status": "error",
  "errors": [
    {
      "location": "body",
      "name": "data",
      "description": "Access restricted for qualification object"
    }
  ]
}

Then make request for qualification of submission that was created by Broker 2:

Request

GET /api/2.5/qualifications/7f54f20afbae46de95952e02da039fd8 HTTP/1.0
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 403 Forbidden
Content-Type: application/json

{
  "status": "error",
  "errors": [
    {
      "location": "body",
      "name": "data",
      "description": "Access restricted for qualification object"
    }
  ]
}

Activate Qualifications with restricted access

Let’s activate all qualifications by Broker:

Request

PATCH /api/2.5/qualifications/f72e3f40acc64e4085046733e60d7ebb?acc_token=a2ff40fa3e7143baa0a0b38805036fe7 HTTP/1.0
Authorization: Bearer broker
Content-Length: 30
Content-Type: application/json
Host: lb-api-sandbox.prozorro.gov.ua

{
  "data": {
    "status": "active"
  }
}

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": {
    "submissionID": "fd9a2e1f2e674531813756d4d0aaa351",
    "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
    "status": "active",
    "date": "2023-01-20T00:00:00+02:00",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "qualificationType": "dynamicPurchasingSystem",
    "id": "f72e3f40acc64e4085046733e60d7ebb"
  },
  "config": {
    "restricted": true
  }
}

Request

PATCH /api/2.5/qualifications/7f54f20afbae46de95952e02da039fd8?acc_token=a2ff40fa3e7143baa0a0b38805036fe7 HTTP/1.0
Authorization: Bearer broker
Content-Length: 30
Content-Type: application/json
Host: lb-api-sandbox.prozorro.gov.ua

{
  "data": {
    "status": "active"
  }
}

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": {
    "submissionID": "e0fc16d4a32e49bbb327106221ee3afe",
    "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
    "status": "active",
    "date": "2023-01-20T00:00:00+02:00",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "qualificationType": "dynamicPurchasingSystem",
    "id": "7f54f20afbae46de95952e02da039fd8"
  },
  "config": {
    "restricted": true
  }
}

Let’s check current framework

Request

GET /api/2.5/frameworks/6f4f10deaaae4f8b9d117837474a9333 HTTP/1.0
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": {
    "prettyID": "UA-F-2023-01-01-000001",
    "title": "Узагальнена назва закупівлі",
    "description": "Назва предмета закупівлі",
    "status": "active",
    "classification": {
      "description": "Mustard seeds",
      "scheme": "ДК021",
      "id": "03111600-8"
    },
    "additionalClassifications": [
      {
        "scheme": "ДК003",
        "id": "17.21.1",
        "description": "папір і картон гофровані, паперова й картонна тара"
      }
    ],
    "questions": [
      {
        "id": "bfbf3b0718564cc1b1d4dab56c4d796f",
        "author": {
          "name": "ДКП «Книга»",
          "identifier": {
            "scheme": "UA-EDR",
            "id": "00137226",
            "legalName": "Державне комунальне підприємство громадського харчування «Школяр 2»",
            "uri": "http://www.sc.gov.ua/"
          },
          "contactPoint": {
            "name": "Андрій Олексюк",
            "email": "aagt@gmail.com",
            "telephone": "+380322916930"
          },
          "address": {
            "streetAddress": "вул. Островського, 34",
            "locality": "м. Львів",
            "region": "Львівська область",
            "postalCode": "79013",
            "countryName": "Україна"
          }
        },
        "title": "Калорійність",
        "description": "Просимо додати таблицю потрібної калорійності харчування",
        "date": "2023-01-01T00:00:00+02:00",
        "answer": "Таблицю додано в файлі",
        "dateAnswered": "2023-01-01T00:00:00+02:00"
      }
    ],
    "owner": "broker",
    "date": "2023-01-01T00:00:00+02:00",
    "dateCreated": "2023-01-01T00:00:00+02:00",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "period": {
      "startDate": "2023-01-01T00:00:00+02:00",
      "endDate": "2023-01-31T00:00:00+02:00"
    },
    "qualificationPeriod": {
      "startDate": "2023-01-01T00:00:00+02:00",
      "endDate": "2023-03-02T00:00:00+02:00"
    },
    "enquiryPeriod": {
      "startDate": "2023-01-01T00:00:00+02:00",
      "endDate": "2023-01-14T00:00:00+02:00",
      "clarificationsUntil": "2023-01-19T00:00:00+02:00"
    },
    "next_check": "2023-01-28T00:00:00+02:00",
    "frameworkType": "dynamicPurchasingSystem",
    "procuringEntity": {
      "name": "Державне управління справами",
      "identifier": {
        "scheme": "UA-EDR",
        "id": "00037256",
        "legalName": "Назва організації"
      },
      "address": {
        "countryName": "Україна",
        "streetAddress": "вул. Банкова, 11, корпус 1",
        "locality": "м. Київ",
        "region": "м. Київ",
        "postalCode": "01220"
      },
      "contactPoint": {
        "name": "Державне управління справами",
        "telephone": "+0440000000",
        "email": "aa@aa.com"
      },
      "kind": "defense"
    },
    "agreementID": "d99f25c41f374c55854ba197e2e4c560",
    "id": "6f4f10deaaae4f8b9d117837474a9333"
  },
  "config": {
    "restrictedDerivatives": true
  }
}

You can see that agreementID appeared in current framework, so let’s check that agreement.

Request Agreement with restricted access

Let’s check agreement by all participants:

Broker (Procuring Entity)

Let’s check agreement feed for Broker that is Procuring Entity and has access to agreement of framework:

Request

GET /api/2.5/agreements?opt_fields=status HTTP/1.0
Authorization: Bearer broker
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": [
    {
      "status": "active",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "d99f25c41f374c55854ba197e2e4c560"
    }
  ],
  "next_page": {
    "offset": 1674165600.0,
    "path": "/api/2.5/agreements?opt_fields=status&offset=1674165600.0",
    "uri": "http://public-api-sandbox.prozorro.gov.ua/api/2.5/agreements?opt_fields=status&offset=1674165600.0"
  }
}

Now make request by Broker for agreement:

Request

GET /api/2.5/agreements/d99f25c41f374c55854ba197e2e4c560 HTTP/1.0
Authorization: Bearer broker
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": {
    "agreementID": "UA-2023-01-20-000001",
    "status": "active",
    "period": {
      "startDate": "2023-01-20T00:00:00+02:00",
      "endDate": "2023-03-02T00:00:00+02:00"
    },
    "contracts": [
      {
        "id": "71db124af9ca43028e5ea65abbbfee2b",
        "qualificationID": "f72e3f40acc64e4085046733e60d7ebb",
        "status": "active",
        "submissionID": "fd9a2e1f2e674531813756d4d0aaa351",
        "suppliers": [
          {
            "name": "ДКП «Школяр»",
            "identifier": {
              "scheme": "UA-EDR",
              "id": "00137256",
              "legalName": "Державне комунальне підприємство громадського харчування «Школяр»",
              "uri": "http://www.sc.gov.ua/"
            },
            "scale": "micro",
            "contactPoint": {
              "name": "Сергій Олексюк",
              "email": "soleksuk@gmail.com",
              "telephone": "+380432216930"
            },
            "address": {
              "streetAddress": "вул. Островського, 33",
              "locality": "м. Вінниця",
              "region": "Вінницька область",
              "postalCode": "21100",
              "countryName": "Україна"
            }
          }
        ],
        "milestones": [
          {
            "id": "96b66040100f4816bcb1ce812a3f2746",
            "type": "activation",
            "status": "scheduled",
            "dueDate": "2023-03-02T00:00:00+02:00",
            "dateModified": "2023-01-20T00:00:00+02:00"
          }
        ],
        "date": "2023-01-20T00:00:00+02:00"
      },
      {
        "id": "17d17b140f1e4aedaf9e5378a40ce8ab",
        "qualificationID": "7f54f20afbae46de95952e02da039fd8",
        "status": "active",
        "submissionID": "e0fc16d4a32e49bbb327106221ee3afe",
        "suppliers": [
          {
            "name": "ДКП «Книга»",
            "identifier": {
              "scheme": "UA-EDR",
              "id": "00137226",
              "legalName": "Державне комунальне підприємство громадського харчування «Школяр 2»",
              "uri": "http://www.sc.gov.ua/"
            },
            "scale": "sme",
            "contactPoint": {
              "name": "Андрій Олексюк",
              "email": "aagt@gmail.com",
              "telephone": "+380322916930"
            },
            "address": {
              "streetAddress": "вул. Островського, 34",
              "locality": "м. Львів",
              "region": "Львівська область",
              "postalCode": "79013",
              "countryName": "Україна"
            }
          }
        ],
        "milestones": [
          {
            "id": "aed449f019bd4f828af68cec547119fe",
            "type": "activation",
            "status": "scheduled",
            "dueDate": "2023-03-02T00:00:00+02:00",
            "dateModified": "2023-01-20T00:00:00+02:00"
          }
        ],
        "date": "2023-01-20T00:00:00+02:00"
      }
    ],
    "dateCreated": "2023-01-20T00:00:00+02:00",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "date": "2023-01-20T00:00:00+02:00",
    "owner": "broker",
    "agreementType": "dynamicPurchasingSystem",
    "procuringEntity": {
      "name": "Державне управління справами",
      "identifier": {
        "scheme": "UA-EDR",
        "id": "00037256",
        "legalName": "Назва організації"
      },
      "address": {
        "countryName": "Україна",
        "streetAddress": "вул. Банкова, 11, корпус 1",
        "locality": "м. Київ",
        "region": "м. Київ",
        "postalCode": "01220"
      },
      "contactPoint": {
        "name": "Державне управління справами",
        "telephone": "+0440000000",
        "email": "aa@aa.com"
      },
      "kind": "defense"
    },
    "frameworkID": "6f4f10deaaae4f8b9d117837474a9333",
    "classification": {
      "description": "Mustard seeds",
      "scheme": "ДК021",
      "id": "03111600-8"
    },
    "additionalClassifications": [
      {
        "scheme": "ДК003",
        "id": "17.21.1",
        "description": "папір і картон гофровані, паперова й картонна тара"
      }
    ],
    "next_check": "2023-03-02T00:00:00+02:00",
    "id": "d99f25c41f374c55854ba197e2e4c560"
  },
  "config": {
    "restricted": true
  }
}

Broker 1 (Supplier 1)

Let’s check agreement feed for Broker 1:

Request

GET /api/2.5/agreements?opt_fields=status HTTP/1.0
Authorization: Bearer broker1
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": [
    {
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "d99f25c41f374c55854ba197e2e4c560",
      "restricted": true
    }
  ],
  "next_page": {
    "offset": 1674165600.0,
    "path": "/api/2.5/agreements?opt_fields=status&offset=1674165600.0",
    "uri": "http://public-api-sandbox.prozorro.gov.ua/api/2.5/agreements?opt_fields=status&offset=1674165600.0"
  }
}

Now make request by Broker 1 for agreement:

Request

GET /api/2.5/agreements/d99f25c41f374c55854ba197e2e4c560 HTTP/1.0
Authorization: Bearer broker1
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 403 Forbidden
Content-Type: application/json

{
  "status": "error",
  "errors": [
    {
      "location": "body",
      "name": "data",
      "description": "Access restricted for agreement object"
    }
  ]
}

Broker 2 (Supplier 2)

Let’s check agreement feed for Broker 2:

Request

GET /api/2.5/agreements?opt_fields=status HTTP/1.0
Authorization: Bearer broker2
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": [
    {
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "d99f25c41f374c55854ba197e2e4c560",
      "restricted": true
    }
  ],
  "next_page": {
    "offset": 1674165600.0,
    "path": "/api/2.5/agreements?opt_fields=status&offset=1674165600.0",
    "uri": "http://public-api-sandbox.prozorro.gov.ua/api/2.5/agreements?opt_fields=status&offset=1674165600.0"
  }
}

Now make request by Broker 2 for agreement:

Request

GET /api/2.5/agreements/d99f25c41f374c55854ba197e2e4c560 HTTP/1.0
Authorization: Bearer broker2
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 403 Forbidden
Content-Type: application/json

{
  "status": "error",
  "errors": [
    {
      "location": "body",
      "name": "data",
      "description": "Access restricted for agreement object"
    }
  ]
}

Anonymous

Let’s check agreement feed with anonymous request (or any broker that is not Broker or Broker 1):

Request

GET /api/2.5/agreements?opt_fields=status HTTP/1.0
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 200 OK
Content-Type: application/json

{
  "data": [
    {
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "d99f25c41f374c55854ba197e2e4c560",
      "restricted": true
    }
  ],
  "next_page": {
    "offset": 1674165600.0,
    "path": "/api/2.5/agreements?opt_fields=status&offset=1674165600.0",
    "uri": "http://public-api-sandbox.prozorro.gov.ua/api/2.5/agreements?opt_fields=status&offset=1674165600.0"
  }
}

Now make request for agreement:

Request

GET /api/2.5/agreements/d99f25c41f374c55854ba197e2e4c560 HTTP/1.0
Host: public-api-sandbox.prozorro.gov.ua

Response

HTTP/1.0 403 Forbidden
Content-Type: application/json

{
  "status": "error",
  "errors": [
    {
      "location": "body",
      "name": "data",
      "description": "Access restricted for agreement object"
    }
  ]
}