diff --git a/src/main/java/de/ozgcloud/xta/test/app/mapper/ResponseMapper.java b/src/main/java/de/ozgcloud/xta/test/app/mapper/ResponseMapper.java
index 44b84a51228f55e941a15002a6490afffc2567df..e070ac27ad8f41b7acfe0f38f32223634a562942 100644
--- a/src/main/java/de/ozgcloud/xta/test/app/mapper/ResponseMapper.java
+++ b/src/main/java/de/ozgcloud/xta/test/app/mapper/ResponseMapper.java
@@ -5,32 +5,14 @@ import java.math.BigInteger;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.List;
-
 import javax.xml.datatype.DatatypeFactory;
 import javax.xml.datatype.XMLGregorianCalendar;
 
-import jakarta.activation.DataHandler;
-import jakarta.activation.FileDataSource;
-
-import org.apache.cxf.ws.addressing.AttributedURIType;
-import org.mapstruct.Condition;
-import org.mapstruct.Mapper;
-import org.mapstruct.Mapping;
-import org.mapstruct.Named;
-import org.mapstruct.ReportingPolicy;
-import org.mapstruct.SourcePropertyName;
-import org.mapstruct.TargetPropertyName;
-
-import de.ozgcloud.xta.test.app.model.XtaFile;
-import de.ozgcloud.xta.test.app.model.XtaIdentifier;
-import de.ozgcloud.xta.test.app.model.XtaLookupServiceRequest;
-import de.ozgcloud.xta.test.app.model.XtaMessage;
-import de.ozgcloud.xta.test.app.model.XtaMessageMetaData;
-import de.ozgcloud.xta.test.app.model.XtaMessageMetaDataListing;
 import genv3.de.xoev.transport.xta.x211.ContentType;
 import genv3.de.xoev.transport.xta.x211.GenericContentContainer;
 import genv3.de.xoev.transport.xta.x211.LookupServiceResponse;
 import genv3.de.xoev.transport.xta.x211.LookupServiceResultType;
+import genv3.de.xoev.transport.xta.x211.TransportReport;
 import genv3.eu.osci.ws.x2008.x05.transport.MsgBoxResponseType;
 import genv3.eu.osci.ws.x2008.x05.transport.MsgStatusListType;
 import genv3.eu.osci.ws.x2014.x10.transport.DeliveryAttributesType;
@@ -38,7 +20,13 @@ import genv3.eu.osci.ws.x2014.x10.transport.KeyCodeType;
 import genv3.eu.osci.ws.x2014.x10.transport.MessageMetaData;
 import genv3.eu.osci.ws.x2014.x10.transport.PartyIdentifierType;
 import genv3.eu.osci.ws.x2014.x10.transport.QualifierType;
+import jakarta.activation.DataHandler;
+import jakarta.activation.FileDataSource;
 import lombok.SneakyThrows;
