Skip to content

ETPA Public API (1.0)

For access to the ETPA platform, please send an e-mail to support@etpa.nl

Download OpenAPI description
Languages
Servers
https://acc-trading.etpa.nl/

Congestion Management

This API provides congestion data to support grid management and decision-making. It is used exclusively by GOPACS to access spread bucket information related to electricity grid congestion

NOTE: This endpoint can be only used by GOPACS.

Operations

Congestion State Check

This API allows GOPACS to check the current status of congestion spread buckets. It helps determine whether congestion data is available or up to date.

NOTE: This endpoint can be only used by GOPACS.

Operations

GOPACS Orderbook Locking

NOTE: This API can only be used by GOPACS.

Operations

GOPACS Orders v2

This endpoints will allow you to create, update, delete orders for GOPACS only. Everything created here can be retrieved by the GOPACS platform and can be used for solving congestion problems.

Operations

GOPACS Orders – Grid Operator v2

NOTE: This API can only be used by GOPACS

Operations

On Hold Orders

The on hold orders API provides you the possibility to hold orders before they are going to be traded. You can hold your orders and once the orders are on hold they are not going to be traded with the orderbook.

Operations

Order Status

The Order status API will give the current status or the history of the status of the order. The Order status API can only be accessed by users who have trading rights. It will give you orders from GOPACS orderbook, local intraday and local intraday.

Operations

Orders v2

The following things are changed from version 1:

  • You will get an error code and an error message when the order is incorrect.
  • You will get an orderId back from the post request to check the status of your order. "Intraday" orders will be rejected from this endpoints when "XBID" functionality is enabled. "Expost" orders will still work. You can create "Intraday" orders for "XBID" using the XBID Orders endpoints
Operations

Trades v2

NOTE: The trade API can only be used by users who have trading rights

Operations

Trades v3

This API provides endpoints to retrieve trade information. It supports fetching all trades with pagination and sorting by latest first, as well as retrieving a specific trade by its tradeId. All endpoints are secured with an API key.

Operations

Platform Status

The platform Status API will give you information about the status of the ETPA Platform

Operations

User Management

The user API which will give you all the information about an individual and all the information about the participants. The User API can be accessed by Trade, Report and Wallet users.

Operations

Reporting v2

The reporting API is used for reporting purposes. It can be used by users who have trade, wallet or reporting access.

Operations

Reporting v3

This enable pv-parties to get the trade information of their connected pv-party clients, no order information is given to the pv-party. The connection of participants to a PV party is done by the ETPA admin in our system.

Operations

Wallet v2

The Wallet V2 provides wallet data about a participant and it will give you the transactions. The Wallet can be used by participant who has reporting, trade or wallet access.

Operations

Wallet v3

The XBID Wallet Balance Controller provides an endpoint to retrieve the balances of a trader’s wallet and XBID wallet for a given participantId. Access requires an API key, and the response returns the current wallet balances.

Operations

XBID Contracts v1

The XBID Contracts v1 provides an endpoint to retrieve all active XBID contracts. While the contractId cannot be used to create orders, the endpoint offers information about when contracts will be available for trading and requires an API key for access.

Operations

XBID Orders v1

The XBID Orders v1 will be used for managing orders for XBID. This API will also function in case of a disconnection of XBID.

Be aware: In case the XBID connection gets lost. The new orders which are created with the XBID order API will be automatically forwarded to the local intraday orderbook. You can use the XBID Status API for the current connection of XBID.

Operations

Create Order

Request

Creates new order. When creating a new order, there are 2 options:

  • Creating a buy order
  • Creating a sell order
Security
api-key
Query
callbackurlstring

Callback to return the Id of the order to after initial processing by our system. The callback url will receive a GET request with a parameter named 'id' containing the order Id. Due to the order being created asynchronously, the status cannot be returned by the current http request. After receive of the Id the order can be traced using the Server Sent Event.

Bodyapplication/jsonrequired
orderTypestringrequired

The Order type is required field.

Enum"BUY""SELL"
Example: "BUY / SELL"
xbidOrderTypestringrequired

The XBID Order type is required field. Currently supported types include REGULAR and ICEBERG

Example: "REGULAR / ICEBERG"
participantIdstringrequired
Example: "292c3db8-3ee1-4999-bbed-d579225d1596"
capacitynumberrequired

The capacity can not be negative and 0. Also the decimal limit of the capacity is 1. The capacity is required field.

Example: 2
deliveryStartTimeinteger(int64)required

The start time is an epoch time. It is the time in milliseconds since the start of the unix time. The deliveryStartTime time is required field.

