diff --git a/bescheid-manager/pom.xml b/bescheid-manager/pom.xml
index 7ec0199f426aca07fe75f0c8b95e3746168927d2..59b471729d249a87c7f6a358aef99043c53db00d 100644
--- a/bescheid-manager/pom.xml
+++ b/bescheid-manager/pom.xml
@@ -47,6 +47,11 @@
 			<groupId>net.devh</groupId>
 			<artifactId>grpc-client-spring-boot-starter</artifactId>
 		</dependency>
+
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-webflux</artifactId>
+		</dependency>
 		<dependency>
 			<groupId>org.springframework.security</groupId>
 			<artifactId>spring-security-core</artifactId>
diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/dummy/DummyBescheidRemoteService.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/dummy/DummyBescheidRemoteService.java
index 47eddc77608d320f300b7cbdf42ed2876f3ba3c4..0a35a6217a81b4f0262cdbda4564c465c8d5f392 100644
--- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/dummy/DummyBescheidRemoteService.java
+++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/dummy/DummyBescheidRemoteService.java
@@ -1,5 +1,6 @@
 package de.ozgcloud.bescheid.dummy;
 
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.stereotype.Service;
 
 import com.google.common.net.MediaType;
@@ -11,6 +12,7 @@ import de.ozgcloud.bescheid.BescheidRequest;
 import de.ozgcloud.bescheid.vorgang.Vorgang;
 
 @Service
