diff --git a/apps/maarch_entreprise/xml/m2m_config.xml b/apps/maarch_entreprise/xml/m2m_config.xml
index eecd51118c844dec015563bd63f7510c92a4e51a..1603a4916481f62c22fb3016d15de5c80b0772a2 100755
--- a/apps/maarch_entreprise/xml/m2m_config.xml
+++ b/apps/maarch_entreprise/xml/m2m_config.xml
@@ -4,11 +4,11 @@
         <type_id>101</type_id>
         <status>NUMQUAL</status>
         <priority>poiuytre1357nbvc</priority>
+        <indexingModelId>1</indexingModelId>
     </res_letterbox>
     <res_attachments>
         <attachment_type>simple_attachment</attachment_type>
     </res_attachments>
     <basketRedirection_afterUpload>NumericBasket</basketRedirection_afterUpload><!--basketId-->
-    <indexingModelId>1</indexingModelId>
     <m2m_communication>https://cchaplin:maarch@demo.maarchcourrier.com</m2m_communication><!--moyen de communication de l'instance : email ou uri -->
 </ROOT>
diff --git a/apps/maarch_entreprise/xml/m2m_config.xml.default b/apps/maarch_entreprise/xml/m2m_config.xml.default
index e094c7b6febb80c847482f9298358b3fe5f12d41..9141af1e0b8b973a5ef3120f6083aba7783e7769 100644
--- a/apps/maarch_entreprise/xml/m2m_config.xml.default
+++ b/apps/maarch_entreprise/xml/m2m_config.xml.default
@@ -4,6 +4,7 @@
         <type_id>101</type_id>
         <status>NUMQUAL</status>
         <priority>poiuytre1357nbvc</priority>
+        <indexingModelId>1</indexingModelId>
     </res_letterbox>
     <res_attachments>
         <attachment_type>simple_attachment</attachment_type>
diff --git a/migration/20.03/migrateM2MConfiguration.php b/migration/20.03/migrateM2MConfiguration.php
index 94dd0479eee14f90808bd0264fcebd5aadef65e9..1967cb6cff42a997d9d3251b3cf3ddae0c3d9fd0 100644
--- a/migration/20.03/migrateM2MConfiguration.php
+++ b/migration/20.03/migrateM2MConfiguration.php
@@ -17,7 +17,7 @@ foreach ($customs as $custom) {
         $xmlfile = simplexml_load_file($path);
 
         if ($xmlfile) {
-            $xmlfile->indexingModelId = 1;
+            $xmlfile->res_letterbox->indexingModelId = 1;
             unset($xmlfile->contacts_v2);
             unset($xmlfile->contact_addresses);
 
diff --git a/src/app/external/messageExchange/controllers/MessageExchangeReviewController.php b/src/app/external/messageExchange/controllers/MessageExchangeReviewController.php
index 3aad8aceb085d048863b49ebb0c58e2dbed1e7a6..4fbba2cbfe64e8d11b6eb4438e3969c15cbb309b 100755
--- a/src/app/external/messageExchange/controllers/MessageExchangeReviewController.php
+++ b/src/app/external/messageExchange/controllers/MessageExchangeReviewController.php
@@ -141,11 +141,10 @@ class MessageExchangeReviewController
             MessageExchangeModel::updateOperationDateMessage(['operation_date' => $dataObject->Date, 'message_id' => $messageExchange['message_id']]);
         }
 
-        $messageExchangeSaved = SendMessageExchangeController::saveMessageExchange(['dataObject' => $dataObject, 'res_id_master' => $messageExchange['res_id_master'], 'type' => 'ArchiveModificationNotification']);
+        $messageExchangeSaved = SendMessageExchangeController::saveMessageExchange(['dataObject' => $dataObject, 'res_id_master' => $messageExchange['res_id_master'], 'type' => 'ArchiveModificationNotification', 'userId' => $GLOBALS['userId']]);
 
         return $response->withJson([
             'messageId' => $messageExchangeSaved['messageId'],
         ]);
     }
-
 }
diff --git a/src/app/external/messageExchange/controllers/ReceiveMessageExchangeController.php b/src/app/external/messageExchange/controllers/ReceiveMessageExchangeController.php
index a120bd18a513ecffa9d30b4ef047eeb481541bd2..23e8e8a9e94fbefdaf729d6b7442d234a0fbb8bf 100755
--- a/src/app/external/messageExchange/controllers/ReceiveMessageExchangeController.php
+++ b/src/app/external/messageExchange/controllers/ReceiveMessageExchangeController.php
@@ -131,7 +131,7 @@ class ReceiveMessageExchangeController
             $basketRedirection = 'index.php';
         }
 
