diff --git a/src/app/document/controllers/DocumentController.php b/src/app/document/controllers/DocumentController.php
index 61f1f22b2a6eed5927ac8902e1ebacb6069ee364..c21afcf931a7e1c4c42cea2ba6e731acdc58fcdc 100755
--- a/src/app/document/controllers/DocumentController.php
+++ b/src/app/document/controllers/DocumentController.php
@@ -1067,14 +1067,8 @@ class DocumentController
                 $docserver          = DocserverModel::getByType(['type' => 'ESIGN', 'select' => ['path']]);
                 $pathToDocument     = $docserver['path'] . $adr[0]['path'] . $adr[0]['filename'];
 
-                if ($loadedXml->metaSignSignature->enable == 'true') {
-                    $adr = AdrModel::getDocumentsAdr([
-                        'select'  => ['path', 'filename'],
-                        'where'   => ['main_document_id = ?', 'type = ?'],
-                        'data'    => [$args['id'], 'DOC']
-                    ]);
-                    $docserver          = DocserverModel::getByType(['type' => 'DOC', 'select' => ['path']]);
-                    $pathToDocument     = $docserver['path'] . $adr[0]['path'] . $adr[0]['filename'];
+                if ($loadedXml->metaSignSignature->enable == 'true' && $workflow['signature_mode'] == 'eidas_metasign') {
+                    $pathToDocument = MetaSignSignatureController::getDocumentPath(['documentId' => (int) $args['id']]);
                 }
                 $tmpPath            = CoreConfigModel::getTmpPath();
                 $signedDocumentPath = $tmpPath . $GLOBALS['id'] . '_' . rand() . '_signedDocument.pdf';
@@ -1114,7 +1108,7 @@ class DocumentController
                                     $signPosX  = ($signature['positionX'] * $format['width']) / 100;
                                     $signPosY  = ($signature['positionY'] * $format['height']) / 100;
                                 }
-                                if ($loadedXml->docaposteSignature->enable == 'true') {
+                                if ($loadedXml->docaposteSignature->enable == 'true' && !empty($workflow['digital_signature_id'])) {
                                     $return = DigitalSignatureController::signHashes([
                                         'signatureId'   => $workflow['digital_signature_id'],
                                         'documentId'    => $args['id'],
@@ -1127,7 +1121,7 @@ class DocumentController
                                         ],
                                         'isLastSignature' => !isset($body['signatures'][$key + 1])
                                     ]);
-                                } else if ($loadedXml->metaSignSignature->enable == 'true') {
+                                } else if ($loadedXml->metaSignSignature->enable == 'true' && $workflow['signature_mode'] == 'eidas_metasign') {
                                     $return = MetaSignSignatureController::signDocument([
                                         'documentId'    => (int) $args['id'],
                                         'signatureInfo' => [
@@ -1148,19 +1142,23 @@ class DocumentController
                         }
                     }
                 }
-                if (!$imageSignature && $loadedXml->docaposteSignature->enable == 'true') {
+                if (!$imageSignature && $loadedXml->docaposteSignature->enable == 'true' && !empty($workflow['digital_signature_id'])) {
                     $return = DigitalSignatureController::signHashes(['signatureId' => $workflow['digital_signature_id'], 'documentId' => $args['id'], 'isLastSignature' => true]);
                     if (!empty($return['errors'])) {
                         return $response->withStatus(400)->withJson($return);
                     }
                 }
-                if (!$imageSignature && $loadedXml->metaSignSignature->enable == 'true') {
+                if (!$imageSignature && $loadedXml->metaSignSignature->enable == 'true' && $workflow['signature_mode'] == 'eidas_metasign') {
                     $return = MetaSignSignatureController::signDocument(['documentId' => (int) $args['id'], 'isLastSignature' => true]);
                     if (!empty($return['errors'])) {
                         return $response->withStatus($return['code'])->withJson(['errors' => $return['errors']]);
                     }
                 }
-            } elseif (DocumentController::ACTIONS[$args['actionId']] == 'REF' && $workflow['mode'] == 'sign' && $loadedXml->docaposteSignature->enable == 'true') {
+            } elseif (DocumentController::ACTIONS[$args['actionId']] == 'REF' && 
+                $workflow['mode'] == 'sign' && 
+                $loadedXml->docaposteSignature->enable == 'true' && 
+                !empty($workflow['digital_signature_id'])) {
+
                 $return = DigitalSignatureController::abort(['signatureId' => $workflow['digital_signature_id'], 'documentId' => $args['id']]);
                 if (!empty($return['errors'])) {
                     return $response->withStatus(400)->withJson($return);