diff --git a/src/main/helm/templates/_helpers.tpl b/src/main/helm/templates/_helpers.tpl
index 0b1337c8ab4554f6f66827c60f7113b8d6863d86..1317f415cf1502d9f897172dfcfcfdf2b1c3a2ef 100644
--- a/src/main/helm/templates/_helpers.tpl
+++ b/src/main/helm/templates/_helpers.tpl
@@ -70,7 +70,7 @@ app.kubernetes.io/namespace: {{ include "app.namespace" . }}
 {{- end -}}
 
 {{- define "app.ozgcloud_vorgangmanager_address" -}}
-{{ printf "dns://%s.%s:9090" .Values.vorgangmanagerName .Release.Namespace }}
+{{ printf "%s.%s:9090" .Values.vorgangmanagerName .Release.Namespace }}
 {{- end -}}
 
 {{- define "app.databaseSecretName" -}}
@@ -124,3 +124,6 @@ app.kubernetes.io/namespace: {{ include "app.namespace" . }}
 {{- end -}}
 {{- end -}}
 
+{{- define "app.elsterTransferOperatorNamespace" -}}
+{{- required "elsterTransferOperator.namespace must be set" (.Values.elsterTransferOperator).namespace -}}
+{{- end -}}
\ No newline at end of file
diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml
index cbb3ae56d5105372f34de651e87da7b08d689402..329fb56867a302145ce93e6d1d11e8384d795713 100644
--- a/src/main/helm/templates/deployment.yaml
+++ b/src/main/helm/templates/deployment.yaml
@@ -190,6 +190,18 @@ spec:
             value: {{ quote (required "ozgcloud.muk.sender must be set if ozgcloud.muk is enabled" ((.Values.ozgcloud).muk).sender) }}
           - name: ozgcloud_muk_server
             value: {{ quote (required "ozgcloud.muk.server must be set if ozgcloud.muk is enabled" ((.Values.ozgcloud).muk).server) }}
+          - name: ozgcloud_muk_password
+            valueFrom:
+              secretKeyRef:
+                name: muk-user-secret
+                key: password
+                optional: false
+          - name: ozgcloud_muk_userName
+            valueFrom:
+              secretKeyRef:
+                name: muk-user-secret
+                key: login
+                optional: false
           {{- end }}
           
 
@@ -201,11 +213,13 @@ spec:
           - name: ozgcloud_antragraum_url
             value: {{ quote (required "ozgcloud.antragraum.url must be set if ozgcloud.antragraum is enabled" ((.Values.ozgcloud).antragraum).url) }}
           - name: ozgcloud_antragraum_metadataUri
-            value: {{ quote (required "ozgcloud.antragraum.metadataUri must be set if ozgcloud.antragraum is enabled" ((.Values.ozgcloud).antragraum).metadataUri) }}
+            value: "file:/keystore/bayernid/metadata.xml"
           - name: ozgcloud_antragraum_decryptionPrivateKey
             value: "file:/keystore/bayernid/bayern-id.key"
           - name: ozgcloud_antragraum_decryptionCertificate
             value: "file:/keystore/bayernid/bayern-id.crt"
+          - name: ozgcloud_antragraum_entityId
+            value: {{ quote (required "ozgcloud.antragraum.entityId must be set if ozgcloud.antragraum is enabled" ((.Values.ozgcloud).antragraum).entityId) }}
           {{- end }}
           {{- if (((.Values.ozgcloud).feature).bescheid).enableDummyDocumentProcessor }}
           - name: ozgcloud_feature_bescheid_enableDummyDocumentProcessor
