diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidManagerFeatures.java b/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidManagerFeatures.java
new file mode 100644
index 0000000000000000000000000000000000000000..faa236351bc915c2f540681ab2fc95de14ee205a
--- /dev/null
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidManagerFeatures.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2024 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.
+ */
+package de.ozgcloud.alfa.bescheid;
+
+import lombok.Builder;
+import lombok.Getter;
+
+@Builder
+@Getter
+class BescheidManagerFeatures {
+
+	private boolean canCreateBescheidDocument;
+}
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidManagerFeaturesMapper.java b/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidManagerFeaturesMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..6d2414f5c901c9b544393c7d85ea6684645371a8
--- /dev/null
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidManagerFeaturesMapper.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2024 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.
+ */
+package de.ozgcloud.alfa.bescheid;
+
+import org.mapstruct.Mapper;
+import org.mapstruct.NullValueCheckStrategy;
+import org.mapstruct.ReportingPolicy;
+
+import de.ozgcloud.document.bescheid.GrpcBescheidManagerFeatures;
+
+@Mapper(unmappedTargetPolicy = ReportingPolicy.ERROR, nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
+interface BescheidManagerFeaturesMapper {
+
+	BescheidManagerFeatures fromGrpc(GrpcBescheidManagerFeatures grpcBescheidManagerFeatures);
+}
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidRemoteService.java b/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidRemoteService.java
index 5890398e4c8f312ef8b2a092477ba147963570fa..d3abd51e1b51c33463a08dfc920ad21581534e44 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidRemoteService.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidRemoteService.java
@@ -46,6 +46,8 @@ class BescheidRemoteService {
 	private BescheidServiceBlockingStub bescheidServiceStub;
 	@Autowired
 	private BescheidMapper bescheidMapper;
+	@Autowired
+	private BescheidManagerFeaturesMapper bescheidManagerFeaturesMapper;
 
 	public Optional<Bescheid> getBescheidDraft(String vorgangId) {
 		var request = buildGetBescheidDraftRequest(vorgangId);
@@ -83,9 +85,8 @@ class BescheidRemoteService {
 		return GrpcGetAllBescheidRequest.newBuilder().setVorgangId(vorgangId).build();
 	}
 
-	// TODO Logik in den Service verschieben
-	public boolean canCreateBescheidDocument() {
+	public Optional<BescheidManagerFeatures> getBescheidManagerFeatures() {
 		var response = bescheidServiceStub.getConfig(GrpcBescheidManagerConfigRequest.newBuilder().build());
-		return response.hasFeatures() && response.getFeatures().getCanCreateBescheidDocument();
+		return response.hasFeatures() ? Optional.of(bescheidManagerFeaturesMapper.fromGrpc(response.getFeatures())) : Optional.empty();
 	}
 }
\ No newline at end of file
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidService.java b/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidService.java
index 8ebaf02e9e285f73ebc5fb881d03dd701753b728..df312594f141d23efcb3a5dfaab0c63bb54d3de2 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidService.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidService.java
@@ -59,7 +59,7 @@ public class BescheidService {
 	}
 
 	public boolean canCreateBescheidDocumentAutomatically() {
-		return remoteService.canCreateBescheidDocument();
+		return remoteService.getBescheidManagerFeatures().map(BescheidManagerFeatures::isCanCreateBescheidDocument).orElse(false);
 	}
 
 	public boolean existsBescheid(String vorgangId) {
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidManagerFeaturesMapperTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidManagerFeaturesMapperTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..1691e2fe04f4107080f40ac09c888c5a3daf43db
--- /dev/null
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidManagerFeaturesMapperTest.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2024 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.
+ */
+package de.ozgcloud.alfa.bescheid;
+
+import static org.assertj.core.api.Assertions.*;
+
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
+import org.mapstruct.factory.Mappers;
+
+import de.ozgcloud.document.bescheid.GrpcBescheidManagerFeatures;
+
+class BescheidManagerFeaturesMapperTest {
+
+	private final BescheidManagerFeaturesMapper mapper = Mappers.getMapper(BescheidManagerFeaturesMapper.class);
+
+	@ParameterizedTest
+	@ValueSource(booleans = {true, false})
+	void shouldMapCanCreateBescheidDocument(boolean canCreate) {
+		var grpcFeatures = GrpcBescheidManagerFeatures.newBuilder().setCanCreateBescheidDocument(canCreate).build();
+
+		var features = mapper.fromGrpc(grpcFeatures);
+
+		assertThat(features.isCanCreateBescheidDocument()).isEqualTo(canCreate);
+	}
+}
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidRemoteServiceTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidRemoteServiceTest.java
index 84d5208e2ca34eb32e6edbc42a196496152bbd5b..e5aae0f2f5e0d79ec00e80e0086b3d31ccf95691 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidRemoteServiceTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidRemoteServiceTest.java
@@ -57,6 +57,8 @@ class BescheidRemoteServiceTest {
 	private BescheidServiceBlockingStub bescheidServiceStub;
 	@Mock
 	private BescheidMapper bescheidMapper;
+	@Mock
+	private BescheidManagerFeaturesMapper featuresMapper;
 
 	@Nested
 	class TestGetBescheidDraft {
@@ -206,51 +208,68 @@ class BescheidRemoteServiceTest {
 	}
 
 	@Nested
-	class TestCanCreateBescheidDocument {
+	class TestGetBescheidManagerFeatures {
 
 		private final GrpcBescheidManagerConfigRequest request = GrpcBescheidManagerConfigRequestTestFactory.create();
 		private final GrpcBescheidManagerConfigResponse respone = GrpcBescheidManagerConfigResponseTestFactory.create();
 
-		@BeforeEach
-		void setUp() {
+		@Test
+		void shouldCallGrpcService() {
 			when(bescheidServiceStub.getConfig(request)).thenReturn(respone);
-		}
+			when(featuresMapper.fromGrpc(any())).thenReturn(BescheidManagerFeatures.builder().build());
 
-		@Test
-		void shouldCallRemoteService() {
-			service.canCreateBescheidDocument();
+			service.getBescheidManagerFeatures();
 
 			verify(bescheidServiceStub).getConfig(request);
 		}
 
-		@Test
-		void shouldReturnTrue() {
-			var canCreate = service.canCreateBescheidDocument();
+		@Nested
+		class OnFeaturesArePresent {
 
-			assertThat(canCreate).isTrue();
-		}
+			private final BescheidManagerFeatures mappedFeatures = BescheidManagerFeatures.builder().build();
 
-		@Test
-		void shouldReturnFalseIfNoFeaturesAvailable() {
-			when(bescheidServiceStub.getConfig(request)).thenReturn(GrpcBescheidManagerConfigResponse.newBuilder().build());
+			@BeforeEach
+			void setUp() {
+				when(bescheidServiceStub.getConfig(request)).thenReturn(respone);
+				when(featuresMapper.fromGrpc(any())).thenReturn(mappedFeatures);
+			}
+
+			@Test
+			void shouldCallMapper() {
+				service.getBescheidManagerFeatures();
+
+				verify(featuresMapper).fromGrpc(GrpcBescheidManagerFeaturesTestFactory.create());
+			}
 
-			var canCreate = service.canCreateBescheidDocument();
+			@Test
+			void shouldReturnMappedFeatures() {
+				var features = service.getBescheidManagerFeatures();
 
-			assertThat(canCreate).isFalse();
+				assertThat(features).isNotEmpty().get().isSameAs(mappedFeatures);
+			}
 		}
 
-		@Test
-		void shouldReturnFalseIfFeatureDisabled() {
-			var respones = GrpcBescheidManagerConfigResponseTestFactory.createBuilder()
-					.setFeatures(GrpcBescheidManagerFeaturesTestFactory.createBuilder()
-							.setCanCreateBescheidDocument(false)
-							.build())
-					.build();
-			when(bescheidServiceStub.getConfig(request)).thenReturn(respones);
+		@Nested
+		class OnFeaturesAreAbsent {
+
+			@BeforeEach
+			void init() {
+				when(bescheidServiceStub.getConfig(request)).thenReturn(GrpcBescheidManagerConfigResponse.newBuilder().build());
+			}
+
+			@Test
+			void shouldNotCallMapper() {
+				service.getBescheidManagerFeatures();
+
+				verify(featuresMapper, never()).fromGrpc(any());
+			}
 
-			var canCreate = service.canCreateBescheidDocument();
+			@Test
+			void shouldReturnEmpty() {
+				var features = service.getBescheidManagerFeatures();
 
-			assertThat(canCreate).isFalse();
+				assertThat(features).isEmpty();
+			}
 		}
 	}
 
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidServiceTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidServiceTest.java
index 16e9efb603bc76a00195db4e95abc49334472c53..95914f9d613d54b55aecc4d4e578397f3fd654cc 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidServiceTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidServiceTest.java
@@ -168,19 +168,31 @@ class BescheidServiceTest {
 
 		@Test
 		void shouldCallRemoteService() {
+			when(remoteService.getBescheidManagerFeatures()).thenReturn(Optional.of(BescheidManagerFeatures.builder().build()));
+
 			service.canCreateBescheidDocumentAutomatically();
 
-			verify(remoteService).canCreateBescheidDocument();
+			verify(remoteService).getBescheidManagerFeatures();
+		}
+
+		@Test
+		void shouldReturnFalseIfFeaturesAreEmpty() {
+			when(remoteService.getBescheidManagerFeatures()).thenReturn(Optional.empty());
+
+			var canCreate = service.canCreateBescheidDocumentAutomatically();
+
+			assertThat(canCreate).isFalse();
 		}
 
 		@ParameterizedTest
 		@ValueSource(booleans = { true, false })
-		void shouldRetrun(boolean canCreateBescheidDocument) {
-			when(remoteService.canCreateBescheidDocument()).thenReturn(canCreateBescheidDocument);
+		void shouldReturnFeatureValue(boolean featureValue) {
+			when(remoteService.getBescheidManagerFeatures()).thenReturn(
+					Optional.of(BescheidManagerFeatures.builder().canCreateBescheidDocument(featureValue).build()));
 
-			var canCreateAutomatically = service.canCreateBescheidDocumentAutomatically();
+			var canCreate = service.canCreateBescheidDocumentAutomatically();
 
-			assertThat(canCreateAutomatically).isEqualTo(canCreateBescheidDocument);
+			assertThat(canCreate).isEqualTo(featureValue);
 		}
 	}