+import org.apache.cxf.ws.addressing.AttributedURIType;
+import org.mapstruct.*;
+
+import de.ozgcloud.xta.test.app.model.*;
 
 @Mapper(
 		unmappedTargetPolicy = ReportingPolicy.ERROR,
@@ -65,7 +53,7 @@ public interface ResponseMapper {
 	@Mapping(target = "destinations.reader.identifier", source = "readerIdentifier")
 	@Mapping(target = "msgSize", source = "messageSize")
 	@Mapping(target = "testMsg", ignore = true)
-	@Mapping(target = "deliveryAttributes", expression = "java( createDefaultDeliveryAttributes(createNowXmlGregorianCalendarFromLocalDateTime()) )")
+	@Mapping(target = "deliveryAttributes", expression = "java( createDefaultDeliveryAttributes(createNowXmlGregorianCalendar()) )")
 	@Mapping(target = "messageProperties", ignore = true)
 	MessageMetaData mapMessageMetaData(XtaMessageMetaData xtaMessageMetaData);
 
@@ -127,8 +115,13 @@ public interface ResponseMapper {
 	DeliveryAttributesType createDefaultDeliveryAttributes(XMLGregorianCalendar timestamp);
 
 	@SneakyThrows
-	default XMLGregorianCalendar createNowXmlGregorianCalendarFromLocalDateTime() {
-		var isoTimeString = DateTimeFormatter.ISO_DATE_TIME.format(LocalDateTime.now());
+	default XMLGregorianCalendar createNowXmlGregorianCalendar() {
+		return mapXmlGregorianCalendarFromLocalDateTime(LocalDateTime.now());
+	}
+
+	@SneakyThrows
+	default XMLGregorianCalendar mapXmlGregorianCalendarFromLocalDateTime(LocalDateTime localDateTime) {
+		var isoTimeString = DateTimeFormatter.ISO_DATE_TIME.format(localDateTime);
 		return DatatypeFactory.newInstance().newXMLGregorianCalendar(isoTimeString);
 	}
 
@@ -177,6 +170,14 @@ public interface ResponseMapper {
 	@Mapping(target = "lookupServiceResultList.lookupServiceResult", expression = "java( List.of( mapLookupServiceResultType(xtaLookupServiceRequest) ) )")
 	LookupServiceResponse mapLookupServiceResponse(XtaLookupServiceRequest xtaLookupServiceRequest);
 
+	@Mapping(target = "messageMetaData", source = "messageMetaData")
+	@Mapping(target = "reportTime", source = "reportTime")
+	@Mapping(target = "XTAServerIdentity", constant = "xta-test-server")
+	@Mapping(target = "messageStatus.status", expression = "java( BigInteger.valueOf(xtaTransportReport.status().ordinal()) )")
+	@Mapping(target = "additionalReports", ignore = true)
+	@Mapping(target = "signature", ignore = true)
+	TransportReport mapTransportReport(XtaTransportReport xtaTransportReport);
+
 	@Mapping(target = "otherAttributes", ignore = true)
 	AttributedURIType mapCreateMessageIdResponse(String value);
 }
diff --git a/src/test/java/de/ozgcloud/xta/test/app/mapper/ResponseMapperTest.java b/src/test/java/de/ozgcloud/xta/test/app/mapper/ResponseMapperTest.java
index fee8821f41034c3b4506724114dfcecec86e94b7..59595411fe9674228f2f4b167bed53f0d573b0a5 100644
--- a/src/test/java/de/ozgcloud/xta/test/app/mapper/ResponseMapperTest.java
+++ b/src/test/java/de/ozgcloud/xta/test/app/mapper/ResponseMapperTest.java
@@ -1,20 +1,33 @@
 package de.ozgcloud.xta.test.app.mapper;
 
-import static de.ozgcloud.xta.test.app.factory.MessageMetaDataTestFactory.*;
-import static de.ozgcloud.xta.test.app.factory.PartyIdentifierTypeTestFactory.*;
-import static de.ozgcloud.xta.test.app.factory.XtaLookupServiceRequestTestFactory.*;
+import static de.ozgcloud.xta.test.app.factory.MessageMetaDataTestFactory.MESSAGE_SIZE;
+import static de.ozgcloud.xta.test.app.factory.PartyIdentifierTypeTestFactory.READER_PARTY_IDENTIFIER;
+import static de.ozgcloud.xta.test.app.factory.XtaLookupServiceRequestTestFactory.LOOKUP_SERVICE_SERVICE;
 import static de.ozgcloud.xta.test.app.factory.XtaMessageMetaDataTestFactory.*;
 import static de.ozgcloud.xta.test.app.mapper.ResponseMapper.*;
-import static org.assertj.core.api.Assertions.*;
+import static org.assertj.core.api.Assertions.assertThat;
 
 import java.math.BigInteger;
 import java.nio.charset.StandardCharsets;
+import java.time.LocalDateTime;
 import java.util.List;
+import javax.xml.datatype.DatatypeConstants;
 
+import genv3.de.xoev.transport.xta.x211.ContentType;
+import genv3.de.xoev.transport.xta.x211.LookupServiceResponse;
+import genv3.de.xoev.transport.xta.x211.LookupServiceResultType;
+import genv3.de.xoev.transport.xta.x211.TransportReport;
+import genv3.eu.osci.ws.x2008.x05.transport.MsgStatusListType;
+import genv3.eu.osci.ws.x2014.x10.transport.DeliveryAttributesType;
+import genv3.eu.osci.ws.x2014.x10.transport.MessageMetaData;
+import genv3.eu.osci.ws.x2014.x10.transport.QualifierType;
+import lombok.SneakyThrows;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.EnumSource;
 import org.mapstruct.factory.Mappers;
 
 import de.ozgcloud.xta.test.app.factory.XtaFileTestFactory;
@@ -22,15 +35,9 @@ import de.ozgcloud.xta.test.app.factory.XtaLookupServiceRequestTestFactory;
 import de.ozgcloud.xta.test.app.factory.XtaMessageMetaDataTestFactory;
 import de.ozgcloud.xta.test.app.factory.XtaMessageTestFactory;
 import de.ozgcloud.xta.test.app.model.XtaFile;
+import de.ozgcloud.xta.test.app.model.XtaMessageMetaData;
 import de.ozgcloud.xta.test.app.model.XtaMessageMetaDataListing;
-import genv3.de.xoev.transport.xta.x211.ContentType;
-import genv3.de.xoev.transport.xta.x211.LookupServiceResponse;
-import genv3.de.xoev.transport.xta.x211.LookupServiceResultType;
-import genv3.eu.osci.ws.x2008.x05.transport.MsgStatusListType;
-import genv3.eu.osci.ws.x2014.x10.transport.DeliveryAttributesType;
-import genv3.eu.osci.ws.x2014.x10.transport.MessageMetaData;
-import genv3.eu.osci.ws.x2014.x10.transport.QualifierType;
-import lombok.SneakyThrows;
+import de.ozgcloud.xta.test.app.model.XtaTransportReport;
 
 public class ResponseMapperTest {
 
@@ -481,4 +488,87 @@ public class ResponseMapperTest {
 		}
 	}
 
+	@DisplayName("map transport report")
+	@Nested
+	class TestMapTransportReport {
+		private XtaMessageMetaData xtaMessageMetaData;
+		private LocalDateTime reportTime;
+
+		@BeforeEach
+		void beforeEach() {
+			xtaMessageMetaData = XtaMessageMetaDataTestFactory.create();
+			reportTime = LocalDateTime.now();
+		}
+
+		@DisplayName("should map message meta data")
+		@Test
+		void shouldMapMessageMetaData() {
+			var result = doMapping();
+
+			assertThat(result.getMessageMetaData().getMsgIdentification().getMessageID().getValue()).isEqualTo(xtaMessageMetaData.messageId());
+		}
+
+		@DisplayName("should map message status")
+		@ParameterizedTest
+		@EnumSource(XtaTransportReport.MessageStatus.class)
+		void shouldMapMessageStatus(XtaTransportReport.MessageStatus status) {
+			var result = doMapping(status);
+
+			assertThat(result.getMessageStatus().getStatus()).isEqualTo(status.ordinal());
+		}
+
+		@DisplayName("should map report time")
+		@Test
+		void shouldMapReportTime() {
+			var result = doMapping();
+
+			assertThat(result.getReportTime()).isEqualTo(mapper.mapXmlGregorianCalendarFromLocalDateTime(reportTime));
+		}
+
+		@DisplayName("should set server identity")
+		@Test
+		void shouldSetServerIdentity() {
+			var result = doMapping();
+
+			assertThat(result.getXTAServerIdentity()).isEqualTo("xta-test-server");
+		}
+
+		private TransportReport doMapping() {
+			return doMapping(XtaTransportReport.MessageStatus.GRUEN);
+		}
+
+		private TransportReport doMapping(XtaTransportReport.MessageStatus status) {
+			return mapper.mapTransportReport(XtaTransportReport.builder()
+					.messageMetaData(xtaMessageMetaData)
+					.status(status)
+					.reportTime(reportTime)
+					.build());
+		}
+	}
+
+	@DisplayName("map XmlGregorianCalendar from LocalDateTime")
+	@Nested
+	class TestMapXmlGregorianCalendarFromLocalDateTime {
+		private LocalDateTime localDateTime;
+
+		@BeforeEach
+		void beforeEach() {
+			localDateTime = LocalDateTime.parse("2007-12-03T10:15:30");
+		}
+
+		@DisplayName("should map xml gregorian calendar from local date time")
+		@Test
+		void shouldMapXmlGregorianCalendarFromLocalDateTime() {
+			var result = mapper.mapXmlGregorianCalendarFromLocalDateTime(localDateTime);
+
+			assertThat(result.getDay()).isEqualTo(3);
+			assertThat(result.getMonth()).isEqualTo(12);
+			assertThat(result.getYear()).isEqualTo(2007);
+			assertThat(result.getEon() == null || result.getEon().equals(BigInteger.ZERO)).isTrue();
+			assertThat(result.getHour()).isEqualTo(10);
+			assertThat(result.getMinute()).isEqualTo(15);
+			assertThat(result.getSecond()).isEqualTo(30);
+			assertThat(result.getTimezone()).isEqualTo(DatatypeConstants.FIELD_UNDEFINED);
+		}
+	}
 }