diff --git a/formsolutions-adapter/src/test/java/de/ozgcloud/eingang/formsolutions/SendFormEndpointITCase.java b/formsolutions-adapter/src/test/java/de/ozgcloud/eingang/formsolutions/SendFormEndpointITCase.java
index 86ab1dac41cdd74d3173b50c733a8d339ee47bdd..02b27c1a4f34a300244bc68e25ab3fcee78217f6 100644
--- a/formsolutions-adapter/src/test/java/de/ozgcloud/eingang/formsolutions/SendFormEndpointITCase.java
+++ b/formsolutions-adapter/src/test/java/de/ozgcloud/eingang/formsolutions/SendFormEndpointITCase.java
@@ -5,7 +5,6 @@ import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
 
 import java.nio.file.Files;
-import java.util.List;
 import java.util.Optional;
 
 import org.junit.jupiter.api.BeforeEach;
@@ -24,10 +23,9 @@ import org.springframework.core.io.Resource;
 import org.springframework.test.context.ActiveProfiles;
 
 import de.ozgcloud.eingang.common.formdata.FormData;
+import de.ozgcloud.eingang.common.formdata.ServiceKonto.PostfachAddress;
+import de.ozgcloud.eingang.common.formdata.StringBasedIdentifier;
 import de.ozgcloud.eingang.router.VorgangRemoteService;
-import de.ozgcloud.vorgang.common.GrpcObject;
-import de.ozgcloud.vorgang.vorgang.GrpcEingang;
-import de.ozgcloud.vorgang.vorgang.GrpcPostfachAddress;
 import lombok.SneakyThrows;
 
 @ActiveProfiles({ "local", "itcase" })
