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/9bd2fdb5579045be9cfff9fb1a397e32

{
  "data": {
    "prettyID": "UA-F-2023-01-01-000001",
    "title": "Узагальнена назва закупівлі",
    "description": "Назва предмета закупівлі",
    "date": "2023-01-01T00:00:00+02:00",
    "dateCreated": "2023-01-01T00:00:00+02:00",
    "dateModified": "2023-01-01T00:00:00+02:00",
    "owner": "broker",
    "status": "draft",
    "qualificationPeriod": {
      "endDate": "2023-03-02T00: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"
    },
    "classification": {
      "description": "Mustard seeds",
      "scheme": "ДК021",
      "id": "03111600-8"
    },
    "additionalClassifications": [
      {
        "scheme": "ДК003",
        "id": "17.21.1",
        "description": "папір і картон гофровані, паперова й картонна тара"
      }
    ],
    "id": "9bd2fdb5579045be9cfff9fb1a397e32"
  },
  "access": {
    "token": "77e8aeb431c44efa97ff595190dc86ba",
    "transfer": "5d5818a5c50648bda23a4c0a93eeeb2f"
  },
  "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/9bd2fdb5579045be9cfff9fb1a397e32?acc_token=77e8aeb431c44efa97ff595190dc86ba 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": "Назва предмета закупівлі",
    "date": "2023-01-01T00:00:00+02:00",
    "dateCreated": "2023-01-01T00:00:00+02:00",
    "dateModified": "2023-01-01T00:00:00+02:00",
    "owner": "broker",
    "status": "active",
    "period": {
      "startDate": "2023-01-01T00:00:00+02:00",
      "endDate": "2023-01-31T00:00:00+02:00"
    },
    "qualificationPeriod": {
      "startDate": "2023-01-14T00: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"
    },
    "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"
    },
    "classification": {
      "description": "Mustard seeds",
      "scheme": "ДК021",
      "id": "03111600-8"
    },
    "additionalClassifications": [
      {
        "scheme": "ДК003",
        "id": "17.21.1",
        "description": "папір і картон гофровані, паперова й картонна тара"
      }
    ],
    "id": "9bd2fdb5579045be9cfff9fb1a397e32",
    "next_check": "2023-01-28T00:00:00+02:00"
  },
  "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/9bd2fdb5579045be9cfff9fb1a397e32/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/9bd2fdb5579045be9cfff9fb1a397e32/questions/c0b3b9bc304945b59cccc96f522283aa

{
  "data": {
    "id": "c0b3b9bc304945b59cccc96f522283aa",
    "author": {
      "name": "ДКП «Книга»",
      "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"
      }
    },
    "title": "Калорійність",
    "description": "Просимо додати таблицю потрібної калорійності харчування",
    "date": "2023-01-01T00:00:00+02:00"
  }
}

Procuring entity can answer them:

Request

PATCH /api/2.5/frameworks/9bd2fdb5579045be9cfff9fb1a397e32/questions/c0b3b9bc304945b59cccc96f522283aa?acc_token=77e8aeb431c44efa97ff595190dc86ba 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": "c0b3b9bc304945b59cccc96f522283aa",
    "author": {
      "name": "ДКП «Книга»",
      "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"
      }
    },
    "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/9bd2fdb5579045be9cfff9fb1a397e32/questions/c0b3b9bc304945b59cccc96f522283aa?acc_token=77e8aeb431c44efa97ff595190dc86ba 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": "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/9bd2fdb5579045be9cfff9fb1a397e32/questions/c0b3b9bc304945b59cccc96f522283aa 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/9bd2fdb5579045be9cfff9fb1a397e32/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": "c0b3b9bc304945b59cccc96f522283aa",
      "author": {
        "name": "ДКП «Книга»",
        "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"
        }
      },
      "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/9bd2fdb5579045be9cfff9fb1a397e32/questions/c0b3b9bc304945b59cccc96f522283aa 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": "c0b3b9bc304945b59cccc96f522283aa",
    "author": {
      "name": "ДКП «Книга»",
      "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"
      }
    },
    "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/9bd2fdb5579045be9cfff9fb1a397e32/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-01 00:00:00+02:00) to (2023-01-14 00:00:00+02:00)."
    }
  ]
}

