Skip to main content
POST
/
schedule-management
/
v1
/
schedules
Create Schedule
curl --request POST \
  --url https://api.engrate.io/schedule-management/v1/schedules \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "market": "DE",
  "receiver_id": "<string>",
  "series": [
    {
      "data": [
        {
          "amount": 0,
          "ts": "2023-11-07T05:31:56Z"
        }
      ],
      "ids": {
        "in_area": "<string>",
        "in_party": "<string>",
        "out_area": "<string>",
        "out_party": "<string>",
        "market_agreement_id": "<string>"
      },
      "type": "production"
    }
  ],
  "tso": "<string>",
  "date": "2023-12-25",
  "test": false
}
'
{
  "acceptance_level": "cnf",
  "created_ts": "2026-03-25T14:00:00+00:00",
  "is_active": true,
  "last_modified_ts": "2026-03-25T14:05:00+00:00",
  "message_id": "MSG-20260325-001",
  "nrr_received": true,
  "org_uid": "9b2e4d8f-1c3a-4f5e-8d7b-6a9e0f2c1b3d",
  "schedule_uid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "spec": {
    "market": "DE",
    "receiver_id": "10XDE-VE-TRANSMK",
    "sender_id": "11XDE-SENDER---A",
    "series": [],
    "tso": "50HERTZ_DE_TSO"
  },
  "status": "accepted",
  "transmission_report_id": "TR-20260325-001",
  "uid": "c8d7e6f5-4a3b-4c2d-9e1f-0a8b7c6d5e4f",
  "version": 1
}

Authorizations

Authorization
string
header
required

Body

application/json

Request body for creating a new schedule.

market
enum<string>
required

Electricity market. Valid values: 'DE' or 'germany' (German market, MaBiS/ESS), 'NL' or 'netherlands' (Dutch market, TenneT MMC Hub).

Available options:
DE,
NL,
germany,
netherlands
receiver_id
string
required

EIC X code (organization code) of the receiving TSO. DE values by TSO — '50HERTZ_DE_TSO': '10XDE-VE-TRANSMK', 'DE-AMPRION-TSO': '10XDE-RWENET---W', 'TTG_DE': '10XDE-EON-NETZ-C', 'DE-TRANSNETBWTSO': '10XDE-ENBW--TNGX'. NL: EAN-13 code of TenneT NL: '8716867999983'.

Minimum string length: 1
series
ScheduleVersionSeriesItem · object[]
required

Time series to submit (0–50). DE requires at least 1 series. NL allows an empty list for zero-schedule or cancellation submissions.

Maximum array length: 50
tso
string
required

TSO identifier. DE values: '50HERTZ_DE_TSO' (50Hertz), 'DE-AMPRION-TSO' (Amprion), 'TTG_DE' (TenneT DE), 'DE-TRANSNETBWTSO' (TransnetBW). NL value: 'TENNET_TSO' (TenneT NL).

Minimum string length: 1
date
string<date> | null

Delivery date (YYYY-MM-DD). If omitted, derived from the first timestamp in series data (UTC → Europe/Berlin). Example: omit when the first series timestamp is '2026-01-23T23:00:00Z' (= 2026-01-24 00:00 Berlin time) to get delivery date 2026-01-24.

test
boolean
default:false

If true, skip gate closure validation. Use in development/testing to submit outside normal market windows.

Response

Successful Response

A Schedule Version representing one submission attempt. Each re-submission creates a new version.

acceptance_level
string
required

Highest acceptance level reached: empty string, ack, or cnf.

Examples:

"cnf"

"ack"

""

created_ts
string
required

ISO 8601 datetime when this version was created.

Example:

"2026-03-25T14:00:00+00:00"

last_modified_ts
string
required

ISO 8601 datetime of the most recent status change.

Example:

"2026-03-25T14:05:00+00:00"

org_uid
string
required

Organization that owns this version.

Example:

"9b2e4d8f-1c3a-4f5e-8d7b-6a9e0f2c1b3d"

schedule_uid
string
required

Parent Schedule identifier.

Example:

"f47ac10b-58cc-4372-a567-0e02b2c3d479"

spec
ScheduleVersionSpec · object
required

Full submission specification including market routing and series references.

status
string
required

Processing status: ingested, submitted, accepted, rejected, cnf_partial, or icnf.

Examples:

"accepted"

"submitted"

"rejected"

uid
string
required

Unique identifier for this version.

Example:

"c8d7e6f5-4a3b-4c2d-9e1f-0a8b7c6d5e4f"

version
integer
required

Sequential version number (1-based). Increments with each re-submission.

Examples:

1

2

3

is_active
boolean
default:true

Whether this version is the active one according to the authoritative TSO message ID. Older versions become inactive when a new version is accepted.

message_id
string | null

TSO document identification assigned to this version's message.

Example:

"MSG-20260325-001"

nrr_received
boolean | null

Whether a Non-Repudiation of Receipt (NRR) delivery confirmation has been received from the TSO.

transmission_report_id
string | null

Mako365/AS4 transmission report identifier for delivery tracking.

Example:

"TR-20260325-001"

warnings
WarningItem · object[] | null

TSO warnings from the ACK response, if any.