@@ -37,6 +35,7 @@ class SendFormEndpointITCase {
 	private final static String FILE_BASE_PATH = "classpath:formular/";
 
 	private final static String FORMULAR_JSON = "RequestJsonContent.json";
+	private final static String FORMULAR_POSTFACH_ID = "51522620-03d2-4507-b1f0-08d86920efed";
 
 	@Autowired
 	private ApplicationContext applicationContext;
@@ -49,8 +48,6 @@ class SendFormEndpointITCase {
 	@Captor
 	private ArgumentCaptor<FormData> formDataCaptor;
 	@Captor
-	private ArgumentCaptor<GrpcEingang> grpcEingangCaptor;
-	@Captor
 	private ArgumentCaptor<Optional<String>> organisationsEinheitIdCaptor;
 
 	@DisplayName("Receive form")
@@ -75,7 +72,7 @@ class SendFormEndpointITCase {
 		void shouldCallRemoteService() {
 			callEndpoint();
 
-			verify(vorgangRemoteService).createVorgang(any(FormData.class), any(GrpcEingang.class), any());
+			verify(vorgangRemoteService).createVorgang(any(FormData.class), any());
 		}
 
 		@DisplayName("service konto")
@@ -86,21 +83,21 @@ class SendFormEndpointITCase {
 			void shouldExist() {
 				callEndpoint();
 
-				assertThat(grpcEingangCaptor.getValue().getHeader().getServiceKonto()).isNotNull();
+				assertThat(formDataCaptor.getValue().getHeader().getServiceKonto()).isNotNull();
 			}
 
 			@Test
 			void shouldContainsType() {
 				callEndpoint();
 
-				assertThat(grpcEingangCaptor.getValue().getHeader().getServiceKonto().getType()).isEqualTo("OSI");
+				assertThat(formDataCaptor.getValue().getHeader().getServiceKonto().getType()).isEqualTo("OSI");
 			}
 
 			@Test
 			void shouldContainsPostfachAddress() {
 				callEndpoint();
 
-				assertThat(grpcEingangCaptor.getValue().getHeader().getServiceKonto().getPostfachAddressesList()).hasSize(1);
+				assertThat(formDataCaptor.getValue().getHeader().getServiceKonto().getPostfachAddresses()).hasSize(1);
 			}
 
 			@Nested
@@ -124,15 +121,12 @@ class SendFormEndpointITCase {
 				void shouldContainsIdentifier() {
 					callEndpoint();
 
-					assertThat(getPostfachAddress().getIdentifier()).isInstanceOf(GrpcObject.class);
-					assertThat(getPostfachAddress().getIdentifier().getPropertyList()).hasSize(1);
-					assertThat(getPostfachAddress().getIdentifier().getPropertyList().get(0).getName()).isEqualTo("postfachId");
-					assertThat(getPostfachAddress().getIdentifier().getPropertyList().get(0).getValue(0))
-							.isEqualTo("51522620-03d2-4507-b1f0-08d86920efed");
+					assertThat(getPostfachAddress().getIdentifier()).isInstanceOf(StringBasedIdentifier.class);
+					assertThat(((StringBasedIdentifier) getPostfachAddress().getIdentifier()).getPostfachId()).isEqualTo(FORMULAR_POSTFACH_ID);
 				}
 
-				private GrpcPostfachAddress getPostfachAddress() {
-					List<GrpcPostfachAddress> addresses = grpcEingangCaptor.getValue().getHeader().getServiceKonto().getPostfachAddressesList();
+				private PostfachAddress getPostfachAddress() {
+					var addresses = formDataCaptor.getValue().getHeader().getServiceKonto().getPostfachAddresses();
 					assertThat(addresses).isNotEmpty();
 					return addresses.get(0);
 				}
@@ -142,7 +136,7 @@ class SendFormEndpointITCase {
 		private void callEndpoint() {
 			endpoint.receiveForm(request);
 
-			verify(vorgangRemoteService).createVorgang(formDataCaptor.capture(), grpcEingangCaptor.capture(), organisationsEinheitIdCaptor.capture());
+			verify(vorgangRemoteService).createVorgang(formDataCaptor.capture(), organisationsEinheitIdCaptor.capture());
 		}
 
 		private Resource getResource(String fileName) {
diff --git a/intelliform-adapter/src/test/java/de/ozgcloud/eingang/intelliform/FormDataEndpointITCase.java b/intelliform-adapter/src/test/java/de/ozgcloud/eingang/intelliform/FormDataEndpointITCase.java
index 17c560fb68e7670a05e0dd8feb2102cbc15fd609..54523201fd281dea6af56fdf32489b5e0ead3316 100644
--- a/intelliform-adapter/src/test/java/de/ozgcloud/eingang/intelliform/FormDataEndpointITCase.java
+++ b/intelliform-adapter/src/test/java/de/ozgcloud/eingang/intelliform/FormDataEndpointITCase.java
@@ -35,7 +35,7 @@ import java.io.StringReader;
 import java.io.StringWriter;
 import java.util.Collection;
 import java.util.List;
-import java.util.Optional;
+import java.util.UUID;
 
 import javax.xml.namespace.QName;
 import javax.xml.transform.Source;
@@ -51,9 +51,11 @@ 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.boot.test.mock.mockito.SpyBean;
 import org.springframework.context.ApplicationContext;
 import org.springframework.core.io.Resource;
 import org.springframework.oxm.jaxb.Jaxb2Marshaller;
@@ -64,12 +66,17 @@ import org.springframework.ws.test.server.ResponseMatchers;
 
 import de.ozgcloud.eingang.common.formdata.FormData;
 import de.ozgcloud.eingang.common.formdata.PostfachAddressTestFactory;
+import de.ozgcloud.eingang.router.ManagableStub;
+import de.ozgcloud.eingang.router.VorgangManagerServerResolver;
 import de.ozgcloud.eingang.router.VorgangRemoteService;
+import de.ozgcloud.vorgang.grpc.binaryFile.BinaryFileServiceGrpc.BinaryFileServiceStub;
 import de.ozgcloud.vorgang.vorgang.GrpcAntragsteller;
 import de.ozgcloud.vorgang.vorgang.GrpcEingang;
 import de.ozgcloud.vorgang.vorgang.GrpcFormData;
 import de.ozgcloud.vorgang.vorgang.GrpcIncomingFile;
 import de.ozgcloud.vorgang.vorgang.GrpcIncomingFileGroup;
+import de.ozgcloud.vorgang.vorgang.VorgangServiceGrpc.VorgangServiceBlockingStub;
+import io.grpc.Channel;
 import lombok.SneakyThrows;
 
 @SpringBootTest
@@ -86,20 +93,34 @@ class FormDataEndpointITCase {
 	@Autowired
 	private ApplicationContext applicationContext;
 
-	@MockBean
+	@SpyBean
 	private VorgangRemoteService vorgangRemoteService;
+	@MockBean
+	private VorgangManagerServerResolver resolver;
+
+	@Mock
+	private ManagableStub<VorgangServiceBlockingStub> vorgangManageableServiceStub;
+	@Mock
+	private VorgangServiceBlockingStub vorgangServiceStub;
+	@Mock
+	private ManagableStub<BinaryFileServiceStub> binaryFileManageableServiceStub;
+	@Mock
+	private BinaryFileServiceStub binaryFileServiceStub;
+
+	@Mock
+	private Channel channel;
 
 	@Captor
 	private ArgumentCaptor<FormData> formDataCaptor;
 	@Captor
 	private ArgumentCaptor<GrpcEingang> grpcEingangCaptor;
-	@Captor
-	private ArgumentCaptor<Optional<String>> organisationsEinheitIdCaptor;
 
 	private MockWebServiceClient mockClient;
 
 	private DepositData depositData;
 
+	private final String vorgangId = UUID.randomUUID().toString();
+
 	@BeforeAll
 	static void setupMarshaller() {
 		marshaller = new Jaxb2Marshaller();
@@ -109,6 +130,16 @@ class FormDataEndpointITCase {
 	@BeforeEach
 	void initTest() {
 		mockClient = MockWebServiceClient.createClient(applicationContext);
+
+		when(resolver.resolveVorgangServiceBlockingStubByOrganisationseinheitenId(any())).thenReturn(vorgangManageableServiceStub);
+		when(vorgangManageableServiceStub.get()).thenReturn(vorgangServiceStub);
+		when(vorgangServiceStub.getChannel()).thenReturn(channel);
+		when(channel.authority()).thenReturn("authorityDummy");
+
+		when(resolver.resolveBinaryFileServiceStubByOrganisationsEinheitId(any())).thenReturn(binaryFileManageableServiceStub);
+		when(binaryFileManageableServiceStub.get()).thenReturn(binaryFileServiceStub);
+
+		doReturn(vorgangId).when(vorgangRemoteService).createVorgang(any(), any(), any(), any());
 	}
 
 	@DisplayName("send antrag with many attachments")
@@ -154,8 +185,7 @@ class FormDataEndpointITCase {
 			assertThat(representationVendorIds).containsExactly(
 					XML_ATTACHMENT_ID,
 					XML_ROHFORM_ATTACHMENT_ID,
-					XML_ORIGINALFORM_ATTACHMENT_ID
-			);
+					XML_ORIGINALFORM_ATTACHMENT_ID);
 		}
 
 		@DisplayName("should have attachments")
@@ -182,8 +212,7 @@ class FormDataEndpointITCase {
 					PDF2_ATTACHMENT_ID,
 					ODT_ATTACHMENT_ID,
 					JPG_ATTACHMENT_ID,
-					PNG_ATTACHMENT_ID
-			);
+					PNG_ATTACHMENT_ID);
 		}
 
 		@DisplayName("should have organisationseinheitenID")
@@ -191,9 +220,6 @@ class FormDataEndpointITCase {
 		void shouldHaveOrganisationseinheitenId() {
 			sendDepositAndCaptureCreateVorgang();
 
-			var oeid = organisationsEinheitIdCaptor.getValue();
-			assertThat(oeid).hasValue(ORGANISATIONSEINHEITEN_ID);
-
 			var eingang = grpcEingangCaptor.getValue();
 			assertThat(eingang.getZustaendigeStelle().getOrganisationseinheitenId()).isEqualTo(ORGANISATIONSEINHEITEN_ID);
 		}
@@ -211,8 +237,7 @@ class FormDataEndpointITCase {
 					withEmptyName(createPdf()),
 					createPdf(),
 					withEmptyName(createPng()),
-					createPng()
-			));
+					createPng()));
 		}
 
 		private Attachment withEmptyName(Attachment attachment) {
@@ -264,7 +289,7 @@ class FormDataEndpointITCase {
 				.andExpect(ResponseMatchers.noFault())
 				.andExpect(ResponseMatchers.payload(getResource(RESPONSE)));
 
-		verify(vorgangRemoteService).createVorgang(formDataCaptor.capture(), grpcEingangCaptor.capture(), organisationsEinheitIdCaptor.capture());
+		verify(vorgangRemoteService).createVorgang(formDataCaptor.capture(), grpcEingangCaptor.capture(), any(), any());
 	}
 
 	@SneakyThrows
@@ -290,7 +315,7 @@ class FormDataEndpointITCase {
 		void shouldSendRequest() {
 			sendRequest();
 
-			verify(vorgangRemoteService).createVorgang(any(FormData.class), any(GrpcEingang.class), any());
+			verify(vorgangRemoteService).createVorgang(any(FormData.class), any(GrpcEingang.class), any(), any());
 		}
 
 		@Nested
@@ -318,7 +343,7 @@ class FormDataEndpointITCase {
 			void validateOrganisationsEinheitId() {
 				sendRequest();
 
-				assertThat(organisationsEinheitIdCaptor.getValue()).isPresent().hasValue("10363455");
+				assertThat(grpcEingangCaptor.getValue().getZustaendigeStelle().getOrganisationseinheitenId()).isEqualTo("10363455");
 			}
 
 			@Test
@@ -473,7 +498,7 @@ class FormDataEndpointITCase {
 		void shouldHaveOrgaId() {
 			sendWebserviceRequest(SOAP_REQUEST_OTHER_NAME);
 
-			verify(vorgangRemoteService).createVorgang(any(), grpcEingangCaptor.capture(), any());
+			verify(vorgangRemoteService).createVorgang(any(), grpcEingangCaptor.capture(), any(), any());
 
 			assertThat(grpcEingangCaptor.getValue().getZustaendigeStelle().getOrganisationseinheitenId()).isEqualTo("0815");
 		}
@@ -549,7 +574,7 @@ class FormDataEndpointITCase {
 		private GrpcFormData requestFormData() {
 			sendWebserviceRequest(REQUEST_XML_NAME);
 
-			verify(vorgangRemoteService).createVorgang(any(), grpcEingangCaptor.capture(), any());
+			verify(vorgangRemoteService).createVorgang(any(), grpcEingangCaptor.capture(), any(), any());
 			return grpcEingangCaptor.getValue().getFormData();
 		}
 	}
@@ -560,7 +585,7 @@ class FormDataEndpointITCase {
 				.andExpect(ResponseMatchers.noFault())
 				.andExpect(ResponseMatchers.payload(getResource(RESPONSE)));
 
-		verify(vorgangRemoteService).createVorgang(formDataCaptor.capture(), grpcEingangCaptor.capture(), organisationsEinheitIdCaptor.capture());
+		verify(vorgangRemoteService).createVorgang(formDataCaptor.capture(), grpcEingangCaptor.capture(), any(), any());
 
 		return response;
 	}
diff --git a/router/src/main/java/de/ozgcloud/eingang/router/VorgangService.java b/router/src/main/java/de/ozgcloud/eingang/router/VorgangService.java
index 08e4bddd5d01e6c049f7e0da2256555da694b919..de97243af9a356da303522e4555b1509b540dc16 100644
--- a/router/src/main/java/de/ozgcloud/eingang/router/VorgangService.java
+++ b/router/src/main/java/de/ozgcloud/eingang/router/VorgangService.java
@@ -23,11 +23,14 @@
  */
 package de.ozgcloud.eingang.router;
 
+import java.util.List;
 import java.util.Optional;
 
 import org.springframework.stereotype.Service;
 
 import de.ozgcloud.eingang.common.formdata.FormData;
+import de.ozgcloud.eingang.common.formdata.FormHeader;
+import de.ozgcloud.eingang.common.formdata.ServiceKonto;
 import de.ozgcloud.eingang.common.formdata.ZustaendigeStelle;
 import lombok.AllArgsConstructor;
 
@@ -55,7 +58,8 @@ public class VorgangService {
 	}
 
 	private boolean hasNoPostfachAddress(FormData formData) {
-		return formData.getHeader().getServiceKonto().getPostfachAddresses().isEmpty();
+		return Optional.ofNullable(formData.getHeader()).map(FormHeader::getServiceKonto).map(ServiceKonto::getPostfachAddresses).map(List::isEmpty)
+				.orElse(true);
 	}
 
 	private FormData clearServiceKonto(FormData formData) {
diff --git a/router/src/test/java/de/ozgcloud/eingang/router/VorgangServiceTest.java b/router/src/test/java/de/ozgcloud/eingang/router/VorgangServiceTest.java
index c5745c2a12f2bcca89eb17bb88f713ed67f3541e..2db3d04b7e3ad7bdb2240c7a1a66d8b39cbb4ca8 100644
--- a/router/src/test/java/de/ozgcloud/eingang/router/VorgangServiceTest.java
+++ b/router/src/test/java/de/ozgcloud/eingang/router/VorgangServiceTest.java
@@ -24,6 +24,7 @@
 package de.ozgcloud.eingang.router;
 
 import static org.assertj.core.api.Assertions.*;
+import static org.junit.jupiter.api.Assertions.*;
 import static org.mockito.Mockito.*;
 
 import java.util.Optional;
@@ -108,5 +109,14 @@ class VorgangServiceTest {
 
 			assertThat(consistentFormData.getHeader().getServiceKonto()).isEqualTo(FormHeaderTestFactory.SERVICE_KONTO);
 		}
+
+		@DisplayName("should proceed without exception on missing serviceKonto")
+		@Test
+		void shouldProceedWithoutException() {
+			var formDataWithoutServiceKonto = FormDataTestFactory.createBuilder()
+					.header(FormHeaderTestFactory.createBuilder().serviceKonto(null).build()).build();
+
+			assertDoesNotThrow(() -> service.preserveConsistency(formDataWithoutServiceKonto));
+		}
 	}
 }
\ No newline at end of file