Example: 1465596000000
deliveryEndTimeinteger(int64)required

The end time is an epoch time. It is the time in milliseconds since the start of the unix time. The deliveryEndTime time is required field

Example: 1465682400000
unitPricenumber[ -9999 .. 9999 ]required

The UnitPrice is required field.

Example: 35
metadataobject
Example: {"key1":"value1","key2":"value2"}
customExpirationTimeinteger(int64)

Custom expiration time of an order. If no value is provided then the order will expire 15 minutes before the start time.The time must be a time in the future and must not be later than 15 minutes before the start time. The time provided must be a multiple of 15 minutes. For example 03:00, 03:15, 03:30 and 03:45.

Example: 1465682400000
orderDeliveryAreastringrequired

Delivery Area Id where the order is located.

Enum"AT""BG""BE""CZ""DE1""DE2""DE3""DE4""DK1""DK2"
Example: "NL / NL - TTN / 10YNL----------L"
orderStatusstring

The Order status is required field.

Enum"ACTIVE""HIBERNATE""WITHDRAWN"
Example: "ACTIVE / HIBERNATE"
orderExecutionstringrequired

Order execution restriction. Currently only supported types are NON, FOK and IOC

Enum"NON""FOK""IOC"
Example: "NON / FOK / IOC "
allowedForLocalMarketboolean

When this field is true the order is allowed to go to the local market. If this field is false the order will be rejected and will not be sent to the local market if XBID is down.

Example: false
orderVersionobject(OrderVersion)
showCapacitynumber

The quantity shown to the market. Only used for XbidOrderType ICEBERG

Example: 2
pricePerDeltanumber

The peak price delta means that the price of the order can be increased/ decreased with every slice. This field is optional, meaning the default value is 0.0.

Example: 2
curl -i -X POST \
  'https://acc-trading.etpa.nl/public-api/1.0/xbid/electricity/orders?callbackurl=string' \
  -H 'Content-Type: application/json' \
  -H 'api_key: YOUR_API_KEY_HERE' \
  -d '{
    "orderType": "BUY / SELL",
    "xbidOrderType": "REGULAR / ICEBERG",
    "participantId": "292c3db8-3ee1-4999-bbed-d579225d1596",
    "capacity": 2,
    "deliveryStartTime": 1465596000000,
    "deliveryEndTime": 1465682400000,
    "unitPrice": 35,
    "metadata": {
      "key1": "value1",
      "key2": "value2"
    },
    "customExpirationTime": 1465682400000,
    "orderDeliveryArea": "NL / NL - TTN / 10YNL----------L",
    "orderStatus": "ACTIVE / HIBERNATE",
    "orderExecution": "NON / FOK / IOC ",
    "allowedForLocalMarket": false,
    "orderVersion": {
      "revisionNo": 0,
      "xbidOrderId": 0
    },
    "showCapacity": 2,
    "pricePerDelta": 2
  }'

Responses

OK

Bodyapplication/json
hrefstring
hreflangstring
titlestring
typestring
deprecationstring
profilestring
namestring
templatedboolean
Response
application/json
{ "href": "string", "hreflang": "string", "title": "string", "type": "string", "deprecation": "string", "profile": "string", "name": "string", "templated": true }

Cancel all orders

Request

Cancel all user orders

Security
api-key
curl -i -X DELETE \
  https://acc-trading.etpa.nl/public-api/1.0/xbid/electricity/orders \
  -H 'api_key: YOUR_API_KEY_HERE'

Responses

OK

Create Basket Order

Request

Creates new basket order. When creating a new basket order, you must select the Execution Type

  • "NONE": All orders in the order list are executed individually.
  • "VALID": All orders must be valid orders. If 1 order is invalid, none of the orders are executed.
  • "LINKED": All orders in the order list must be matched immediately. If 1 order does not match immediately, all orders in the order list are canceled.
Security
api-key
Query
callbackurlstring

Callback to return the Id of the order to after initial processing by our system. The callback url will receive a GET request with a parameter named 'id' containing the order Id. Due to the order being created asynchronously, the status cannot be returned by the current http request. After receive of the Id the order can be traced using the Server Sent Event.

Bodyapplication/jsonrequired
basketExecutionTypestringrequired

Basket execution type

Enum"NONE""VALID""LINKED"
Example: "NONE / VALID / LINKED"
orderListArray of objects(XbidOrderRequest)required

List of order requests

orderList[].​orderTypestringrequired

The Order type is required field.

Enum"BUY""SELL"
Example: "BUY / SELL"
orderList[].​xbidOrderTypestringrequired

