Skip to content

Commit a5aeefe

Browse files
committed
missed one library here
1 parent f625688 commit a5aeefe

1 file changed

Lines changed: 40 additions & 0 deletions

File tree

getting-started.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,45 @@ serializer = NordPoolSerializer()
6262
payload = serializer.serialize(Portfolio(bids=[bid]))
6363
```
6464

65+
+++ mFRR Bids
66+
67+
**nexa-mfrr-nordic-eam** is the starting point for BSPs building Nordic mFRR energy activation market bid workflows.
68+
69+
```python
70+
pip install nexa-mfrr-nordic-eam
71+
```
72+
73+
```python
74+
from nexa_mfrr_eam import (
75+
Bid, BidDocument, Direction, MarketProductType,
76+
BiddingZone, TSO, MARIMode,
77+
)
78+
79+
# Create a simple divisible up-regulation bid
80+
bid = (
81+
Bid.up(volume_mw=50, price_eur=85.50)
82+
.divisible(min_volume_mw=10)
83+
.for_mtu("2026-03-21T10:00Z")
84+
.resource("NOKG90901", coding_scheme="NNO")
85+
.product_type(MarketProductType.SCHEDULED_AND_DIRECT)
86+
.build()
87+
)
88+
89+
# Wrap in a document targeting Statnett
90+
doc = (
91+
BidDocument(tso=TSO.STATNETT)
92+
.sender(party_id="9999909919920", coding_scheme="A10")
93+
.add_bid(bid)
94+
.build()
95+
)
96+
97+
# Validate, then serialise to CIM XML
98+
errors = doc.validate(mari_mode=MARIMode.PRE_MARI)
99+
if not errors:
100+
xml_bytes = doc.to_xml()
101+
# Send xml_bytes via your ECP/EDX endpoint
102+
```
103+
65104
+++ Exchange Connectivity
66105

67106
**nexa-connect** is for teams building or maintaining direct exchange connections.
@@ -112,6 +151,7 @@ func main() {
112151
| nexa-marketdata | Python | 3.10+ |
113152
| nexa-bidkit | Python | 3.10+ |
114153
| nexa-connect | Go | 1.21+ |
154+
| nexa-mfrr-nordic-eam | Python | 3.11+ |
115155
| nexa-mcp | Python | 3.10+ |
116156

117157
---

0 commit comments

Comments
 (0)