openapi: 3.1.0
components:
  schemas:
    Area:
      type: object
      properties:
        enclosingCircle:
          type: object
          properties:
            center:
              type: object
              properties:
                lat:
                  type: number
                lon:
                  type: number
            radius:
              type: number
        boundingBox:
          type: object
          properties:
            lowerCorner:
              type: object
              properties:
                lat:
                  type: number
                lon:
                  type: number
            upperCorner:
              type: object
              properties:
                lat:
                  type: number
                lon:
                  type: number
    BroOrganization:
      type: object
      properties:
        chamberOfCommerceNumber:
          type: string
          pattern: \d{8}
        europeanCompanyRegistrationNumber:
          type: string
          pattern: ^[A-Z]{2}.{2,75}$
    Circle:
      type: object
      properties:
        center:
          type: object
          properties:
            lat:
              type: number
            lon:
              type: number
        radius:
          type: number
    DatePeriod:
      type: object
      properties:
        beginDate:
          type: string
        endDate:
          type: string
    Envelope:
      type: object
      properties:
        lowerCorner:
          type: object
          properties:
            lat:
              type: number
            lon:
              type: number
        upperCorner:
          type: object
          properties:
            lat:
              type: number
            lon:
              type: number
    EplCriteriaSet:
      type: object
      required:
        - area
      properties:
        deliveryAccountableParty:
          type: string
        qualityRegime:
          type: string
          enum:
            - IMBRO
            - IMBRO_A
        registrationPeriod:
          type: object
          properties:
            beginDate:
              type: string
            endDate:
              type: string
        correctionPeriod:
          type: object
          properties:
            beginDate:
              type: string
            endDate:
              type: string
        underReview:
          type: string
          enum:
            - JA
            - NEE
        area:
          type: object
          properties:
            enclosingCircle:
              type: object
              properties:
                center:
                  type: object
                  properties:
                    lat:
                      type: number
                    lon:
                      type: number
                radius:
                  type: number
            boundingBox:
              type: object
              properties:
                lowerCorner:
                  type: object
                  properties:
                    lat:
                      type: number
                    lon:
                      type: number
                upperCorner:
                  type: object
                  properties:
                    lat:
                      type: number
                    lon:
                      type: number
        miningActivity:
          type: string
        mineral:
          type: string
        substance:
          type: string
        currentStatus:
          type: string
        effectiveDatePeriod:
          type: object
          properties:
            beginDate:
              type: string
            endDate:
              type: string
        expiryDatePeriod:
          type: object
          properties:
            beginDate:
              type: string
            endDate:
              type: string
        licenceHolder:
          type: object
          properties:
            chamberOfCommerceNumber:
              type: string
              pattern: \d{8}
            europeanCompanyRegistrationNumber:
              type: string
              pattern: ^[A-Z]{2}.{2,75}$
    Point:
      type: object
      properties:
        lat:
          type: number
        lon:
          type: number
    QualityRegime:
      type: string
      enum:
        - IMBRO
        - IMBRO_A
    ServiceError:
      type: object
      properties:
        title:
          type: string
        description:
          type: string
        errorCode:
          type: integer
          format: int32
    YesNoEnumeration:
      type: string
      enum:
        - JA
        - NEE
  examples:
    ENCLOSING_CIRCLE_CRITERIA:
      value: |-
        {
          "area": {
            "enclosingCircle": {
              "center": {
                "lat": 52.038297852,
                "lon": 5.31447958948
              },
              "radius": 10
            }
          },
          "currentStatus": "verleend",
          "effectiveDatePeriod": {
            "beginDate": "2024-01-01",
            "endDate": "2024-12-31"
          },
          "expiryDatePeriod": {
            "beginDate": "2025-01-01",
            "endDate": "2025-12-31"
          }
        }
    BOUNDING_BOX_CRITERIA:
      value: |-
        {
          "area":{
            "boundingBox":{
              "lowerCorner":{
                "lat": 50.123585000,
                "lon": 1.983454000
              },
              "upperCorner":{
                "lat": 58.165521000,
                "lon": 10.028123000
              }
            }
          }
        }
