diff --git a/includes/class-integration.php b/includes/abstract-integration.php
similarity index 91%
rename from includes/class-integration.php
rename to includes/abstract-integration.php
index 7a0d33d62dff128a8b725b443508c2b89061f1bb..471eb86dc83e2f04a54b4880e7c2e93ed9e0fea9 100644
--- a/includes/class-integration.php
+++ b/includes/abstract-integration.php
@@ -46,7 +46,7 @@ abstract class Integration extends Singleton
                 $response = Wpct_Http_Client::post_multipart($endpoint, $payload, $attachments);
             }
 
-            $success = $success && !is_wp_error($response);
+            $success = $success && !is_wp_error($response) && apply_filters('_wpct_erp_forms_validate_rpc_response', true, $response);
         }
 
         if (!$success) {
@@ -115,7 +115,13 @@ abstract class Integration extends Singleton
             ];
         }, $models);
 
-        return $this->submit($requests);
+        $validation = fn ($result, $res) => $this->rpc_response_validation($res);
+        add_filter('_wpct_erp_forms_validate_rpc_response', $validation, 2, 10);
+
+        $result = $this->submit($requests);
+
+        remove_filter('_wpct_erp_forms_validate_rpc_response', $validation, 2, 10);
+        return $result;
     }
 
     private function submit_rest($endpoints, $payload, $attachments, $form_data)
@@ -225,6 +231,9 @@ abstract class Integration extends Singleton
         }
 
         $login = (array) json_decode($res['body'], true);
+        if (isset($login['error'])) {
+            throw new Exception('RPC login error');
+        }
         $user_id = $login['result'];
         return [$session_id, $user_id];
     }
@@ -242,4 +251,14 @@ abstract class Integration extends Singleton
             ],
         ];
     }
+
+    private function rpc_response_validation($res)
+    {
+        $payload = (array) json_decode($res['body'], true);
+        if (isset($payload['error'])) {
+            return false;
+        }
+
+        return true;
+    }
 }
diff --git a/wpct-erp-forms.php b/wpct-erp-forms.php
index 3877499b7b5e082b7e783c42ddf3a56d027215c4..7044d949c660ebd414d723765615b49c14682ad3 100755
--- a/wpct-erp-forms.php
+++ b/wpct-erp-forms.php
@@ -31,7 +31,7 @@ require_once 'abstracts/class-settings.php';
 require_once 'wpct-http-bridge/wpct-http-bridge.php';
 require_once 'wpct-i18n/wpct-i18n.php';
 
-require_once 'includes/class-integration.php';
+require_once 'includes/abstract-integration.php';
 require_once 'includes/class-menu.php';
 require_once 'includes/class-settings.php';