Create and activate Submissions with restricted access

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

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": "9bd2fdb5579045be9cfff9fb1a397e32"
  },
  "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/d96d76a4ef4f4d3eae4b099d0404e31f

{
  "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": "9bd2fdb5579045be9cfff9fb1a397e32",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "date": "2023-01-20T00:00:00+02:00",
    "owner": "broker1",
    "status": "draft",
    "submissionType": "dynamicPurchasingSystem",
    "id": "d96d76a4ef4f4d3eae4b099d0404e31f"
  },
  "access": {
    "token": "7048bca78fdf467eafe0dd61ec2b9436",
    "transfer": "0a0710cb5c4a4dbb84a7d89a1c3b28f6"
  },
  "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/d96d76a4ef4f4d3eae4b099d0404e31f?acc_token=7048bca78fdf467eafe0dd61ec2b9436 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"
        }
      }
    ],
    "qualificationID": "cc849b4a29b54c009ad286797a9cdf35",
    "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "date": "2023-01-20T00:00:00+02:00",
    "datePublished": "2023-01-20T00:00:00+02:00",
    "owner": "broker1",
    "status": "active",
    "submissionType": "dynamicPurchasingSystem",
    "id": "d96d76a4ef4f4d3eae4b099d0404e31f"
  },
  "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": "9bd2fdb5579045be9cfff9fb1a397e32"
  },
  "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/2a997181ec504fcdbfaf4c759a02895e

{
  "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": "9bd2fdb5579045be9cfff9fb1a397e32",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "date": "2023-01-20T00:00:00+02:00",
    "owner": "broker2",
    "status": "draft",
    "submissionType": "dynamicPurchasingSystem",
    "id": "2a997181ec504fcdbfaf4c759a02895e"
  },
  "access": {
    "token": "d6c27e24c6f24928a7a62d93b05c4358",
    "transfer": "8d522fd75a7f453ea94689fa853f23af"
  },
  "config": {
    "restricted": true
  }
}

And activate it:

Request

PATCH /api/2.5/submissions/2a997181ec504fcdbfaf4c759a02895e?acc_token=d6c27e24c6f24928a7a62d93b05c4358 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"
        }
      }
    ],
    "qualificationID": "9ef8a439d3f346dd9e86bb05c4f55f8b",
    "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "date": "2023-01-20T00:00:00+02:00",
    "datePublished": "2023-01-20T00:00:00+02:00",
    "owner": "broker2",
    "status": "active",
    "submissionType": "dynamicPurchasingSystem",
    "id": "2a997181ec504fcdbfaf4c759a02895e"
  },
  "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": "9bd2fdb5579045be9cfff9fb1a397e32",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "status": "active",
      "id": "d96d76a4ef4f4d3eae4b099d0404e31f"
    },
    {
      "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "status": "active",
      "id": "2a997181ec504fcdbfaf4c759a02895e"
    }
  ],
  "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/d96d76a4ef4f4d3eae4b099d0404e31f 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"
        }
      }
    ],
    "qualificationID": "cc849b4a29b54c009ad286797a9cdf35",
    "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "date": "2023-01-20T00:00:00+02:00",
    "datePublished": "2023-01-20T00:00:00+02:00",
    "owner": "broker1",
    "status": "active",
    "submissionType": "dynamicPurchasingSystem",
    "id": "d96d76a4ef4f4d3eae4b099d0404e31f"
  },
  "config": {
    "restricted": true
  }
}

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

Request

