diff --git a/src/main/java/de/ozgcloud/xta/test/app/server/ManagementPortImpl.java b/src/main/java/de/ozgcloud/xta/test/app/server/ManagementPortImpl.java
index d47d13465fa68e0f1db6e523a19a77e27e847b5a..e35815857e87ab8f6b4c1b5a9b78a68c74dd642f 100644
--- a/src/main/java/de/ozgcloud/xta/test/app/server/ManagementPortImpl.java
+++ b/src/main/java/de/ozgcloud/xta/test/app/server/ManagementPortImpl.java
@@ -7,6 +7,7 @@ import org.apache.cxf.annotations.SchemaValidation;
 import org.apache.cxf.ws.addressing.AttributedURIType;
 import org.springframework.stereotype.Component;
 
+import de.ozgcloud.xta.test.app.mapper.ExceptionMapper;
 import de.ozgcloud.xta.test.app.mapper.RequestMapper;
 import de.ozgcloud.xta.test.app.mapper.ResponseMapper;
 import de.ozgcloud.xta.test.app.service.XtaMessageService;
@@ -29,6 +30,7 @@ import lombok.extern.log4j.Log4j2;
 @Log4j2
 public class ManagementPortImpl implements ManagementPortType {
 
+	private final ExceptionMapper exceptionMapper;
 	private final ResponseMapper responseMapper;
 	private final RequestMapper requestMapper;
 	private final RequestValidator requestValidator;
diff --git a/src/test/java/de/ozgcloud/xta/test/app/server/ManagementPortImplTest.java b/src/test/java/de/ozgcloud/xta/test/app/server/ManagementPortImplTest.java
index 65741330a0c51de32724284959fe827644b8bdce..65287db3e8e031c70f0c7ad73737e849fd541f13 100644
--- a/src/test/java/de/ozgcloud/xta/test/app/server/ManagementPortImplTest.java
+++ b/src/test/java/de/ozgcloud/xta/test/app/server/ManagementPortImplTest.java
@@ -4,6 +4,10 @@ import static de.ozgcloud.xta.test.app.factory.MessageMetaDataTestFactory.*;
 import static org.assertj.core.api.Assertions.*;
 import static org.mockito.Mockito.*;
 
+import java.util.Optional;
+
+import genv3.de.xoev.transport.xta.x211.InvalidMessageIDException;
+import genv3.de.xoev.transport.xta.x211.TransportReport;
 import org.apache.cxf.ws.addressing.AttributedURIType;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.DisplayName;
@@ -12,9 +16,13 @@ import org.junit.jupiter.api.Test;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
 
+import de.ozgcloud.xta.test.app.factory.XtaMessageMetaDataTestFactory;
+import de.ozgcloud.xta.test.app.mapper.ExceptionMapper;
 import de.ozgcloud.xta.test.app.mapper.RequestMapper;
 import de.ozgcloud.xta.test.app.mapper.ResponseMapper;
+import de.ozgcloud.xta.test.app.model.XtaGetTransportReportRequest;
 import de.ozgcloud.xta.test.app.model.XtaLookupServiceRequest;
+import de.ozgcloud.xta.test.app.model.XtaTransportReport;
 import de.ozgcloud.xta.test.app.service.XtaMessageService;
 import de.ozgcloud.xta.test.app.validation.RequestValidator;
 import genv3.de.xoev.transport.xta.x211.LookupServiceRequest;
@@ -30,6 +38,8 @@ public class ManagementPortImplTest {
 	@Mock
 	private XtaMessageService xtaMessageService;
 	@Mock
+	private ExceptionMapper exceptionMapper;
+	@Mock
 	private ResponseMapper responseMapper;
 	@Mock
 	private RequestMapper requestMapper;
@@ -113,4 +123,67 @@ public class ManagementPortImplTest {
 			assertThat(result).isEqualTo(response);
 		}
 	}
+
+	@DisplayName("get transport report")
+	@Nested
+	class TestGetTransportReport {
+		private static final String MESSAGE_ID = "urn:de:xta:messageid:1";
+
+		@Mock
+		private AttributedURIType messageId;
+		@Mock
+		private PartyType authorIdentifier;
+		@Mock
+		private XtaTransportReport xtaTransportReport;
+
+		private XtaGetTransportReportRequest request;
+
+		@BeforeEach
+		void beforeEach() {
+			request = XtaGetTransportReportRequest.builder()
+					.messageId(MESSAGE_ID)
+					.clientIdentifier(XtaMessageMetaDataTestFactory.READER_IDENTIFIER)
+					.build();
+
+			when(requestMapper.mapXtaGetTransportReportRequest(messageId, authorIdentifier)).thenReturn(request);
+		}
+
+		@DisplayName("with valid request")
+		@Nested
+		class TestWithValidRequest {
+			@BeforeEach
+			void beforeEach() {
+				when(xtaMessageService.getTransportReport(request)).thenReturn(Optional.of(xtaTransportReport));
+				when(responseMapper.mapTransportReport(xtaTransportReport)).thenReturn(TRANSPORT_REPORT);
+			}
+
+			@DisplayName("should return")
+			@Test
+			void shouldReturn() {
+				var result = getTransportReport();
+
+				assertThat(result).contains(TRANSPORT_REPORT);
+			}
+		}
+
+		@DisplayName("with Invalid message id")
+		@Nested
+		class TestWithInvalidMessageId {
+			@Mock
+			private InvalidMessageIDException exception;
+
+			@DisplayName("should throw exception")
+			@Test
+			void shouldThrowException() {
+				when(xtaMessageService.getTransportReport(request)).thenReturn(Optional.empty());
+				when(exceptionMapper.createInvalidMessageIDException(any())).thenReturn(exception);
+
+			}
+		}
+
+		@SneakyThrows
+		private TransportReport getTransportReport() {
+			return managementPortImpl.getTransportReport(messageId, authorIdentifier);
+		}
+	}
 }
\ No newline at end of file