-        self::sendReply(['dataObject' => $sDataObject, 'Comment' => self::$aComments, 'replyCode' => '000 : OK', 'res_id_master' => $resLetterboxReturn]);
+        self::sendReply(['dataObject' => $sDataObject, 'Comment' => self::$aComments, 'replyCode' => '000 : OK', 'res_id_master' => $resLetterboxReturn, 'userId' => $GLOBALS['userId']]);
 
         return $response->withJson([
             "resId"             => $resLetterboxReturn,
@@ -240,26 +240,26 @@ class ReceiveMessageExchangeController
         $dataValue = [];
         $user      = UserModel::getByLogin(['login' => 'superadmin', 'select' => ['id']]);
         $entityId  = EntityModel::getByEntityId(['entityId' => $destination[0]['entity_id'], 'select' => ['id']]);
-        array_push($dataValue, ['typist'           => $user['id']]);
-        array_push($dataValue, ['doctype'          => $defaultConfig['type_id']]);
-        array_push($dataValue, ['subject'          => str_replace("[CAPTUREM2M]", "", $mainDocumentMetaData->Title[0])]);
-        array_push($dataValue, ['documentDate'     => $mainDocumentMetaData->CreatedDate]);
-        array_push($dataValue, ['destination'      => $entityId['id']]);
-        array_push($dataValue, ['initiator'        => $entityId['id']]);
-        array_push($dataValue, ['diffusionList'    => ['id' => $destUser[0]['user_id'], 'type' => 'user', 'mode' => 'dest']]);
-        array_push($dataValue, ['externalId'       => ['m2m' => $dataObject->MessageIdentifier->value]]);
-        array_push($dataValue, ['priority'         => $defaultConfig['priority']]);
-        array_push($dataValue, ['confidentiality'  => false]);
-        array_push($dataValue, ['chrono'           => true]);
+        $dataValue['typist']           = $user['id'];
+        $dataValue['doctype']          = $defaultConfig['type_id'];
+        $dataValue['subject']          = str_replace("[CAPTUREM2M]", "", $mainDocumentMetaData->Title[0]);
+        $dataValue['documentDate']     = $mainDocumentMetaData->CreatedDate;
+        $dataValue['destination']      = $entityId['id'];
+        $dataValue['initiator']        = $entityId['id'];
+        $dataValue['diffusionList']    = ['id' => $destUser[0]['user_id'], 'type' => 'user', 'mode' => 'dest'];
+        $dataValue['externalId']       = ['m2m' => $dataObject->MessageIdentifier->value];
+        $dataValue['priority']         = $defaultConfig['priority'];
+        $dataValue['confidentiality']  = false;
+        $dataValue['chrono']           = true;
         $date = new \DateTime();
-        array_push($dataValue, ['arrivalDate'  => $date->format('d-m-Y H:i')]);
-        array_push($dataValue, ['encodedFile'  => $documentMetaData->Attachment->value]);
-        array_push($dataValue, ['format'       => $fileFormat]);
-        array_push($dataValue, ['status'       => $defaultConfig['status']]);
-        array_push($dataValue, ['modelId'      => $defaultConfig['indexingModelId']]);
+        $dataValue['arrivalDate']  = $date->format('d-m-Y H:i');
+        $dataValue['encodedFile']  = $documentMetaData->Attachment->value;
+        $dataValue['format']       = $fileFormat;
+        $dataValue['status']       = $defaultConfig['status'];
+        $dataValue['modelId']      = $defaultConfig['indexingModelId'];
 
         $storeResource = StoreController::storeResource($dataValue);
-        if (!empty($storeResource['errors'])) {
+        if (empty($storeResource['errors'])) {
             ResourceContactModel::create(['res_id' => $storeResource, 'item_id' => $aArgs['contact']['id'], 'type' => 'contact', 'mode' => 'sender']);
         }
 
@@ -304,10 +304,11 @@ class ReceiveMessageExchangeController
                 'company'             => $transferringAgencyMetadata->LegalClassification,
                 'external_id'         => json_encode(['m2m' => $transferringAgency->Identifier->value]),
                 'department'          => $transferringAgencyMetadata->Name,
-                'communication_means' => json_encode($aCommunicationMeans)
+                'communication_means' => json_encode($aCommunicationMeans),
+                'creator'               => $GLOBALS['id']
             ];
 
-            $contactId = ContactModel::create(['data' => $aDataContact]);
+            $contactId = ContactModel::create($aDataContact);
             if (empty($contactId)) {
                 $contact = [
                     'returnCode'  => (int) -1,
@@ -437,7 +438,7 @@ class ReceiveMessageExchangeController
         $acknowledgementObject->TransferringAgency->OrganizationDescriptiveMetadata->UserIdentifier = $GLOBALS['userId'];
 
         $acknowledgementObject->MessageIdentifier->value          = $dataObject->MessageIdentifier->value . '_AckSent';
-        $messageExchangeSaved = SendMessageExchangeController::saveMessageExchange(['dataObject' => $acknowledgementObject, 'res_id_master' => 0, 'type' => 'Acknowledgement', 'file_path' => $filePath]);
+        $messageExchangeSaved = SendMessageExchangeController::saveMessageExchange(['dataObject' => $acknowledgementObject, 'res_id_master' => 0, 'type' => 'Acknowledgement', 'file_path' => $filePath, 'userId' => $GLOBALS['userId']]);
 
         $acknowledgementObject->DataObjectPackage = new \stdClass();
         $acknowledgementObject->DataObjectPackage->DescriptiveMetadata = new \stdClass();
@@ -475,7 +476,7 @@ class ReceiveMessageExchangeController
         $replyObject->MessageIdentifier->value          = $dataObject->MessageIdentifier->value . '_Reply';
         $filePath = SendMessageController::generateMessageFile(['messageObject' => $replyObject, 'type' => 'ArchiveTransferReply']);
         $replyObject->MessageIdentifier->value          = $dataObject->MessageIdentifier->value . '_ReplySent';
-        $messageExchangeSaved = SendMessageExchangeController::saveMessageExchange(['dataObject' => $replyObject, 'res_id_master' => $aArgs['res_id_master'], 'type' => 'ArchiveTransferReply', 'file_path' => $filePath]);
+        $messageExchangeSaved = SendMessageExchangeController::saveMessageExchange(['dataObject' => $replyObject, 'res_id_master' => $aArgs['res_id_master'], 'type' => 'ArchiveTransferReply', 'file_path' => $filePath, 'userId' => $aArgs['userId']]);
 
         $replyObject->MessageIdentifier->value          = $dataObject->MessageIdentifier->value . '_Reply';
 
@@ -521,7 +522,7 @@ class ReceiveMessageExchangeController
             $messageExchange = MessageExchangeModel::getMessageByReference(['select' => ['message_id', 'res_id_master'], 'reference' => $dataObject->MessageRequestIdentifier->value]);
         }
 
-        $messageExchangeSaved = SendMessageExchangeController::saveMessageExchange(['dataObject' => $dataObject, 'res_id_master' => $messageExchange['res_id_master'], 'type' => $data['type']]);
+        $messageExchangeSaved = SendMessageExchangeController::saveMessageExchange(['dataObject' => $dataObject, 'res_id_master' => $messageExchange['res_id_master'], 'type' => $data['type'], 'userId' => $GLOBALS['userId']]);
         if (!empty($messageExchangeSaved['error'])) {
             return $response->withStatus(400)->withJson(['errors' => $messageExchangeSaved['error']]);
         }
diff --git a/src/app/external/messageExchange/controllers/SendMessageExchangeController.php b/src/app/external/messageExchange/controllers/SendMessageExchangeController.php
index 4b16892b65af05bc2dcb762ed1a5602e8004bcb9..7552c77fdf02e1e097160ecf385fa0b1f1142e90 100755
--- a/src/app/external/messageExchange/controllers/SendMessageExchangeController.php
+++ b/src/app/external/messageExchange/controllers/SendMessageExchangeController.php
@@ -129,7 +129,7 @@ class SendMessageExchangeController
         }
 
         if (empty($TransferringAgencyInformations)) {
-            return ['errors' => "no sender"];
+            return $response->withStatus(400)->withJson(['errors' => "no sender"]);
         }
 
         $AllInfoMainMail = ResModel::getById(['select' => ['*'], 'resId' => $args['resId']]);
@@ -231,7 +231,7 @@ class SendMessageExchangeController
             $filePath = SendMessageController::generateMessageFile(['messageObject' => $dataObject, 'type' => 'ArchiveTransfer']);
 
             /******** SAVE MESSAGE *********/
-            $messageExchangeReturn = self::saveMessageExchange(['dataObject' => $dataObject, 'res_id_master' => $args['resId'], 'file_path' => $filePath, 'type' => 'ArchiveTransfer']);
+            $messageExchangeReturn = self::saveMessageExchange(['dataObject' => $dataObject, 'res_id_master' => $args['resId'], 'file_path' => $filePath, 'type' => 'ArchiveTransfer', 'userId' => $GLOBALS['userId']]);
             if (!empty($messageExchangeReturn['error'])) {
                 return $response->withStatus(400)->withJson(['errors' => $messageExchangeReturn['error']]);
             } else {