GET /api/2.5/submissions/2a997181ec504fcdbfaf4c759a02895e 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"
        }
      }
    ],
    "qualificationID": "9ef8a439d3f346dd9e86bb05c4f55f8b",
    "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "date": "2023-01-20T00:00:00+02:00",
    "datePublished": "2023-01-20T00:00:00+02:00",
    "owner": "broker2",
    "status": "active",
    "submissionType": "dynamicPurchasingSystem",
    "id": "2a997181ec504fcdbfaf4c759a02895e"
  },
  "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": "9bd2fdb5579045be9cfff9fb1a397e32",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "status": "active",
      "id": "d96d76a4ef4f4d3eae4b099d0404e31f"
    },
    {
      "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "2a997181ec504fcdbfaf4c759a02895e",
      "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/d96d76a4ef4f4d3eae4b099d0404e31f 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"
        }
      }
    ],
    "qualificationID": "cc849b4a29b54c009ad286797a9cdf35",
    "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "date": "2023-01-20T00:00:00+02:00",
    "datePublished": "2023-01-20T00:00:00+02:00",
    "owner": "broker1",
    "status": "active",
    "submissionType": "dynamicPurchasingSystem",
    "id": "d96d76a4ef4f4d3eae4b099d0404e31f"
  },
  "config": {
    "restricted": true
  }
}

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

Request

GET /api/2.5/submissions/2a997181ec504fcdbfaf4c759a02895e 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": "9bd2fdb5579045be9cfff9fb1a397e32",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "status": "active",
      "id": "d96d76a4ef4f4d3eae4b099d0404e31f"
    },
    {
      "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "2a997181ec504fcdbfaf4c759a02895e",
      "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/d96d76a4ef4f4d3eae4b099d0404e31f 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/2a997181ec504fcdbfaf4c759a02895e 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"
        }
      }
    ],
    "qualificationID": "9ef8a439d3f346dd9e86bb05c4f55f8b",
    "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "date": "2023-01-20T00:00:00+02:00",
    "datePublished": "2023-01-20T00:00:00+02:00",
    "owner": "broker2",
    "status": "active",
    "submissionType": "dynamicPurchasingSystem",
    "id": "2a997181ec504fcdbfaf4c759a02895e"
  },
  "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": "9bd2fdb5579045be9cfff9fb1a397e32",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "d96d76a4ef4f4d3eae4b099d0404e31f",
      "restricted": true
    },
    {
      "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "2a997181ec504fcdbfaf4c759a02895e",
      "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/d96d76a4ef4f4d3eae4b099d0404e31f 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/2a997181ec504fcdbfaf4c759a02895e 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": "9bd2fdb5579045be9cfff9fb1a397e32",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "status": "active",
      "id": "d96d76a4ef4f4d3eae4b099d0404e31f"
    },
    {
      "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "status": "active",
      "id": "2a997181ec504fcdbfaf4c759a02895e"
    }
  ],
  "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/cc849b4a29b54c009ad286797a9cdf35 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": "d96d76a4ef4f4d3eae4b099d0404e31f",
    "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
    "date": "2023-01-20T00:00:00+02:00",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "status": "pending",
    "qualificationType": "dynamicPurchasingSystem",
    "id": "cc849b4a29b54c009ad286797a9cdf35"
  },
  "config": {
    "restricted": true
  }
}

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

Request