+@ConditionalOnMissingBean(BescheidRemoteService.class)
 class DummyBescheidRemoteService implements BescheidRemoteService {
 
 	private static final String DUMMY_BESCHEID_FILE_NAME = "dummy-bescheid.pdf";
diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/smartdocuments/SmartDocumentsBescheidRemoteService.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/smartdocuments/SmartDocumentsBescheidRemoteService.java
new file mode 100644
index 0000000000000000000000000000000000000000..fc385ca62d443589064a9ecb733a6b81aaf1cbaa
--- /dev/null
+++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/smartdocuments/SmartDocumentsBescheidRemoteService.java
@@ -0,0 +1,47 @@
+package de.ozgcloud.bescheid.smartdocuments;
+
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
+import org.springframework.stereotype.Service;
+import org.springframework.web.reactive.function.client.WebClient;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import de.ozgcloud.bescheid.Bescheid;
+import de.ozgcloud.bescheid.BescheidRemoteService;
+import de.ozgcloud.bescheid.BescheidRequest;
+import de.ozgcloud.bescheid.vorgang.Vorgang;
+import lombok.SneakyThrows;
+
+@Service
+class SmartDocumentsBescheidRemoteService implements BescheidRemoteService {
+
+	@Autowired
+	private WebClient webClient;
+
+	@Autowired
+	private ObjectMapper objectMapper;
+
+	@SneakyThrows
+	@Override
+	public Bescheid create(BescheidRequest request, Vorgang vorgang) {
+		System.out.println(objectMapper.writeValueAsString(createRequest()));
+
+		var fluxy = webClient.post().accept(MediaType.APPLICATION_JSON)
+				.contentType(MediaType.APPLICATION_JSON)
+				.bodyValue(createRequest())
+				.retrieve()
+				.bodyToFlux(Map.class);
+
+		System.out.println("received: " + fluxy.blockFirst());
+
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	private SmartDocumentsRequest createRequest() {
+		return SmartDocumentsRequest.builder().build();
+	}
+}
diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/smartdocuments/SmartDocumentsConfiguration.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/smartdocuments/SmartDocumentsConfiguration.java
new file mode 100644
index 0000000000000000000000000000000000000000..627f2c741f3f94eaa48883c417d1addfa81e167a
--- /dev/null
+++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/smartdocuments/SmartDocumentsConfiguration.java
@@ -0,0 +1,21 @@
+package de.ozgcloud.bescheid.smartdocuments;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.reactive.function.client.WebClient;
+
+@Configuration
+class SmartDocumentsConfiguration {
+
+	private static final String ADDR = "https://sandbox.smartdocuments.com/wsxmldeposit/deposit/unattended";
+
+	@Bean
+	WebClient smartDocumentsWebClient() {
+		return WebClient.builder()
+				.baseUrl(ADDR)
+				.defaultHeader("Authorization", "Basic aW50ZWdyYXRpb24tdXNlcjpXSEVtTkpUeTdHNVJ6R3M=")
+//				.filters(ExcahngeFunctions)
+				.build();
+	}
+
+}
diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/smartdocuments/SmartDocumentsRequest.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/smartdocuments/SmartDocumentsRequest.java
new file mode 100644
index 0000000000000000000000000000000000000000..3b839c3fe147eef636f7af4b106ff161437362d5
--- /dev/null
+++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/smartdocuments/SmartDocumentsRequest.java
@@ -0,0 +1,49 @@
+package de.ozgcloud.bescheid.smartdocuments;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.PropertyNamingStrategies;
+import com.fasterxml.jackson.databind.annotation.JsonNaming;
+
+import lombok.Builder;
+import lombok.Getter;
+
+@Builder
+@Getter
+@JsonNaming(PropertyNamingStrategies.UpperCamelCaseStrategy.class)
+class SmartDocumentsRequest {
+
+	@Builder.Default
+	private CustomerData customerData = CustomerData.builder().build();
+	@Builder.Default
+	private SmartDocument smartDocument = SmartDocument.builder().build();
+
+	@Builder
+	@Getter
+	static class CustomerData {
+		@Builder.Default
+		private String gender = "Male";
+		@Builder.Default
+		private String lastname = "Smith";
+	}
+
+	@Builder
+	@Getter
+	@JsonNaming(PropertyNamingStrategies.UpperCamelCaseStrategy.class)
+	static class SmartDocument {
+
+		@Builder.Default
+		@JsonProperty("Selection")
+		private Selection selection = Selection.builder().build();
+
+		@Builder
+		@Getter
+		@JsonNaming(PropertyNamingStrategies.UpperCamelCaseStrategy.class)
+		static class Selection {
+			@Builder.Default
+			private String templateGroup = "Development";
+			@Builder.Default
+			private String template = "integration-test";
+		}
+	}
+
+}
diff --git a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidRequestTestFactory.java b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidRequestTestFactory.java
index 3f5907b1cb0c0ac7c7eb386c3aa979e280fef1f2..ac54a3dbba08aeb4f2254606497ae148f040344f 100644
--- a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidRequestTestFactory.java
+++ b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidRequestTestFactory.java
@@ -13,11 +13,11 @@ public class BescheidRequestTestFactory {
 	static final LocalDate BESCHEID_VOM = LocalDate.parse(BESCHEID_VOM_STRING);
 	static final boolean GENEHMIGT = true;
 
-	static BescheidRequest create() {
+	public static BescheidRequest create() {
 		return createBuilder().build();
 	}
 
-	static BescheidRequest.BescheidRequestBuilder createBuilder() {
+	public static BescheidRequest.BescheidRequestBuilder createBuilder() {
 		return BescheidRequest.builder()
 				.vorgangId(VORGANG_ID)
 				.bescheidVom(BESCHEID_VOM)
diff --git a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/smartdocuments/SmartDocumentsBescheidRemoteServiceITCase.java b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/smartdocuments/SmartDocumentsBescheidRemoteServiceITCase.java
new file mode 100644
index 0000000000000000000000000000000000000000..d7fdea2c610e964573550399cd3dc49190e55388
--- /dev/null
+++ b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/smartdocuments/SmartDocumentsBescheidRemoteServiceITCase.java
@@ -0,0 +1,21 @@
+package de.ozgcloud.bescheid.smartdocuments;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import de.itvsh.kop.common.test.ITCase;
+import de.ozgcloud.bescheid.BescheidRequestTestFactory;
+import de.ozgcloud.bescheid.vorgang.VorgangTestFactory;
+
+@ITCase
+class SmartDocumentsBescheidRemoteServiceITCase {
+
+	@Autowired
+	private SmartDocumentsBescheidRemoteService remoteService;
+
+	@Test
+	void test() {
+		remoteService.create(BescheidRequestTestFactory.create(), VorgangTestFactory.create());
+	}
+
+}