diff --git a/src/main/helm/templates/elstertransfer_user_cr.yaml b/src/main/helm/templates/elstertransfer_user_cr.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..622de75f0eb7c8ff34d7069732d7bd40da1bab8a
--- /dev/null
+++ b/src/main/helm/templates/elstertransfer_user_cr.yaml
@@ -0,0 +1,34 @@
+
+#
+# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den
+# Ministerpräsidenten des Landes Schleswig-Holstein
+# Staatskanzlei
+# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+#
+# Lizenziert unter der EUPL, Version 1.2 oder - sobald
+# diese von der Europäischen Kommission genehmigt wurden -
+# Folgeversionen der EUPL ("Lizenz");
+# Sie dürfen dieses Werk ausschließlich gemäß
+# dieser Lizenz nutzen.
+# Eine Kopie der Lizenz finden Sie hier:
+#
+# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+#
+# Sofern nicht durch anwendbare Rechtsvorschriften
+# gefordert oder in schriftlicher Form vereinbart, wird
+# die unter der Lizenz verbreitete Software "so wie sie
+# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+# ausdrücklich oder stillschweigend - verbreitet.
+# Die sprachspezifischen Genehmigungen und Beschränkungen
+# unter der Lizenz sind dem Lizenztext zu entnehmen.
+#
+{{- if (((.Values.ozgcloud).muk).enabled) }}
+---
+apiVersion: operator.ozgcloud.de/v1
+kind: OzgCloudElsterTransferUser
+metadata:
+  name: {{ include "app.namespace" . }}-etr-user
+  namespace: {{ include "app.namespace" $ }}
+spec:
+  keep_after_delete: {{ (.Values.elsterTransferOperator).keep_after_delete | default false }}
+{{- end -}}
\ No newline at end of file
diff --git a/src/main/helm/templates/ozgcloud_elstertransfer_operator_secret_create_role.yaml b/src/main/helm/templates/ozgcloud_elstertransfer_operator_secret_create_role.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..14e66bc84f9808f7a1c044555305f4a4148e1bf2
--- /dev/null
+++ b/src/main/helm/templates/ozgcloud_elstertransfer_operator_secret_create_role.yaml
@@ -0,0 +1,50 @@
+#
+# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den
+# Ministerpräsidenten des Landes Schleswig-Holstein
+# Staatskanzlei
+# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+#
+# Lizenziert unter der EUPL, Version 1.2 oder - sobald
+# diese von der Europäischen Kommission genehmigt wurden -
+# Folgeversionen der EUPL ("Lizenz");
+# Sie dürfen dieses Werk ausschließlich gemäß
+# dieser Lizenz nutzen.
+# Eine Kopie der Lizenz finden Sie hier:
+#
+# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+#
+# Sofern nicht durch anwendbare Rechtsvorschriften
+# gefordert oder in schriftlicher Form vereinbart, wird
+# die unter der Lizenz verbreitete Software "so wie sie
+# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+# ausdrücklich oder stillschweigend - verbreitet.
+# Die sprachspezifischen Genehmigungen und Beschränkungen
+# unter der Lizenz sind dem Lizenztext zu entnehmen.
+#
+{{- if ((.Values.ozgcloud).muk).enabled }}
+---
+kind: RoleBinding
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+  name: ozgcloud-elster-transfer-operator-secret-create-role-binding
+  namespace: {{ include "app.namespace" . }}
+subjects:
+  - kind: ServiceAccount
+    name: ozgcloud-elster-transfer-operator-service-account
+    namespace: {{ include "app.elsterTransferOperatorNamespace" . }}
+roleRef:
+  kind: Role
+  name: ozgcloud-elster-transfer-operator-secret-create-role
+  apiGroup: rbac.authorization.k8s.io
+
+---
+kind: Role
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+  name: ozgcloud-elster-transfer-operator-secret-create-role
+  namespace: {{ include "app.namespace" . }}
+rules:
+  - apiGroups: [""]
+    resources: ["secrets"]
+    verbs: ["create"]
+{{- end }}
diff --git a/src/main/helm/templates/ozgcloud_elstertransfer_operator_secret_read_role.yaml b/src/main/helm/templates/ozgcloud_elstertransfer_operator_secret_read_role.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..561b89abc4a96334c80a54382887e323dde6fd2f
--- /dev/null
+++ b/src/main/helm/templates/ozgcloud_elstertransfer_operator_secret_read_role.yaml
@@ -0,0 +1,51 @@
+#
+# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den
+# Ministerpräsidenten des Landes Schleswig-Holstein
+# Staatskanzlei
+# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+#
+# Lizenziert unter der EUPL, Version 1.2 oder - sobald
+# diese von der Europäischen Kommission genehmigt wurden -
+# Folgeversionen der EUPL ("Lizenz");
+# Sie dürfen dieses Werk ausschließlich gemäß
+# dieser Lizenz nutzen.
+# Eine Kopie der Lizenz finden Sie hier:
+#
+# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+#
+# Sofern nicht durch anwendbare Rechtsvorschriften
+# gefordert oder in schriftlicher Form vereinbart, wird
+# die unter der Lizenz verbreitete Software "so wie sie
+# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+# ausdrücklich oder stillschweigend - verbreitet.
+# Die sprachspezifischen Genehmigungen und Beschränkungen
+# unter der Lizenz sind dem Lizenztext zu entnehmen.
+#
+{{- if ((.Values.ozgcloud).muk).enabled }}
+---
+kind: RoleBinding
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+  name: ozgcloud-elster-transfer-operator-secret-read-role-binding
+  namespace: {{ include "app.namespace" . }}
+subjects:
+  - kind: ServiceAccount
+    name: ozgcloud-elster-transfer-operator-service-account
+    namespace: {{ include "app.elsterTransferOperatorNamespace" . }}
+roleRef:
+  kind: Role
+  name: ozgcloud-elster-transfer-operator-secret-read-role
+  apiGroup: rbac.authorization.k8s.io
+
+---
+kind: Role
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+  name: ozgcloud-elster-transfer-operator-secret-read-role
+  namespace: {{ include "app.namespace" . }}
+rules:
+  - apiGroups: [""]
+    resources: ["secrets"]
+    verbs: ["get", "list"]
+    resourceNames: ["muk-user-secret"]
+{{- end -}}
diff --git a/src/main/helm/templates/ozgcloud_elstertransfer_operator_secret_update_role.yaml b/src/main/helm/templates/ozgcloud_elstertransfer_operator_secret_update_role.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..584400851f0b3b110cb2d32e619a4b1816cb899d
--- /dev/null
+++ b/src/main/helm/templates/ozgcloud_elstertransfer_operator_secret_update_role.yaml
@@ -0,0 +1,51 @@
+#
+# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den
+# Ministerpräsidenten des Landes Schleswig-Holstein
+# Staatskanzlei
+# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+#
+# Lizenziert unter der EUPL, Version 1.2 oder - sobald
+# diese von der Europäischen Kommission genehmigt wurden -
+# Folgeversionen der EUPL ("Lizenz");
+# Sie dürfen dieses Werk ausschließlich gemäß
+# dieser Lizenz nutzen.
+# Eine Kopie der Lizenz finden Sie hier:
+#
+# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+#
+# Sofern nicht durch anwendbare Rechtsvorschriften
+# gefordert oder in schriftlicher Form vereinbart, wird
+# die unter der Lizenz verbreitete Software "so wie sie
+# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+# ausdrücklich oder stillschweigend - verbreitet.
+# Die sprachspezifischen Genehmigungen und Beschränkungen
+# unter der Lizenz sind dem Lizenztext zu entnehmen.
+#
+{{- if ((.Values.ozgcloud).muk).enabled }}
+---
+kind: RoleBinding
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+  name: ozgcloud-elster-transfer-operator-secret-update-role-binding
+  namespace: {{ include "app.namespace" . }}
+subjects:
+  - kind: ServiceAccount
+    name: ozgcloud-elster-transfer-operator-service-account
+    namespace: {{ include "app.elsterTransferOperatorNamespace" . }}
+roleRef:
+  kind: Role
+  name: ozgcloud-elster-transfer-operator-secret-update-role
+  apiGroup: rbac.authorization.k8s.io
+
+---
+kind: Role
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+  name: ozgcloud-elster-transfer-operator-secret-update-role
+  namespace: {{ include "app.namespace" . }}
+rules:
+  - apiGroups: [""]
+    resources: ["secrets"]
+    verbs: ["update"]
+    resourceNames: ["muk-user-secret"]
+{{- end }}
diff --git a/src/main/helm/values.yaml b/src/main/helm/values.yaml
index 0a5fa16348e66ee56810b7a102f364d54ff81061..5182d0baab596a8abe3a67fcaa32c1f87e78b615 100644
--- a/src/main/helm/values.yaml
+++ b/src/main/helm/values.yaml
@@ -61,4 +61,4 @@ zufiManager:
   address: dns://zufi.zufi-manager:9090
 
 elasticsearch:
-    certificateSecretName: elasticsearch-certificate
\ No newline at end of file
+    certificateSecretName: elasticsearch-certificate
diff --git a/src/test/helm-linter-values.yaml b/src/test/helm-linter-values.yaml
index 047b472e2225090f010e1f297a03a7a660062eb1..4ee02232ecd2a9c111ed1a6f0eaf7295f075700c 100644
--- a/src/test/helm-linter-values.yaml
+++ b/src/test/helm-linter-values.yaml
@@ -27,7 +27,12 @@ ozgcloud:
   infoManager:
     address: https://info-manager.my-wonderful-domain.local:9000
 
+
 networkPolicy:
   dnsServerNamespace: test-dns-namespace
 
-imagePullSecret: test-image-pull-secret
\ No newline at end of file
+imagePullSecret: test-image-pull-secret
+
+elsterTransferOperator:
+  namespace: elster-transfer
+  
\ No newline at end of file
diff --git a/src/test/helm/deployment_antragraum_test.yaml b/src/test/helm/deployment_antragraum_test.yaml
index 7905ec79487182bc1e11c667a1a85528bad162af..0def5958d58429a5889774f8dc0c3cd49daff8cd 100644
--- a/src/test/helm/deployment_antragraum_test.yaml
+++ b/src/test/helm/deployment_antragraum_test.yaml
@@ -33,13 +33,13 @@ set:
   ozgcloud:
     environment: dev
 tests:
-  - it: should set antragraum values
+  - it: should set antragsraum values
     set:
       ozgcloud:
         antragraum:
           enabled: true
           url: https://antragraum.address
-          metadataUri: "classpath:/bayernid/metadata/bayernid-idp-infra.xml"
+          entityId: https://sso.dev.de/realms/by-antragsraum-idp
     asserts:
       - contains:
           path: spec.template.spec.containers[0].env
@@ -55,7 +55,7 @@ tests:
           path: spec.template.spec.containers[0].env
           content:
             name: ozgcloud_antragraum_metadataUri
-            value: "classpath:/bayernid/metadata/bayernid-idp-infra.xml"
+            value: "file:/keystore/bayernid/metadata.xml"
       - contains:
           path: spec.template.spec.containers[0].env
           content:
@@ -82,12 +82,12 @@ tests:
       ozgcloud:
         antragraum:
           enabled: true
-          metadataUri: "classpath:/bayernid/metadata/bayernid-idp-infra.xml"
+          entityId: https://sso.dev.de/realms/by-antragsraum-idp
     asserts:
       - failedTemplate:
           errorMessage: "ozgcloud.antragraum.url must be set if ozgcloud.antragraum is enabled"
 
-  - it: should fail if metadataUri is not set
+  - it: should fail if entityId is not set
     set:
       ozgcloud:
         antragraum:
@@ -95,7 +95,7 @@ tests:
           url: https://antragraum.address
     asserts:
       - failedTemplate:
-          errorMessage: "ozgcloud.antragraum.metadataUri must be set if ozgcloud.antragraum is enabled"
+          errorMessage: "ozgcloud.antragraum.entityId must be set if ozgcloud.antragraum is enabled"
 
 
   - it: should set volumeMounts
@@ -104,7 +104,7 @@ tests:
         antragraum:
           enabled: true
           url: https://antragraum.address
-          metadataUri: "classpath:/bayernid/metadata/bayernid-idp-infra.xml"
+          entityId: https://sso.dev.de/realms/by-antragsraum-idp
     asserts:
       - contains:
           path: spec.template.spec.containers[0].volumeMounts
@@ -129,7 +129,7 @@ tests:
         antragraum:
           enabled: true
           url: https://antragraum.address
-          metadataUri: "classpath:/bayernid/metadata/bayernid-idp-infra.xml"
+          entityId: https://sso.dev.de/realms/by-antragsraum-idp
     asserts:
       - contains:
           path: spec.template.spec.volumes
diff --git a/src/test/helm/deployment_muk_test.yaml b/src/test/helm/deployment_muk_test.yaml
index 33c02db5fd14acf174884dc8f09517d0403bf1b1..aeb0cd59e88df0196712fb836088d1faa2b468ff 100644
--- a/src/test/helm/deployment_muk_test.yaml
+++ b/src/test/helm/deployment_muk_test.yaml
@@ -51,6 +51,25 @@ tests:
           content:
             name: ozgcloud_muk_server
             value: muk.test.ozg.de
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: ozgcloud_muk_userName
+            valueFrom:
+              secretKeyRef:
+                name: muk-user-secret
+                key: login
+                optional: false
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: ozgcloud_muk_password
+            valueFrom:
+              secretKeyRef:
+                name: muk-user-secret
+                key: password
+                optional: false
+
   - it: should not by default set muk values
     asserts:
       - notContains:
@@ -63,6 +82,16 @@ tests:
           content:
             name: ozgcloud_muk_server
           any: true
+      - notContains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: ozgcloud_muk_userName
+          any: true
+      - notContains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: ozgcloud_muk_password
+          any: true
        
   - it: should fail if sender name is not set
     set:
@@ -87,3 +116,4 @@ tests:
 
 
 
