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-01T00:00:01+02:00",
      "endDate": "2023-03-02T00:00:00+02:00"
    },
    "enquiryPeriod": {
      "startDate": "2023-01-01T00:00:00+02:00",
      "endDate": "2023-01-01T00:00:01+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
  }
}

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-17T00:00:00+02:00",
    "date": "2023-01-17T00: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-17T00:00:00+02:00",
    "date": "2023-01-17T00:00:00+02:00",
    "datePublished": "2023-01-17T00: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-17T00:00:00+02:00",
    "date": "2023-01-17T00: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-17T00:00:00+02:00",
    "date": "2023-01-17T00:00:00+02:00",
    "datePublished": "2023-01-17T00: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-17T00:00:00+02:00",
      "status": "active",
      "id": "d96d76a4ef4f4d3eae4b099d0404e31f"
    },
    {
      "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
      "dateModified": "2023-01-17T00:00:00+02:00",
      "status": "active",
      "id": "2a997181ec504fcdbfaf4c759a02895e"
    }
  ],
  "next_page": {
    "offset": 1673906400.0,
    "path": "/api/2.5/submissions?opt_fields=frameworkID%2Cstatus&offset=1673906400.0",
    "uri": "http://public-api-sandbox.prozorro.gov.ua/api/2.5/submissions?opt_fields=frameworkID%2Cstatus&offset=1673906400.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-17T00:00:00+02:00",
    "date": "2023-01-17T00:00:00+02:00",
    "datePublished": "2023-01-17T00: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-17T00:00:00+02:00",
    "date": "2023-01-17T00:00:00+02:00",
    "datePublished": "2023-01-17T00: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-17T00:00:00+02:00",
      "status": "active",
      "id": "d96d76a4ef4f4d3eae4b099d0404e31f"
    },
    {
      "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
      "dateModified": "2023-01-17T00:00:00+02:00",
      "id": "2a997181ec504fcdbfaf4c759a02895e",
      "restricted": true
    }
  ],
  "next_page": {
    "offset": 1673906400.0,
    "path": "/api/2.5/submissions?opt_fields=frameworkID%2Cstatus&offset=1673906400.0",
    "uri": "http://public-api-sandbox.prozorro.gov.ua/api/2.5/submissions?opt_fields=frameworkID%2Cstatus&offset=1673906400.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-17T00:00:00+02:00",
    "date": "2023-01-17T00:00:00+02:00",
    "datePublished": "2023-01-17T00: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-17T00:00:00+02:00",
      "status": "active",
      "id": "d96d76a4ef4f4d3eae4b099d0404e31f"
    },
    {
      "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
      "dateModified": "2023-01-17T00:00:00+02:00",
      "id": "2a997181ec504fcdbfaf4c759a02895e",
      "restricted": true
    }
  ],
  "next_page": {
    "offset": 1673906400.0,
    "path": "/api/2.5/submissions?opt_fields=frameworkID%2Cstatus&offset=1673906400.0",
    "uri": "http://public-api-sandbox.prozorro.gov.ua/api/2.5/submissions?opt_fields=frameworkID%2Cstatus&offset=1673906400.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-17T00:00:00+02:00",
    "date": "2023-01-17T00:00:00+02:00",
    "datePublished": "2023-01-17T00: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-17T00:00:00+02:00",
      "id": "d96d76a4ef4f4d3eae4b099d0404e31f",
      "restricted": true
    },
    {
      "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
      "dateModified": "2023-01-17T00:00:00+02:00",
      "id": "2a997181ec504fcdbfaf4c759a02895e",
      "restricted": true
    }
  ],
  "next_page": {
    "offset": 1673906400.0,
    "path": "/api/2.5/submissions?opt_fields=frameworkID%2Cstatus&offset=1673906400.0",
    "uri": "http://public-api-sandbox.prozorro.gov.ua/api/2.5/submissions?opt_fields=frameworkID%2Cstatus&offset=1673906400.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-17T00:00:00+02:00",
      "status": "active",
      "id": "d96d76a4ef4f4d3eae4b099d0404e31f"
    },
    {
      "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
      "dateModified": "2023-01-17T00:00:00+02:00",
      "status": "active",
      "id": "2a997181ec504fcdbfaf4c759a02895e"
    }
  ],
  "next_page": {
    "offset": 1673906400.0,
    "path": "/api/2.5/submissions?opt_fields=frameworkID%2Cstatus&offset=1673906400.0",
    "uri": "http://public-api-sandbox.prozorro.gov.ua/api/2.5/submissions?opt_fields=frameworkID%2Cstatus&offset=1673906400.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-17T00:00:00+02:00",
    "dateModified": "2023-01-17T00: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-17T00:00:00+02:00",
    "dateModified": "2023-01-17T00: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-17T00:00:00+02:00",
      "id": "cc849b4a29b54c009ad286797a9cdf35"
    },
    {
      "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
      "dateModified": "2023-01-17T00:00:00+02:00",
      "id": "9ef8a439d3f346dd9e86bb05c4f55f8b",
      "restricted": true
    }
  ],
  "next_page": {
    "offset": 1673906400.0,
    "path": "/api/2.5/qualifications?opt_fields=frameworkID%2Cstatus&offset=1673906400.0",
    "uri": "http://public-api-sandbox.prozorro.gov.ua/api/2.5/qualifications?opt_fields=frameworkID%2Cstatus&offset=1673906400.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-17T00:00:00+02:00",
    "dateModified": "2023-01-17T00: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-17T00:00:00+02:00",
      "id": "cc849b4a29b54c009ad286797a9cdf35"
    },
    {
      "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
      "dateModified": "2023-01-17T00:00:00+02:00",
      "id": "9ef8a439d3f346dd9e86bb05c4f55f8b",
      "restricted": true
    }
  ],
  "next_page": {
    "offset": 1673906400.0,
    "path": "/api/2.5/qualifications?opt_fields=frameworkID%2Cstatus&offset=1673906400.0",
    "uri": "http://public-api-sandbox.prozorro.gov.ua/api/2.5/qualifications?opt_fields=frameworkID%2Cstatus&offset=1673906400.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-17T00:00:00+02:00",
    "dateModified": "2023-01-17T00: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-17T00:00:00+02:00",
      "id": "cc849b4a29b54c009ad286797a9cdf35",
      "restricted": true
    },
    {
      "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
      "dateModified": "2023-01-17T00:00:00+02:00",
      "id": "9ef8a439d3f346dd9e86bb05c4f55f8b",
      "restricted": true
    }
  ],
  "next_page": {
    "offset": 1673906400.0,
    "path": "/api/2.5/qualifications?opt_fields=frameworkID%2Cstatus&offset=1673906400.0",
    "uri": "http://public-api-sandbox.prozorro.gov.ua/api/2.5/qualifications?opt_fields=frameworkID%2Cstatus&offset=1673906400.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-17T00:00:00+02:00",
    "dateModified": "2023-01-17T00: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-17T00:00:00+02:00",
    "dateModified": "2023-01-17T00: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-17T00: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-01T00:00:01+02:00",
      "endDate": "2023-03-02T00:00:00+02:00"
    },
    "enquiryPeriod": {
      "startDate": "2023-01-01T00:00:00+02:00",
      "endDate": "2023-01-01T00:00:01+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-17T00:00:00+02:00",
      "id": "bee1ec7b25674a89918be6257ac54948"
    }
  ],
  "next_page": {
    "offset": 1673906400.0,
    "path": "/api/2.5/agreements?opt_fields=status&offset=1673906400.0",
    "uri": "http://public-api-sandbox.prozorro.gov.ua/api/2.5/agreements?opt_fields=status&offset=1673906400.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-17-000001",
    "status": "active",
    "date": "2023-01-17T00:00:00+02:00",
    "dateCreated": "2023-01-17T00:00:00+02:00",
    "dateModified": "2023-01-17T00:00:00+02:00",
    "owner": "broker",
    "agreementType": "dynamicPurchasingSystem",
    "frameworkID": "9bd2fdb5579045be9cfff9fb1a397e32",
    "period": {
      "startDate": "2023-01-17T00: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-17T00:00:00+02:00"
          }
        ],
        "date": "2023-01-17T00: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-17T00:00:00+02:00"
          }
        ],
        "date": "2023-01-17T00: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-17T00:00:00+02:00",
      "id": "bee1ec7b25674a89918be6257ac54948",
      "restricted": true
    }
  ],
  "next_page": {
    "offset": 1673906400.0,
    "path": "/api/2.5/agreements?opt_fields=status&offset=1673906400.0",
    "uri": "http://public-api-sandbox.prozorro.gov.ua/api/2.5/agreements?opt_fields=status&offset=1673906400.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-17T00:00:00+02:00",
      "id": "bee1ec7b25674a89918be6257ac54948",
      "restricted": true
    }
  ],
  "next_page": {
    "offset": 1673906400.0,
    "path": "/api/2.5/agreements?opt_fields=status&offset=1673906400.0",
    "uri": "http://public-api-sandbox.prozorro.gov.ua/api/2.5/agreements?opt_fields=status&offset=1673906400.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-17T00:00:00+02:00",
      "id": "bee1ec7b25674a89918be6257ac54948",
      "restricted": true
    }
  ],
  "next_page": {
    "offset": 1673906400.0,
    "path": "/api/2.5/agreements?opt_fields=status&offset=1673906400.0",
    "uri": "http://public-api-sandbox.prozorro.gov.ua/api/2.5/agreements?opt_fields=status&offset=1673906400.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"
    }
  ]
}