paths:
  /ep/epl/v1/bro-ids:
    get:
      summary: Lijst van EPL BRO-IDs
      description: Haalt de lijst van EPL bro-ids op waarvoor [bronhouder](https://basisregistratieondergrond.nl/service-contact/formulieren/aangemeld-bro/) verantwoordelijk is.
      operationId: bro-ids
      parameters:
        - description: Het kvk (kamer van koophandel) nummer van een EPL bronhouder
          example: '12345678'
          name: bronhouder
          in: query
          schema:
            type: string
          required: true
        - description: Registered is een optionele parameter, bij afwezigheid geeft deze methode alle EPL BRO-IDs terug onafhankelijk of die wel/niet uit registratie zijn genomen. <BR>registered = ja geeft alleen BRO-IDs terug die in registratie zijn genomen. <BR>registered = nee geeft alleen BRO-IDs terug die uit registratie zijn genomen.
          name: registered
          in: query
          schema:
            type: string
      responses:
        '200':
          description: De Lijst van EPL BRO-IDs voor dit registratie object type waarvoor bronhouder verantwoordelijk is.
          headers:
            API-Version:
              description: Versie van deze EPL API
              schema:
                type: string
                examples:
                  - 3.2.1
          content:
            application/json: {}
        '400':
          description: Er bevinden zich andere fouten in het EPL verzoek.
          headers:
            API-Version:
              description: Versie van deze EPL API
              schema:
                type: string
                examples:
                  - 3.2.1
          content:
            application/json:
              schema:
                type: object
                properties:
                  title:
                    type: string
                  description:
                    type: string
                  errorCode:
                    type: integer
                    format: int32
  /ep/epl/v1/characteristics/searches:
    post:
      summary: Haalt de karakteristieken op van een set van registratie objecten, gegeven een kenmerkenverzameling (kenset).
      description: De karakteristieken geven een samenvatting van een object zodat een verdere selectie gemaakt kan worden. Het past in een twee-traps-benadering, waarbij de eerste stap bestaat uit het ophalen van de karakteristieken en de 2e stap uit het ophalen van de gewenste registratie objecten. Het resultaat van deze operatie is gemaximaliseerd op 2000.Zie [hier](https://www.bro-productomgeving.nl/bpo/latest/epl-berichtencatalogus-uitgifte) voor meer info.
      operationId: characteristics
      parameters:
        - description: Een optionele EPL referentie van de gebruiker. "-" wordt aangenomen bij afwezigheid.
          example: Mijn-aanvraag-000001
          name: requestReference
          in: query
          schema:
            type: string
      requestBody:
        description: 'De set van kenmerken. Zie voor meer informatie: https://www.bro-productomgeving.nl/bpo/latest/'
        content:
          application/json:
            examples:
              Enclosing Circle Criteria:
                value: |-
                  {
                    "area": {
                      "enclosingCircle": {
                        "center": {
                          "lat": 52.038297852,
                          "lon": 5.31447958948
                        },
                        "radius": 10
                      }
                    },
                    "currentStatus": "verleend",
                    "effectiveDatePeriod": {
                      "beginDate": "2024-01-01",
                      "endDate": "2024-12-31"
                    },
                    "expiryDatePeriod": {
                      "beginDate": "2025-01-01",
                      "endDate": "2025-12-31"
                    }
                  }
              Bounding Box Criteria:
                value: |-
                  {
                    "area":{
                      "boundingBox":{
                        "lowerCorner":{
                          "lat": 50.123585000,
                          "lon": 1.983454000
                        },
                        "upperCorner":{
                          "lat": 58.165521000,
                          "lon": 10.028123000
                        }
                      }
                    }
                  }
            schema:
              type: object
              required:
                - area
              properties:
                deliveryAccountableParty:
                  type: string
                qualityRegime:
                  type: string
                  enum:
                    - IMBRO
                    - IMBRO_A
                registrationPeriod:
                  type: object
                  properties:
                    beginDate:
                      type: string
                    endDate:
                      type: string
                correctionPeriod:
                  type: object
                  properties:
                    beginDate:
                      type: string
                    endDate:
                      type: string
                underReview:
                  type: string
                  enum:
                    - JA
                    - NEE
                area:
                  type: object
                  properties:
                    enclosingCircle:
                      type: object
                      properties:
                        center:
                          type: object
                          properties:
                            lat:
                              type: number
                            lon:
                              type: number
                        radius:
                          type: number
                    boundingBox:
                      type: object
                      properties:
                        lowerCorner:
                          type: object
                          properties:
                            lat:
                              type: number
                            lon:
                              type: number
                        upperCorner:
                          type: object
                          properties:
                            lat:
                              type: number
                            lon:
                              type: number
                miningActivity:
                  type: string
                mineral:
                  type: string
                substance:
                  type: string
                currentStatus:
                  type: string
                effectiveDatePeriod:
                  type: object
                  properties:
                    beginDate:
                      type: string
                    endDate:
                      type: string
                expiryDatePeriod:
                  type: object
                  properties:
                    beginDate:
                      type: string
                    endDate:
                      type: string
                licenceHolder:
                  type: object
                  properties:
                    chamberOfCommerceNumber:
                      type: string
                      pattern: \d{8}
                    europeanCompanyRegistrationNumber:
                      type: string
                      pattern: ^[A-Z]{2}.{2,75}$
        required: true
      responses:
        '200':
          description: De set van EPL karakteristieken die matched met de criteria dan wel een afwijzing.
          headers:
            API-Version:
              description: Versie van deze EPL API
              schema:
                type: string
                examples:
                  - 3.2.1
          content:
            application/xml: {}
        '400':
          description: Er bevinden zich andere fouten in het EPL verzoek.
          headers:
            API-Version:
              description: Versie van deze EPL API
              schema:
                type: string
                examples:
                  - 3.2.1
          content:
            application/json:
              schema:
                type: object
                properties:
                  title:
                    type: string
                  description:
                    type: string
                  errorCode:
                    type: integer
                    format: int32
  /ep/epl/v1/objects/{broId}:
    get:
      summary: Haalt een mijnbouwwetvergunning (exploration production licence, EPL) op op basis van een BRO-ID
      description: Haal een mijnbouwwetvergunning  op op basis van een BRO-ID. De operatie retourneert een object op basis van het BRO-ID als een 'O' (actuele situatie), of 'DO' (uit registratie) als IMBRO XML. De andere variant 'O-DP' is niet ondersteund omdat hier authenticatie / autorisatie voor nodig is (er worden bronhouder gevoelige gegevens terug gegeven). Gebruik hiervoor de 'DigiKoppeling' webservice. Zie [hier](https://www.bro-productomgeving.nl/bpo/latest/mijnbouwwet/mijnbouwwetvergunning-epl/epl-berichtencatalogus-uitgifte) voor meer info.
      operationId: objects
      parameters:
        - content:
            text/plain:
              schema:
                type: string
          description: Het BRO-ID van het EPL object.
          name: broId
          in: path
          required: true
        - allowEmptyValue: true
          description: Aanwezigheid van deze parameter geeft volledige geschiedenis terug. Afwezigheid de actuele situatie.
          example: ja
          name: fullHistory
          in: query
          schema:
            type: string
        - description: Een optionele EPL referentie van de gebruiker. "-" wordt aangenomen bij afwezigheid.
          example: Mijn-EPL-object-aanvraag-000001
          name: requestReference
          in: query
          schema:
            type: string
      responses:
        '200':
          description: Het aangevraagde registratie object dan wel een afwijzing van het EPL verzoek.
          headers:
            API-Version:
              description: Versie van deze EPL API
              schema:
                type: string
                examples:
                  - 3.2.1
          content:
            application/xml: {}
        '400':
          description: Er bevinden zich andere fouten in het EPL verzoek.
          headers:
            API-Version:
              description: Versie van deze EPL API
              schema:
                type: string
                examples:
                  - 3.2.1
          content:
            application/json:
              schema:
                type: object
                properties:
                  title:
                    type: string
                  description:
                    type: string
                  errorCode:
                    type: integer
                    format: int32
info:
  title: Mijnbouwwetvergunning (EPL)
  version: 2.197.0
  description: Landelijke Voorziening Basisregistratie Ondergrond (BRO), uitgifte en validatie Mijnbouwwetvergunning (EPL).
  contact:
    name: BRO Servicedesk
    email: support@broservicedesk.nl
    url: https://basisregistratieondergrond.nl/service-contact/