The XBID Order type is required field. Currently supported types include REGULAR and ICEBERG

Example: "REGULAR / ICEBERG"
orderList[].​participantIdstringrequired
Example: "292c3db8-3ee1-4999-bbed-d579225d1596"
orderList[].​capacitynumberrequired

The capacity can not be negative and 0. Also the decimal limit of the capacity is 1. The capacity is required field.

Example: 2
orderList[].​deliveryStartTimeinteger(int64)required

The start time is an epoch time. It is the time in milliseconds since the start of the unix time. The deliveryStartTime time is required field.

Example: 1465596000000
orderList[].​deliveryEndTimeinteger(int64)required

The end time is an epoch time. It is the time in milliseconds since the start of the unix time. The deliveryEndTime time is required field

Example: 1465682400000
orderList[].​unitPricenumber[ -9999 .. 9999 ]required

The UnitPrice is required field.

Example: 35
orderList[].​metadataobject
Example: {"key1":"value1","key2":"value2"}
orderList[].​customExpirationTimeinteger(int64)

Custom expiration time of an order. If no value is provided then the order will expire 15 minutes before the start time.The time must be a time in the future and must not be later than 15 minutes before the start time. The time provided must be a multiple of 15 minutes. For example 03:00, 03:15, 03:30 and 03:45.

Example: 1465682400000
orderList[].​orderDeliveryAreastringrequired

Delivery Area Id where the order is located.

Enum"AT""BG""BE""CZ""DE1""DE2""DE3""DE4""DK1""DK2"
Example: "NL / NL - TTN / 10YNL----------L"
orderList[].​orderStatusstring

The Order status is required field.

Enum"ACTIVE""HIBERNATE""WITHDRAWN"
Example: "ACTIVE / HIBERNATE"
orderList[].​orderExecutionstringrequired

Order execution restriction. Currently only supported types are NON, FOK and IOC

Enum"NON""FOK""IOC"
Example: "NON / FOK / IOC "
orderList[].​allowedForLocalMarketboolean

When this field is true the order is allowed to go to the local market. If this field is false the order will be rejected and will not be sent to the local market if XBID is down.

Example: false
orderList[].​orderVersionobject(OrderVersion)
orderList[].​showCapacitynumber

The quantity shown to the market. Only used for XbidOrderType ICEBERG

Example: 2
orderList[].​pricePerDeltanumber

The peak price delta means that the price of the order can be increased/ decreased with every slice. This field is optional, meaning the default value is 0.0.

Example: 2
allowedForLocalMarketboolean

When this field is true the full basket order is allowed to go to the local market, regardless of the allowedForLocalMarket field in the individual ordersIf this field is false the basket order will be rejected and will not be sent to the local market if XBID is down.

Example: false
curl -i -X POST \
  'https://acc-trading.etpa.nl/public-api/1.0/xbid/electricity/orders/basket?callbackurl=string' \
  -H 'Content-Type: application/json' \
  -H 'api_key: YOUR_API_KEY_HERE' \
  -d '{
    "basketExecutionType": "NONE / VALID / LINKED",
    "orderList": [
      {
        "orderType": "BUY / SELL",
        "xbidOrderType": "REGULAR / ICEBERG",
        "participantId": "292c3db8-3ee1-4999-bbed-d579225d1596",
        "capacity": 2,
        "deliveryStartTime": 1465596000000,
        "deliveryEndTime": 1465682400000,
        "unitPrice": 35,
        "metadata": {
          "key1": "value1",
          "key2": "value2"
        },
        "customExpirationTime": 1465682400000,
        "orderDeliveryArea": "NL / NL - TTN / 10YNL----------L",
        "orderStatus": "ACTIVE / HIBERNATE",
        "orderExecution": "NON / FOK / IOC ",
        "allowedForLocalMarket": false,
        "orderVersion": {
          "revisionNo": 0,
          "xbidOrderId": 0
        },
        "showCapacity": 2,
        "pricePerDelta": 2
      }
    ],
    "allowedForLocalMarket": false
  }'

Responses

OK

Bodyapplication/json
linkobject(Link)required
link.​hrefstring
link.​hreflangstring
link.​titlestring
link.​typestring
link.​deprecationstring
link.​profilestring
link.​namestring
link.​templatedboolean
successstringrequired
invalidOrdersArray of objects(InvalidOrderRequest)required
invalidOrders[].​positioninteger(int32)required
invalidOrders[].​reasonstringrequired
invalidOrders[].​orderobject(XbidOrderRequest)required
invalidOrders[].​order.​orderTypestringrequired

