curl --request POST \
--url https://api.engrate.io/schedule-management/v1/mabis/clearing-periods \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"bilanzierungsmonat": "2023-12-25",
"bilanzkreis_eic": "<string>",
"final_deadline": "2023-11-07T05:31:56Z",
"objection_deadline": "2023-11-07T05:31:56Z",
"preliminary_deadline": "2023-11-07T05:31:56Z"
}
'import requests
url = "https://api.engrate.io/schedule-management/v1/mabis/clearing-periods"
payload = {
"bilanzierungsmonat": "2023-12-25",
"bilanzkreis_eic": "<string>",
"final_deadline": "2023-11-07T05:31:56Z",
"objection_deadline": "2023-11-07T05:31:56Z",
"preliminary_deadline": "2023-11-07T05:31:56Z"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
bilanzierungsmonat: '2023-12-25',
bilanzkreis_eic: '<string>',
final_deadline: '2023-11-07T05:31:56Z',
objection_deadline: '2023-11-07T05:31:56Z',
preliminary_deadline: '2023-11-07T05:31:56Z'
})
};
fetch('https://api.engrate.io/schedule-management/v1/mabis/clearing-periods', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.engrate.io/schedule-management/v1/mabis/clearing-periods",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'bilanzierungsmonat' => '2023-12-25',
'bilanzkreis_eic' => '<string>',
'final_deadline' => '2023-11-07T05:31:56Z',
'objection_deadline' => '2023-11-07T05:31:56Z',
'preliminary_deadline' => '2023-11-07T05:31:56Z'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.engrate.io/schedule-management/v1/mabis/clearing-periods"
payload := strings.NewReader("{\n \"bilanzierungsmonat\": \"2023-12-25\",\n \"bilanzkreis_eic\": \"<string>\",\n \"final_deadline\": \"2023-11-07T05:31:56Z\",\n \"objection_deadline\": \"2023-11-07T05:31:56Z\",\n \"preliminary_deadline\": \"2023-11-07T05:31:56Z\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.engrate.io/schedule-management/v1/mabis/clearing-periods")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"bilanzierungsmonat\": \"2023-12-25\",\n \"bilanzkreis_eic\": \"<string>\",\n \"final_deadline\": \"2023-11-07T05:31:56Z\",\n \"objection_deadline\": \"2023-11-07T05:31:56Z\",\n \"preliminary_deadline\": \"2023-11-07T05:31:56Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.engrate.io/schedule-management/v1/mabis/clearing-periods")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"bilanzierungsmonat\": \"2023-12-25\",\n \"bilanzkreis_eic\": \"<string>\",\n \"final_deadline\": \"2023-11-07T05:31:56Z\",\n \"objection_deadline\": \"2023-11-07T05:31:56Z\",\n \"preliminary_deadline\": \"2023-11-07T05:31:56Z\"\n}"
response = http.request(request)
puts response.read_body{
"bilanzierungsmonat": "2026-01-01",
"bilanzkreis_eic": "11XEXAMPLE-BKV-A",
"created_ts": "2026-02-01T00:00:00+00:00",
"last_modified_ts": "2026-02-25T10:00:00+00:00",
"org_uid": "<string>",
"status": "open",
"uid": "c5d6e7f8-a9b0-4c1d-8e2f-3a4b5c6d7e8f",
"final_deadline": "2026-03-31T23:59:59+02:00",
"objection_deadline": "2026-03-13T23:59:59+01:00",
"preliminary_deadline": "2026-02-25T23:59:59+01:00",
"total_imbalance_cost_eur": 1875,
"total_imbalance_mwh": 12.5
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}Create Clearing Period
Create a new Clearing Period.
A clearing period represents one Bilanzierungsmonat for a Bilanzkreis. The deadlines should match the MaBiS calendar: preliminary at M+18 WT, objection window closing at M+30 WT, and final settlement at M+42 WT. Use GET /mabis/clearing-calendar to calculate the exact dates for a given month.
curl --request POST \
--url https://api.engrate.io/schedule-management/v1/mabis/clearing-periods \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"bilanzierungsmonat": "2023-12-25",
"bilanzkreis_eic": "<string>",
"final_deadline": "2023-11-07T05:31:56Z",
"objection_deadline": "2023-11-07T05:31:56Z",
"preliminary_deadline": "2023-11-07T05:31:56Z"
}
'import requests
url = "https://api.engrate.io/schedule-management/v1/mabis/clearing-periods"
payload = {
"bilanzierungsmonat": "2023-12-25",
"bilanzkreis_eic": "<string>",
"final_deadline": "2023-11-07T05:31:56Z",
"objection_deadline": "2023-11-07T05:31:56Z",
"preliminary_deadline": "2023-11-07T05:31:56Z"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
bilanzierungsmonat: '2023-12-25',
bilanzkreis_eic: '<string>',
final_deadline: '2023-11-07T05:31:56Z',
objection_deadline: '2023-11-07T05:31:56Z',
preliminary_deadline: '2023-11-07T05:31:56Z'
})
};
fetch('https://api.engrate.io/schedule-management/v1/mabis/clearing-periods', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.engrate.io/schedule-management/v1/mabis/clearing-periods",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'bilanzierungsmonat' => '2023-12-25',
'bilanzkreis_eic' => '<string>',
'final_deadline' => '2023-11-07T05:31:56Z',
'objection_deadline' => '2023-11-07T05:31:56Z',
'preliminary_deadline' => '2023-11-07T05:31:56Z'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.engrate.io/schedule-management/v1/mabis/clearing-periods"
payload := strings.NewReader("{\n \"bilanzierungsmonat\": \"2023-12-25\",\n \"bilanzkreis_eic\": \"<string>\",\n \"final_deadline\": \"2023-11-07T05:31:56Z\",\n \"objection_deadline\": \"2023-11-07T05:31:56Z\",\n \"preliminary_deadline\": \"2023-11-07T05:31:56Z\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.engrate.io/schedule-management/v1/mabis/clearing-periods")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"bilanzierungsmonat\": \"2023-12-25\",\n \"bilanzkreis_eic\": \"<string>\",\n \"final_deadline\": \"2023-11-07T05:31:56Z\",\n \"objection_deadline\": \"2023-11-07T05:31:56Z\",\n \"preliminary_deadline\": \"2023-11-07T05:31:56Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.engrate.io/schedule-management/v1/mabis/clearing-periods")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"bilanzierungsmonat\": \"2023-12-25\",\n \"bilanzkreis_eic\": \"<string>\",\n \"final_deadline\": \"2023-11-07T05:31:56Z\",\n \"objection_deadline\": \"2023-11-07T05:31:56Z\",\n \"preliminary_deadline\": \"2023-11-07T05:31:56Z\"\n}"
response = http.request(request)
puts response.read_body{
"bilanzierungsmonat": "2026-01-01",
"bilanzkreis_eic": "11XEXAMPLE-BKV-A",
"created_ts": "2026-02-01T00:00:00+00:00",
"last_modified_ts": "2026-02-25T10:00:00+00:00",
"org_uid": "<string>",
"status": "open",
"uid": "c5d6e7f8-a9b0-4c1d-8e2f-3a4b5c6d7e8f",
"final_deadline": "2026-03-31T23:59:59+02:00",
"objection_deadline": "2026-03-13T23:59:59+01:00",
"preliminary_deadline": "2026-02-25T23:59:59+01:00",
"total_imbalance_cost_eur": 1875,
"total_imbalance_mwh": 12.5
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}Authorizations
Body
Request to create a clearing period.
First day of the billing month (YYYY-MM-DD). Example: '2026-01-01' for January 2026. Use GET /mabis/clearing-calendar to compute the MaBiS deadlines for this month.
Balance group (Bilanzkreis) EIC X code (16-character organization code, starts with '11X'). Registered with the TSO as the BRP identifier.
Final billing deadline (ISO 8601 datetime). Corresponds to M+42 WT per BK6-24-174.
Objection window closing deadline (ISO 8601 datetime). Corresponds to M+30 WT — after this date objections can no longer be submitted.
Preliminary billing deadline (ISO 8601 datetime with timezone). Corresponds to M+18 WT per BK6-24-174. Example: '2026-02-25T23:59:59+01:00'.
Response
Successful Response
A Clearing Period representing one settlement month for a balance group.
First day of the settlement month in ISO 8601 format.
"2026-01-01"
Balance group (Bilanzkreis) EIC X code.
"11XEXAMPLE-BKV-A"
ISO 8601 datetime when this clearing period was created.
"2026-02-01T00:00:00+00:00"
ISO 8601 datetime of the most recent modification.
"2026-02-25T10:00:00+00:00"
Organization that owns this clearing period.
Clearing status: open, preliminary, objection, final, or closed.
"open"
"preliminary"
"final"
Unique identifier for this clearing period.
"c5d6e7f8-a9b0-4c1d-8e2f-3a4b5c6d7e8f"
Final billing deadline (M+42 WT) as ISO 8601 datetime.
"2026-03-31T23:59:59+02:00"
Objection window closing deadline (M+30 WT) as ISO 8601 datetime.
"2026-03-13T23:59:59+01:00"
Preliminary billing deadline (M+18 WT) as ISO 8601 datetime.
"2026-02-25T23:59:59+01:00"
Total imbalance cost in EUR based on reBAP prices.
1875
Total imbalance energy in MWh across all settlement days.
12.5
Was this page helpful?