diff --git a/src/bo4e/__init__.py b/src/bo4e/__init__.py
index 90a761826..5fb9533d7 100644
--- a/src/bo4e/__init__.py
+++ b/src/bo4e/__init__.py
@@ -14,6 +14,7 @@
"Ausschreibung",
"Bilanzierung",
"Buendelvertrag",
+ "Einspeisung",
"Energiemenge",
"Fremdkosten",
"Geraet",
@@ -204,6 +205,8 @@
"ZaehlertypSpezifikation",
"Zeitreihentyp",
"ZusatzAttribut",
+ "EEGVermarktungsform",
+ "FernsteuerbarkeitStatus",
"__version__",
"__gh_version__",
]
@@ -215,6 +218,7 @@
from .bo.ausschreibung import Ausschreibung
from .bo.bilanzierung import Bilanzierung
from .bo.buendelvertrag import Buendelvertrag
+from .bo.einspeisung import Einspeisung
from .bo.energiemenge import Energiemenge
from .bo.fremdkosten import Fremdkosten
from .bo.geraet import Geraet
@@ -332,10 +336,12 @@
from .enum.botyp import BoTyp
from .enum.comtyp import ComTyp
from .enum.dienstleistungstyp import Dienstleistungstyp
+from .enum.eeg_vermarktungsform import EEGVermarktungsform
from .enum.emobilitaetsart import EMobilitaetsart
from .enum.energierichtung import Energierichtung
from .enum.erzeugungsart import Erzeugungsart
from .enum.fallgruppenzuordnung import Fallgruppenzuordnung
+from .enum.fernsteuerbarkeit_status import FernsteuerbarkeitStatus
from .enum.gasqualitaet import Gasqualitaet
from .enum.gebiettyp import Gebiettyp
from .enum.geraeteklasse import Geraeteklasse
diff --git a/src/bo4e/bo/einspeisung.py b/src/bo4e/bo/einspeisung.py
new file mode 100644
index 000000000..0dd61917d
--- /dev/null
+++ b/src/bo4e/bo/einspeisung.py
@@ -0,0 +1,41 @@
+"""
+Contains Einspeisung class and corresponding marshmallow schema for de-/serialization
+"""
+
+# pylint: disable=too-few-public-methods
+# pylint: disable=no-name-in-module
+from typing import Optional
+
+from ..enum.eeg_vermarktungsform import EEGVermarktungsform
+from ..enum.fernsteuerbarkeit_status import FernsteuerbarkeitStatus
+from ..enum.geschaeftspartnerrolle import Geschaeftspartnerrolle
+from ..enum.landescode import Landescode
+from ..utils import postprocess_docstring
+from .geschaeftsobjekt import Geschaeftsobjekt
+
+
+@postprocess_docstring
+class Einspeisung(Geschaeftsobjekt):
+ """
+ Abbildung der Einspeisung.
+
+ .. raw:: html
+
+
+
+ .. HINT::
+ `Einspeisung JSON Schema `_
+
+ """
+
+ marktlokations_id: Optional[str] = None
+
+ tranche_id: Optional[str] = None
+
+ verguetungsempfaenger: Optional[Geschaeftspartnerrolle] = None
+
+ eeg_vermarktungsform: Optional[EEGVermarktungsform] = None
+
+ landescode: Optional[Landescode] = None
+
+ fernsteuerbarkeit_status: Optional[FernsteuerbarkeitStatus] = None
diff --git a/src/bo4e/enum/eeg_vermarktungsform.py b/src/bo4e/enum/eeg_vermarktungsform.py
new file mode 100644
index 000000000..57c629f80
--- /dev/null
+++ b/src/bo4e/enum/eeg_vermarktungsform.py
@@ -0,0 +1,21 @@
+# pylint:disable=missing-module-docstring
+
+from bo4e.enum.strenum import StrEnum
+
+
+class EEGVermarktungsform(StrEnum):
+ """
+ Diese Enum repräsentiert die Vermarktungsformen nach dem EEG.
+ """
+
+ AUSFALLVERGUETUNG = "AUSFALLVERGUETUNG"
+ # Ausfallvergütung für den Fall, dass andere Vermarktungsmethoden nicht verfügbar sind
+
+ MARKTPRAEMIE = "MARKTPRAEMIE"
+ # Marktprämie für die geförderte Direktvermarktung
+
+ SONSTIGE = "SONSTIGE"
+ # Sonstige Vermarktungsformen ohne gesetzliche Vergütung
+
+ KWKG_VERGUETUNG = "KWKG_VERGUETUNG"
+ # Vergütung nach dem Kraft-Wärme-Kopplungsgesetz (KWKG)
diff --git a/src/bo4e/enum/fernsteuerbarkeit_status.py b/src/bo4e/enum/fernsteuerbarkeit_status.py
new file mode 100644
index 000000000..061c96227
--- /dev/null
+++ b/src/bo4e/enum/fernsteuerbarkeit_status.py
@@ -0,0 +1,19 @@
+# pylint:disable=missing-module-docstring
+
+from bo4e.enum.strenum import StrEnum
+
+
+class FernsteuerbarkeitStatus(StrEnum):
+ """
+ Enum zur Abbildung des Status der Fernsteuerbarkeit
+
+ Marktlokation ist technisch fernsteuerbar. Der NB bestätigt mit der Anmeldung einer erzeugenden Marktlokation zur
+ Direktvermarktung, dass die Marktlokation mit einer Fernsteuerung ausgestattet ist, aber dem NB keine Information
+ darüber vorliegt, dass der LF die Marktlokation fernsteuern kann. Die Voraussetzung zur Zahlung der
+ Managementprämie für fernsteuerbare Marktlokation ist nicht gegeben.
+ """
+
+ NICHT_FERNSTEUERBAR = "NICHT_FERNSTEUERBAR" #: nicht fernsteuerbar
+ TECHNISCH_FERNSTEUERBAR = "TECHNISCH_FERNSTEUERBAR" #: technisch fernsteuerbar
+ LIEFERANT_FERNSTEUERBAR = "LIEFERANT_FERNSTEUERBAR" #: lieferantenseitig fernsteuerbar
+ #
diff --git a/tests/test_einspeisung.py b/tests/test_einspeisung.py
new file mode 100644
index 000000000..3c1b20974
--- /dev/null
+++ b/tests/test_einspeisung.py
@@ -0,0 +1,31 @@
+import pytest
+
+from bo4e import Geschaeftspartnerrolle, Landescode
+from bo4e.bo.einspeisung import Einspeisung
+from bo4e.enum.eeg_vermarktungsform import EEGVermarktungsform
+from bo4e.enum.fernsteuerbarkeit_status import FernsteuerbarkeitStatus
+from tests.serialization_helper import assert_serialization_roundtrip
+
+
+class TestEinspeisung:
+ @pytest.mark.parametrize(
+ "einspeisung",
+ [
+ pytest.param(
+ Einspeisung(
+ marktlokations_id="teststring",
+ tranche_id="teststring",
+ verguetungsempfaenger=Geschaeftspartnerrolle.LIEFERANT,
+ eeg_vermarktungsform=EEGVermarktungsform.KWKG_VERGUETUNG,
+ landescode=Landescode.DE, # type:ignore[attr-defined]
+ fernsteuerbarkeit_status=FernsteuerbarkeitStatus.NICHT_FERNSTEUERBAR,
+ ),
+ id="all attributes at first level",
+ ),
+ ],
+ )
+ def test_serialization_roundtrip(self, einspeisung: Einspeisung) -> None:
+ """
+ Test de-/serialisation of Einspeisung
+ """
+ assert_serialization_roundtrip(einspeisung)