diff --git a/rest/index.php b/rest/index.php
index b8f967d7a68e7d7e30d1b04cb57dd3e84be2a7b4..2e43fcf6c5ff2fc672c993011f1e635197781422 100755
--- a/rest/index.php
+++ b/rest/index.php
@@ -311,6 +311,9 @@ $app->get('/roles', \Entity\controllers\ListTemplateController::class . ':getRol
 $app->get('/availableCircuits', \Entity\controllers\ListTemplateController::class . ':getAvailableCircuits');
 $app->put('/circuits/{type}', \Entity\controllers\ListInstanceController::class . ':updateCircuits');
 
+//MessageExchanges
+$app->get('/messageExchanges/{id}', \MessageExchange\controllers\MessageExchangeController::class . ':getById');
+
 //Notes
 $app->post('/notes', \Note\controllers\NoteController::class . ':create');
 $app->get('/notes/{id}', \Note\controllers\NoteController::class . ':getById');
@@ -365,17 +368,17 @@ $app->get('/resources/{resId}/visaCircuit', \Entity\controllers\ListInstanceCont
 $app->get('/resources/{resId}/opinionCircuit', \Entity\controllers\ListInstanceController::class . ':getOpinionCircuitByResId');
 $app->get('/resources/{resId}/parallelOpinion', \Entity\controllers\ListInstanceController::class . ':getParallelOpinionByResId');
 $app->get('/resources/{resId}/defaultCircuit', \Entity\controllers\ListTemplateController::class . ':getDefaultCircuitByResId');
-$app->delete('/resources/{resId}/circuits/{type}', \Entity\controllers\ListInstanceController::class . ':deleteCircuit');
 $app->get('/resources/{resId}/linkedResources', \Resource\controllers\LinkController::class . ':getLinkedResources');
 $app->post('/resources/{resId}/linkedResources', \Resource\controllers\LinkController::class . ':linkResources');
-$app->delete('/resources/{resId}/linkedResources/{id}', \Resource\controllers\LinkController::class . ':unlinkResources');
 $app->put('/resources/{resId}/sign', \SignatureBook\controllers\SignatureBookController::class . ':signResource');
 $app->put('/resources/{resId}/unsign', \SignatureBook\controllers\SignatureBookController::class . ':unsignResource');
 $app->get('/resources/{resId}/acknowledgementReceipts', \AcknowledgementReceipt\controllers\AcknowledgementReceiptController::class . ':getByResId');
 $app->get('/resources/{resId}/shippings', \Shipping\controllers\ShippingController::class . ':getByResId');
 $app->get('/resources/{resId}/messageExchanges', \MessageExchange\controllers\MessageExchangeController::class . ':getByResId');
 $app->get('/resources/{resId}/emailsInitialization', \Email\controllers\EmailController::class . ':getInitializationByResId');
-$app->get('/messageExchanges/{id}', \MessageExchange\controllers\MessageExchangeController::class . ':getById');
+$app->get('/resources/{resId}/fields/{fieldId}', \Resource\controllers\ResController::class . ':getField');
+$app->delete('/resources/{resId}/linkedResources/{id}', \Resource\controllers\LinkController::class . ':unlinkResources');
+$app->delete('/resources/{resId}/circuits/{type}', \Entity\controllers\ListInstanceController::class . ':deleteCircuit');
 
 $app->put('/res/resource/status', \Resource\controllers\ResController::class . ':updateStatus');
 $app->post('/res/list', \Resource\controllers\ResController::class . ':getList');
diff --git a/src/app/contact/controllers/ContactController.php b/src/app/contact/controllers/ContactController.php
index 912e4889f65e0d79d25d9d8eb7d7d52767b91b20..9fa3b054c845353409dd990753da73533b8a9b51 100755
--- a/src/app/contact/controllers/ContactController.php
+++ b/src/app/contact/controllers/ContactController.php
@@ -438,9 +438,7 @@ class ContactController
         if (!empty($queryParams['redirect'])) {
             if (!Validator::intVal()->validate($queryParams['redirect'])) {
                 return $response->withStatus(400)->withJson(['errors' => 'Query param redirect is not an integer']);
-            }
-
-            if ($queryParams['redirect'] == $args['id']) {
+            } elseif ($queryParams['redirect'] == $args['id']) {
                 return $response->withStatus(400)->withJson(['errors' => 'Cannot redirect to contact you are deleting']);
             }
 
@@ -449,8 +447,6 @@ class ContactController
                 return $response->withStatus(400)->withJson(['errors' => 'Contact does not exist']);
             }
 
-            // Replace contact with redirect
-            // get all res_id linked to contact args['id']
             $resourcesContacts = ResourceContactModel::get([
                 'select' => ['res_id', 'mode'],
                 'where'  => ['item_id = ?', "type = 'contact'"],
@@ -459,8 +455,8 @@ class ContactController
 
             ResourceContactModel::update([
                 'set'   => ['item_id' => $queryParams['redirect']],
-                'where' => ['item_id = ?', "type = 'contact'"],
-                'data'  => [$args['id']]
+                'where' => ['item_id = ?', 'type = ?'],
+                'data'  => [$args['id'], 'contact']
             ]);
 
             // Delete duplicates if needed
@@ -502,7 +498,7 @@ class ContactController
 
         ResourceContactModel::delete([
             'where' => ['item_id = ?', "type = 'contact'"],
-            'data' => [$args['id']]
+            'data'  => [$args['id']]
         ]);
 
         ContactModel::delete([
diff --git a/src/app/resource/controllers/ResController.php b/src/app/resource/controllers/ResController.php
index b88d73418c42d37c8449db255162de036a7e306d..b6ce8c3c4c01cb0c58d09d945b4f50f610fcd9bc 100755
--- a/src/app/resource/controllers/ResController.php
+++ b/src/app/resource/controllers/ResController.php
@@ -814,6 +814,28 @@ class ResController extends ResourceControlController
         return $response->withStatus(204);
     }
 
+    public function getField(Request $request, Response $response, array $args)
+    {
+        if (!ResController::hasRightByResId(['resId' => [$args['resId']], 'userId' => $GLOBALS['id']])) {
+            return $response->withStatus(403)->withJson(['errors' => 'Document out of perimeter']);
+        }
+
+        $authorizedFields = ['destination', 'status'];
+        if (!in_array($args['fieldId'], $authorizedFields)) {
+            return $response->withStatus(403)->withJson(['errors' => 'Field out of perimeter']);
+        }
+
+        $resource = ResModel::getById([
+            'select'    => [$args['fieldId']],
+            'resId'     => $args['resId']
+        ]);
+        if (empty($resource)) {
+            return $response->withStatus(400)->withJson(['errors' => 'Document does not exist']);
+        }
+
+        return $response->withJson(['field' => $resource[$args['fieldId']]]);
+    }
+
     public static function getEncodedDocument(array $aArgs)
     {
         ValidatorModel::notEmpty($aArgs, ['resId']);