GET /api/2.5/qualifications/9ef8a439d3f346dd9e86bb05c4f55f8b 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": "2a997181ec504fcdbfaf4c759a02895e",
    "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
    "date": "2023-01-20T00:00:00+02:00",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "status": "pending",
    "qualificationType": "dynamicPurchasingSystem",
    "id": "9ef8a439d3f346dd9e86bb05c4f55f8b"
  },
  "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": "9bd2fdb5579045be9cfff9fb1a397e32",
      "status": "pending",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "cc849b4a29b54c009ad286797a9cdf35"
    },
    {
      "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "9ef8a439d3f346dd9e86bb05c4f55f8b",
      "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/cc849b4a29b54c009ad286797a9cdf35 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": "d96d76a4ef4f4d3eae4b099d0404e31f",
    "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
    "date": "2023-01-20T00:00:00+02:00",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "status": "pending",
    "qualificationType": "dynamicPurchasingSystem",
    "id": "cc849b4a29b54c009ad286797a9cdf35"
  },
  "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/9ef8a439d3f346dd9e86bb05c4f55f8b 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": "9bd2fdb5579045be9cfff9fb1a397e32",
      "status": "pending",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "cc849b4a29b54c009ad286797a9cdf35"
    },
    {
      "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "9ef8a439d3f346dd9e86bb05c4f55f8b",
      "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/cc849b4a29b54c009ad286797a9cdf35 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/9ef8a439d3f346dd9e86bb05c4f55f8b 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": "2a997181ec504fcdbfaf4c759a02895e",
    "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
    "date": "2023-01-20T00:00:00+02:00",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "status": "pending",
    "qualificationType": "dynamicPurchasingSystem",
    "id": "9ef8a439d3f346dd9e86bb05c4f55f8b"
  },
  "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": "9bd2fdb5579045be9cfff9fb1a397e32",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "cc849b4a29b54c009ad286797a9cdf35",
      "restricted": true
    },
    {
      "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
      "dateModified": "2023-01-20T00:00:00+02:00",
      "id": "9ef8a439d3f346dd9e86bb05c4f55f8b",
      "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/cc849b4a29b54c009ad286797a9cdf35 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/9ef8a439d3f346dd9e86bb05c4f55f8b 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/cc849b4a29b54c009ad286797a9cdf35?acc_token=77e8aeb431c44efa97ff595190dc86ba 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": "d96d76a4ef4f4d3eae4b099d0404e31f",
    "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
    "date": "2023-01-20T00:00:00+02:00",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "status": "active",
    "qualificationType": "dynamicPurchasingSystem",
    "id": "cc849b4a29b54c009ad286797a9cdf35"
  },
  "config": {
    "restricted": true
  }
}

Request

PATCH /api/2.5/qualifications/9ef8a439d3f346dd9e86bb05c4f55f8b?acc_token=77e8aeb431c44efa97ff595190dc86ba 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": "2a997181ec504fcdbfaf4c759a02895e",
    "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
    "date": "2023-01-20T00:00:00+02:00",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "status": "active",
    "qualificationType": "dynamicPurchasingSystem",
    "id": "9ef8a439d3f346dd9e86bb05c4f55f8b"
  },
  "config": {
    "restricted": true
  }
}

Let’s check current framework

Request