The Order type is required field.

Enum"BUY""SELL"
Example: "BUY / SELL"
invalidOrders[].​order.​xbidOrderTypestringrequired

The XBID Order type is required field. Currently supported types include REGULAR and ICEBERG

Example: "REGULAR / ICEBERG"
invalidOrders[].​order.​participantIdstringrequired
Example: "292c3db8-3ee1-4999-bbed-d579225d1596"
invalidOrders[].​order.​capacitynumberrequired

The capacity can not be negative and 0. Also the decimal limit of the capacity is 1. The capacity is required field.

Example: 2
invalidOrders[].​order.​deliveryStartTimeinteger(int64)required

The start time is an epoch time. It is the time in milliseconds since the start of the unix time. The deliveryStartTime time is required field.

Example: 1465596000000
invalidOrders[].​order.​deliveryEndTimeinteger(int64)required

The end time is an epoch time. It is the time in milliseconds since the start of the unix time. The deliveryEndTime time is required field

Example: 1465682400000
invalidOrders[].​order.​unitPricenumber[ -9999 .. 9999 ]required

The UnitPrice is required field.

Example: 35
invalidOrders[].​order.​metadataobject
Example: {"key1":"value1","key2":"value2"}
invalidOrders[].​order.​customExpirationTimeinteger(int64)

Custom expiration time of an order. If no value is provided then the order will expire 15 minutes before the start time.The time must be a time in the future and must not be later than 15 minutes before the start time. The time provided must be a multiple of 15 minutes. For example 03:00, 03:15, 03:30 and 03:45.

Example: 1465682400000
invalidOrders[].​order.​orderDeliveryAreastringrequired

Delivery Area Id where the order is located.

Enum"AT""BG""BE""CZ""DE1""DE2""DE3""DE4""DK1""DK2"
Example: "NL / NL - TTN / 10YNL----------L"
invalidOrders[].​order.​orderStatusstring

The Order status is required field.

Enum"ACTIVE""HIBERNATE""WITHDRAWN"
Example: "ACTIVE / HIBERNATE"
invalidOrders[].​order.​orderExecutionstringrequired

Order execution restriction. Currently only supported types are NON, FOK and IOC

Enum"NON""FOK""IOC"
Example: "NON / FOK / IOC "
invalidOrders[].​order.​allowedForLocalMarketboolean

When this field is true the order is allowed to go to the local market. If this field is false the order will be rejected and will not be sent to the local market if XBID is down.

Example: false
invalidOrders[].​order.​orderVersionobject(OrderVersion)
invalidOrders[].​order.​showCapacitynumber

The quantity shown to the market. Only used for XbidOrderType ICEBERG

Example: 2
invalidOrders[].​order.​pricePerDeltanumber

The peak price delta means that the price of the order can be increased/ decreased with every slice. This field is optional, meaning the default value is 0.0.

Example: 2
Response
application/json
{ "link": { "href": "string", "hreflang": "string", "title": "string", "type": "string", "deprecation": "string", "profile": "string", "name": "string", "templated": true }, "success": "string", "invalidOrders": [ {} ] }

XBID Order Status v1

The XBID Order Status Controller provides endpoints to retrieve both the history and current status of XBID orders and baskets. It supports filtering by orderId or basketId and requires an API key for authentication. Responses include detailed order status entries or lists, with proper handling of cases where no matching records are found.

Operations

XBID Reporting v1

The XBID Order API is used for creating orders for XBID. It also remains functional in the event of a disconnection from XBID.

⚠️ Important: If the XBID connection is lost, any new orders created via the XBID Order API will be automatically forwarded to the local intraday orderbook. For monitoring the current connection status of XBID, you can use the XBID Status v1 API.

Operations

XBID Status v1

The XBID Status API provides the current status of the XBID connection.

  • Returns whether XBID is connected (true) or disconnected (false) in boolean format.
Operations

XBID Trades v1

This request will give you all your XBID trades from the last 48 hours.

Operations

XBID Trade Reports v1

The XBID Trades API allows you to retrieve all trades in XBID.

  • You can apply various filters to narrow down the results.
Operations

XBID Wallet v1

With XBID, wallets are separated. Before trading on XBID, you must transfer funds from your Trader Wallet to your XBID Wallet.

  • Transfers can be performed via the UI or the API.
  • This API provides:
    • Information about all transactions that have occurred.
    • The ability to transfer funds between the Trader Wallet and the XBID Wallet.
Operations

XBID Public Trade API v2

Operations

XBID Public Trade API v1

Operations