+
diff --git a/src/test/helm/deployment_nachrichten_manager_address_test.yaml b/src/test/helm/deployment_nachrichten_manager_address_test.yaml
index c473b5dd34e7e75f4132b0ae359f9eb47a042f44..b91b3cc5fe1d814a525fc99464add26e746aa617 100644
--- a/src/test/helm/deployment_nachrichten_manager_address_test.yaml
+++ b/src/test/helm/deployment_nachrichten_manager_address_test.yaml
@@ -39,4 +39,4 @@ tests:
           path: spec.template.spec.containers[0].env
           content:
             name: ozgcloud_nachrichten-manager_address
-            value:  dns://vorgang-manager.sh-helm-test:9090
+            value:  vorgang-manager.sh-helm-test:9090
diff --git a/src/test/helm/elster_transfer_user_cr_test.yaml b/src/test/helm/elster_transfer_user_cr_test.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..0587c112a56c4097ccba6dc6c06cd60349fc66f5
--- /dev/null
+++ b/src/test/helm/elster_transfer_user_cr_test.yaml
@@ -0,0 +1,103 @@
+#
+# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den
+# Ministerpräsidenten des Landes Schleswig-Holstein
+# Staatskanzlei
+# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+#
+# Lizenziert unter der EUPL, Version 1.2 oder - sobald
+# diese von der Europäischen Kommission genehmigt wurden -
+# Folgeversionen der EUPL ("Lizenz");
+# Sie dürfen dieses Werk ausschließlich gemäß
+# dieser Lizenz nutzen.
+# Eine Kopie der Lizenz finden Sie hier:
+#
+# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+#
+# Sofern nicht durch anwendbare Rechtsvorschriften
+# gefordert oder in schriftlicher Form vereinbart, wird
+# die unter der Lizenz verbreitete Software "so wie sie
+# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+# ausdrücklich oder stillschweigend - verbreitet.
+# Die sprachspezifischen Genehmigungen und Beschränkungen
+# unter der Lizenz sind dem Lizenztext zu entnehmen.
+#
+
+suite: elster transfer user cr
+release:
+  name: vorgang-manager
+  namespace: by-helm-test
+templates:
+  - templates/elstertransfer_user_cr.yaml
+tests:
+  - it: should contain apiVersion
+    set:
+      ozgcloud:
+        muk:
+          enabled: true
+    asserts:
+      - isAPIVersion:
+          of: operator.ozgcloud.de/v1
+  - it: should contain basic info
+    set:
+      ozgcloud:
+        muk:
+          enabled: true
+    asserts:
+      - isKind:
+          of: OzgCloudElsterTransferUser
+      - isAPIVersion:
+          of: operator.ozgcloud.de/v1
+  - it: should have metadata name
+    set:
+      ozgcloud:
+        muk:
+          enabled: true
+    asserts:
+      - equal:
+          path: metadata.name
+          value: by-helm-test-etr-user
+  - it: should have metadata namespace
+    set:
+      ozgcloud:
+        muk:
+          enabled: true
+    asserts:
+      - equal:
+          path: metadata.namespace
+          value: by-helm-test
+  - it: should have default spec
+    set:
+      ozgcloud:
+        muk:
+          enabled: true
+    asserts:
+      - equal:
+          path: spec.keep_after_delete
+          value: false
+  - it: should set spec correctly
+    set:
+      ozgcloud:
+        muk:
+          enabled: true
+      elsterTransferOperator:
+        keep_after_delete: true
+    asserts:
+      - equal:
+          path: spec.keep_after_delete
+          value: true
+  - it: should create cr if enabled
+    set:
+      ozgcloud:
+        muk:
+          enabled: true
+    asserts:
+      - hasDocuments:
+          count: 1
+        
+  - it: should NOT create cr by default
+    asserts:
+      - hasDocuments:
+          count: 0
+    
+
+  
\ No newline at end of file
diff --git a/src/test/helm/ozgcloud_elstertransfer_operator_secret_create_role_test.yaml b/src/test/helm/ozgcloud_elstertransfer_operator_secret_create_role_test.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..34a6109f7119929c515b06f0e1de9c85e440de55
--- /dev/null
+++ b/src/test/helm/ozgcloud_elstertransfer_operator_secret_create_role_test.yaml
@@ -0,0 +1,133 @@
+#
+# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den
+# Ministerpräsidenten des Landes Schleswig-Holstein
+# Staatskanzlei
+# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+#
+# Lizenziert unter der EUPL, Version 1.2 oder - sobald
+# diese von der Europäischen Kommission genehmigt wurden -
+# Folgeversionen der EUPL ("Lizenz");
+# Sie dürfen dieses Werk ausschließlich gemäß
+# dieser Lizenz nutzen.
+# Eine Kopie der Lizenz finden Sie hier:
+#
+# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+#
+# Sofern nicht durch anwendbare Rechtsvorschriften
+# gefordert oder in schriftlicher Form vereinbart, wird
+# die unter der Lizenz verbreitete Software "so wie sie
+# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+# ausdrücklich oder stillschweigend - verbreitet.
+# Die sprachspezifischen Genehmigungen und Beschränkungen
+# unter der Lizenz sind dem Lizenztext zu entnehmen.
+#
+
+suite: ElsterTransfer user secret rbac test
+release:
+  name: ozgcloud-elstertransfer-operator
+  namespace: test-namespace
+templates:
+  - templates/ozgcloud_elstertransfer_operator_secret_create_role.yaml
+
+
+tests:
+  - it: test RoleBinding metadata
+    set:
+      elsterTransferOperator:
+        namespace: etr-operator
+      ozgcloud:
+        muk:
+          enabled: true
+    asserts:
+      - isKind:
+          of: RoleBinding
+        documentIndex: 0
+      - isAPIVersion:
+          of: rbac.authorization.k8s.io/v1
+        documentIndex: 0
+      - equal:
+          path: metadata.name
+          value: ozgcloud-elster-transfer-operator-secret-create-role-binding
+        documentIndex: 0
+ 
+  - it: test RoleBinding subject
+    set:
+      elsterTransferOperator:
+        namespace: etr-operator
+      ozgcloud:
+        muk:
+          enabled: true
+    asserts:
+      - contains:
+          path: subjects
+          content:
+            kind: ServiceAccount
+            name: ozgcloud-elster-transfer-operator-service-account
+            namespace: etr-operator
+        documentIndex: 0
+  - it: test RoleBinding roleRef
+    set:
+      elsterTransferOperator:
+        namespace: etr-operator
+      ozgcloud:
+        muk:
+          enabled: true
+    asserts:
+      - equal:
+          path: roleRef
+          value:
+            kind: Role
+            name: ozgcloud-elster-transfer-operator-secret-create-role
+            apiGroup: rbac.authorization.k8s.io
+        documentIndex: 0
+
+  - it: test Role metadata
+    set:
+      elsterTransferOperator:
+        namespace: etr-operator
+      ozgcloud:
+        muk:
+          enabled: true
+    asserts:
+      - isKind:
+          of: Role
+        documentIndex: 1
+      - isAPIVersion:
+          of: rbac.authorization.k8s.io/v1
+        documentIndex: 1
+      - equal:
+          path: metadata.name
+          value: ozgcloud-elster-transfer-operator-secret-create-role
+        documentIndex: 1
+    
+  - it: test RoleBinding rules
+    set:
+      elsterTransferOperator:
+        namespace: etr-operator
+      ozgcloud:
+        muk:
+          enabled: true
+    asserts:
+      - contains:
+          path: rules
+          content:
+              apiGroups:
+                - ""
+              resources:
+                - secrets
+              verbs:
+                - create
+        documentIndex: 1
+  - it: test eltertransferOperator namespace must be set msg
+    set: 
+      ozgcloud:
+        muk:
+          enabled: true
+    asserts:
+      - failedTemplate:
+          errorMessage: elsterTransferOperator.namespace must be set
+
+  - it: RBAC not created by default
+    asserts:
+      - hasDocuments:
+          count: 0
\ No newline at end of file
diff --git a/src/test/helm/ozgcloud_elstertransfer_operator_secret_read_role_test.yaml b/src/test/helm/ozgcloud_elstertransfer_operator_secret_read_role_test.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..6d3bf2a10988847c5e425f13def889ea9ef8ea48
--- /dev/null
+++ b/src/test/helm/ozgcloud_elstertransfer_operator_secret_read_role_test.yaml
@@ -0,0 +1,138 @@
+#
+# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den
+# Ministerpräsidenten des Landes Schleswig-Holstein
+# Staatskanzlei
+# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+#
+# Lizenziert unter der EUPL, Version 1.2 oder - sobald
+# diese von der Europäischen Kommission genehmigt wurden -
+# Folgeversionen der EUPL ("Lizenz");
+# Sie dürfen dieses Werk ausschließlich gemäß
+# dieser Lizenz nutzen.
+# Eine Kopie der Lizenz finden Sie hier:
+#
+# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+#
+# Sofern nicht durch anwendbare Rechtsvorschriften
+# gefordert oder in schriftlicher Form vereinbart, wird
+# die unter der Lizenz verbreitete Software "so wie sie
+# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+# ausdrücklich oder stillschweigend - verbreitet.
+# Die sprachspezifischen Genehmigungen und Beschränkungen
+# unter der Lizenz sind dem Lizenztext zu entnehmen.
+#
+
+suite: ElsterTransfer user secret rbac test
+release:
+  name: ozgcloud-elstertransfer-operator
+  namespace: test-namespace
+templates:
+  - templates/ozgcloud_elstertransfer_operator_secret_read_role.yaml
+
+
+tests:
+  - it: test RoleBinding metadata
+    set:
+      elsterTransferOperator:
+        namespace: etr-operator
+      ozgcloud:
+        muk:
+          enabled: true
+    asserts:
+      - isKind:
+          of: RoleBinding
+        documentIndex: 0
+      - isAPIVersion:
+          of: rbac.authorization.k8s.io/v1
+        documentIndex: 0
+      - equal:
+          path: metadata.name
+          value: ozgcloud-elster-transfer-operator-secret-read-role-binding
+        documentIndex: 0
+ 
+  - it: test RoleBinding subject
+    set:
+      elsterTransferOperator:
+        namespace: etr-operator
+      ozgcloud:
+        muk:
+          enabled: true
+    asserts:
+      - contains:
+          path: subjects
+          content:
+            kind: ServiceAccount
+            name: ozgcloud-elster-transfer-operator-service-account
+            namespace: etr-operator
+        documentIndex: 0
+  - it: test RoleBinding roleRef
+    set:
+      elsterTransferOperator:
+        namespace: etr-operator
+      ozgcloud:
+        muk:
+          enabled: true
+    asserts:
+      - equal:
+          path: roleRef
+          value:
+            kind: Role
+            name: ozgcloud-elster-transfer-operator-secret-read-role
+            apiGroup: rbac.authorization.k8s.io
+        documentIndex: 0
+
+  - it: test Role metadata
+    set:
+      elsterTransferOperator:
+        namespace: etr-operator
+      ozgcloud:
+        muk:
+          enabled: true
+    asserts:
+      - isKind:
+          of: Role
+        documentIndex: 1
+      - isAPIVersion:
+          of: rbac.authorization.k8s.io/v1
+        documentIndex: 1
+      - equal:
+          path: metadata.name
+          value: ozgcloud-elster-transfer-operator-secret-read-role
+        documentIndex: 1
+    
+  - it: test RoleBinding rules
+    set:
+      elsterTransferOperator:
+        namespace: etr-operator
+      ozgcloud:
+        muk:
+          enabled: true
+    asserts:
+      - contains:
+          path: rules
+          content:
+            apiGroups:
+              - ""
+            resourceNames:
+              - muk-user-secret
+            resources:
+              - secrets
+            verbs:
+              - get
+              - list
+        documentIndex: 1
+  - it: test eltertransferOperator namespace must be set msg
+    set:
+      ozgcloud:
+        muk:
+          enabled: true
+    asserts:
+      - failedTemplate:
+          errorMessage: elsterTransferOperator.namespace must be set
+        documentIndex: 0
+
+  - it: RBAC not created by default
+    asserts:
+      - hasDocuments:
+          count: 0
+    
\ No newline at end of file
diff --git a/src/test/helm/ozgcloud_elstertransfer_operator_secret_update_role_test.yaml b/src/test/helm/ozgcloud_elstertransfer_operator_secret_update_role_test.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..5f28b5cd2104687d7b40103ae741effa0418fda4
--- /dev/null
+++ b/src/test/helm/ozgcloud_elstertransfer_operator_secret_update_role_test.yaml
@@ -0,0 +1,136 @@
+#
+# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den
+# Ministerpräsidenten des Landes Schleswig-Holstein
+# Staatskanzlei
+# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+#
+# Lizenziert unter der EUPL, Version 1.2 oder - sobald
+# diese von der Europäischen Kommission genehmigt wurden -
+# Folgeversionen der EUPL ("Lizenz");
+# Sie dürfen dieses Werk ausschließlich gemäß
+# dieser Lizenz nutzen.
+# Eine Kopie der Lizenz finden Sie hier:
+#
+# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+#
+# Sofern nicht durch anwendbare Rechtsvorschriften
+# gefordert oder in schriftlicher Form vereinbart, wird
+# die unter der Lizenz verbreitete Software "so wie sie
+# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+# ausdrücklich oder stillschweigend - verbreitet.
+# Die sprachspezifischen Genehmigungen und Beschränkungen
+# unter der Lizenz sind dem Lizenztext zu entnehmen.
+#
+
+suite: ElsterTransfer user secret rbac test
+release:
+  name: ozgcloud-elstertransfer-operator
+  namespace: test-namespace
+templates:
+  - templates/ozgcloud_elstertransfer_operator_secret_update_role.yaml
+
+
+tests:
+  - it: test RoleBinding metadata
+    set:
+      elsterTransferOperator:
+        namespace: etr-operator
+      ozgcloud:
+        muk:
+          enabled: true
+    asserts:
+      - isKind:
+          of: RoleBinding
+        documentIndex: 0
+      - isAPIVersion:
+          of: rbac.authorization.k8s.io/v1
+        documentIndex: 0
+      - equal:
+          path: metadata.name
+          value: ozgcloud-elster-transfer-operator-secret-update-role-binding
+        documentIndex: 0
+ 
+  - it: test RoleBinding subject
+    set:
+      elsterTransferOperator:
+        namespace: etr-operator
+      ozgcloud:
+        muk:
+          enabled: true
+    asserts:
+      - contains:
+          path: subjects
+          content:
+            kind: ServiceAccount
+            name: ozgcloud-elster-transfer-operator-service-account
+            namespace: etr-operator
+        documentIndex: 0
+  - it: test RoleBinding roleRef
+    set:
+      elsterTransferOperator:
+        namespace: etr-operator
+      ozgcloud:
+        muk:
+          enabled: true
+    asserts:
+      - equal:
+          path: roleRef
+          value:
+            kind: Role
+            name: ozgcloud-elster-transfer-operator-secret-update-role
+            apiGroup: rbac.authorization.k8s.io
+        documentIndex: 0
+
+  - it: test Role metadata
+    set:
+      elsterTransferOperator:
+        namespace: etr-operator
+      ozgcloud:
+        muk:
+          enabled: true
+    asserts:
+      - isKind:
+          of: Role
+        documentIndex: 1
+      - isAPIVersion:
+          of: rbac.authorization.k8s.io/v1
+        documentIndex: 1
+      - equal:
+          path: metadata.name
+          value: ozgcloud-elster-transfer-operator-secret-update-role
+        documentIndex: 1
+    
+  - it: test RoleBinding rules
+    set:
+      elsterTransferOperator:
+        namespace: etr-operator
+      ozgcloud:
+        muk:
+          enabled: true
+    asserts:
+      - contains:
+          path: rules
+          content:
+              apiGroups:
+                - ""
+              resources:
+                - secrets
+              verbs:
+                - update
+              resourceNames:
+                - muk-user-secret
+        documentIndex: 1
+  - it: test eltertransferOperator namespace must be set msg
+    set: 
+      ozgcloud:
+        muk:
+          enabled: true
+    asserts:
+      - failedTemplate:
+          errorMessage: elsterTransferOperator.namespace must be set
+
+  - it: RBAC not created by default
+    asserts:
+      - hasDocuments:
+          count: 0
+      
\ No newline at end of file
diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/servicekonto/ServiceKonto.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/servicekonto/ServiceKonto.java
index dc55642a887b0d8a453a10ead82e0fb7de5970c8..c65e33018262555e9b38727cf434e221ec3ac4eb 100644
--- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/servicekonto/ServiceKonto.java
+++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/servicekonto/ServiceKonto.java
@@ -24,7 +24,7 @@ public class ServiceKonto {
 	@Singular
 	private List<PostfachAddress> postfachAddresses;
 
-	static class ServiceKontoBuilder {
+	public static class ServiceKontoBuilder {
 
 		public ServiceKontoBuilder trustLevel(String trustLevel) {
 			validateTrustLevel(trustLevel);
diff --git a/vorgang-manager-server/src/main/resources/application.yml b/vorgang-manager-server/src/main/resources/application.yml
index 27c32295fea74eaca2e91f8ef769892658932e9b..6784f1d84c27c3a9745a4eb3f978d175cb440eeb 100644
--- a/vorgang-manager-server/src/main/resources/application.yml
+++ b/vorgang-manager-server/src/main/resources/application.yml
@@ -96,7 +96,4 @@ ozgcloud:
   user-manager:
     address: ${grpc.client.user-manager.address:false}
     negotiation-type: ${grpc.client.user-manager.negotiationType}
-  antragraum:
-    entityId: https://antragsraum.ozgcloud.de/
-    metadataUri: "classpath:/bayernid/bayernid-idp-infra.xml"
     
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumITCase.java b/vorgang-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumITCase.java
new file mode 100644
index 0000000000000000000000000000000000000000..81ff258399f0ffa813c0ac5837c83d4d5e8ec544
--- /dev/null
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumITCase.java
@@ -0,0 +1,226 @@
+package de.ozgcloud.nachrichten.antragraum;
+
+import static org.assertj.core.api.Assertions.*;
+import static org.mockito.ArgumentMatchers.*;
+import static org.mockito.Mockito.*;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.xml.security.stax.ext.XMLSecurityConstants.DIRECTION;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.Mock;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.data.mongodb.core.MongoOperations;
+import org.springframework.security.test.context.support.WithMockUser;
+import org.springframework.test.annotation.DirtiesContext;
+
+import de.ozgcloud.common.test.DataITCase;
+import de.ozgcloud.common.test.TestUtils;
+import de.ozgcloud.nachrichten.postfach.PostfachAddress;
+import de.ozgcloud.nachrichten.postfach.PostfachNachricht;
+import de.ozgcloud.nachrichten.postfach.PostfachNachrichtTestFactory;
+import de.ozgcloud.nachrichten.postfach.osi.OsiPostfachProperties;
+import de.ozgcloud.nachrichten.postfach.osi.ReplyOption;
+import de.ozgcloud.vorgang.VorgangManagerServerApplication;
+import de.ozgcloud.vorgang.attached_item.VorgangAttachedItem;
+import de.ozgcloud.vorgang.attached_item.VorgangAttachedItemTestFactory;
+import de.ozgcloud.vorgang.servicekonto.PostfachAddressTestFactory;
+import de.ozgcloud.vorgang.servicekonto.ServiceKonto;
+import de.ozgcloud.vorgang.servicekonto.ServiceKontoTestFactory;
+import de.ozgcloud.vorgang.vorgang.Vorgang;
+import de.ozgcloud.vorgang.vorgang.VorgangHeadTestFactory;
+import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
+import io.grpc.stub.StreamObserver;
+
+@SpringBootTest(classes = { VorgangManagerServerApplication.class, OsiPostfachProperties.class }, properties = {
+		"grpc.server.in-process-name=postfachitcase",
+		"ozgcloud.antragraum.url=https://localhost/dummy/antragraum",
+		"ozgcloud.antragraum.entityId=dummy-id",
+		"ozgcloud.antragraum.metadataUri=http://localhost/dummy/antragraum/uri",
+		"ozgcloud.antragraum.decryptionPrivateKey=dummyPrivateKey",
+		"ozgcloud.antragraum.decryptionCertificate=dummyCertificate",
+		"grpc.client.ozgcloud-command-manager.address=in-process:postfachitcase",
+		"grpc.client.command-manager.address=in-process:postfachitcase",
+		"grpc.client.info-manager.address=in-process:postfachitcase",
+		"grpc.client.vorgang-manager.address=in-process:postfachitcase",
+})
+@WithMockUser
+@DataITCase
+@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_CLASS)
+class AntragraumITCase {
+
+	@Autowired
+	private AntragraumGrpcService grpcService;
+	@Autowired
+	private MongoOperations mongoOperations;
+
+	@MockBean
+	private Saml2Decrypter decrypter;
+	@MockBean
+	private Saml2Verifier verifier;
+
+	@BeforeEach
+	void prepareDatabase() {
+		mongoOperations.dropCollection(Vorgang.COLLECTION_NAME);
+		mongoOperations.dropCollection(VorgangAttachedItem.COLLECTION_NAME);
+	}
+
+	@DisplayName("Find rueckfragen")
+	@Nested
+	class TestFindRueckfragen {
+
+		@Mock
+		private StreamObserver<GrpcFindRueckfragenResponse> responseObserver;
+
+		@Captor
+		private ArgumentCaptor<GrpcFindRueckfragenResponse> captor;
+
+		@BeforeEach
+		void mock() {
+			when(decrypter.decryptPostfachId(any())).thenReturn(PostfachAddressTestFactory.STRING_BASED_IDENTIFIER_POSTFACH_ID_VALUE);
+			when(verifier.verify(any())).thenReturn(Collections.emptyList());
+		}
+
+		@DisplayName("with nachrichten from different vorgaenge")
+		@Nested
+		class TestWithDifferentVorgangId {
+
+			private Vorgang vorgangTrustLevel3;
+			private Vorgang vorgangTrustLevel2;
+
+			@BeforeEach
+			void prepareDatabase() {
+				vorgangTrustLevel3 = mongoOperations.save(createVorgang(TrustLevel.LEVEL_3), Vorgang.COLLECTION_NAME);
+				mongoOperations.save(createPostfachNachrichtVorgangAttachedItem(vorgangTrustLevel3.getId()), VorgangAttachedItem.COLLECTION_NAME);
+
+				vorgangTrustLevel2 = mongoOperations.save(createVorgang(TrustLevel.LEVEL_2), Vorgang.COLLECTION_NAME);
+				mongoOperations.save(createPostfachNachrichtVorgangAttachedItem(vorgangTrustLevel2.getId()), VorgangAttachedItem.COLLECTION_NAME);
+			}
+
+			@Test
+			void shouldHaveTrustLevelForVorgang() {
+				when(decrypter.decryptTrustLevel(any())).thenReturn(TrustLevel.LEVEL_4.getValue());
+
+				var rueckfragen = findRueckfragen().stream()
+						.filter(rueckfrage -> StringUtils.equals(rueckfrage.getVorgangId(), vorgangTrustLevel3.getId()))
+						.toList();
+
+				assertThat(rueckfragen).isNotEmpty().hasSize(1);
+				assertThat(rueckfragen.get(0).getTrustLevel()).isEqualTo(TrustLevel.LEVEL_3.getValue());
+				assertThat(rueckfragen.get(0).getAccessible()).isTrue();
+			}
+
+			@Test
+			void shouldHaveTrustLevelForOtherVorgang() {
+				when(decrypter.decryptTrustLevel(any())).thenReturn(TrustLevel.LEVEL_1.getValue());
+
+				var rueckfragen = findRueckfragen().stream()
+						.filter(rueckfrage -> StringUtils.equals(rueckfrage.getVorgangId(), vorgangTrustLevel2.getId()))
+						.toList();
+
+				assertThat(rueckfragen).isNotEmpty().hasSize(1);
+				assertThat(rueckfragen.get(0).getTrustLevel()).isEqualTo(TrustLevel.LEVEL_2.getValue());
+				assertThat(rueckfragen.get(0).getAccessible()).isFalse();
+			}
+		}
+
+		@DisplayName("with nachrichten from one vorgang")
+		@Nested
+		class TestWithOneVorgangId {
+
+			@BeforeEach
+			void prepareDatabase() {
+				var vorgang = mongoOperations.save(createVorgang(TrustLevel.LEVEL_3), Vorgang.COLLECTION_NAME);
+				mongoOperations.save(createPostfachNachrichtVorgangAttachedItem(vorgang.getId()), VorgangAttachedItem.COLLECTION_NAME);
+			}
+
+			@Test
+			void shouldReturnOnMatchingTokenTrustLevel() {
+				when(decrypter.decryptTrustLevel(any())).thenReturn(TrustLevel.LEVEL_3.getValue());
+
+				var rueckfragen = findRueckfragen();
+
+				assertThat(rueckfragen).isNotEmpty().hasSize(1);
+				assertThat(rueckfragen.get(0).getTrustLevel()).isEqualTo(TrustLevel.LEVEL_3.getValue());
+				assertThat(rueckfragen.get(0).getAccessible()).isTrue();
+			}
+
+			@Test
+			void shouldReturnOnLowerTokenTrustLevel() {
+				when(decrypter.decryptTrustLevel(any())).thenReturn(TrustLevel.LEVEL_1.getValue());
+
+				var rueckfragen = findRueckfragen();
+
+				assertThat(rueckfragen).isNotEmpty().hasSize(1);
+				assertThat(rueckfragen.get(0).getTrustLevel()).isEqualTo(TrustLevel.LEVEL_3.getValue());
+				assertThat(rueckfragen.get(0).getAccessible()).isFalse();
+			}
+
+			@Test
+			void shouldReturnOnHigherTokenTrustLevel() {
+				when(decrypter.decryptTrustLevel(any())).thenReturn(TrustLevel.LEVEL_4.getValue());
+
+				var rueckfragen = findRueckfragen();
+
+				assertThat(rueckfragen).isNotEmpty().hasSize(1);
+				assertThat(rueckfragen.get(0).getTrustLevel()).isEqualTo(TrustLevel.LEVEL_3.getValue());
+				assertThat(rueckfragen.get(0).getAccessible()).isTrue();
+			}
+		}
+
+		private List<GrpcRueckfrageHead> findRueckfragen() {
+			grpcService.findRueckfragen(
+					GrpcFindRueckfrageRequestTestFactory.createBuilder().setSamlToken(TestUtils.loadTextFile("SamlResponse.xml")).build(),
+					responseObserver);
+			verify(responseObserver).onNext(captor.capture());
+			return captor.getValue().getRueckfrageHeadList();
+		}
+	}
+
+	private Vorgang createVorgang(TrustLevel trustLevel) {
+		return VorgangTestFactory.createBuilder()
+				.id(null)
+				.header(VorgangHeadTestFactory.createBuilder().serviceKonto(createBayernIdServiceKonto(trustLevel)).build())
+				.build();
+	}
+
+	private ServiceKonto createBayernIdServiceKonto(TrustLevel trustLevel) {
+		return ServiceKontoTestFactory.createBuilder().type("BayernID").trustLevel(trustLevel.getValue()).build();
+	}
+
+	private VorgangAttachedItem createPostfachNachrichtVorgangAttachedItem(String vorgangId) {
+		return VorgangAttachedItemTestFactory.createBuilder()
+				.id(null)
+				.version(0)
+				.vorgangId(vorgangId)
+				.itemName("PostfachMail")
+				.client("OzgCloud_NachrichtenManager")
+				.item(createBayernIdPostfachNachrichtItem(vorgangId))
+				.build();
+	}
+
+	private Map<String, Object> createBayernIdPostfachNachrichtItem(String vorgangId) {
+		var nachrichtItem = PostfachNachrichtTestFactory.asMap();
+		nachrichtItem.put(PostfachNachricht.FIELD_DIRECTION, DIRECTION.OUT.name());
+		nachrichtItem.put(PostfachNachricht.FIELD_REPLY_OPTION, ReplyOption.POSSIBLE);
+		nachrichtItem.put(PostfachNachricht.FIELD_VORGANG_ID, vorgangId);
+		nachrichtItem.put(PostfachNachricht.FIELD_POSTFACH_ID, PostfachAddressTestFactory.STRING_BASED_IDENTIFIER_POSTFACH_ID_VALUE);
+		nachrichtItem.put(PostfachNachricht.POSTFACH_ADDRESS_FIELD, Map.of(
+				PostfachAddress.TYPE_FIELD, 0,
+				PostfachAddress.VERSION_FIELD, 1,
+				PostfachAddress.IDENTIFIER_FIELD,
+				Map.of(PostfachNachricht.FIELD_POSTFACH_ID, PostfachAddressTestFactory.STRING_BASED_IDENTIFIER_POSTFACH_ID_VALUE),
+				PostfachAddress.SERVICEKONTO_TYPE_FIELD, "BayernID"));
+		return nachrichtItem;
+	}
+}
\ No newline at end of file