GET /api/2.5/frameworks/9bd2fdb5579045be9cfff9fb1a397e32 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": "Назва предмета закупівлі",
    "date": "2023-01-01T00:00:00+02:00",
    "dateCreated": "2023-01-01T00:00:00+02:00",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "owner": "broker",
    "questions": [
      {
        "id": "c0b3b9bc304945b59cccc96f522283aa",
        "author": {
          "name": "ДКП «Книга»",
          "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"
          }
        },
        "title": "Калорійність",
        "description": "Просимо додати таблицю потрібної калорійності харчування",
        "date": "2023-01-01T00:00:00+02:00",
        "answer": "Таблицю додано в файлі",
        "dateAnswered": "2023-01-01T00:00:00+02:00"
      }
    ],
    "status": "active",
    "period": {
      "startDate": "2023-01-01T00:00:00+02:00",
      "endDate": "2023-01-31T00:00:00+02:00"
    },
    "qualificationPeriod": {
      "startDate": "2023-01-14T00: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"
    },
    "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"
    },
    "classification": {
      "description": "Mustard seeds",
      "scheme": "ДК021",
      "id": "03111600-8"
    },
    "additionalClassifications": [
      {
        "scheme": "ДК003",
        "id": "17.21.1",
        "description": "папір і картон гофровані, паперова й картонна тара"
      }
    ],
    "agreementID": "bee1ec7b25674a89918be6257ac54948",
    "id": "9bd2fdb5579045be9cfff9fb1a397e32",
    "next_check": "2023-01-28T00:00:00+02:00"
  },
  "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": "bee1ec7b25674a89918be6257ac54948"
    }
  ],
  "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/bee1ec7b25674a89918be6257ac54948 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",
    "date": "2023-01-20T00:00:00+02:00",
    "dateCreated": "2023-01-20T00:00:00+02:00",
    "dateModified": "2023-01-20T00:00:00+02:00",
    "owner": "broker",
    "agreementType": "dynamicPurchasingSystem",
    "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
    "period": {
      "startDate": "2023-01-20T00:00:00+02:00",
      "endDate": "2023-03-02T00:00:00+02:00"
    },
    "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"
    },
    "classification": {
      "description": "Mustard seeds",
      "scheme": "ДК021",
      "id": "03111600-8"
    },
    "additionalClassifications": [
      {
        "scheme": "ДК003",
        "id": "17.21.1",
        "description": "папір і картон гофровані, паперова й картонна тара"
      }
    ],
    "contracts": [
      {
        "id": "c4097bf28bf54a74a1b43bb30a89ff82",
        "qualificationID": "cc849b4a29b54c009ad286797a9cdf35",
        "status": "active",
        "submissionID": "d96d76a4ef4f4d3eae4b099d0404e31f",
        "suppliers": [
          {
            "name": "ДКП «Школяр»",
            "identifier": {
              "scheme": "UA-EDR",
              "id": "00137256",
              "legalName": "Державне комунальне підприємство громадського харчування «Школяр»",
              "uri": "http://www.sc.gov.ua/"
            },
            "address": {
              "streetAddress": "вул. Островського, 33",
              "locality": "м. Вінниця",
              "region": "Вінницька область",
              "postalCode": "21100",
              "countryName": "Україна"
            },
            "scale": "micro",
            "contactPoint": {
              "name": "Сергій Олексюк",
              "email": "soleksuk@gmail.com",
              "telephone": "+380432216930"
            }
          }
        ],
        "milestones": [
          {
            "id": "fbd402379bd84422bd390a0cee4fa0fd",
            "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": "14104aac4e7948538eb39b6d1fea4f5c",
        "qualificationID": "9ef8a439d3f346dd9e86bb05c4f55f8b",
        "status": "active",
        "submissionID": "2a997181ec504fcdbfaf4c759a02895e",
        "suppliers": [
          {
            "name": "ДКП «Книга»",
            "identifier": {
              "scheme": "UA-EDR",
              "id": "00137226",
              "legalName": "Державне комунальне підприємство громадського харчування «Школяр 2»",
              "uri": "http://www.sc.gov.ua/"
            },
            "address": {
              "streetAddress": "вул. Островського, 34",
              "locality": "м. Львів",
              "region": "Львівська область",
              "postalCode": "79013",
              "countryName": "Україна"
            },
            "scale": "sme",
            "contactPoint": {
              "name": "Андрій Олексюк",
              "email": "aagt@gmail.com",
              "telephone": "+380322916930"
            }
          }
        ],
        "milestones": [
          {
            "id": "28cdfb5f22a14074844a5059104419cf",
            "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": "bee1ec7b25674a89918be6257ac54948",
    "next_check": "2023-03-02T00:00:00+02:00"
  },
  "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": "bee1ec7b25674a89918be6257ac54948",
      "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/bee1ec7b25674a89918be6257ac54948 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": "bee1ec7b25674a89918be6257ac54948",
      "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/bee1ec7b25674a89918be6257ac54948 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": "bee1ec7b25674a89918be6257ac54948",
      "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/bee1ec7b25674a89918be6257ac54948 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"
    }
  ]
}