pub struct MsbInput {
pub malo_id: String,
pub nb_mp_id: String,
pub msb_mp_id: String,
pub period: SettlementPeriod,
pub grundgebuehr_eur_per_month: Decimal,
pub billing_months: u32,
pub messdienstleistung_eur: Option<Decimal>,
pub messstellen_kategorie: Option<MessstellenKategorie>,
pub entgeltschuldner: Option<Entgeltschuldner>,
}Expand description
Input for MSB (Messstellenbetreiber) invoice calculation.
Covers:
- PID 31009 — MSB-Rechnung (NB → MSB, monthly metering service settlement)
The NB bills the MSB for the metering service period. Positions:
- Grundgebühr Messstellenbetrieb — flat monthly base fee × billing months.
- Messdienstleistung — optional per-period measurement service fee.
Fields§
§malo_id: String11-digit Marktlokations-ID.
nb_mp_id: StringInvoice sender — Netzbetreiber MP-ID.
msb_mp_id: StringInvoice recipient — Messstellenbetreiber MP-ID.
period: SettlementPeriodThe delivery period being settled.
grundgebuehr_eur_per_month: DecimalGrundgebühr Messstellenbetrieb in EUR/month (from PreisblattMessung).
billing_months: u32Number of full calendar months in the billing period.
messdienstleistung_eur: Option<Decimal>Optional Messdienstleistung flat fee in EUR for the full period.
None when the MSB provides only the meter, not a separate measurement service.
messstellen_kategorie: Option<MessstellenKategorie>Which §30 MsbG case this metering point falls under.
Fixes the Preisobergrenze the charge is checked against. None skips the
check, which should be rare: a metering charge above the POG is an amount
the customer is entitled to have refunded.
entgeltschuldner: Option<Entgeltschuldner>Whose share of the metering charge this settlement bills.
§30 MsbG splits the ceiling between the Netzbetreiber and the Letztverbraucher, so the applicable cap depends on who is being billed.