diff --git a/src/app/document/controllers/CertificateSignatureController.php b/src/app/document/controllers/CertificateSignatureController.php
index 64c5a19a3dc8baf0ddb5c2a481e82fbcf720f742..81bf148b3b6d95022594abef53f8114349406706 100755
--- a/src/app/document/controllers/CertificateSignatureController.php
+++ b/src/app/document/controllers/CertificateSignatureController.php
@@ -25,9 +25,6 @@ class CertificateSignatureController
 
     public static function getHashedCertificate(array $args)
     {
-        $libDir   = CoreConfigModel::getLibrariesDirectory();
-        require_once($libDir . 'SetaPDF-Signer/library/SetaPDF/Autoload.php');
-
         $adr = AdrModel::getDocumentsAdr([
             'select'  => ['path', 'filename'],
             'where'   => ['main_document_id = ?', 'type = ?'],
@@ -101,8 +98,6 @@ class CertificateSignatureController
 
     public static function signDocument($args = [])
     {
-        $libDir   = CoreConfigModel::getLibrariesDirectory();
-        require_once($libDir . 'SetaPDF-Signer/library/SetaPDF/Autoload.php');
         $certificateSignature = \SetaPDF_Core_Type_HexString::hex2str($args['hashSignature']);
         $signatureContentLength = $args['signatureContentLength'];
         $certificate = $args['certificate'];
diff --git a/src/app/document/controllers/DocumentController.php b/src/app/document/controllers/DocumentController.php
index 2a52aa01c08bae86547752d39abd33643595403e..b18661bfbfd75bc5762e71e1968fa00a9bce2a12 100755
--- a/src/app/document/controllers/DocumentController.php
+++ b/src/app/document/controllers/DocumentController.php
@@ -506,8 +506,12 @@ class DocumentController
         $workflow = WorkflowModel::getCurrentStep(['select' => ['id', 'mode', 'user_id', 'signature_mode', 'digital_signature_id'], 'documentId' => $args['id']]);
         $libDir   = CoreConfigModel::getLibrariesDirectory();
         $loadedXml = CoreConfigModel::getConfig();
-        if ($loadedXml->docaposteSignature->enable == 'true' && $workflow['signature_mode'] == 'eidas' && (empty($libDir) || !is_file($libDir . 'SetaPDF-Signer/library/SetaPDF/Autoload.php'))) {
-            return $response->withStatus(500)->withJson(['errors' => 'SetaPDF-Signer library is not installed', 'lang' => 'setAPdfSignerError']);
+
+        if ($workflow['mode'] == 'sign' && $workflow['signature_mode'] != 'stamp') {
+            if (empty($libDir) || !is_file($libDir . 'SetaPDF-Signer/library/SetaPDF/Autoload.php')) {
+                return $response->withStatus(500)->withJson(['errors' => 'SetaPDF-Signer library is not installed', 'lang' => 'setAPdfSignerError']);
+            }
+            require_once($libDir . 'SetaPDF-Signer/library/SetaPDF/Autoload.php');
         }
 
         $body = $request->getParsedBody();
@@ -695,68 +699,64 @@ class DocumentController
                 ]);
             } elseif (DocumentController::ACTIONS[$args['actionId']] == 'VAL' && $workflow['mode'] == 'sign') {
                 $imageSignature = false;
-                if (!empty($libDir) && is_file($libDir . 'SetaPDF-Signer/library/SetaPDF/Autoload.php')) {
-                    require_once($libDir . 'SetaPDF-Signer/library/SetaPDF/Autoload.php');
-                    
-                    $adr = AdrModel::getDocumentsAdr([
-                        'select'  => ['path', 'filename'],
-                        'where'   => ['main_document_id = ?', 'type = ?'],
-                        'data'    => [$args['id'], 'ESIGN']
-                    ]);
-                    $docserver          = DocserverModel::getByType(['type' => 'ESIGN', 'select' => ['path']]);
-                    $pathToDocument     = $docserver['path'] . $adr[0]['path'] . $adr[0]['filename'];
-                    $tmpPath            = CoreConfigModel::getTmpPath();
-                    $signedDocumentPath = $tmpPath . $GLOBALS['id'] . '_' . rand() . '_signedDocument.pdf';
-                    $writer             = new \SetaPDF_Core_Writer_File($signedDocumentPath);
-                    $document           = \SetaPDF_Core_Document::loadByFilename($pathToDocument, $writer);
-    
-                    $pages = $document->getCatalog()->getPages();
-                    $pageCount = $pages->count();
-    
-                    for ($pageNumber = 1; $pageNumber <= $pageCount; $pageNumber++) {
-                        $page = $pages->getPage($pageNumber);
-    
-                        $format = \SetaPDF_Core_PageFormats::getFormat($page->getWidthAndHeight(), \SetaPDF_Core_PageFormats::ORIENTATION_AUTO);
-                        foreach ($body['signatures'] as $key => $signature) {
-                            if ($signature['page'] == $pageNumber) {
-                                $image = base64_decode($signature['encodedImage']);
-                                if ($image === false) {
-                                    return $response->withStatus(400)->withJson(['errors' => 'base64_decode failed']);
-                                }
-                                
-                                $imageTmpPath = $tmpPath . $GLOBALS['id'] . '_' . rand() . '_writing.png';
-                                if ($signature['type'] == 'SVG') {
-                                    $Imagick = new \Imagick();
-                                    $Imagick->readImageBlob($image);
-                                    $Imagick->setImageFormat("png24");
-                                    $Imagick->writeImage($imageTmpPath);
-                                    $Imagick->clear();
-                                    $Imagick->destroy();
+                $adr = AdrModel::getDocumentsAdr([
+                    'select'  => ['path', 'filename'],
+                    'where'   => ['main_document_id = ?', 'type = ?'],
+                    'data'    => [$args['id'], 'ESIGN']
+                ]);
+                $docserver          = DocserverModel::getByType(['type' => 'ESIGN', 'select' => ['path']]);
+                $pathToDocument     = $docserver['path'] . $adr[0]['path'] . $adr[0]['filename'];
+                $tmpPath            = CoreConfigModel::getTmpPath();
+                $signedDocumentPath = $tmpPath . $GLOBALS['id'] . '_' . rand() . '_signedDocument.pdf';
+                $writer             = new \SetaPDF_Core_Writer_File($signedDocumentPath);
+                $document           = \SetaPDF_Core_Document::loadByFilename($pathToDocument, $writer);
+
+                $pages = $document->getCatalog()->getPages();
+                $pageCount = $pages->count();
+
+                for ($pageNumber = 1; $pageNumber <= $pageCount; $pageNumber++) {
+                    $page = $pages->getPage($pageNumber);
+
+                    $format = \SetaPDF_Core_PageFormats::getFormat($page->getWidthAndHeight(), \SetaPDF_Core_PageFormats::ORIENTATION_AUTO);
+                    foreach ($body['signatures'] as $key => $signature) {
+                        if ($signature['page'] == $pageNumber) {
+                            $image = base64_decode($signature['encodedImage']);
+                            if ($image === false) {
+                                return $response->withStatus(400)->withJson(['errors' => 'base64_decode failed']);
+                            }
+
+                            $imageTmpPath = $tmpPath . $GLOBALS['id'] . '_' . rand() . '_writing.png';
+                            if ($signature['type'] == 'SVG') {
+                                $Imagick = new \Imagick();
+                                $Imagick->readImageBlob($image);
+                                $Imagick->setImageFormat("png24");
+                                $Imagick->writeImage($imageTmpPath);
+                                $Imagick->clear();
+                                $Imagick->destroy();
+                            } else {
+                                file_put_contents($imageTmpPath, $image);
+                                if ($signature['positionX'] == 0 && $signature['positionY'] == 0) {
+                                    $signWidth = $format['width'];
+                                    $signPosX  = 0;
+                                    $signPosY  = 0;
                                 } else {
-                                    file_put_contents($imageTmpPath, $image);
-                                    if ($signature['positionX'] == 0 && $signature['positionY'] == 0) {
-                                        $signWidth = $format['width'];
-                                        $signPosX  = 0;
-                                        $signPosY  = 0;
-                                    } else {
-                                        $signWidth = ($signature['width'] * $format['width']) / 100;
-                                        $signPosX  = ($signature['positionX'] * $format['width']) / 100;
-                                        $signPosY  = ($signature['positionY'] * $format['height']) / 100;
-                                    }
-                                    DigitalSignatureController::signHashes([
-                                        'signatureId'   => $workflow['digital_signature_id'],
-                                        'documentId'    => $args['id'],
-                                        'signatureInfo' => [
-                                            'page'          => $signature['page'],
-                                            'positionX'     => $signPosX,
-                                            'positionY'     => $signPosY,
-                                            'filePath'      => $imageTmpPath,
-                                            'signWidth'     => $signWidth
-                                        ],
-                                        'isLastSignature' => !isset($body['signatures'][$key + 1])
-                                    ]);
-                                    $imageSignature = true;
+                                    $signWidth = ($signature['width'] * $format['width']) / 100;
+                                    $signPosX  = ($signature['positionX'] * $format['width']) / 100;
+                                    $signPosY  = ($signature['positionY'] * $format['height']) / 100;
                                 }
+                                DigitalSignatureController::signHashes([
+                                    'signatureId'   => $workflow['digital_signature_id'],
+                                    'documentId'    => $args['id'],
+                                    'signatureInfo' => [
+                                        'page'          => $signature['page'],
+                                        'positionX'     => $signPosX,
+                                        'positionY'     => $signPosY,
+                                        'filePath'      => $imageTmpPath,
+                                        'signWidth'     => $signWidth
+                                    ],
+                                    'isLastSignature' => !isset($body['signatures'][$key + 1])
+                                ]);
+                                $imageSignature = true;
                             }
                         }
                     }
diff --git a/src/app/search/controllers/SearchController.php b/src/app/search/controllers/SearchController.php
index 3176ad022ed5185f3d1eb2e35e80341e76eb2f6a..65037dc60f5579cf023079e970f713fefc1fe870 100755
--- a/src/app/search/controllers/SearchController.php
+++ b/src/app/search/controllers/SearchController.php
@@ -51,7 +51,7 @@ class SearchController
 
         $whereWorkflow = [];
         $dataWorkflow = [];
-        if (Validator::arrayType()->notEmpty()->validate($body['workflowStates'])) {
+        if (Validator::arrayType()->notEmpty()->validate($body['workflowStates'] ?? null)) {
             $whereStatuses = [];
             if (in_array('VAL', $body['workflowStates'])) {
                 $whereStatuses[] = "main_document_id not in (SELECT DISTINCT main_document_id FROM workflows WHERE status is null OR status in ('REF', 'END', 'STOP'))";
@@ -90,7 +90,7 @@ class SearchController
             $data[]  = $documentIds;
         }
 
-        if (Validator::stringType()->notEmpty()->validate($body['title'])) {
+        if (Validator::stringType()->notEmpty()->validate($body['title'] ?? null)) {
             $requestData = SearchController::getDataForRequest([
                 'search'        => $body['title'],
                 'fields'        => 'unaccent(title) ilike unaccent(?::text)',
@@ -102,7 +102,7 @@ class SearchController
             $where[] = implode(' AND ', $requestData['where']);
             $data    = array_merge($data, $requestData['data']);
         }
-        if (Validator::stringType()->notEmpty()->validate($body['reference'])) {
+        if (Validator::stringType()->notEmpty()->validate($body['reference'] ?? null)) {
             $where[] = 'reference ilike ?';
             $data[] = "%{$body['reference']}%";
         }