diff --git a/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachRemoteServiceITCase.java b/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachRemoteServiceITCase.java
index 45801c9f5f7092f8b0af77620ac1f24928fce88d..61602acc355d8389b6decf7279fd79167ec69ed0 100644
--- a/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachRemoteServiceITCase.java
+++ b/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachRemoteServiceITCase.java
@@ -2,19 +2,21 @@ package de.ozgcloud.nachrichten.postfach.osiv2;
 
 import static de.ozgcloud.nachrichten.postfach.osiv2.factory.JwtFactory.*;
 import static org.assertj.core.api.Assertions.*;
+import static org.junit.jupiter.api.Assertions.*;
 import static org.mockserver.mock.OpenAPIExpectation.*;
 import static org.mockserver.model.HttpRequest.*;
 import static org.mockserver.model.HttpResponse.*;
 
+import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.time.OffsetDateTime;
-import java.util.List;
+import java.util.Arrays;
 import java.util.Map;
+import java.util.Objects;
 import java.util.UUID;
 
 import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
@@ -74,7 +76,7 @@ public class OsiPostfachRemoteServiceITCase {
 		postfachFacadeMockClient = OSI_MOCK_SERVER_EXTENSION.getPostfachFacadeMockClient();
 	}
 
-	@Disabled
+
 	@DisplayName("send message")
 	@Nested
 	class TestSendMessage {
@@ -104,50 +106,95 @@ public class OsiPostfachRemoteServiceITCase {
 
 	}
 
-//	@Disabled
 	@DisplayName("receive messages")
 	@Nested
 	class TestReceiveMessage {
 
-		@DisplayName("should receive messages")
+	ObjectMapper objectMapper = new ObjectMapper().registerModule(new JavaTimeModule());
+
+		@DisplayName("should receive one messages")
 		@Test
 		@SneakyThrows
 		void shouldReceiveMessages() {
 			var uuid = UUID.fromString("00000000-0000-0000-0000-000000000000");
 
-			var messages = new MessageExchangeReceiveMessagesResponse().messages(List.of(
-					new MessageExchangeReceiveMessage().guid(uuid)
-			));
+			createMessagesJson(uuid, null);
+
+			createOneReplyMessageJson(uuid);
+
+			var messageStream = osiPostfachRemoteService.getAllMessages();
+
+			var messageList = messageStream.toList();
+			assertThat(messageList).size().isEqualTo(1);
+		}
 
-			var om = new ObjectMapper();
-			om.registerModule(new JavaTimeModule());
-			ObjectWriter ow = om.writer().withDefaultPrettyPrinter();
-			String messagesJson = ow.writeValueAsString(messages);
+	@DisplayName("should receive two messages")
+	@Test
+	@SneakyThrows
+	void shouldReceiveTwoMessages() {
+		var uuid1 = UUID.fromString("00000000-0000-0000-0000-000000000000");
+		var uuid2 = UUID.fromString("00000000-0000-0000-0000-000000000001");
 
-			postfachFacadeMockClient
-					.when(
-							new OpenAPIDefinition()
-									.withSpecUrlOrPayload(Files.readString(Path.of("spec", "postfach-api-facade.yaml")))
-									.withOperationId("receiveMessages")
-					)
-					.respond(response().withHeader("Content-type", "application/json").withBody(messagesJson));
+		createMessagesJson(uuid1, uuid2);
 
-			var replyMessage = new V1ReplyMessage()
-					.body("das ist ein toller Body").replyAction(V1ReplyBehavior.REPLYPOSSIBLE).messageBox(uuid).responseTime(OffsetDateTime.now());
-			String messageJson = ow.writeValueAsString(replyMessage);
+		createOneReplyMessageJson(uuid1);
+		createOneReplyMessageJson(uuid2);
 
+		var messageStream = osiPostfachRemoteService.getAllMessages();
+
+		var messageList = messageStream.toList();
+		assertThat(messageList).size().isEqualTo(2);
+	}
+
+	private void createMessagesJson(final UUID ... uuids) throws IOException {
+		var messagesList = Arrays.stream(uuids).filter(Objects::nonNull).map(uuid -> new MessageExchangeReceiveMessage().guid(uuid)).toList();
+
+		var messages = new MessageExchangeReceiveMessagesResponse().messages(messagesList);
+
+		ObjectWriter ow = objectMapper.writer().withDefaultPrettyPrinter();
+		String messagesJson = ow.writeValueAsString(messages);
+
+		createMessagesCall("receiveMessages", messagesJson);
+	}
+
+	private void createMessagesCall(final String receiveMessages, final String messagesJson) throws IOException {
 		postfachFacadeMockClient
-					.when(
-							new OpenAPIDefinition()
-									.withSpecUrlOrPayload(Files.readString(Path.of("spec", "postfach-api-facade.yaml")))
-									.withOperationId("getMessage")
-					)
-					.respond(response().withHeader("Content-type", "application/json").withBody(messageJson));
+				.when(
+						new OpenAPIDefinition()
+								.withSpecUrlOrPayload(Files.readString(Path.of("spec", "postfach-api-facade.yaml")))
+								.withOperationId(receiveMessages)
+				)
+				.respond(response().withHeader("Content-type", "application/json").withBody(messagesJson));
+	}
 
-			var messageStream = osiPostfachRemoteService.getAllMessages();
+	private void createOneReplyMessageJson(final UUID uuid) throws IOException {
+		ObjectWriter ow = objectMapper.writer().withDefaultPrettyPrinter();
 
-			var messageList = messageStream.toList();
-			assertThat(messageList).size().isEqualTo(1);
+		var replyMessage = new V1ReplyMessage()
+				.body("das ist ein toller Body").replyAction(V1ReplyBehavior.REPLYPOSSIBLE).messageBox(uuid).responseTime(OffsetDateTime.now());
+		String messageJson = ow.writeValueAsString(replyMessage);
+
+		createMessagesCall("getMessage", messageJson);
+	}
+}
+
+	@DisplayName("delete messages")
+	@Nested
+	class TestDeleteMessage {
+
+		@DisplayName("should delete message")
+		@Test
+		@SneakyThrows
+		void shouldDeleteMessage(){
+			postfachFacadeMockClient.upsert(
+					openAPIExpectation()
+							.withSpecUrlOrPayload(Files.readString(Path.of("spec", "postfach-api-facade.yaml")))
+							.withOperationsAndResponses(Map.of(
+									"SendMessage", "200"
+							))
+			);
+
+			assertDoesNotThrow(() -> osiPostfachRemoteService.deleteMessage("00000000-0000-0000-0000-000000000000"));
 		}
 	}
 }