diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidEventListener.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidEventListener.java
index 8cc10025fc1e715cb48cdf049a45d58aa15028eb..2116b9a5e7a6a0bf7911a31f69c5e9dd43637ea1 100644
--- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidEventListener.java
+++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidEventListener.java
@@ -44,6 +44,7 @@ import de.ozgcloud.bescheid.vorgang.VorgangId;
 import de.ozgcloud.command.Command;
 import de.ozgcloud.command.CommandCreatedEvent;
 import de.ozgcloud.command.CommandFailedEvent;
+import de.ozgcloud.document.BescheidDocumentCreatedEvent;
 import de.ozgcloud.document.DocumentService;
 import lombok.NonNull;
 import lombok.RequiredArgsConstructor;
@@ -153,6 +154,9 @@ class BescheidEventListener {
 	}
 
 	void doCreateBescheidDocument(Command command) {
+		var bescheid = doCreateBescheidBiz(command);
+		var bescheidDocument = documentService.createBescheidDocument(command, bescheid);
+		eventPublisher.publishEvent(new BescheidDocumentCreatedEvent(command, bescheidDocument));
 	}
 
 	Bescheid doCreateBescheidBiz(@NonNull Command command) {
diff --git a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidEventListenerTest.java b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidEventListenerTest.java
index 76073deb276bc6c478340a0ebe55f3eda857ca4c..b72a618a2a721d34481538f788a18d12558eb962 100644
--- a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidEventListenerTest.java
+++ b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidEventListenerTest.java
@@ -34,6 +34,7 @@ import de.ozgcloud.command.Command;
 import de.ozgcloud.command.CommandCreatedEventTestFactory;
 import de.ozgcloud.command.CommandFailedEvent;
 import de.ozgcloud.command.CommandTestFactory;
+import de.ozgcloud.document.BescheidDocumentCreatedEvent;
 import de.ozgcloud.document.DocumentService;
 
 class BescheidEventListenerTest {
@@ -380,8 +381,51 @@ class BescheidEventListenerTest {
 	@Nested
 	class TestDoCreateBescheidDocument {
 
-		private Command command = CommandTestFactory.create();
+		private static final Command COMMAND = CommandTestFactory.create();
+		private static final Bescheid BESCHEID = BescheidTestFactory.create();
+
+		@Captor
+		private ArgumentCaptor<BescheidDocumentCreatedEvent> eventCaptor;
+
+		@BeforeEach
+		void init() {
+			doReturn(BESCHEID).when(listener).doCreateBescheidBiz(any());
+		}
+
+		@Test
+		void shouldCallCreateBescheidBiz() {
+			listener.doCreateBescheidDocument(COMMAND);
 
+			verify(listener).doCreateBescheidBiz(COMMAND);
+		}
+
+		@Test
+		void shouldCallCreateBescheidDocument() {
+			listener.doCreateBescheidDocument(COMMAND);
+
+			verify(documentService).createBescheidDocument(COMMAND, BESCHEID);
+		}
+
+		@Test
+		@DisplayName("should publish BescheidDocumentCreatedEvent with command")
+		void shouldPublishEventWithCommand() {
+			listener.doCreateBescheidDocument(COMMAND);
+
+			verify(eventPublisher).publishEvent(eventCaptor.capture());
+			assertThat(eventCaptor.getValue().getCommand()).isEqualTo(COMMAND);
+		}
+
+		@Test
+		@DisplayName("should publish BescheidDocumentCreatedEvent with createdResource")
+		void shouldPublishEventWithCreatedResource() {
+			var bescheidDocument = "document-id";
+			when(documentService.createBescheidDocument(any(), any(Bescheid.class))).thenReturn(bescheidDocument);
+
+			listener.doCreateBescheidDocument(COMMAND);
+
+			verify(eventPublisher).publishEvent(eventCaptor.capture());
+			assertThat(eventCaptor.getValue().getCreatedResource()).isEqualTo(bescheidDocument);
+		}
 	}
 
 	@Nested