Reference

Deep reference for parsing, validation, builders, the platform API, and every process.

The reference layer beneath the guides: edi-energy parsing, validation and builders, the AS4 transport, the process catalogue, Redispatch 2.0, DVGW gas transport, and the makotest Python toolkit.

The pages

PageRead it for
ParsingTurning EDIFACT bytes into typed messages — every entry point, the DoS limits, the error variants
ValidationWhat "valid" means: the three layers, the report API, rule ids
BuildersConstructing a message that validates, with the type-state builders
PlatformMulti-tenant and test-isolated profile registries, instead of the global one
Process catalogueEvery MaKo process: who starts it, which messages flow, which Frist applies, what mako implements
Redispatch 2.0The XML document family, the workflows, and the BilAReM regime
DVGW EDIGas transport messages (ALOCAT, NOMINT, NOMRES, SSQNOT)
BDEW AS4The transport that carries every EDIFACT interchange between market partners
makotestWriting tests in Python against the real Fristen and the real validator
Operator policyEvery operator setting: its key, its options with their primary sources, its default or that it is required

The process catalogue and the PID reference are lookup tables, ordered by regulatory framework and by message type.

Vocabulary

The terms every page below uses; fuller definitions are in the glossary.

TermWhat it is
MaKoMarktkommunikation — the regulated message exchange between market participants, prescribed by BNetzA Festlegungen
Prüfidentifikator (PID)A five-digit number identifying one business case, e.g. 55001 Lieferbeginn Strom. It selects the AHB column a message is validated against, and the workflow that handles it
AHBAnwendungshandbuch — one column per Prüfidentifikator, saying what that case must, may and must not send
MIGNachrichtenimplementierungshandbuch — the message structure itself: segments, groups, data elements, code lists. One per message type
EBDEntscheidungsbaumdiagramm — a BDEW decision tree (E_0406, E_0623, …) whose leaves are the Antwortcodes (A01, A50, …) an answer may carry
Marktlokation (MaLo)Where energy is consumed or produced, as the market accounts for it — an 11-digit id. Not a meter
Messlokation (MeLo)Where a meter sits — a 33-character Zählpunktbezeichnung. Several MeLo can serve one MaLo
BilanzkreisThe balancing account energy is booked to. Every MaLo is assigned to one; the BKV answers for its balance
Frist / WerktagA regulatory deadline, counted in Werktage (business days) on the BDEW calendar — not in calendar days, and not in the local Bundesland's holidays
SparteStrom or Gas. The same business process usually has a separate PID band per Sparte

See Domain model for the identifier formats and check digits, and Dates and days for what "today" means in a market date.

The four market roles

Every process is a conversation between two of these (full role table):

RoleMarktrolleAnswers for
LFLieferantSupplying the customer — the retail contract, the Bilanzkreis, the invoice
NBNetzbetreiberThe grid the MaLo hangs on — access, grid charges, and most of the confirmations
MSBMessstellenbetreiberThe meter — installing it, reading it, and delivering the values
BKVBilanzkreisverantwortlicherA Bilanzkreis's balance against the ÜNB

A deployment is scoped to the roles it plays: makod registers the modules of the roles its [deployment] rollen declares. Which principal may read which role's processes — the confidentiality § 6a Abs. 1 EnWG asks for — is the deployment's Cedar policy, not the role scope.

The 17 EDIFACT message types

edi-energy ships a generated MIG and AHB for each:

MessageCarries
UTILMDStammdaten and the master-data processes — Lieferbeginn, Kündigung, MSB-Wechsel. The largest family by far
MSCONSMetered values — Zählerstände, Lastgänge, Zählerstandsgänge
INVOICInvoices — grid charges, MSB charges, retail, Mehr-/Mindermengen
REMADVThe invoice answer: paid, or itemised rejection
COMDISHandelsunstimmigkeit — a dispute over a REMADV or an IFTSTA
APERAKApplication-level acknowledgement or rejection of a received message
CONTRLSyntax acknowledgement at interchange level. The only AHB with no Prüfidentifikatoren
ORDERSAn order — Sperrauftrag, Werteanforderung, Konfigurationsbestellung
ORDRSPThe answer to an order
ORDCHGA change to an order already placed
REQOTERequest for quotation — the ESA asking an MSB for a price
QUOTESThe quotation itself
PRICATPrice lists — Ausgleichsenergiepreise, MSB- and NB-Preisblätter
IFTSTAStatus reports — Sperrung/Entsperrung progress, WiM Umsetzungsstatus, Redispatch
INSRPTStörungsmeldung and Ablesesteuerung
PARTINKommunikationsdaten — who to reach at a market partner, and how
UTILTSBerechnungsformeln and Zählzeitdefinitionen between grid operators

The wire code is the one in UNH; the Cargo feature that compiles each type in is listed in crates/edi-energy/src/message_type.rs.

Parsing

All entry points for reading EDI@Energy EDIFACT data: parse, parse_interchange, Platform::parse, ParseConfig DoS limits, and error variants.

Validation

EDIFACT validation against the MIG and the AHB column: the checks, the ValidationReport, rule ids, Prüfidentifikatoren and release dates.

Builders

Fluent type-state builder API for constructing valid EDI@Energy EDIFACT messages: UTILMD, MSCONS, APERAK, CONTRL, INVOIC, REMADV, ORDERS, OR…

Platform

Use Platform for multi-tenant gateways, test isolation, hot-reload, and custom DoS limits. Alternative to the global ReleaseRegistry singlet…

DVGW EDI

The dvgw-edi crate: parsing, validating and writing ALOCAT, NOMINT, NOMRES and SSQNOT for GaBi Gas 2.1 gas transport.

Process Catalog

Every German market communication process mako implements — GPKE, WiM, MaBiS, GeLi Gas, GaBi Gas and PARTIN — with its roles, messages and d…

Redispatch 2.0

Redispatch 2.0 in mako: the XML document types, eight event-sourced workflows, the BilAReM regime under BK6-23-241, and IFTSTA integration.

BDEW AS4 Guide

Configure makod for BDEW AS4-Profil 1.2 on asx-rs 0.16: one identity and client per MP-ID, the SM-PKI trust anchor and CRL signer, partners,…

makotest (Python)

Python test and simulation toolkit for MaKo platforms: BDEW check digits, answer-Fristen, AHB-validated EDIFACT and a pytest plugin, over ma…

Operator policy

Every operator setting mako ships: its key, its options with their primary sources, and its default or that it is required.