diff --git a/intervention/utils/egon_export.py b/intervention/utils/egon_export.py
new file mode 100644
index 00000000..c3e62aba
--- /dev/null
+++ b/intervention/utils/egon_export.py
@@ -0,0 +1,150 @@
+"""
+Author: Michel Peltriaux
+Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany
+Contact: michel.peltriaux@sgdnord.rlp.de
+Created on: 07.03.22
+
+"""
+import xmltodict
+from django.contrib.gis.gdal import OGRGeometry
+from django.db.models import Sum
+from django.utils import formats
+
+from intervention.models import Intervention
+from xml.etree import ElementTree as etree
+
+from konova.sub_settings.lanis_settings import DEFAULT_SRID_RLP
+
+
+class EgonExporter:
+    """
+    EGON is the payment management system of SNU RLP. Due to compatibility reasons we need to provide the old style
+    of data transmission between KSP and EGON:
+        1. Create GML from intervention object
+        2. Send created GML to the appropriate RabbitMQ channel
+    """
+    intervention = None
+    gml_builder = None
+
+    def __init__(self, intervention: Intervention):
+        self.intervention = intervention
+        self.gml_builder = EgonGmlBuilder(intervention)
+
+    def export_to_rabbitmq(self):
+        raise NotImplementedError("ToDo!")
+
+
+class EgonGmlBuilder:
+    """
+    Creates the GML for EGON export
+    """
+    intervention = None
+    gml = None
+
+    def __init__(self, intervention: Intervention):
+        self.intervention = intervention
+        self.gml = self.build_gml()
+
+    def build_gml(self):
+        all_payments = self.intervention.payments.aggregate(
+            summed=Sum("amount")
+        )["summed"]
+
+        comp_type = "Ersatzzahlung"
+        if self.intervention.compensations.exists():
+            comp_type += " und Kompensation"
+
+        geom = self.intervention.geometry.geom
+        geom.transform(DEFAULT_SRID_RLP)
+        geoms_list = [
+            {
+                "gml:polygonMember": {
+                    "gml:Polygon": {
+                        "gml:exterior": {
+                            "gml:LinearRing": {
+                                "gml:posList": " ".join([f"{str(coord[0])},{str(coord[1])}" for coord in coords[0]])
+                            }
+                        }
+                    }
+                }
+            } for coords in geom.coords
+        ]
+
+        parcels = self.intervention.get_underlying_parcels()
+        spatial_reference_list = [
+            {
+                "oneo:Raumreferenz": {
+                    "oneo:datumAbgleich": None,
+                    "oneo:ortsangabe": {
+                        "oneo:Ortsangaben": {
+                            "oneo:kreisSchluessel": parcel.district.krs,
+                            "oneo:gemeindeSchluessel": parcel.district.gmnd,
+                            "oneo:verbandsgemeindeSchluessel": parcel.gmrkng,
+                            "oneo:flurstuecksKennzeichen": None,
+                        }
+                    },
+                }
+            } for parcel in parcels
+        ]
+
+        t = {
+            "wfs:FeatureCollection": {
+                "oneo:Eingriffsverfahren": {
+                    "@gml:id": self.intervention.identifier,
+                    "oneo:azEintragungsstelle": self.intervention.responsible.conservation_file_number,
+                    "oneo:azZulassungsstelle": self.intervention.responsible.registration_file_number,
+                    "oneo:bemerkungZulassungsstelle": None,
+                    "oneo:eintragungsstelle": self.intervention.responsible.conservation_office.long_name,
+                    "oneo:zulassungsstelle": self.intervention.responsible.registration_office.long_name,
+                    "oneo:ersatzzahlung": all_payments,
+                    "oneo:kompensationsart": comp_type,
+                    "oneo:verfahrensrecht": self.intervention.legal.laws.first().short_name,
+                    "oneo:verfahrenstyp": self.intervention.legal.process_type.long_name,
+                    "oneo:eingreifer": {
+                        "oneo:Eingreifer": {
+                            "oneo:art": self.intervention.responsible.handler.type.long_name,
+                            "oneo:bemerkung": self.intervention.responsible.handler.type.long_name,
+                        }
+                    },
+                    "oneo:erfasser": {
+                        "oneo:Erfasser": {
+                            "oneo:name": None,
+                            "oneo:bemerkung": None,
+                        }
+                    },
+                    "oneo:zulassung": {
+                        "oneo:Zulassungstermin": {
+                            "oneo:bauBeginn": formats.localize(self.intervention.payments.first().due_on),
+                            "oneo:erlass": formats.localize(self.intervention.legal.registration_date),
+                            "oneo:rechtsKraft": formats.localize(self.intervention.legal.binding_date),
+                        }
+                    },
+                    "oneo:geometrie": {
+                        "gml:multiSurfaceProperty": {
+                            "gml:MultiPolygon": {
+                                "@srsName": f"http://www.opengis.net/gml/srs/epsg.xml#{DEFAULT_SRID_RLP}",
+                                "#text": geoms_list,
+                            }
+                        },
+                    },
+                    "oneo:kennung": self.intervention.identifier,
+                    "oneo:bezeichnung": self.intervention.title,
+                    "oneo:bemerkung": self.intervention.comment,
+                    "oneo:verantwortlicheStelle": None,
+                    "oneo:veroffentlichtAm": None,
+                    "oneo:raumreferenz": spatial_reference_list,
+                    "oneo:foto": {
+                        "oneo:Foto": {
+                            "oneo:aufnahmezeitpunkt": None,
+                            "oneo:bemerkung": None,
+                            "oneo:fotoverweis": None,
+                            "oneo:dateiname": None,
+                            "oneo:hauptfoto": False,
+                        }
+                    },
+                }
+            },
+        }
+        gml = xmltodict.unparse(t, pretty=True)
+        print(gml)
+        return gml
\ No newline at end of file