diff --git a/README.md b/README.md
index 54406c840b3725ff14f8349a80ba94e34ebd3eb3..72b950985b76b704510d4cb7705fbfaa22a614a9 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,7 @@ Er wird als Maven-Artefakt `xta-client-lib` bereitgestellt und kann in Java-Anwe
 ## Senden einer Nachricht
 Zum Senden einer Nachricht konfiguriert die Nutzer*in einen neuen XTA-Client mit einem Client-Zertifikat, welches ihn für das Senden mit einer Autor-Kennung autorisiert.
 
-Beim Aufruf von `sendMessage` wird die Nachricht an den XTA-Server übergeben und der Transport-Report zurückgegeben.
+Mit einem Aufruf von `sendMessage` wird eine Nachricht an den XTA-Server übergeben und der Transport-Report zurückgegeben.
 ```mermaid
 %% Senden einer Nachricht
   sequenceDiagram
@@ -75,7 +75,7 @@ var message = XtaMessage.builder()
                 .messageTypePayloadSchema("urn:xoev-de:xdomea:schema:2.4.0")
                 .authorIdentifier(XtaIdentifier.builder()
                         .category("Generischer Antragsdienst")
-                        .value("gad:010103000000")
+                        .value("gad:010200100000")
                         .build())
                 .readerIdentifier(XtaIdentifier.builder()
                         .category("Generischer Antragsempfänger")
@@ -91,6 +91,36 @@ var transportReport = client.sendMessage(message);
 assert transportReport.status() == XtaMessageStatus.OPEN;
 ```
 
+Da eine Xdomea-Nachricht die Leser- und Autor-Kennungen bereits enthält, ist es möglich aus der Xdomea-ZIP-Datei die Metadaten der XTA-Nachricht abzuleiten:
+
+```java
+// ...
+// (2) Nachricht erzeugen
+// ...
+var message = XdomeaXtaMessageCreator.createInstance().createMessage(xdomeaXtaFile);
+// (3) Nachricht senden
+var transportReport = client.sendMessage(message);
+// ...
+```
+
+Hierbei wird die Xta-Autor-Kennung aus dem *Xdomea-Absender-Kennung/Behoerdenschluessel* gelesen und die Xta-Leser-Kennung aus dem *Xdomea-Empfaenger-Kennung/Behoerdenschluessel*.
+
+### Validierung der Xdomea-ZIP-Datei
+Wenn eine `XtaMessage` für eine Xdomea-ZIP-Datei mit `XdomeaXtaMessageCreator::createMessage` erstellt wird, wird zudem geprüft, ob die Nachricht die ["Transportfestlegungen Generischer Antragsdienst"](Transportfestlegungen%20Generischer%20Antragsdienst.pdf) einhält.
+
+Für eine erfolgreiche Validierung muss eine Xdomea-ZIP-Datei muss folgende Bedingungen erfüllen:
+- Der ZIP-Dateiname ist `<ProzessID>_<Nachrichtentyp>.zip` (z.B. `00000000-0000-0000-0000-_Geschaeftsgang.Geschaeftsgang.0201.zip`)
+    - Die ProzessID in der Xdomea-Nachricht entspricht der ProzessID im Dateinamen
+- Die Xdomea-Nachricht `<ProzessID>_<Nachrichtentyp>.xml` in der ZIP-Datei ist schema-konform.
+- Der Xdomea-Nachrichten-Typ ist zulässig:
+    - `Geschaeftsgang.Geschaeftsgang.0201` mit Xdomea 2.4.0
+    - `Abgabe.Abgabe.0401` mit Xdomea 3.0.0
+    - `Abgabe.ImportBestaetigen.0402` mit Xdomea 3.0.0
+- Alle Dateien, die die Xdomea-Nachricht referenziert, sind in der ZIP-Datei enthalten. 
+- Eine Absender-Kennung ist vorhanden mit dem Präfix `gad`
+- Eine Empfänger-Kennung ist vorhanden mit dem Präfix `gae`
+
+<small>Hinweis: Die Xdomea-Nachricht sollte mit UTF-8 kodiert sein.</small>
 
 ## Empfangen von Nachrichten
 Zum Empfangen von Nachrichten konfiguriert die Nutzer*in einen neuen XTA-Client mit den gewünschten Leser-Kennungen. Zudem konfiguriert er das Client-Zertifikat, welches ihn zum Lesen mit den Leser-Kennungen autorisiert.
diff --git a/Transportfestlegungen Generischer Antragsdienst.pdf b/Transportfestlegungen Generischer Antragsdienst.pdf
new file mode 100755
index 0000000000000000000000000000000000000000..3d0d632d76ab26beb10d662b86bec919a53d9603
Binary files /dev/null and b/Transportfestlegungen Generischer Antragsdienst.pdf differ
diff --git a/src/main/java/de/ozgcloud/xta/client/XtaClient.java b/src/main/java/de/ozgcloud/xta/client/XtaClient.java
index 38a4161c1ae6bcc23441110495031267f0e9acc5..88f247e18027c0112507f0186abc38d628c98df7 100644
--- a/src/main/java/de/ozgcloud/xta/client/XtaClient.java
+++ b/src/main/java/de/ozgcloud/xta/client/XtaClient.java
@@ -13,9 +13,9 @@ import jakarta.validation.constraints.NotNull;
 import de.ozgcloud.xta.client.config.XtaClientConfig;
 import de.ozgcloud.xta.client.core.XtaClientService;
 import de.ozgcloud.xta.client.core.XtaExceptionHandler;
-import de.ozgcloud.xta.client.exception.XtaClientRuntimeException;
 import de.ozgcloud.xta.client.exception.XtaClientException;
 import de.ozgcloud.xta.client.exception.XtaClientInitializationException;
+import de.ozgcloud.xta.client.exception.XtaClientRuntimeException;
 import de.ozgcloud.xta.client.model.XtaIdentifier;
 import de.ozgcloud.xta.client.model.XtaMessage;
 import de.ozgcloud.xta.client.model.XtaMessageMetaData;
@@ -200,13 +200,14 @@ public class XtaClient {
 	 * reader. If both checks pass, sends the message to the reader. Finally, returns the transport report for the sent message.
 	 * </p>
 	 * <p>
-	 * <b>Note:</b> message size and id are set by the server, and thus may initially be null. This applies to the message metadata as well as
-	 * to the message and attachment files.
+	 * <b>Note:</b> message size and id are set by the server, and thus may initially be null. This also applies to the size of message and attachment
+	 * files.
 	 * </p>
 	 *
-	 * @param messageWithoutMessageId The message to send without id and size.
-	 * @return The transport report for the sent message. As long as the reader did not read the message the status is {@link XtaMessageStatus#OPEN}.
-	 * Moreover, the report contains the message metadata, including id and size values set by the server.
+	 * @param messageWithoutMessageId The XTA message to send without id and size.
+	 * @return The transport report for the sent message. As long as no critical error occurred, indicated by status {@link XtaMessageStatus#RED RED},
+	 * the message the status is {@link XtaMessageStatus#OPEN OPEN}, until the reader closes the message. Moreover, the report contains the message
+	 * metadata, including id and size values set by the server.
 	 * @throws XtaClientException If a check fails or a technical problem occurs while sending the message.
 	 */
 	public XtaTransportReport sendMessage(@NotNull @Valid XtaMessage messageWithoutMessageId) throws XtaClientException {