diff --git a/rest/index.php b/rest/index.php
index d5096b871e14f080d4a5fd2569c0012f2db5d706..2e486d22803105346c699f773e1e6cc9d10f7b85 100755
--- a/rest/index.php
+++ b/rest/index.php
@@ -537,6 +537,7 @@ $app->post('/scriptNotification', \Notification\controllers\NotificationSchedule
 
 //External MessageExchanges
 $app->get('/messageExchanges/{id}', \MessageExchange\controllers\MessageExchangeController::class . ':getById');
+$app->get('/messageExchanges/{id}/archiveContent', \MessageExchange\controllers\MessageExchangeController::class . ':getArchiveContentById');
 $app->post('/saveNumericPackage', \MessageExchange\controllers\ReceiveMessageExchangeController::class . ':saveMessageExchange');
 $app->post('/saveMessageExchangeReturn', \MessageExchange\controllers\ReceiveMessageExchangeController::class . ':saveMessageExchangeReturn');
 $app->post('/saveMessageExchangeReview', \MessageExchange\controllers\MessageExchangeReviewController::class . ':saveMessageExchangeReview');
diff --git a/src/app/external/messageExchange/controllers/MessageExchangeController.php b/src/app/external/messageExchange/controllers/MessageExchangeController.php
index 1dd2aca52e705a8c6b9e9fa4116acf5c764373b4..145c5f7102f27d8e25deadc238a36892d5e3c515 100644
--- a/src/app/external/messageExchange/controllers/MessageExchangeController.php
+++ b/src/app/external/messageExchange/controllers/MessageExchangeController.php
@@ -14,6 +14,7 @@
 
 namespace MessageExchange\controllers;
 
+use Docserver\models\DocserverModel;
 use MessageExchange\models\MessageExchangeModel;
 use Resource\controllers\ResController;
 use Respect\Validation\Validator;
@@ -188,4 +189,37 @@ class MessageExchangeController
 
         return $response->withJson(['messageExchange' => $messageExchange]);
     }
+
+    public static function getArchiveContentById(Request $request, Response $response, array $args)
+    {
+        if (!Validator::stringType()->validate($args['id'])) {
+            return $response->withStatus(400)->withJson(['errors' => 'Query param id is not a string']);
+        }
+
+        $message = MessageExchangeModel::getMessageByIdentifier([
+            'select'    => ['docserver_id', 'path', 'filename', 'res_id_master'],
+            'messageId' => $args['id']
+        ]);
+        if (empty($message)) {
+            return $response->withStatus(400)->withJson(['errors' => 'Message not found']);
+        }
+
+        if (empty($message['res_id_master']) || !ResController::hasRightByResId(['resId' => [$message['res_id_master']], 'userId' => $GLOBALS['id']])) {
+            return $response->withStatus(403)->withJson(['errors' => 'Document out of perimeter']);
+        }
+
+        $docserver = DocserverModel::getByDocserverId(['docserverId' => $message['docserver_id'], 'select' => ['path_template', 'docserver_type_id']]);
+        if (empty($docserver['path_template']) || !file_exists($docserver['path_template'])) {
+            return $response->withStatus(400)->withJson(['errors' => 'Docserver does not exist']);
+        }
+
+        $pathToDocument = $docserver['path_template'] . str_replace('#', DIRECTORY_SEPARATOR, $message['path']) . $message['filename'];
+        if (!file_exists($pathToDocument)) {
+            return $response->withStatus(400)->withJson(['errors' => 'Document not found on docserver']);
+        }
+
+        $fileContent = file_get_contents($pathToDocument);
+
+        return $response->withJson(['encodedArchive' => base64_encode($fileContent)]);
+    }
 }