{
  "openapi": "3.0.3",
  "info": {
    "title": "reconciliation-prices-retrieval",
    "description": "### ServiceID: BSCMF0089\n\n# API Version - 1.0.0\n#### Generated by ECDM Toolkit version 2.9.1\nThis API can be used to retrieve reconciliation prices.\n# Release History\n\n## 1.0.0 (2024-03-08)\nFinal approved version.\n\n## 0.9.0 (2024-02-15)\nSecurity scheme API Key added.\nVersion for the approval process.\n\n## 0.6.0 (2024-02-07)\nJSON class model updated into two branches from the root class ReconciliationPrices_Series:\n1. one PricePosition_Series (1x) for the time serie reconciliation prices per ISP;\n2. three PriceMonth_Series (3x) for the reconciliation prices per month for total (no tarif period), normal and low.\nTypo's corrected.\nRFC7807 explanation changed into English.\nX-Request-ID removed.\n\n## 0.3.0 (2024-01-18)\nUpdated model: timeframe and resolution optional.\nPossibilty to return an empty answer if request is correct but prices are not available.\n\n## 0.1.0 (2023-12-21)\nInitial version.\n",
    "contact": {
      "name": "EDSN",
      "url": "https://www.edsn.nl",
      "email": "servicedesk@edsn.nl"
    },
    "license": {
      "name": "APACHE2.0",
      "url": "https://www.apache.org/licenses/LICENSE-2.0"
    },
    "version": "1.0.0",
    "x-releaseDate": "2024-03-08"
  },
  "servers": [
    {
      "url": "/energy-market/market-process/energy-exchange/reconciliation-prices-retrieval/v1",
      "description": "Relative paths"
    }
  ],
  "tags": [
    {
      "name": "Reconciliation Prices",
      "description": "This section contains operations to retrieve reconciliation prices"
    }
  ],
  "security": [
    {
      "APIKey": []
    }
  ],
  "paths": {
    "/reconciliation-prices": {
      "get": {
        "tags": [
          "Reconciliation Prices"
        ],
        "summary": "retrieveReconciliationPrices",
        "description": "This operation is used to retrieve reconciliation prices for a given period, product and bidding zone.",
        "deprecated": false,
        "operationId": "retrieveReconciliationPrices",
        "parameters": [
          {
            "$ref": "#/components/parameters/bidding-zone"
          },
          {
            "$ref": "#/components/parameters/start-date"
          },
          {
            "$ref": "#/components/parameters/end-date"
          },
          {
            "$ref": "#/components/parameters/product"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReconciliationPricesSeries"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/RpRFC7807ProblemResultType"
                },
                "examples": {
                  "Error400_SFn8Z0G81c": {
                    "$ref": "#/components/examples/Error400_SFn8Z0G81c"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/RpRFC7807ProblemResultType"
                },
                "examples": {
                  "Error401_PL9bRR7hNj": {
                    "$ref": "#/components/examples/Error401_PL9bRR7hNj"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/RpRFC7807ProblemResultType"
                },
                "examples": {
                  "Error403_W587HZYFgJ": {
                    "$ref": "#/components/examples/Error403_W587HZYFgJ"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/RpRFC7807ProblemResultType"
                },
                "examples": {
                  "Error404_S3zYo4x5Yh": {
                    "$ref": "#/components/examples/Error404_S3zYo4x5Yh"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/RpRFC7807ProblemResultType"
                },
                "examples": {
                  "Error422_B4HK1gqkY9": {
                    "$ref": "#/components/examples/Error422_B4HK1gqkY9"
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/RpRFC7807ProblemResultType"
                },
                "examples": {
                  "Error500_XISYCPQuI7": {
                    "$ref": "#/components/examples/Error500_XISYCPQuI7"
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/RpRFC7807ProblemResultType"
                },
                "examples": {
                  "Error503_XYCGd7baT2": {
                    "$ref": "#/components/examples/Error503_XYCGd7baT2"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "parameters": {
      "bidding-zone": {
        "name": "bidding-zone",
        "in": "query",
        "description": "The bidding zone to retrieve reconciliation prices for.",
        "required": true,
        "deprecated": false,
        "allowReserved": false,
        "style": "form",
        "schema": {
          "type": "string"
        },
        "example": "10YNL----------L"
      },
      "end-date": {
        "name": "end-date",
        "in": "query",
        "description": "The end date of the period to retrieve reconciliation prices for.",
        "required": true,
        "deprecated": false,
        "allowReserved": false,
        "style": "form",
        "schema": {
          "type": "string",
          "format": "date"
        },
        "example": "2025-02-28"
      },
      "product": {
        "name": "product",
        "in": "query",
        "description": "The product type for which reconciliation prices are retrieved.\r\n\r\nOne of:\r\n- 023 - Electricity",
        "required": true,
        "deprecated": false,
        "allowReserved": false,
        "style": "form",
        "schema": {
          "type": "string",
          "enum": [
            "023"
          ]
        },
        "example": "023"
      },
      "start-date": {
        "name": "start-date",
        "in": "query",
        "description": "The start date of the period to retrieve reconciliation prices for.",
        "required": true,
        "deprecated": false,
        "allowReserved": false,
        "style": "form",
        "schema": {
          "type": "string",
          "format": "date"
        },
        "example": "2025-01-31"
      }
    },
    "examples": {
      "Error400_SFn8Z0G81c": {
        "value": {
          "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.1",
          "title": "Bad Request",
          "status": 400
        }
      },
      "Error401_PL9bRR7hNj": {
        "value": {
          "type": "https://datatracker.ietf.org/doc/html/rfc7235#section-3.1",
          "title": "Unauthorized",
          "status": 401
        }
      },
      "Error403_W587HZYFgJ": {
        "value": {
          "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.3",
          "title": "Forbidden",
          "status": 403
        }
      },
      "Error404_S3zYo4x5Yh": {
        "value": {
          "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.4",
          "title": "Not Found",
          "status": 404
        }
      },
      "Error422_B4HK1gqkY9": {
        "value": {
          "type": "https://datatracker.ietf.org/doc/html/rfc4918#section-11.2",
          "title": "Unprocessable Entity",
          "status": 422
        }
      },
      "Error500_XISYCPQuI7": {
        "value": {
          "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.6.1",
          "title": "Internal Server Error",
          "status": 500
        }
      },
      "Error503_XYCGd7baT2": {
        "value": {
          "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.6.4",
          "title": "Service Unavailable",
          "status": 503
        }
      }
    },
    "securitySchemes": {
      "APIKey": {
        "type": "apiKey",
        "description": "Provide an API Key.",
        "name": "api_key",
        "in": "header"
      },
      "BasicAuthentication": {
        "type": "http",
        "scheme": "basic",
        "description": "Authentication using JWT"
      },
      "Private_OAuth": {
        "type": "oauth2",
        "description": "Default OAuth2 authentication.",
        "flows": {
          "implicit": {
            "authorizationUrl": "https://server.com/authorize.here",
            "refreshUrl": "https://server.com/refresh.here",
            "scopes": {
              "UserID": "The identification of the user."
            }
          }
        }
      }
    },
    "schemas": {
      "BiddingDomain": {
        "title": "BiddingDomain",
        "description": "Bidding Zone means the largest geographical area within which Market Participants are able to exchange energy without Capacity Allocation.\n\nSource: REGULATION (EU) 2019/943 OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL\nof 5 June 2019\non the internal market for electricity\nArticle 2, definition 65",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "mrid": {
            "title": "EicType",
            "description": "Bidding Zone means the largest geographical area within which Market Participants are able to exchange energy without Capacity Allocation.\n\nSource: REGULATION (EU) 2019/943 OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL\nof 5 June 2019\non the internal market for electricity\nArticle 2, definition 65",
            "example": "10YNL----------L",
            "type": "string",
            "pattern": "^[0-9]{2}[0-9A-Z-+_]{14}$"
          }
        },
        "required": [
          "mrid"
        ]
      },
      "DateAndOrTime": {
        "title": "DateAndOrTime",
        "description": "The Date and or the Time.",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "startDateTime": {
            "title": "DateType",
            "description": "Start date/time of the period as per ISO 8601 YYYY-MM-DDThh:mm:ssZ",
            "example": "2025-01-31T23:00:00Z",
            "type": "string",
            "format": "date"
          },
          "endDateTime": {
            "title": "DateType",
            "description": "End date/time of the period as per ISO 8601 YYYY-MM-DDThh:mm:ssZ",
            "example": "2025-02-28T23:00:00Z",
            "type": "string",
            "format": "date"
          }
        },
        "required": [
          "startDateTime",
          "endDateTime"
        ]
      },
      "Point": {
        "title": "Point",
        "description": "The identification of the values being addressed within a specific interval of time.",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "pos": {
            "title": "IntegerType",
            "description": "A sequential value representing the relative position within a given time interval.\n\nThe full attribute name position is because of efficiency changed into pos.",
            "example": 1,
            "type": "integer"
          },
          "price": {
            "$ref": "#/components/schemas/Price"
          }
        },
        "required": [
          "pos",
          "price"
        ]
      },
      "Price": {
        "title": "Price",
        "description": "The cost corresponding to a specific entity expressed in a currency.",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "amount": {
            "title": "2decimalsAmountType",
            "description": "A number of monetary units specified in a unit of currency.",
            "example": 10.22,
            "type": "number"
          }
        },
        "required": [
          "amount"
        ]
      },
      "PriceMonthSeries": {
        "title": "PriceMonthSeries",
        "description": "A timeseries containing prices only",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "price": {
            "$ref": "#/components/schemas/Price"
          },
          "product": {
            "$ref": "#/components/schemas/Product"
          },
          "quantity": {
            "$ref": "#/components/schemas/Quantity"
          }
        },
        "required": [
          "price",
          "product",
          "quantity"
        ]
      },
      "PricePointSeries": {
        "title": "PricePointSeries",
        "description": "A timeseries containing prices only",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "point": {
            "title": "Point",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Point"
            },
            "minItems": 1
          },
          "product": {
            "$ref": "#/components/schemas/Product"
          },
          "resolution": {
            "title": "ResolutionTypeCode",
            "description": "The definition of the number of units of time that compose an individual step within a period.",
            "example": "PT15M",
            "type": "string",
            "enum": [
              "PT15M"
            ]
          }
        },
        "required": [
          "point",
          "product",
          "resolution"
        ]
      },
      "Product": {
        "title": "Product",
        "description": "The identification of the product with and the applied characteristics.",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "identification": {
            "title": "EnergyProductIdentifierCode",
            "description": "The unique identification (EAN13) of the product.",
            "example": "8716867000030",
            "type": "string",
            "enum": [
              "8716867000030"
            ]
          },
          "measureUnit": {
            "title": "MeasurementUnitCode",
            "description": "The identification of the measure unit.",
            "example": "MWH",
            "type": "string",
            "enum": [
              "MWH"
            ]
          }
        },
        "required": [
          "identification",
          "measureUnit"
        ]
      },
      "Quantity": {
        "title": "Quantity",
        "description": "Description of quantities needed in the data exchange. \nThe type of the quantity is described by the volumeQuantityType attribute.",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "timeframeType": {
            "title": "TimeFrameTypeCode",
            "description": "The coded identification of the timeframe.",
            "example": "E11",
            "type": "string",
            "enum": [
              "E10",
              "E11",
              "E29"
            ]
          }
        },
        "required": [
          "timeframeType"
        ]
      },
      "ReconciliationPricesSeries": {
        "title": "ReconciliationPricesSeries",
        "description": "A set of time-ordered quantities being exchanged in relation to a product.\nIn the ESMP profile, the TimeSeries provides not only time-ordered quantities but also time-ordered information.",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "biddingDomain": {
            "$ref": "#/components/schemas/BiddingDomain"
          },
          "dateAndOrTime": {
            "$ref": "#/components/schemas/DateAndOrTime"
          },
          "mrid": {
            "title": "UuidType",
            "description": "A unique identification of the time series message.\n\nExample:\ne3d5ced9-3b0a-4e46-ba55-4cad6cdf2e56",
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$"
          },
          "priceMonthSeries": {
            "title": "PriceMonthSeries",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PriceMonthSeries"
            },
            "minItems": 3,
            "maxItems": 3
          },
          "pricePointSeries": {
            "$ref": "#/components/schemas/PricePointSeries"
          },
          "product": {
            "title": "ServiceCategoryKindCode",
            "description": "The identification of the energy product (electricity,gas etc.), from ebIX Codelist incl. a leading zero.",
            "example": "023",
            "type": "string",
            "enum": [
              "023"
            ]
          }
        },
        "required": [
          "biddingDomain",
          "dateAndOrTime",
          "mrid",
          "priceMonthSeries",
          "pricePointSeries",
          "product"
        ]
      },
      "RpRFC7807ProblemResultType": {
        "title": "RpRFC7807ProblemResultType",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "title": "NameType",
            "description": "HTTP Status code error containing information (based on RFC7807).",
            "type": "string"
          },
          "type": {
            "title": "TextType",
            "description": "A URI reference [RFC3986] that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be about:blank.",
            "type": "string"
          },
          "detail": {
            "title": "TextType",
            "description": "A human-readable explanation specific to this occurrence of the problem.",
            "type": "string"
          },
          "status": {
            "title": "IntegerType",
            "description": "The HTTP status code generated by the origin server for this occurrence of the problem.",
            "type": "integer"
          },
          "instance": {
            "title": "TextType",
            "description": "A URI reference that identifies the specific occurrence of the problem.",
            "type": "string"
          }
        },
        "required": [
          "title",
          "type",
          "status"
        ]
      }
    }
  }
}