Bug: [FEATURE] [GLOBEPAY|POWERTRANZ|TSYS|WORLDLINE] Move connector code to crate hyperswitch_connectors



### Feature Description

Connector code for `globepay, powertranz, tsys, worldline` needs to be moved from crate `router` to new crate `hyperswitch_connectors`

### Possible Implementation

Connector code for `globepay, powertranz, tsys, worldline` needs to be moved from crate `router` to new crate `hyperswitch_connectors`

### Have you spent some time checking if this feature request has been raised before?

- [X] I checked and didn't find a similar issue

### Have you read the Contributing Guidelines?

- [X] I have read the [Contributing Guidelines](https://github.com/juspay/hyperswitch/blob/main/docs/CONTRIBUTING.md)

### Are you willing to submit a PR?

Yes, I am willing to submit a PR!
diff --git a/Cargo.lock b/Cargo.lock
index 4a37b597d30..30eb871a67f 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -3876,6 +3876,8 @@ dependencies = [
 name = "hyperswitch_connectors"
 version = "0.1.0"
 dependencies = [
+ "actix-http",
+ "actix-web",
  "api_models",
  "async-trait",
  "base64 0.22.0",
@@ -3883,9 +3885,14 @@ dependencies = [
  "common_enums",
  "common_utils",
  "error-stack",
+ "hex",
+ "http 0.2.12",
  "hyperswitch_domain_models",
  "hyperswitch_interfaces",
  "masking",
+ "once_cell",
+ "rand",
+ "regex",
  "ring 0.17.8",
  "router_env",
  "serde",
diff --git a/crates/hyperswitch_connectors/Cargo.toml b/crates/hyperswitch_connectors/Cargo.toml
index 5fb0bd0cc28..2009f60e2e1 100644
--- a/crates/hyperswitch_connectors/Cargo.toml
+++ b/crates/hyperswitch_connectors/Cargo.toml
@@ -10,9 +10,16 @@ frm = ["hyperswitch_domain_models/frm", "hyperswitch_interfaces/frm"]
 payouts = ["hyperswitch_domain_models/payouts", "api_models/payouts", "hyperswitch_interfaces/payouts"]
 
 [dependencies]
+actix-http = "3.6.0"
+actix-web = "4.5.1"
 async-trait = "0.1.79"
 base64 = "0.22.0"
 error-stack = "0.4.1"
+hex = "0.4.3"
+http = "0.2.12"
+once_cell = "1.19.0"
+rand = "0.8.5"
+regex = "1.10.4"
 ring = "0.17.8"
 serde = { version = "1.0.197", features = ["derive"] }
 serde_json = "1.0.115"
diff --git a/crates/hyperswitch_connectors/src/connectors.rs b/crates/hyperswitch_connectors/src/connectors.rs
index 8cb44c4546a..88715a36e8a 100644
--- a/crates/hyperswitch_connectors/src/connectors.rs
+++ b/crates/hyperswitch_connectors/src/connectors.rs
@@ -3,13 +3,18 @@ pub mod bitpay;
 pub mod fiserv;
 pub mod fiservemea;
 pub mod fiuu;
+pub mod globepay;
 pub mod helcim;
 pub mod nexixpay;
 pub mod novalnet;
+pub mod powertranz;
 pub mod stax;
 pub mod taxjar;
+pub mod tsys;
+pub mod worldline;
 
 pub use self::{
     bambora::Bambora, bitpay::Bitpay, fiserv::Fiserv, fiservemea::Fiservemea, fiuu::Fiuu,
-    helcim::Helcim, nexixpay::Nexixpay, novalnet::Novalnet, stax::Stax, taxjar::Taxjar,
+    globepay::Globepay, helcim::Helcim, nexixpay::Nexixpay, novalnet::Novalnet,
+    powertranz::Powertranz, stax::Stax, taxjar::Taxjar, tsys::Tsys, worldline::Worldline,
 };
diff --git a/crates/router/src/connector/globepay.rs b/crates/hyperswitch_connectors/src/connectors/globepay.rs
similarity index 65%
rename from crates/router/src/connector/globepay.rs
rename to crates/hyperswitch_connectors/src/connectors/globepay.rs
index ce9755ddb73..8faf4190e93 100644
--- a/crates/router/src/connector/globepay.rs
+++ b/crates/hyperswitch_connectors/src/connectors/globepay.rs
@@ -2,32 +2,46 @@ pub mod transformers;
 
 use common_utils::{
     crypto::{self, GenerateDigest},
-    request::RequestContent,
+    errors::CustomResult,
+    ext_traits::BytesExt,
+    request::{Method, Request, RequestBuilder, RequestContent},
     types::{AmountConvertor, MinorUnit, MinorUnitForConnector},
 };
-use diesel_models::enums;
 use error_stack::{report, ResultExt};
 use hex::encode;
+use hyperswitch_domain_models::{
+    router_data::{AccessToken, ConnectorAuthType, ErrorResponse, RouterData},
+    router_flow_types::{
+        access_token_auth::AccessTokenAuth,
+        payments::{Authorize, Capture, PSync, PaymentMethodToken, Session, SetupMandate, Void},
+        refunds::{Execute, RSync},
+    },
+    router_request_types::{
+        AccessTokenRequestData, PaymentMethodTokenizationData, PaymentsAuthorizeData,
+        PaymentsCancelData, PaymentsCaptureData, PaymentsSessionData, PaymentsSyncData,
+        RefundsData, SetupMandateRequestData,
+    },
+    router_response_types::{PaymentsResponseData, RefundsResponseData},
+    types::{
+        PaymentsAuthorizeRouterData, PaymentsCaptureRouterData, PaymentsSyncRouterData,
+        RefundSyncRouterData, RefundsRouterData,
+    },
+};
+use hyperswitch_interfaces::{
+    api::{self, ConnectorCommon, ConnectorCommonExt, ConnectorIntegration, ConnectorValidation},
+    configs::Connectors,
+    consts, errors,
+    events::connector_api_logs::ConnectorEvent,
+    types::{PaymentsAuthorizeType, PaymentsSyncType, RefundExecuteType, RefundSyncType, Response},
+    webhooks,
+};
 use masking::ExposeInterface;
 use rand::distributions::DistString;
 use time::OffsetDateTime;
 use transformers as globepay;
 
-use crate::{
-    configs::settings,
-    connector::utils::convert_amount,
-    consts,
-    core::errors::{self, CustomResult},
-    events::connector_api_logs::ConnectorEvent,
-    headers,
-    services::{self, request, ConnectorIntegration, ConnectorValidation},
-    types::{
-        self,
-        api::{self, ConnectorCommon, ConnectorCommonExt},
-        ErrorResponse, Response,
-    },
-    utils::BytesExt,
-};
+use crate::{constants::headers, types::ResponseRouterData, utils::convert_amount};
+
 #[derive(Clone)]
 pub struct Globepay {
     amount_converter: &'static (dyn AmountConvertor<Output = MinorUnit> + Sync),
@@ -54,12 +68,8 @@ impl api::RefundExecute for Globepay {}
 impl api::RefundSync for Globepay {}
 impl api::PaymentToken for Globepay {}
 
-impl
-    ConnectorIntegration<
-        api::PaymentMethodToken,
-        types::PaymentMethodTokenizationData,
-        types::PaymentsResponseData,
-    > for Globepay
+impl ConnectorIntegration<PaymentMethodToken, PaymentMethodTokenizationData, PaymentsResponseData>
+    for Globepay
 {
     // Not Implemented (R)
 }
@@ -70,9 +80,9 @@ where
 {
     fn build_headers(
         &self,
-        _req: &types::RouterData<Flow, Request, Response>,
-        _connectors: &settings::Connectors,
-    ) -> CustomResult<Vec<(String, request::Maskable<String>)>, errors::ConnectorError> {
+        _req: &RouterData<Flow, Request, Response>,
+        _connectors: &Connectors,
+    ) -> CustomResult<Vec<(String, masking::Maskable<String>)>, errors::ConnectorError> {
         let header = vec![(
             headers::CONTENT_TYPE.to_string(),
             self.get_content_type().to_string().into(),
@@ -82,7 +92,7 @@ where
 }
 
 fn get_globlepay_query_params(
-    connector_auth_type: &types::ConnectorAuthType,
+    connector_auth_type: &ConnectorAuthType,
 ) -> CustomResult<String, errors::ConnectorError> {
     let auth_type = globepay::GlobepayAuthType::try_from(connector_auth_type)?;
     let time = (OffsetDateTime::now_utc().unix_timestamp_nanos() / 1_000_000).to_string();
@@ -102,7 +112,7 @@ fn get_globlepay_query_params(
 }
 
 fn get_partner_code(
-    connector_auth_type: &types::ConnectorAuthType,
+    connector_auth_type: &ConnectorAuthType,
 ) -> CustomResult<String, errors::ConnectorError> {
     let auth_type = globepay::GlobepayAuthType::try_from(connector_auth_type)?;
     Ok(auth_type.partner_code.expose())
@@ -117,7 +127,7 @@ impl ConnectorCommon for Globepay {
         "application/json"
     }
 
-    fn base_url<'a>(&self, connectors: &'a settings::Connectors) -> &'a str {
+    fn base_url<'a>(&self, connectors: &'a Connectors) -> &'a str {
         connectors.globepay.base_url.as_ref()
     }
 
@@ -147,32 +157,18 @@ impl ConnectorCommon for Globepay {
 
 impl ConnectorValidation for Globepay {}
 
-impl ConnectorIntegration<api::Session, types::PaymentsSessionData, types::PaymentsResponseData>
-    for Globepay
-{
-}
+impl ConnectorIntegration<Session, PaymentsSessionData, PaymentsResponseData> for Globepay {}
 
-impl ConnectorIntegration<api::AccessTokenAuth, types::AccessTokenRequestData, types::AccessToken>
-    for Globepay
-{
-}
+impl ConnectorIntegration<AccessTokenAuth, AccessTokenRequestData, AccessToken> for Globepay {}
 
-impl
-    ConnectorIntegration<
-        api::SetupMandate,
-        types::SetupMandateRequestData,
-        types::PaymentsResponseData,
-    > for Globepay
+impl ConnectorIntegration<SetupMandate, SetupMandateRequestData, PaymentsResponseData>
+    for Globepay
 {
     fn build_request(
         &self,
-        _req: &types::RouterData<
-            api::SetupMandate,
-            types::SetupMandateRequestData,
-            types::PaymentsResponseData,
-        >,
-        _connectors: &settings::Connectors,
-    ) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
+        _req: &RouterData<SetupMandate, SetupMandateRequestData, PaymentsResponseData>,
+        _connectors: &Connectors,
+    ) -> CustomResult<Option<Request>, errors::ConnectorError> {
         Err(
             errors::ConnectorError::NotImplemented("Setup Mandate flow for Globepay".to_string())
                 .into(),
@@ -180,14 +176,12 @@ impl
     }
 }
 
-impl ConnectorIntegration<api::Authorize, types::PaymentsAuthorizeData, types::PaymentsResponseData>
-    for Globepay
-{
+impl ConnectorIntegration<Authorize, PaymentsAuthorizeData, PaymentsResponseData> for Globepay {
     fn get_headers(
         &self,
-        req: &types::PaymentsAuthorizeRouterData,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Vec<(String, request::Maskable<String>)>, errors::ConnectorError> {
+        req: &PaymentsAuthorizeRouterData,
+        connectors: &Connectors,
+    ) -> CustomResult<Vec<(String, masking::Maskable<String>)>, errors::ConnectorError> {
         self.build_headers(req, connectors)
     }
 
@@ -197,11 +191,11 @@ impl ConnectorIntegration<api::Authorize, types::PaymentsAuthorizeData, types::P
 
     fn get_url(
         &self,
-        req: &types::PaymentsAuthorizeRouterData,
-        connectors: &settings::Connectors,
+        req: &PaymentsAuthorizeRouterData,
+        connectors: &Connectors,
     ) -> CustomResult<String, errors::ConnectorError> {
         let query_params = get_globlepay_query_params(&req.connector_auth_type)?;
-        if req.request.capture_method == Some(enums::CaptureMethod::Automatic) {
+        if req.request.capture_method == Some(common_enums::enums::CaptureMethod::Automatic) {
             Ok(format!(
                 "{}api/v1.0/gateway/partners/{}/orders/{}{query_params}",
                 self.base_url(connectors),
@@ -219,8 +213,8 @@ impl ConnectorIntegration<api::Authorize, types::PaymentsAuthorizeData, types::P
 
     fn get_request_body(
         &self,
-        req: &types::PaymentsAuthorizeRouterData,
-        _connectors: &settings::Connectors,
+        req: &PaymentsAuthorizeRouterData,
+        _connectors: &Connectors,
     ) -> CustomResult<RequestContent, errors::ConnectorError> {
         let amount = convert_amount(
             self.amount_converter,
@@ -235,20 +229,16 @@ impl ConnectorIntegration<api::Authorize, types::PaymentsAuthorizeData, types::P
 
     fn build_request(
         &self,
-        req: &types::PaymentsAuthorizeRouterData,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
+        req: &PaymentsAuthorizeRouterData,
+        connectors: &Connectors,
+    ) -> CustomResult<Option<Request>, errors::ConnectorError> {
         Ok(Some(
-            services::RequestBuilder::new()
-                .method(services::Method::Put)
-                .url(&types::PaymentsAuthorizeType::get_url(
-                    self, req, connectors,
-                )?)
+            RequestBuilder::new()
+                .method(Method::Put)
+                .url(&PaymentsAuthorizeType::get_url(self, req, connectors)?)
                 .attach_default_headers()
-                .headers(types::PaymentsAuthorizeType::get_headers(
-                    self, req, connectors,
-                )?)
-                .set_body(types::PaymentsAuthorizeType::get_request_body(
+                .headers(PaymentsAuthorizeType::get_headers(self, req, connectors)?)
+                .set_body(PaymentsAuthorizeType::get_request_body(
                     self, req, connectors,
                 )?)
                 .build(),
@@ -257,10 +247,10 @@ impl ConnectorIntegration<api::Authorize, types::PaymentsAuthorizeData, types::P
 
     fn handle_response(
         &self,
-        data: &types::PaymentsAuthorizeRouterData,
+        data: &PaymentsAuthorizeRouterData,
         event_builder: Option<&mut ConnectorEvent>,
         res: Response,
-    ) -> CustomResult<types::PaymentsAuthorizeRouterData, errors::ConnectorError> {
+    ) -> CustomResult<PaymentsAuthorizeRouterData, errors::ConnectorError> {
         let response: globepay::GlobepayPaymentsResponse = res
             .response
             .parse_struct("Globepay PaymentsAuthorizeResponse")
@@ -269,7 +259,7 @@ impl ConnectorIntegration<api::Authorize, types::PaymentsAuthorizeData, types::P
         event_builder.map(|i| i.set_response_body(&response));
         router_env::logger::info!(connector_response=?response);
 
-        types::RouterData::try_from(types::ResponseRouterData {
+        RouterData::try_from(ResponseRouterData {
             response,
             data: data.clone(),
             http_code: res.status_code,
@@ -285,14 +275,12 @@ impl ConnectorIntegration<api::Authorize, types::PaymentsAuthorizeData, types::P
     }
 }
 
-impl ConnectorIntegration<api::PSync, types::PaymentsSyncData, types::PaymentsResponseData>
-    for Globepay
-{
+impl ConnectorIntegration<PSync, PaymentsSyncData, PaymentsResponseData> for Globepay {
     fn get_headers(
         &self,
-        req: &types::PaymentsSyncRouterData,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Vec<(String, request::Maskable<String>)>, errors::ConnectorError> {
+        req: &PaymentsSyncRouterData,
+        connectors: &Connectors,
+    ) -> CustomResult<Vec<(String, masking::Maskable<String>)>, errors::ConnectorError> {
         self.build_headers(req, connectors)
     }
 
@@ -302,8 +290,8 @@ impl ConnectorIntegration<api::PSync, types::PaymentsSyncData, types::PaymentsRe
 
     fn get_url(
         &self,
-        req: &types::PaymentsSyncRouterData,
-        connectors: &settings::Connectors,
+        req: &PaymentsSyncRouterData,
+        connectors: &Connectors,
     ) -> CustomResult<String, errors::ConnectorError> {
         let query_params = get_globlepay_query_params(&req.connector_auth_type)?;
         Ok(format!(
@@ -316,25 +304,25 @@ impl ConnectorIntegration<api::PSync, types::PaymentsSyncData, types::PaymentsRe
 
     fn build_request(
         &self,
-        req: &types::PaymentsSyncRouterData,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
+        req: &PaymentsSyncRouterData,
+        connectors: &Connectors,
+    ) -> CustomResult<Option<Request>, errors::ConnectorError> {
         Ok(Some(
-            services::RequestBuilder::new()
-                .method(services::Method::Get)
-                .url(&types::PaymentsSyncType::get_url(self, req, connectors)?)
+            RequestBuilder::new()
+                .method(Method::Get)
+                .url(&PaymentsSyncType::get_url(self, req, connectors)?)
                 .attach_default_headers()
-                .headers(types::PaymentsSyncType::get_headers(self, req, connectors)?)
+                .headers(PaymentsSyncType::get_headers(self, req, connectors)?)
                 .build(),
         ))
     }
 
     fn handle_response(
         &self,
-        data: &types::PaymentsSyncRouterData,
+        data: &PaymentsSyncRouterData,
         event_builder: Option<&mut ConnectorEvent>,
         res: Response,
-    ) -> CustomResult<types::PaymentsSyncRouterData, errors::ConnectorError> {
+    ) -> CustomResult<PaymentsSyncRouterData, errors::ConnectorError> {
         let response: globepay::GlobepaySyncResponse = res
             .response
             .parse_struct("globepay PaymentsSyncResponse")
@@ -343,7 +331,7 @@ impl ConnectorIntegration<api::PSync, types::PaymentsSyncData, types::PaymentsRe
         event_builder.map(|i| i.set_response_body(&response));
         router_env::logger::info!(connector_response=?response);
 
-        types::RouterData::try_from(types::ResponseRouterData {
+        RouterData::try_from(ResponseRouterData {
             response,
             data: data.clone(),
             http_code: res.status_code,
@@ -359,14 +347,12 @@ impl ConnectorIntegration<api::PSync, types::PaymentsSyncData, types::PaymentsRe
     }
 }
 
-impl ConnectorIntegration<api::Capture, types::PaymentsCaptureData, types::PaymentsResponseData>
-    for Globepay
-{
+impl ConnectorIntegration<Capture, PaymentsCaptureData, PaymentsResponseData> for Globepay {
     fn build_request(
         &self,
-        _req: &types::PaymentsCaptureRouterData,
-        _connectors: &settings::Connectors,
-    ) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
+        _req: &PaymentsCaptureRouterData,
+        _connectors: &Connectors,
+    ) -> CustomResult<Option<Request>, errors::ConnectorError> {
         Err(errors::ConnectorError::FlowNotSupported {
             flow: "Manual Capture".to_owned(),
             connector: "Globepay".to_owned(),
@@ -375,19 +361,14 @@ impl ConnectorIntegration<api::Capture, types::PaymentsCaptureData, types::Payme
     }
 }
 
-impl ConnectorIntegration<api::Void, types::PaymentsCancelData, types::PaymentsResponseData>
-    for Globepay
-{
-}
+impl ConnectorIntegration<Void, PaymentsCancelData, PaymentsResponseData> for Globepay {}
 
-impl ConnectorIntegration<api::Execute, types::RefundsData, types::RefundsResponseData>
-    for Globepay
-{
+impl ConnectorIntegration<Execute, RefundsData, RefundsResponseData> for Globepay {
     fn get_headers(
         &self,
-        req: &types::RefundsRouterData<api::Execute>,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Vec<(String, request::Maskable<String>)>, errors::ConnectorError> {
+        req: &RefundsRouterData<Execute>,
+        connectors: &Connectors,
+    ) -> CustomResult<Vec<(String, masking::Maskable<String>)>, errors::ConnectorError> {
         self.build_headers(req, connectors)
     }
 
@@ -397,8 +378,8 @@ impl ConnectorIntegration<api::Execute, types::RefundsData, types::RefundsRespon
 
     fn get_url(
         &self,
-        req: &types::RefundsRouterData<api::Execute>,
-        connectors: &settings::Connectors,
+        req: &RefundsRouterData<Execute>,
+        connectors: &Connectors,
     ) -> CustomResult<String, errors::ConnectorError> {
         let query_params = get_globlepay_query_params(&req.connector_auth_type)?;
         Ok(format!(
@@ -412,8 +393,8 @@ impl ConnectorIntegration<api::Execute, types::RefundsData, types::RefundsRespon
 
     fn get_request_body(
         &self,
-        req: &types::RefundsRouterData<api::Execute>,
-        _connectors: &settings::Connectors,
+        req: &RefundsRouterData<Execute>,
+        _connectors: &Connectors,
     ) -> CustomResult<RequestContent, errors::ConnectorError> {
         let refund_amount = convert_amount(
             self.amount_converter,
@@ -428,30 +409,26 @@ impl ConnectorIntegration<api::Execute, types::RefundsData, types::RefundsRespon
 
     fn build_request(
         &self,
-        req: &types::RefundsRouterData<api::Execute>,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
+        req: &RefundsRouterData<Execute>,
+        connectors: &Connectors,
+    ) -> CustomResult<Option<Request>, errors::ConnectorError> {
         Ok(Some(
-            services::RequestBuilder::new()
-                .method(services::Method::Put)
-                .url(&types::RefundExecuteType::get_url(self, req, connectors)?)
+            RequestBuilder::new()
+                .method(Method::Put)
+                .url(&RefundExecuteType::get_url(self, req, connectors)?)
                 .attach_default_headers()
-                .headers(types::RefundExecuteType::get_headers(
-                    self, req, connectors,
-                )?)
-                .set_body(types::RefundExecuteType::get_request_body(
-                    self, req, connectors,
-                )?)
+                .headers(RefundExecuteType::get_headers(self, req, connectors)?)
+                .set_body(RefundExecuteType::get_request_body(self, req, connectors)?)
                 .build(),
         ))
     }
 
     fn handle_response(
         &self,
-        data: &types::RefundsRouterData<api::Execute>,
+        data: &RefundsRouterData<Execute>,
         event_builder: Option<&mut ConnectorEvent>,
         res: Response,
-    ) -> CustomResult<types::RefundsRouterData<api::Execute>, errors::ConnectorError> {
+    ) -> CustomResult<RefundsRouterData<Execute>, errors::ConnectorError> {
         let response: globepay::GlobepayRefundResponse = res
             .response
             .parse_struct("Globalpay RefundResponse")
@@ -460,7 +437,7 @@ impl ConnectorIntegration<api::Execute, types::RefundsData, types::RefundsRespon
         event_builder.map(|i| i.set_response_body(&response));
         router_env::logger::info!(connector_response=?response);
 
-        types::RouterData::try_from(types::ResponseRouterData {
+        RouterData::try_from(ResponseRouterData {
             response,
             data: data.clone(),
             http_code: res.status_code,
@@ -476,12 +453,12 @@ impl ConnectorIntegration<api::Execute, types::RefundsData, types::RefundsRespon
     }
 }
 
-impl ConnectorIntegration<api::RSync, types::RefundsData, types::RefundsResponseData> for Globepay {
+impl ConnectorIntegration<RSync, RefundsData, RefundsResponseData> for Globepay {
     fn get_headers(
         &self,
-        req: &types::RefundSyncRouterData,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Vec<(String, request::Maskable<String>)>, errors::ConnectorError> {
+        req: &RefundSyncRouterData,
+        connectors: &Connectors,
+    ) -> CustomResult<Vec<(String, masking::Maskable<String>)>, errors::ConnectorError> {
         self.build_headers(req, connectors)
     }
 
@@ -491,8 +468,8 @@ impl ConnectorIntegration<api::RSync, types::RefundsData, types::RefundsResponse
 
     fn get_url(
         &self,
-        req: &types::RefundSyncRouterData,
-        connectors: &settings::Connectors,
+        req: &RefundSyncRouterData,
+        connectors: &Connectors,
     ) -> CustomResult<String, errors::ConnectorError> {
         let query_params = get_globlepay_query_params(&req.connector_auth_type)?;
         Ok(format!(
@@ -506,25 +483,25 @@ impl ConnectorIntegration<api::RSync, types::RefundsData, types::RefundsResponse
 
     fn build_request(
         &self,
-        req: &types::RefundSyncRouterData,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
+        req: &RefundSyncRouterData,
+        connectors: &Connectors,
+    ) -> CustomResult<Option<Request>, errors::ConnectorError> {
         Ok(Some(
-            services::RequestBuilder::new()
-                .method(services::Method::Get)
-                .url(&types::RefundSyncType::get_url(self, req, connectors)?)
+            RequestBuilder::new()
+                .method(Method::Get)
+                .url(&RefundSyncType::get_url(self, req, connectors)?)
                 .attach_default_headers()
-                .headers(types::RefundSyncType::get_headers(self, req, connectors)?)
+                .headers(RefundSyncType::get_headers(self, req, connectors)?)
                 .build(),
         ))
     }
 
     fn handle_response(
         &self,
-        data: &types::RefundSyncRouterData,
+        data: &RefundSyncRouterData,
         event_builder: Option<&mut ConnectorEvent>,
         res: Response,
-    ) -> CustomResult<types::RefundSyncRouterData, errors::ConnectorError> {
+    ) -> CustomResult<RefundSyncRouterData, errors::ConnectorError> {
         let response: globepay::GlobepayRefundResponse = res
             .response
             .parse_struct("Globalpay RefundResponse")
@@ -533,7 +510,7 @@ impl ConnectorIntegration<api::RSync, types::RefundsData, types::RefundsResponse
         event_builder.map(|i| i.set_response_body(&response));
         router_env::logger::info!(connector_response=?response);
 
-        types::RouterData::try_from(types::ResponseRouterData {
+        RouterData::try_from(ResponseRouterData {
             response,
             data: data.clone(),
             http_code: res.status_code,
@@ -550,24 +527,24 @@ impl ConnectorIntegration<api::RSync, types::RefundsData, types::RefundsResponse
 }
 
 #[async_trait::async_trait]
-impl api::IncomingWebhook for Globepay {
+impl webhooks::IncomingWebhook for Globepay {
     fn get_webhook_object_reference_id(
         &self,
-        _request: &api::IncomingWebhookRequestDetails<'_>,
-    ) -> CustomResult<api::webhooks::ObjectReferenceId, errors::ConnectorError> {
+        _request: &webhooks::IncomingWebhookRequestDetails<'_>,
+    ) -> CustomResult<api_models::webhooks::ObjectReferenceId, errors::ConnectorError> {
         Err(report!(errors::ConnectorError::WebhooksNotImplemented))
     }
 
     fn get_webhook_event_type(
         &self,
-        _request: &api::IncomingWebhookRequestDetails<'_>,
-    ) -> CustomResult<api::IncomingWebhookEvent, errors::ConnectorError> {
+        _request: &webhooks::IncomingWebhookRequestDetails<'_>,
+    ) -> CustomResult<api_models::webhooks::IncomingWebhookEvent, errors::ConnectorError> {
         Err(report!(errors::ConnectorError::WebhooksNotImplemented))
     }
 
     fn get_webhook_resource_object(
         &self,
-        _request: &api::IncomingWebhookRequestDetails<'_>,
+        _request: &webhooks::IncomingWebhookRequestDetails<'_>,
     ) -> CustomResult<Box<dyn masking::ErasedMaskSerialize>, errors::ConnectorError> {
         Err(report!(errors::ConnectorError::WebhooksNotImplemented))
     }
diff --git a/crates/router/src/connector/globepay/transformers.rs b/crates/hyperswitch_connectors/src/connectors/globepay/transformers.rs
similarity index 69%
rename from crates/router/src/connector/globepay/transformers.rs
rename to crates/hyperswitch_connectors/src/connectors/globepay/transformers.rs
index 2d5991c7160..4986e8d5f32 100644
--- a/crates/router/src/connector/globepay/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/globepay/transformers.rs
@@ -1,13 +1,20 @@
+use common_enums::enums;
 use common_utils::{ext_traits::Encode, types::MinorUnit};
 use error_stack::ResultExt;
+use hyperswitch_domain_models::{
+    payment_method_data::{PaymentMethodData, WalletData},
+    router_data::{ConnectorAuthType, ErrorResponse, RouterData},
+    router_request_types::ResponseId,
+    router_response_types::{PaymentsResponseData, RefundsResponseData},
+    types::{self, RefundsRouterData},
+};
+use hyperswitch_interfaces::{consts, errors};
 use masking::Secret;
 use serde::{Deserialize, Serialize};
 
 use crate::{
-    connector::utils::{self, RouterData},
-    consts,
-    core::errors,
-    types::{self, domain, storage::enums},
+    types::{RefundsResponseRouterData, ResponseRouterData},
+    utils::{get_unimplemented_payment_method_error_message, RouterData as _},
 };
 type Error = error_stack::Report<errors::ConnectorError>;
 
@@ -47,57 +54,55 @@ impl TryFrom<&GlobepayRouterData<&types::PaymentsAuthorizeRouterData>> for Globe
     ) -> Result<Self, Self::Error> {
         let item = item_data.router_data.clone();
         let channel: GlobepayChannel = match &item.request.payment_method_data {
-            domain::PaymentMethodData::Wallet(ref wallet_data) => match wallet_data {
-                domain::WalletData::AliPayQr(_) => GlobepayChannel::Alipay,
-                domain::WalletData::WeChatPayQr(_) => GlobepayChannel::Wechat,
-                domain::WalletData::AliPayRedirect(_)
-                | domain::WalletData::AliPayHkRedirect(_)
-                | domain::WalletData::MomoRedirect(_)
-                | domain::WalletData::KakaoPayRedirect(_)
-                | domain::WalletData::GoPayRedirect(_)
-                | domain::WalletData::GcashRedirect(_)
-                | domain::WalletData::ApplePay(_)
-                | domain::WalletData::ApplePayRedirect(_)
-                | domain::WalletData::ApplePayThirdPartySdk(_)
-                | domain::WalletData::DanaRedirect {}
-                | domain::WalletData::GooglePay(_)
-                | domain::WalletData::GooglePayRedirect(_)
-                | domain::WalletData::GooglePayThirdPartySdk(_)
-                | domain::WalletData::MbWayRedirect(_)
-                | domain::WalletData::MobilePayRedirect(_)
-                | domain::WalletData::PaypalRedirect(_)
-                | domain::WalletData::PaypalSdk(_)
-                | domain::WalletData::SamsungPay(_)
-                | domain::WalletData::TwintRedirect {}
-                | domain::WalletData::VippsRedirect {}
-                | domain::WalletData::TouchNGoRedirect(_)
-                | domain::WalletData::WeChatPayRedirect(_)
-                | domain::WalletData::CashappQr(_)
-                | domain::WalletData::SwishQr(_)
-                | domain::WalletData::Mifinity(_) => Err(errors::ConnectorError::NotImplemented(
-                    utils::get_unimplemented_payment_method_error_message("globepay"),
+            PaymentMethodData::Wallet(ref wallet_data) => match wallet_data {
+                WalletData::AliPayQr(_) => GlobepayChannel::Alipay,
+                WalletData::WeChatPayQr(_) => GlobepayChannel::Wechat,
+                WalletData::AliPayRedirect(_)
+                | WalletData::AliPayHkRedirect(_)
+                | WalletData::MomoRedirect(_)
+                | WalletData::KakaoPayRedirect(_)
+                | WalletData::GoPayRedirect(_)
+                | WalletData::GcashRedirect(_)
+                | WalletData::ApplePay(_)
+                | WalletData::ApplePayRedirect(_)
+                | WalletData::ApplePayThirdPartySdk(_)
+                | WalletData::DanaRedirect {}
+                | WalletData::GooglePay(_)
+                | WalletData::GooglePayRedirect(_)
+                | WalletData::GooglePayThirdPartySdk(_)
+                | WalletData::MbWayRedirect(_)
+                | WalletData::MobilePayRedirect(_)
+                | WalletData::PaypalRedirect(_)
+                | WalletData::PaypalSdk(_)
+                | WalletData::SamsungPay(_)
+                | WalletData::TwintRedirect {}
+                | WalletData::VippsRedirect {}
+                | WalletData::TouchNGoRedirect(_)
+                | WalletData::WeChatPayRedirect(_)
+                | WalletData::CashappQr(_)
+                | WalletData::SwishQr(_)
+                | WalletData::Mifinity(_) => Err(errors::ConnectorError::NotImplemented(
+                    get_unimplemented_payment_method_error_message("globepay"),
                 ))?,
             },
-            domain::PaymentMethodData::Card(_)
-            | domain::PaymentMethodData::CardRedirect(_)
-            | domain::PaymentMethodData::PayLater(_)
-            | domain::PaymentMethodData::BankRedirect(_)
-            | domain::PaymentMethodData::BankDebit(_)
-            | domain::PaymentMethodData::BankTransfer(_)
-            | domain::PaymentMethodData::Crypto(_)
-            | domain::PaymentMethodData::MandatePayment
-            | domain::PaymentMethodData::Reward
-            | domain::PaymentMethodData::RealTimePayment(_)
-            | domain::PaymentMethodData::Upi(_)
-            | domain::PaymentMethodData::Voucher(_)
-            | domain::PaymentMethodData::GiftCard(_)
-            | domain::PaymentMethodData::OpenBanking(_)
-            | domain::PaymentMethodData::CardToken(_)
-            | domain::PaymentMethodData::NetworkToken(_) => {
-                Err(errors::ConnectorError::NotImplemented(
-                    utils::get_unimplemented_payment_method_error_message("globepay"),
-                ))?
-            }
+            PaymentMethodData::Card(_)
+            | PaymentMethodData::CardRedirect(_)
+            | PaymentMethodData::PayLater(_)
+            | PaymentMethodData::BankRedirect(_)
+            | PaymentMethodData::BankDebit(_)
+            | PaymentMethodData::BankTransfer(_)
+            | PaymentMethodData::Crypto(_)
+            | PaymentMethodData::MandatePayment
+            | PaymentMethodData::Reward
+            | PaymentMethodData::RealTimePayment(_)
+            | PaymentMethodData::Upi(_)
+            | PaymentMethodData::Voucher(_)
+            | PaymentMethodData::GiftCard(_)
+            | PaymentMethodData::OpenBanking(_)
+            | PaymentMethodData::CardToken(_)
+            | PaymentMethodData::NetworkToken(_) => Err(errors::ConnectorError::NotImplemented(
+                get_unimplemented_payment_method_error_message("globepay"),
+            ))?,
         };
         let description = item.get_description()?;
         Ok(Self {
@@ -114,11 +119,11 @@ pub struct GlobepayAuthType {
     pub(super) credential_code: Secret<String>,
 }
 
-impl TryFrom<&types::ConnectorAuthType> for GlobepayAuthType {
+impl TryFrom<&ConnectorAuthType> for GlobepayAuthType {
     type Error = Error;
-    fn try_from(auth_type: &types::ConnectorAuthType) -> Result<Self, Self::Error> {
+    fn try_from(auth_type: &ConnectorAuthType) -> Result<Self, Self::Error> {
         match auth_type {
-            types::ConnectorAuthType::BodyKey { api_key, key1 } => Ok(Self {
+            ConnectorAuthType::BodyKey { api_key, key1 } => Ok(Self {
                 partner_code: api_key.to_owned(),
                 credential_code: key1.to_owned(),
             }),
@@ -174,18 +179,12 @@ pub enum GlobepayReturnCode {
     OrderNotPaid,
 }
 
-impl<F, T>
-    TryFrom<types::ResponseRouterData<F, GlobepayPaymentsResponse, T, types::PaymentsResponseData>>
-    for types::RouterData<F, T, types::PaymentsResponseData>
+impl<F, T> TryFrom<ResponseRouterData<F, GlobepayPaymentsResponse, T, PaymentsResponseData>>
+    for RouterData<F, T, PaymentsResponseData>
 {
     type Error = Error;
     fn try_from(
-        item: types::ResponseRouterData<
-            F,
-            GlobepayPaymentsResponse,
-            T,
-            types::PaymentsResponseData,
-        >,
+        item: ResponseRouterData<F, GlobepayPaymentsResponse, T, PaymentsResponseData>,
     ) -> Result<Self, Self::Error> {
         if item.response.return_code == GlobepayReturnCode::Success {
             let globepay_metadata = GlobepayConnectorMetadata {
@@ -204,8 +203,8 @@ impl<F, T>
 
             Ok(Self {
                 status: enums::AttemptStatus::from(globepay_status),
-                response: Ok(types::PaymentsResponseData::TransactionResponse {
-                    resource_id: types::ResponseId::ConnectorTransactionId(
+                response: Ok(PaymentsResponseData::TransactionResponse {
+                    resource_id: ResponseId::ConnectorTransactionId(
                         item.response
                             .order_id
                             .ok_or(errors::ConnectorError::ResponseHandlingFailed)?,
@@ -264,13 +263,12 @@ impl From<GlobepayPaymentPsyncStatus> for enums::AttemptStatus {
     }
 }
 
-impl<F, T>
-    TryFrom<types::ResponseRouterData<F, GlobepaySyncResponse, T, types::PaymentsResponseData>>
-    for types::RouterData<F, T, types::PaymentsResponseData>
+impl<F, T> TryFrom<ResponseRouterData<F, GlobepaySyncResponse, T, PaymentsResponseData>>
+    for RouterData<F, T, PaymentsResponseData>
 {
     type Error = Error;
     fn try_from(
-        item: types::ResponseRouterData<F, GlobepaySyncResponse, T, types::PaymentsResponseData>,
+        item: ResponseRouterData<F, GlobepaySyncResponse, T, PaymentsResponseData>,
     ) -> Result<Self, Self::Error> {
         if item.response.return_code == GlobepayReturnCode::Success {
             let globepay_status = item
@@ -283,8 +281,8 @@ impl<F, T>
                 .ok_or(errors::ConnectorError::ResponseHandlingFailed)?;
             Ok(Self {
                 status: enums::AttemptStatus::from(globepay_status),
-                response: Ok(types::PaymentsResponseData::TransactionResponse {
-                    resource_id: types::ResponseId::ConnectorTransactionId(globepay_id),
+                response: Ok(PaymentsResponseData::TransactionResponse {
+                    resource_id: ResponseId::ConnectorTransactionId(globepay_id),
                     redirection_data: None,
                     mandate_reference: None,
                     connector_metadata: None,
@@ -313,8 +311,8 @@ fn get_error_response(
     return_code: GlobepayReturnCode,
     return_msg: Option<String>,
     status_code: u16,
-) -> types::ErrorResponse {
-    types::ErrorResponse {
+) -> ErrorResponse {
+    ErrorResponse {
         code: return_code.to_string(),
         message: consts::NO_ERROR_MESSAGE.to_string(),
         reason: return_msg,
@@ -329,11 +327,9 @@ pub struct GlobepayRefundRequest {
     pub fee: MinorUnit,
 }
 
-impl<F> TryFrom<&GlobepayRouterData<&types::RefundsRouterData<F>>> for GlobepayRefundRequest {
+impl<F> TryFrom<&GlobepayRouterData<&RefundsRouterData<F>>> for GlobepayRefundRequest {
     type Error = Error;
-    fn try_from(
-        item: &GlobepayRouterData<&types::RefundsRouterData<F>>,
-    ) -> Result<Self, Self::Error> {
+    fn try_from(item: &GlobepayRouterData<&RefundsRouterData<F>>) -> Result<Self, Self::Error> {
         Ok(Self { fee: item.amount })
     }
 }
@@ -368,12 +364,10 @@ pub struct GlobepayRefundResponse {
     pub return_msg: Option<String>,
 }
 
-impl<T> TryFrom<types::RefundsResponseRouterData<T, GlobepayRefundResponse>>
-    for types::RefundsRouterData<T>
-{
+impl<T> TryFrom<RefundsResponseRouterData<T, GlobepayRefundResponse>> for RefundsRouterData<T> {
     type Error = Error;
     fn try_from(
-        item: types::RefundsResponseRouterData<T, GlobepayRefundResponse>,
+        item: RefundsResponseRouterData<T, GlobepayRefundResponse>,
     ) -> Result<Self, Self::Error> {
         if item.response.return_code == GlobepayReturnCode::Success {
             let globepay_refund_id = item
@@ -385,7 +379,7 @@ impl<T> TryFrom<types::RefundsResponseRouterData<T, GlobepayRefundResponse>>
                 .result_code
                 .ok_or(errors::ConnectorError::ResponseHandlingFailed)?;
             Ok(Self {
-                response: Ok(types::RefundsResponseData {
+                response: Ok(RefundsResponseData {
                     connector_refund_id: globepay_refund_id,
                     refund_status: enums::RefundStatus::from(globepay_refund_status),
                 }),
diff --git a/crates/router/src/connector/powertranz.rs b/crates/hyperswitch_connectors/src/connectors/powertranz.rs
similarity index 60%
rename from crates/router/src/connector/powertranz.rs
rename to crates/hyperswitch_connectors/src/connectors/powertranz.rs
index b9daf49fac0..a437d419bc8 100644
--- a/crates/router/src/connector/powertranz.rs
+++ b/crates/hyperswitch_connectors/src/connectors/powertranz.rs
@@ -3,32 +3,50 @@ pub mod transformers;
 use std::fmt::Debug;
 
 use api_models::enums::AuthenticationType;
-use common_utils::{ext_traits::ValueExt, request::RequestContent};
-use diesel_models::enums;
+use common_enums::enums;
+use common_utils::{
+    errors::CustomResult,
+    ext_traits::{BytesExt, ValueExt},
+    request::{Method, Request, RequestBuilder, RequestContent},
+};
 use error_stack::{report, ResultExt};
-use masking::ExposeInterface;
-use transformers as powertranz;
-
-use super::utils::{
-    self as connector_utils, PaymentsAuthorizeRequestData, PaymentsCompleteAuthorizeRequestData,
+use hyperswitch_domain_models::{
+    router_data::{AccessToken, ConnectorAuthType, ErrorResponse, RouterData},
+    router_flow_types::{
+        access_token_auth::AccessTokenAuth,
+        payments::{Authorize, Capture, PSync, PaymentMethodToken, Session, SetupMandate, Void},
+        refunds::{Execute, RSync},
+        CompleteAuthorize,
+    },
+    router_request_types::{
+        AccessTokenRequestData, CompleteAuthorizeData, PaymentMethodTokenizationData,
+        PaymentsAuthorizeData, PaymentsCancelData, PaymentsCaptureData, PaymentsSessionData,
+        PaymentsSyncData, RefundsData, SetupMandateRequestData,
+    },
+    router_response_types::{PaymentsResponseData, RefundsResponseData},
+    types::{
+        PaymentsAuthorizeRouterData, PaymentsCancelRouterData, PaymentsCaptureRouterData,
+        PaymentsCompleteAuthorizeRouterData, RefundsRouterData,
+    },
 };
-use crate::{
-    configs::settings,
-    consts,
-    core::errors::{self, CustomResult},
+use hyperswitch_interfaces::{
+    api::{self, ConnectorCommon, ConnectorCommonExt, ConnectorIntegration, ConnectorValidation},
+    configs::Connectors,
+    consts, errors,
     events::connector_api_logs::ConnectorEvent,
-    headers,
-    services::{
-        self,
-        request::{self, Mask},
-        ConnectorIntegration, ConnectorValidation,
-    },
     types::{
-        self,
-        api::{self, ConnectorCommon, ConnectorCommonExt},
-        ErrorResponse, Response,
+        PaymentsAuthorizeType, PaymentsCaptureType, PaymentsCompleteAuthorizeType,
+        PaymentsVoidType, RefundExecuteType, Response,
     },
-    utils::BytesExt,
+    webhooks,
+};
+use masking::{ExposeInterface, Mask};
+use transformers as powertranz;
+
+use crate::{
+    constants::headers,
+    types::ResponseRouterData,
+    utils::{self, PaymentsAuthorizeRequestData as _, PaymentsCompleteAuthorizeRequestData as _},
 };
 
 #[derive(Debug, Clone)]
@@ -51,12 +69,8 @@ impl api::PaymentToken for Powertranz {}
 const POWER_TRANZ_ID: &str = "PowerTranz-PowerTranzId";
 const POWER_TRANZ_PASSWORD: &str = "PowerTranz-PowerTranzPassword";
 
-impl
-    ConnectorIntegration<
-        api::PaymentMethodToken,
-        types::PaymentMethodTokenizationData,
-        types::PaymentsResponseData,
-    > for Powertranz
+impl ConnectorIntegration<PaymentMethodToken, PaymentMethodTokenizationData, PaymentsResponseData>
+    for Powertranz
 {
 }
 
@@ -66,9 +80,9 @@ where
 {
     fn build_headers(
         &self,
-        req: &types::RouterData<Flow, Request, Response>,
-        _connectors: &settings::Connectors,
-    ) -> CustomResult<Vec<(String, request::Maskable<String>)>, errors::ConnectorError> {
+        req: &RouterData<Flow, Request, Response>,
+        _connectors: &Connectors,
+    ) -> CustomResult<Vec<(String, masking::Maskable<String>)>, errors::ConnectorError> {
         let mut header = vec![(
             headers::CONTENT_TYPE.to_string(),
             self.common_get_content_type().to_string().into(),
@@ -88,14 +102,14 @@ impl ConnectorCommon for Powertranz {
         "application/json"
     }
 
-    fn base_url<'a>(&self, connectors: &'a settings::Connectors) -> &'a str {
+    fn base_url<'a>(&self, connectors: &'a Connectors) -> &'a str {
         connectors.powertranz.base_url.as_ref()
     }
 
     fn get_auth_header(
         &self,
-        auth_type: &types::ConnectorAuthType,
-    ) -> CustomResult<Vec<(String, request::Maskable<String>)>, errors::ConnectorError> {
+        auth_type: &ConnectorAuthType,
+    ) -> CustomResult<Vec<(String, masking::Maskable<String>)>, errors::ConnectorError> {
         let auth = powertranz::PowertranzAuthType::try_from(auth_type)
             .change_context(errors::ConnectorError::FailedToObtainAuthType)?;
         Ok(vec![
@@ -140,38 +154,24 @@ impl ConnectorValidation for Powertranz {
         match capture_method {
             enums::CaptureMethod::Automatic | enums::CaptureMethod::Manual => Ok(()),
             enums::CaptureMethod::ManualMultiple | enums::CaptureMethod::Scheduled => Err(
-                connector_utils::construct_not_supported_error_report(capture_method, self.id()),
+                utils::construct_not_supported_error_report(capture_method, self.id()),
             ),
         }
     }
 }
 
-impl ConnectorIntegration<api::Session, types::PaymentsSessionData, types::PaymentsResponseData>
-    for Powertranz
-{
-}
+impl ConnectorIntegration<Session, PaymentsSessionData, PaymentsResponseData> for Powertranz {}
 
-impl ConnectorIntegration<api::AccessTokenAuth, types::AccessTokenRequestData, types::AccessToken>
-    for Powertranz
-{
-}
+impl ConnectorIntegration<AccessTokenAuth, AccessTokenRequestData, AccessToken> for Powertranz {}
 
-impl
-    ConnectorIntegration<
-        api::SetupMandate,
-        types::SetupMandateRequestData,
-        types::PaymentsResponseData,
-    > for Powertranz
+impl ConnectorIntegration<SetupMandate, SetupMandateRequestData, PaymentsResponseData>
+    for Powertranz
 {
     fn build_request(
         &self,
-        _req: &types::RouterData<
-            api::SetupMandate,
-            types::SetupMandateRequestData,
-            types::PaymentsResponseData,
-        >,
-        _connectors: &settings::Connectors,
-    ) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
+        _req: &RouterData<SetupMandate, SetupMandateRequestData, PaymentsResponseData>,
+        _connectors: &Connectors,
+    ) -> CustomResult<Option<Request>, errors::ConnectorError> {
         Err(
             errors::ConnectorError::NotImplemented("Setup Mandate flow for Powertranz".to_string())
                 .into(),
@@ -179,14 +179,12 @@ impl
     }
 }
 
-impl ConnectorIntegration<api::Authorize, types::PaymentsAuthorizeData, types::PaymentsResponseData>
-    for Powertranz
-{
+impl ConnectorIntegration<Authorize, PaymentsAuthorizeData, PaymentsResponseData> for Powertranz {
     fn get_headers(
         &self,
-        req: &types::PaymentsAuthorizeRouterData,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Vec<(String, request::Maskable<String>)>, errors::ConnectorError> {
+        req: &PaymentsAuthorizeRouterData,
+        connectors: &Connectors,
+    ) -> CustomResult<Vec<(String, masking::Maskable<String>)>, errors::ConnectorError> {
         self.build_headers(req, connectors)
     }
 
@@ -196,8 +194,8 @@ impl ConnectorIntegration<api::Authorize, types::PaymentsAuthorizeData, types::P
 
     fn get_url(
         &self,
-        req: &types::PaymentsAuthorizeRouterData,
-        connectors: &settings::Connectors,
+        req: &PaymentsAuthorizeRouterData,
+        connectors: &Connectors,
     ) -> CustomResult<String, errors::ConnectorError> {
         let mut endpoint = match req.request.is_auto_capture()? {
             true => "sale",
@@ -213,8 +211,8 @@ impl ConnectorIntegration<api::Authorize, types::PaymentsAuthorizeData, types::P
 
     fn get_request_body(
         &self,
-        req: &types::PaymentsAuthorizeRouterData,
-        _connectors: &settings::Connectors,
+        req: &PaymentsAuthorizeRouterData,
+        _connectors: &Connectors,
     ) -> CustomResult<RequestContent, errors::ConnectorError> {
         let connector_req = powertranz::PowertranzPaymentsRequest::try_from(req)?;
         Ok(RequestContent::Json(Box::new(connector_req)))
@@ -222,20 +220,16 @@ impl ConnectorIntegration<api::Authorize, types::PaymentsAuthorizeData, types::P
 
     fn build_request(
         &self,
-        req: &types::PaymentsAuthorizeRouterData,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
+        req: &PaymentsAuthorizeRouterData,
+        connectors: &Connectors,
+    ) -> CustomResult<Option<Request>, errors::ConnectorError> {
         Ok(Some(
-            services::RequestBuilder::new()
-                .method(services::Method::Post)
-                .url(&types::PaymentsAuthorizeType::get_url(
-                    self, req, connectors,
-                )?)
+            RequestBuilder::new()
+                .method(Method::Post)
+                .url(&PaymentsAuthorizeType::get_url(self, req, connectors)?)
                 .attach_default_headers()
-                .headers(types::PaymentsAuthorizeType::get_headers(
-                    self, req, connectors,
-                )?)
-                .set_body(types::PaymentsAuthorizeType::get_request_body(
+                .headers(PaymentsAuthorizeType::get_headers(self, req, connectors)?)
+                .set_body(PaymentsAuthorizeType::get_request_body(
                     self, req, connectors,
                 )?)
                 .build(),
@@ -244,10 +238,10 @@ impl ConnectorIntegration<api::Authorize, types::PaymentsAuthorizeData, types::P
 
     fn handle_response(
         &self,
-        data: &types::PaymentsAuthorizeRouterData,
+        data: &PaymentsAuthorizeRouterData,
         event_builder: Option<&mut ConnectorEvent>,
         res: Response,
-    ) -> CustomResult<types::PaymentsAuthorizeRouterData, errors::ConnectorError> {
+    ) -> CustomResult<PaymentsAuthorizeRouterData, errors::ConnectorError> {
         let response: powertranz::PowertranzBaseResponse = res
             .response
             .parse_struct("Powertranz PaymentsAuthorizeResponse")
@@ -256,7 +250,7 @@ impl ConnectorIntegration<api::Authorize, types::PaymentsAuthorizeData, types::P
         event_builder.map(|i| i.set_response_body(&response));
         router_env::logger::info!(connector_response=?response);
 
-        types::RouterData::try_from(types::ResponseRouterData {
+        RouterData::try_from(ResponseRouterData {
             response,
             data: data.clone(),
             http_code: res.status_code,
@@ -272,18 +266,14 @@ impl ConnectorIntegration<api::Authorize, types::PaymentsAuthorizeData, types::P
     }
 }
 
-impl
-    ConnectorIntegration<
-        api::CompleteAuthorize,
-        types::CompleteAuthorizeData,
-        types::PaymentsResponseData,
-    > for Powertranz
+impl ConnectorIntegration<CompleteAuthorize, CompleteAuthorizeData, PaymentsResponseData>
+    for Powertranz
 {
     fn get_headers(
         &self,
-        req: &types::PaymentsCompleteAuthorizeRouterData,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Vec<(String, request::Maskable<String>)>, errors::ConnectorError> {
+        req: &PaymentsCompleteAuthorizeRouterData,
+        connectors: &Connectors,
+    ) -> CustomResult<Vec<(String, masking::Maskable<String>)>, errors::ConnectorError> {
         self.build_headers(req, connectors)
     }
 
@@ -293,16 +283,16 @@ impl
 
     fn get_url(
         &self,
-        _req: &types::PaymentsCompleteAuthorizeRouterData,
-        connectors: &settings::Connectors,
+        _req: &PaymentsCompleteAuthorizeRouterData,
+        connectors: &Connectors,
     ) -> CustomResult<String, errors::ConnectorError> {
         Ok(format!("{}spi/payment", self.base_url(connectors)))
     }
 
     fn get_request_body(
         &self,
-        req: &types::PaymentsCompleteAuthorizeRouterData,
-        _connectors: &settings::Connectors,
+        req: &PaymentsCompleteAuthorizeRouterData,
+        _connectors: &Connectors,
     ) -> CustomResult<RequestContent, errors::ConnectorError> {
         let redirect_payload: powertranz::RedirectResponsePayload = req
             .request
@@ -315,20 +305,20 @@ impl
 
     fn build_request(
         &self,
-        req: &types::PaymentsCompleteAuthorizeRouterData,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
+        req: &PaymentsCompleteAuthorizeRouterData,
+        connectors: &Connectors,
+    ) -> CustomResult<Option<Request>, errors::ConnectorError> {
         Ok(Some(
-            services::RequestBuilder::new()
-                .method(services::Method::Post)
-                .url(&types::PaymentsCompleteAuthorizeType::get_url(
+            RequestBuilder::new()
+                .method(Method::Post)
+                .url(&PaymentsCompleteAuthorizeType::get_url(
                     self, req, connectors,
                 )?)
                 .attach_default_headers()
-                .headers(types::PaymentsCompleteAuthorizeType::get_headers(
+                .headers(PaymentsCompleteAuthorizeType::get_headers(
                     self, req, connectors,
                 )?)
-                .set_body(types::PaymentsCompleteAuthorizeType::get_request_body(
+                .set_body(PaymentsCompleteAuthorizeType::get_request_body(
                     self, req, connectors,
                 )?)
                 .build(),
@@ -337,10 +327,10 @@ impl
 
     fn handle_response(
         &self,
-        data: &types::PaymentsCompleteAuthorizeRouterData,
+        data: &PaymentsCompleteAuthorizeRouterData,
         event_builder: Option<&mut ConnectorEvent>,
         res: Response,
-    ) -> CustomResult<types::PaymentsCompleteAuthorizeRouterData, errors::ConnectorError> {
+    ) -> CustomResult<PaymentsCompleteAuthorizeRouterData, errors::ConnectorError> {
         let response: powertranz::PowertranzBaseResponse = res
             .response
             .parse_struct("Powertranz PaymentsCompleteAuthorizeResponse")
@@ -349,7 +339,7 @@ impl
         event_builder.map(|i| i.set_response_body(&response));
         router_env::logger::info!(connector_response=?response);
 
-        types::RouterData::try_from(types::ResponseRouterData {
+        RouterData::try_from(ResponseRouterData {
             response,
             data: data.clone(),
             http_code: res.status_code,
@@ -365,20 +355,16 @@ impl
     }
 }
 
-impl ConnectorIntegration<api::PSync, types::PaymentsSyncData, types::PaymentsResponseData>
-    for Powertranz
-{
+impl ConnectorIntegration<PSync, PaymentsSyncData, PaymentsResponseData> for Powertranz {
     // default implementation of build_request method will be executed
 }
 
-impl ConnectorIntegration<api::Capture, types::PaymentsCaptureData, types::PaymentsResponseData>
-    for Powertranz
-{
+impl ConnectorIntegration<Capture, PaymentsCaptureData, PaymentsResponseData> for Powertranz {
     fn get_headers(
         &self,
-        req: &types::PaymentsCaptureRouterData,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Vec<(String, request::Maskable<String>)>, errors::ConnectorError> {
+        req: &PaymentsCaptureRouterData,
+        connectors: &Connectors,
+    ) -> CustomResult<Vec<(String, masking::Maskable<String>)>, errors::ConnectorError> {
         self.build_headers(req, connectors)
     }
 
@@ -388,16 +374,16 @@ impl ConnectorIntegration<api::Capture, types::PaymentsCaptureData, types::Payme
 
     fn get_url(
         &self,
-        _req: &types::PaymentsCaptureRouterData,
-        connectors: &settings::Connectors,
+        _req: &PaymentsCaptureRouterData,
+        connectors: &Connectors,
     ) -> CustomResult<String, errors::ConnectorError> {
         Ok(format!("{}capture", self.base_url(connectors)))
     }
 
     fn get_request_body(
         &self,
-        req: &types::PaymentsCaptureRouterData,
-        _connectors: &settings::Connectors,
+        req: &PaymentsCaptureRouterData,
+        _connectors: &Connectors,
     ) -> CustomResult<RequestContent, errors::ConnectorError> {
         let connector_req = powertranz::PowertranzBaseRequest::try_from(&req.request)?;
         Ok(RequestContent::Json(Box::new(connector_req)))
@@ -405,18 +391,16 @@ impl ConnectorIntegration<api::Capture, types::PaymentsCaptureData, types::Payme
 
     fn build_request(
         &self,
-        req: &types::PaymentsCaptureRouterData,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
+        req: &PaymentsCaptureRouterData,
+        connectors: &Connectors,
+    ) -> CustomResult<Option<Request>, errors::ConnectorError> {
         Ok(Some(
-            services::RequestBuilder::new()
-                .method(services::Method::Post)
-                .url(&types::PaymentsCaptureType::get_url(self, req, connectors)?)
+            RequestBuilder::new()
+                .method(Method::Post)
+                .url(&PaymentsCaptureType::get_url(self, req, connectors)?)
                 .attach_default_headers()
-                .headers(types::PaymentsCaptureType::get_headers(
-                    self, req, connectors,
-                )?)
-                .set_body(types::PaymentsCaptureType::get_request_body(
+                .headers(PaymentsCaptureType::get_headers(self, req, connectors)?)
+                .set_body(PaymentsCaptureType::get_request_body(
                     self, req, connectors,
                 )?)
                 .build(),
@@ -425,10 +409,10 @@ impl ConnectorIntegration<api::Capture, types::PaymentsCaptureData, types::Payme
 
     fn handle_response(
         &self,
-        data: &types::PaymentsCaptureRouterData,
+        data: &PaymentsCaptureRouterData,
         event_builder: Option<&mut ConnectorEvent>,
         res: Response,
-    ) -> CustomResult<types::PaymentsCaptureRouterData, errors::ConnectorError> {
+    ) -> CustomResult<PaymentsCaptureRouterData, errors::ConnectorError> {
         let response: powertranz::PowertranzBaseResponse = res
             .response
             .parse_struct("Powertranz PaymentsCaptureResponse")
@@ -437,7 +421,7 @@ impl ConnectorIntegration<api::Capture, types::PaymentsCaptureData, types::Payme
         event_builder.map(|i| i.set_response_body(&response));
         router_env::logger::info!(connector_response=?response);
 
-        types::RouterData::try_from(types::ResponseRouterData {
+        RouterData::try_from(ResponseRouterData {
             response,
             data: data.clone(),
             http_code: res.status_code,
@@ -453,29 +437,27 @@ impl ConnectorIntegration<api::Capture, types::PaymentsCaptureData, types::Payme
     }
 }
 
-impl ConnectorIntegration<api::Void, types::PaymentsCancelData, types::PaymentsResponseData>
-    for Powertranz
-{
+impl ConnectorIntegration<Void, PaymentsCancelData, PaymentsResponseData> for Powertranz {
     fn get_headers(
         &self,
-        req: &types::PaymentsCancelRouterData,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Vec<(String, request::Maskable<String>)>, errors::ConnectorError> {
+        req: &PaymentsCancelRouterData,
+        connectors: &Connectors,
+    ) -> CustomResult<Vec<(String, masking::Maskable<String>)>, errors::ConnectorError> {
         self.build_headers(req, connectors)
     }
 
     fn get_url(
         &self,
-        _req: &types::RouterData<api::Void, types::PaymentsCancelData, types::PaymentsResponseData>,
-        connectors: &settings::Connectors,
+        _req: &RouterData<Void, PaymentsCancelData, PaymentsResponseData>,
+        connectors: &Connectors,
     ) -> CustomResult<String, errors::ConnectorError> {
         Ok(format!("{}void", self.base_url(connectors)))
     }
 
     fn get_request_body(
         &self,
-        req: &types::RouterData<api::Void, types::PaymentsCancelData, types::PaymentsResponseData>,
-        _connectors: &settings::Connectors,
+        req: &RouterData<Void, PaymentsCancelData, PaymentsResponseData>,
+        _connectors: &Connectors,
     ) -> CustomResult<RequestContent, errors::ConnectorError> {
         let connector_req = powertranz::PowertranzBaseRequest::try_from(&req.request)?;
         Ok(RequestContent::Json(Box::new(connector_req)))
@@ -483,10 +465,10 @@ impl ConnectorIntegration<api::Void, types::PaymentsCancelData, types::PaymentsR
 
     fn handle_response(
         &self,
-        data: &types::RouterData<api::Void, types::PaymentsCancelData, types::PaymentsResponseData>,
+        data: &RouterData<Void, PaymentsCancelData, PaymentsResponseData>,
         event_builder: Option<&mut ConnectorEvent>,
         res: Response,
-    ) -> CustomResult<types::PaymentsCancelRouterData, errors::ConnectorError> {
+    ) -> CustomResult<PaymentsCancelRouterData, errors::ConnectorError> {
         let response: powertranz::PowertranzBaseResponse = res
             .response
             .parse_struct("powertranz CancelResponse")
@@ -495,7 +477,7 @@ impl ConnectorIntegration<api::Void, types::PaymentsCancelData, types::PaymentsR
         event_builder.map(|i| i.set_response_body(&response));
         router_env::logger::info!(connector_response=?response);
 
-        types::RouterData::try_from(types::ResponseRouterData {
+        RouterData::try_from(ResponseRouterData {
             response,
             data: data.clone(),
             http_code: res.status_code,
@@ -504,18 +486,16 @@ impl ConnectorIntegration<api::Void, types::PaymentsCancelData, types::PaymentsR
 
     fn build_request(
         &self,
-        req: &types::RouterData<api::Void, types::PaymentsCancelData, types::PaymentsResponseData>,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
+        req: &RouterData<Void, PaymentsCancelData, PaymentsResponseData>,
+        connectors: &Connectors,
+    ) -> CustomResult<Option<Request>, errors::ConnectorError> {
         Ok(Some(
-            services::RequestBuilder::new()
-                .method(services::Method::Post)
-                .url(&types::PaymentsVoidType::get_url(self, req, connectors)?)
+            RequestBuilder::new()
+                .method(Method::Post)
+                .url(&PaymentsVoidType::get_url(self, req, connectors)?)
                 .attach_default_headers()
-                .headers(types::PaymentsVoidType::get_headers(self, req, connectors)?)
-                .set_body(types::PaymentsVoidType::get_request_body(
-                    self, req, connectors,
-                )?)
+                .headers(PaymentsVoidType::get_headers(self, req, connectors)?)
+                .set_body(PaymentsVoidType::get_request_body(self, req, connectors)?)
                 .build(),
         ))
     }
@@ -529,14 +509,12 @@ impl ConnectorIntegration<api::Void, types::PaymentsCancelData, types::PaymentsR
     }
 }
 
-impl ConnectorIntegration<api::Execute, types::RefundsData, types::RefundsResponseData>
-    for Powertranz
-{
+impl ConnectorIntegration<Execute, RefundsData, RefundsResponseData> for Powertranz {
     fn get_headers(
         &self,
-        req: &types::RefundsRouterData<api::Execute>,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Vec<(String, request::Maskable<String>)>, errors::ConnectorError> {
+        req: &RefundsRouterData<Execute>,
+        connectors: &Connectors,
+    ) -> CustomResult<Vec<(String, masking::Maskable<String>)>, errors::ConnectorError> {
         self.build_headers(req, connectors)
     }
 
@@ -546,16 +524,16 @@ impl ConnectorIntegration<api::Execute, types::RefundsData, types::RefundsRespon
 
     fn get_url(
         &self,
-        _req: &types::RefundsRouterData<api::Execute>,
-        connectors: &settings::Connectors,
+        _req: &RefundsRouterData<Execute>,
+        connectors: &Connectors,
     ) -> CustomResult<String, errors::ConnectorError> {
         Ok(format!("{}refund", self.base_url(connectors)))
     }
 
     fn get_request_body(
         &self,
-        req: &types::RefundsRouterData<api::Execute>,
-        _connectors: &settings::Connectors,
+        req: &RefundsRouterData<Execute>,
+        _connectors: &Connectors,
     ) -> CustomResult<RequestContent, errors::ConnectorError> {
         let connector_req = powertranz::PowertranzBaseRequest::try_from(req)?;
         Ok(RequestContent::Json(Box::new(connector_req)))
@@ -563,29 +541,25 @@ impl ConnectorIntegration<api::Execute, types::RefundsData, types::RefundsRespon
 
     fn build_request(
         &self,
-        req: &types::RefundsRouterData<api::Execute>,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
-        let request = services::RequestBuilder::new()
-            .method(services::Method::Post)
-            .url(&types::RefundExecuteType::get_url(self, req, connectors)?)
+        req: &RefundsRouterData<Execute>,
+        connectors: &Connectors,
+    ) -> CustomResult<Option<Request>, errors::ConnectorError> {
+        let request = RequestBuilder::new()
+            .method(Method::Post)
+            .url(&RefundExecuteType::get_url(self, req, connectors)?)
             .attach_default_headers()
-            .headers(types::RefundExecuteType::get_headers(
-                self, req, connectors,
-            )?)
-            .set_body(types::RefundExecuteType::get_request_body(
-                self, req, connectors,
-            )?)
+            .headers(RefundExecuteType::get_headers(self, req, connectors)?)
+            .set_body(RefundExecuteType::get_request_body(self, req, connectors)?)
             .build();
         Ok(Some(request))
     }
 
     fn handle_response(
         &self,
-        data: &types::RefundsRouterData<api::Execute>,
+        data: &RefundsRouterData<Execute>,
         event_builder: Option<&mut ConnectorEvent>,
         res: Response,
-    ) -> CustomResult<types::RefundsRouterData<api::Execute>, errors::ConnectorError> {
+    ) -> CustomResult<RefundsRouterData<Execute>, errors::ConnectorError> {
         let response: powertranz::PowertranzBaseResponse = res
             .response
             .parse_struct("powertranz RefundResponse")
@@ -594,7 +568,7 @@ impl ConnectorIntegration<api::Execute, types::RefundsData, types::RefundsRespon
         event_builder.map(|i| i.set_response_body(&response));
         router_env::logger::info!(connector_response=?response);
 
-        types::RouterData::try_from(types::ResponseRouterData {
+        RouterData::try_from(ResponseRouterData {
             response,
             data: data.clone(),
             http_code: res.status_code,
@@ -610,31 +584,29 @@ impl ConnectorIntegration<api::Execute, types::RefundsData, types::RefundsRespon
     }
 }
 
-impl ConnectorIntegration<api::RSync, types::RefundsData, types::RefundsResponseData>
-    for Powertranz
-{
+impl ConnectorIntegration<RSync, RefundsData, RefundsResponseData> for Powertranz {
     // default implementation of build_request method will be executed
 }
 
 #[async_trait::async_trait]
-impl api::IncomingWebhook for Powertranz {
+impl webhooks::IncomingWebhook for Powertranz {
     fn get_webhook_object_reference_id(
         &self,
-        _request: &api::IncomingWebhookRequestDetails<'_>,
-    ) -> CustomResult<api::webhooks::ObjectReferenceId, errors::ConnectorError> {
+        _request: &webhooks::IncomingWebhookRequestDetails<'_>,
+    ) -> CustomResult<api_models::webhooks::ObjectReferenceId, errors::ConnectorError> {
         Err(report!(errors::ConnectorError::WebhooksNotImplemented))
     }
 
     fn get_webhook_event_type(
         &self,
-        _request: &api::IncomingWebhookRequestDetails<'_>,
-    ) -> CustomResult<api::IncomingWebhookEvent, errors::ConnectorError> {
+        _request: &webhooks::IncomingWebhookRequestDetails<'_>,
+    ) -> CustomResult<api_models::webhooks::IncomingWebhookEvent, errors::ConnectorError> {
         Err(report!(errors::ConnectorError::WebhooksNotImplemented))
     }
 
     fn get_webhook_resource_object(
         &self,
-        _request: &api::IncomingWebhookRequestDetails<'_>,
+        _request: &webhooks::IncomingWebhookRequestDetails<'_>,
     ) -> CustomResult<Box<dyn masking::ErasedMaskSerialize>, errors::ConnectorError> {
         Err(report!(errors::ConnectorError::WebhooksNotImplemented))
     }
diff --git a/crates/router/src/connector/powertranz/transformers.rs b/crates/hyperswitch_connectors/src/connectors/powertranz/transformers.rs
similarity index 68%
rename from crates/router/src/connector/powertranz/transformers.rs
rename to crates/hyperswitch_connectors/src/connectors/powertranz/transformers.rs
index 97c2994b4c7..5ea64f8b958 100644
--- a/crates/router/src/connector/powertranz/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/powertranz/transformers.rs
@@ -1,15 +1,23 @@
+use common_enums::enums::{self, AuthenticationType, Currency};
 use common_utils::pii::IpAddress;
-use diesel_models::enums::RefundStatus;
+use hyperswitch_domain_models::{
+    payment_method_data::{Card, PaymentMethodData},
+    router_data::{ConnectorAuthType, ErrorResponse, RouterData},
+    router_flow_types::refunds::Execute,
+    router_request_types::{
+        BrowserInformation, PaymentsCancelData, PaymentsCaptureData, ResponseId,
+    },
+    router_response_types::{PaymentsResponseData, RefundsResponseData},
+    types::{PaymentsAuthorizeRouterData, RefundsRouterData},
+};
+use hyperswitch_interfaces::{consts, errors};
 use masking::{ExposeInterface, Secret};
 use serde::{Deserialize, Serialize};
 use uuid::Uuid;
 
 use crate::{
-    connector::utils::{self, CardData, PaymentsAuthorizeRequestData, RouterData},
-    consts,
-    core::errors,
-    services,
-    types::{self, api, domain, storage::enums, transformers::ForeignFrom},
+    types::{RefundsResponseRouterData, ResponseRouterData},
+    utils::{self, CardData, PaymentsAuthorizeRequestData, RouterData as _},
 };
 
 const ISO_SUCCESS_CODES: [&str; 7] = ["00", "3D0", "3D1", "HP0", "TK0", "SP4", "FC0"];
@@ -95,44 +103,40 @@ pub struct RedirectResponsePayload {
     pub spi_token: Secret<String>,
 }
 
-impl TryFrom<&types::PaymentsAuthorizeRouterData> for PowertranzPaymentsRequest {
+impl TryFrom<&PaymentsAuthorizeRouterData> for PowertranzPaymentsRequest {
     type Error = error_stack::Report<errors::ConnectorError>;
-    fn try_from(item: &types::PaymentsAuthorizeRouterData) -> Result<Self, Self::Error> {
+    fn try_from(item: &PaymentsAuthorizeRouterData) -> Result<Self, Self::Error> {
         let source = match item.request.payment_method_data.clone() {
-            domain::PaymentMethodData::Card(card) => {
+            PaymentMethodData::Card(card) => {
                 let card_holder_name = item.get_optional_billing_full_name();
                 Source::try_from((&card, card_holder_name))
             }
-            domain::PaymentMethodData::Wallet(_)
-            | domain::PaymentMethodData::CardRedirect(_)
-            | domain::PaymentMethodData::PayLater(_)
-            | domain::PaymentMethodData::BankRedirect(_)
-            | domain::PaymentMethodData::BankDebit(_)
-            | domain::PaymentMethodData::BankTransfer(_)
-            | domain::PaymentMethodData::Crypto(_)
-            | domain::PaymentMethodData::MandatePayment
-            | domain::PaymentMethodData::Reward
-            | domain::PaymentMethodData::RealTimePayment(_)
-            | domain::PaymentMethodData::Upi(_)
-            | domain::PaymentMethodData::Voucher(_)
-            | domain::PaymentMethodData::GiftCard(_)
-            | domain::PaymentMethodData::OpenBanking(_)
-            | domain::PaymentMethodData::CardToken(_)
-            | domain::PaymentMethodData::NetworkToken(_) => {
-                Err(errors::ConnectorError::NotSupported {
-                    message: utils::SELECTED_PAYMENT_METHOD.to_string(),
-                    connector: "powertranz",
-                }
-                .into())
+            PaymentMethodData::Wallet(_)
+            | PaymentMethodData::CardRedirect(_)
+            | PaymentMethodData::PayLater(_)
+            | PaymentMethodData::BankRedirect(_)
+            | PaymentMethodData::BankDebit(_)
+            | PaymentMethodData::BankTransfer(_)
+            | PaymentMethodData::Crypto(_)
+            | PaymentMethodData::MandatePayment
+            | PaymentMethodData::Reward
+            | PaymentMethodData::RealTimePayment(_)
+            | PaymentMethodData::Upi(_)
+            | PaymentMethodData::Voucher(_)
+            | PaymentMethodData::GiftCard(_)
+            | PaymentMethodData::OpenBanking(_)
+            | PaymentMethodData::CardToken(_)
+            | PaymentMethodData::NetworkToken(_) => Err(errors::ConnectorError::NotSupported {
+                message: utils::SELECTED_PAYMENT_METHOD.to_string(),
+                connector: "powertranz",
             }
+            .into()),
         }?;
         // let billing_address = get_address_details(&item.address.billing, &item.request.email);
         // let shipping_address = get_address_details(&item.address.shipping, &item.request.email);
         let (three_d_secure, extended_data) = match item.auth_type {
-            diesel_models::enums::AuthenticationType::ThreeDs => {
-                (true, Some(ExtendedData::try_from(item)?))
-            }
-            diesel_models::enums::AuthenticationType::NoThreeDs => (false, None),
+            AuthenticationType::ThreeDs => (true, Some(ExtendedData::try_from(item)?)),
+            AuthenticationType::NoThreeDs => (false, None),
         };
         Ok(Self {
             transaction_identifier: Uuid::new_v4().to_string(),
@@ -140,8 +144,7 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> for PowertranzPaymentsRequest
                 item.request.amount,
                 item.request.currency,
             )?,
-            currency_code: diesel_models::enums::Currency::iso_4217(&item.request.currency)
-                .to_string(),
+            currency_code: Currency::iso_4217(&item.request.currency).to_string(),
             three_d_secure,
             source,
             order_identifier: item.connector_request_reference_id.clone(),
@@ -152,9 +155,9 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> for PowertranzPaymentsRequest
     }
 }
 
-impl TryFrom<&types::PaymentsAuthorizeRouterData> for ExtendedData {
+impl TryFrom<&PaymentsAuthorizeRouterData> for ExtendedData {
     type Error = error_stack::Report<errors::ConnectorError>;
-    fn try_from(item: &types::PaymentsAuthorizeRouterData) -> Result<Self, Self::Error> {
+    fn try_from(item: &PaymentsAuthorizeRouterData) -> Result<Self, Self::Error> {
         Ok(Self {
             three_d_secure: ThreeDSecure {
                 // Merchants preferred sized of challenge window presented to cardholder.
@@ -167,9 +170,9 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> for ExtendedData {
     }
 }
 
-impl TryFrom<&types::BrowserInformation> for BrowserInfo {
+impl TryFrom<&BrowserInformation> for BrowserInfo {
     type Error = error_stack::Report<errors::ConnectorError>;
-    fn try_from(item: &types::BrowserInformation) -> Result<Self, Self::Error> {
+    fn try_from(item: &BrowserInformation) -> Result<Self, Self::Error> {
         Ok(Self {
             java_enabled: item.java_enabled,
             javascript_enabled: item.java_script_enabled,
@@ -219,10 +222,10 @@ impl TryFrom<&types::BrowserInformation> for BrowserInfo {
         })
 }*/
 
-impl TryFrom<(&domain::Card, Option<Secret<String>>)> for Source {
+impl TryFrom<(&Card, Option<Secret<String>>)> for Source {
     type Error = error_stack::Report<errors::ConnectorError>;
     fn try_from(
-        (card, card_holder_name): (&domain::Card, Option<Secret<String>>),
+        (card, card_holder_name): (&Card, Option<Secret<String>>),
     ) -> Result<Self, Self::Error> {
         let card = PowertranzCard {
             cardholder_name: card_holder_name.unwrap_or(Secret::new("".to_string())),
@@ -240,11 +243,11 @@ pub struct PowertranzAuthType {
     pub(super) power_tranz_password: Secret<String>,
 }
 
-impl TryFrom<&types::ConnectorAuthType> for PowertranzAuthType {
+impl TryFrom<&ConnectorAuthType> for PowertranzAuthType {
     type Error = error_stack::Report<errors::ConnectorError>;
-    fn try_from(auth_type: &types::ConnectorAuthType) -> Result<Self, Self::Error> {
+    fn try_from(auth_type: &ConnectorAuthType) -> Result<Self, Self::Error> {
         match auth_type {
-            types::ConnectorAuthType::BodyKey { api_key, key1 } => Ok(Self {
+            ConnectorAuthType::BodyKey { api_key, key1 } => Ok(Self {
                 power_tranz_id: key1.to_owned(),
                 power_tranz_password: api_key.to_owned(),
             }),
@@ -268,56 +271,53 @@ pub struct PowertranzBaseResponse {
     order_identifier: String,
 }
 
-impl ForeignFrom<(u8, bool, bool)> for enums::AttemptStatus {
-    fn foreign_from((transaction_type, approved, is_3ds): (u8, bool, bool)) -> Self {
-        match transaction_type {
-            // Auth
-            1 => match approved {
-                true => Self::Authorized,
-                false => match is_3ds {
-                    true => Self::AuthenticationPending,
-                    false => Self::Failure,
-                },
-            },
-            // Sale
-            2 => match approved {
-                true => Self::Charged,
-                false => match is_3ds {
-                    true => Self::AuthenticationPending,
-                    false => Self::Failure,
-                },
-            },
-            // Capture
-            3 => match approved {
-                true => Self::Charged,
-                false => Self::Failure,
+fn get_status((transaction_type, approved, is_3ds): (u8, bool, bool)) -> enums::AttemptStatus {
+    match transaction_type {
+        // Auth
+        1 => match approved {
+            true => enums::AttemptStatus::Authorized,
+            false => match is_3ds {
+                true => enums::AttemptStatus::AuthenticationPending,
+                false => enums::AttemptStatus::Failure,
             },
-            // Void
-            4 => match approved {
-                true => Self::Voided,
-                false => Self::VoidFailed,
+        },
+        // Sale
+        2 => match approved {
+            true => enums::AttemptStatus::Charged,
+            false => match is_3ds {
+                true => enums::AttemptStatus::AuthenticationPending,
+                false => enums::AttemptStatus::Failure,
             },
-            // Refund
-            5 => match approved {
-                true => Self::AutoRefunded,
-                false => Self::Failure,
-            },
-            // Risk Management
-            _ => match approved {
-                true => Self::Pending,
-                false => Self::Failure,
-            },
-        }
+        },
+        // Capture
+        3 => match approved {
+            true => enums::AttemptStatus::Charged,
+            false => enums::AttemptStatus::Failure,
+        },
+        // Void
+        4 => match approved {
+            true => enums::AttemptStatus::Voided,
+            false => enums::AttemptStatus::VoidFailed,
+        },
+        // Refund
+        5 => match approved {
+            true => enums::AttemptStatus::AutoRefunded,
+            false => enums::AttemptStatus::Failure,
+        },
+        // Risk Management
+        _ => match approved {
+            true => enums::AttemptStatus::Pending,
+            false => enums::AttemptStatus::Failure,
+        },
     }
 }
 
-impl<F, T>
-    TryFrom<types::ResponseRouterData<F, PowertranzBaseResponse, T, types::PaymentsResponseData>>
-    for types::RouterData<F, T, types::PaymentsResponseData>
+impl<F, T> TryFrom<ResponseRouterData<F, PowertranzBaseResponse, T, PaymentsResponseData>>
+    for RouterData<F, T, PaymentsResponseData>
 {
     type Error = error_stack::Report<errors::ConnectorError>;
     fn try_from(
-        item: types::ResponseRouterData<F, PowertranzBaseResponse, T, types::PaymentsResponseData>,
+        item: ResponseRouterData<F, PowertranzBaseResponse, T, PaymentsResponseData>,
     ) -> Result<Self, Self::Error> {
         let error_response = build_error_response(&item.response, item.http_code);
         // original_trxn_identifier will be present only in capture and void
@@ -325,15 +325,14 @@ impl<F, T>
             .response
             .original_trxn_identifier
             .unwrap_or(item.response.transaction_identifier.clone());
-        let redirection_data =
-            item.response
-                .redirect_data
-                .map(|redirect_data| services::RedirectForm::Html {
-                    html_data: redirect_data.expose(),
-                });
+        let redirection_data = item.response.redirect_data.map(|redirect_data| {
+            hyperswitch_domain_models::router_response_types::RedirectForm::Html {
+                html_data: redirect_data.expose(),
+            }
+        });
         let response = error_response.map_or(
-            Ok(types::PaymentsResponseData::TransactionResponse {
-                resource_id: types::ResponseId::ConnectorTransactionId(connector_transaction_id),
+            Ok(PaymentsResponseData::TransactionResponse {
+                resource_id: ResponseId::ConnectorTransactionId(connector_transaction_id),
                 redirection_data,
                 mandate_reference: None,
                 connector_metadata: None,
@@ -345,7 +344,7 @@ impl<F, T>
             Err,
         );
         Ok(Self {
-            status: enums::AttemptStatus::foreign_from((
+            status: get_status((
                 item.response.transaction_type,
                 item.response.approved,
                 is_3ds_payment(item.response.iso_response_code),
@@ -369,9 +368,9 @@ pub struct PowertranzBaseRequest {
     refund: Option<bool>,
 }
 
-impl TryFrom<&types::PaymentsCancelData> for PowertranzBaseRequest {
+impl TryFrom<&PaymentsCancelData> for PowertranzBaseRequest {
     type Error = error_stack::Report<errors::ConnectorError>;
-    fn try_from(item: &types::PaymentsCancelData) -> Result<Self, Self::Error> {
+    fn try_from(item: &PaymentsCancelData) -> Result<Self, Self::Error> {
         Ok(Self {
             transaction_identifier: item.connector_transaction_id.clone(),
             total_amount: None,
@@ -380,9 +379,9 @@ impl TryFrom<&types::PaymentsCancelData> for PowertranzBaseRequest {
     }
 }
 
-impl TryFrom<&types::PaymentsCaptureData> for PowertranzBaseRequest {
+impl TryFrom<&PaymentsCaptureData> for PowertranzBaseRequest {
     type Error = error_stack::Report<errors::ConnectorError>;
-    fn try_from(item: &types::PaymentsCaptureData) -> Result<Self, Self::Error> {
+    fn try_from(item: &PaymentsCaptureData) -> Result<Self, Self::Error> {
         let total_amount = Some(utils::to_currency_base_unit_asf64(
             item.amount_to_capture,
             item.currency,
@@ -395,9 +394,9 @@ impl TryFrom<&types::PaymentsCaptureData> for PowertranzBaseRequest {
     }
 }
 
-impl<F> TryFrom<&types::RefundsRouterData<F>> for PowertranzBaseRequest {
+impl<F> TryFrom<&RefundsRouterData<F>> for PowertranzBaseRequest {
     type Error = error_stack::Report<errors::ConnectorError>;
-    fn try_from(item: &types::RefundsRouterData<F>) -> Result<Self, Self::Error> {
+    fn try_from(item: &RefundsRouterData<F>) -> Result<Self, Self::Error> {
         let total_amount = Some(utils::to_currency_base_unit_asf64(
             item.request.refund_amount,
             item.request.currency,
@@ -410,20 +409,20 @@ impl<F> TryFrom<&types::RefundsRouterData<F>> for PowertranzBaseRequest {
     }
 }
 
-impl TryFrom<types::RefundsResponseRouterData<api::Execute, PowertranzBaseResponse>>
-    for types::RefundsRouterData<api::Execute>
+impl TryFrom<RefundsResponseRouterData<Execute, PowertranzBaseResponse>>
+    for RefundsRouterData<Execute>
 {
     type Error = error_stack::Report<errors::ConnectorError>;
     fn try_from(
-        item: types::RefundsResponseRouterData<api::Execute, PowertranzBaseResponse>,
+        item: RefundsResponseRouterData<Execute, PowertranzBaseResponse>,
     ) -> Result<Self, Self::Error> {
         let error_response = build_error_response(&item.response, item.http_code);
         let response = error_response.map_or(
-            Ok(types::RefundsResponseData {
+            Ok(RefundsResponseData {
                 connector_refund_id: item.response.transaction_identifier.to_string(),
                 refund_status: match item.response.approved {
-                    true => RefundStatus::Success,
-                    false => RefundStatus::Failure,
+                    true => enums::RefundStatus::Success,
+                    false => enums::RefundStatus::Failure,
                 },
             }),
             Err,
@@ -435,10 +434,7 @@ impl TryFrom<types::RefundsResponseRouterData<api::Execute, PowertranzBaseRespon
     }
 }
 
-fn build_error_response(
-    item: &PowertranzBaseResponse,
-    status_code: u16,
-) -> Option<types::ErrorResponse> {
+fn build_error_response(item: &PowertranzBaseResponse, status_code: u16) -> Option<ErrorResponse> {
     // errors object has highest precedence to get error message and code
     let error_response = if item.errors.is_some() {
         item.errors.as_ref().map(|errors| {
@@ -446,7 +442,7 @@ fn build_error_response(
             let code = first_error.map(|error| error.code.clone());
             let message = first_error.map(|error| error.message.clone());
 
-            types::ErrorResponse {
+            ErrorResponse {
                 status_code,
                 code: code.unwrap_or_else(|| consts::NO_ERROR_CODE.to_string()),
                 message: message.unwrap_or_else(|| consts::NO_ERROR_MESSAGE.to_string()),
@@ -463,7 +459,7 @@ fn build_error_response(
         })
     } else if !ISO_SUCCESS_CODES.contains(&item.iso_response_code.as_str()) {
         // Incase error object is not present the error message and code should be propagated based on iso_response_code
-        Some(types::ErrorResponse {
+        Some(ErrorResponse {
             status_code,
             code: item.iso_response_code.clone(),
             message: item.response_message.clone(),
diff --git a/crates/router/src/connector/tsys.rs b/crates/hyperswitch_connectors/src/connectors/tsys.rs
similarity index 57%
rename from crates/router/src/connector/tsys.rs
rename to crates/hyperswitch_connectors/src/connectors/tsys.rs
index 9387fbcec1e..ec53a99316f 100644
--- a/crates/router/src/connector/tsys.rs
+++ b/crates/hyperswitch_connectors/src/connectors/tsys.rs
@@ -2,29 +2,45 @@ pub mod transformers;
 
 use std::fmt::Debug;
 
-use common_utils::request::RequestContent;
-use diesel_models::enums;
+use common_enums::enums;
+use common_utils::{
+    errors::CustomResult,
+    ext_traits::BytesExt,
+    request::{Method, Request, RequestBuilder, RequestContent},
+};
 use error_stack::{report, ResultExt};
-use transformers as tsys;
-
-use crate::{
-    configs::settings,
-    connector::utils as connector_utils,
-    core::errors::{self, CustomResult},
-    events::connector_api_logs::ConnectorEvent,
-    headers,
-    services::{
-        self,
-        request::{self},
-        ConnectorIntegration, ConnectorValidation,
+use hyperswitch_domain_models::{
+    router_data::{AccessToken, ErrorResponse, RouterData},
+    router_flow_types::{
+        access_token_auth::AccessTokenAuth,
+        payments::{Authorize, Capture, PSync, PaymentMethodToken, Session, SetupMandate, Void},
+        refunds::{Execute, RSync},
+    },
+    router_request_types::{
+        AccessTokenRequestData, PaymentMethodTokenizationData, PaymentsAuthorizeData,
+        PaymentsCancelData, PaymentsCaptureData, PaymentsSessionData, PaymentsSyncData,
+        RefundsData, SetupMandateRequestData,
     },
+    router_response_types::{PaymentsResponseData, RefundsResponseData},
     types::{
-        self,
-        api::{self, ConnectorCommon, ConnectorCommonExt},
-        ErrorResponse, Response,
+        PaymentsAuthorizeRouterData, PaymentsCancelRouterData, PaymentsCaptureRouterData,
+        PaymentsSyncRouterData, RefundSyncRouterData, RefundsRouterData,
     },
-    utils::BytesExt,
 };
+use hyperswitch_interfaces::{
+    api::{self, ConnectorCommon, ConnectorCommonExt, ConnectorIntegration, ConnectorValidation},
+    configs::Connectors,
+    errors,
+    events::connector_api_logs::ConnectorEvent,
+    types::{
+        PaymentsAuthorizeType, PaymentsCaptureType, PaymentsSyncType, PaymentsVoidType,
+        RefundExecuteType, RefundSyncType, Response,
+    },
+    webhooks,
+};
+use transformers as tsys;
+
+use crate::{constants::headers, types::ResponseRouterData, utils};
 
 #[derive(Debug, Clone)]
 pub struct Tsys;
@@ -42,12 +58,8 @@ impl api::RefundExecute for Tsys {}
 impl api::RefundSync for Tsys {}
 impl api::PaymentToken for Tsys {}
 
-impl
-    ConnectorIntegration<
-        api::PaymentMethodToken,
-        types::PaymentMethodTokenizationData,
-        types::PaymentsResponseData,
-    > for Tsys
+impl ConnectorIntegration<PaymentMethodToken, PaymentMethodTokenizationData, PaymentsResponseData>
+    for Tsys
 {
 }
 
@@ -57,9 +69,9 @@ where
 {
     fn build_headers(
         &self,
-        _req: &types::RouterData<Flow, Request, Response>,
-        _connectors: &settings::Connectors,
-    ) -> CustomResult<Vec<(String, request::Maskable<String>)>, errors::ConnectorError> {
+        _req: &RouterData<Flow, Request, Response>,
+        _connectors: &Connectors,
+    ) -> CustomResult<Vec<(String, masking::Maskable<String>)>, errors::ConnectorError> {
         let header = vec![(
             headers::CONTENT_TYPE.to_string(),
             Self::get_content_type(self).to_string().into(),
@@ -77,7 +89,7 @@ impl ConnectorCommon for Tsys {
         "application/json"
     }
 
-    fn base_url<'a>(&self, connectors: &'a settings::Connectors) -> &'a str {
+    fn base_url<'a>(&self, connectors: &'a Connectors) -> &'a str {
         connectors.tsys.base_url.as_ref()
     }
 }
@@ -92,38 +104,22 @@ impl ConnectorValidation for Tsys {
         match capture_method {
             enums::CaptureMethod::Automatic | enums::CaptureMethod::Manual => Ok(()),
             enums::CaptureMethod::ManualMultiple | enums::CaptureMethod::Scheduled => Err(
-                connector_utils::construct_not_supported_error_report(capture_method, self.id()),
+                utils::construct_not_supported_error_report(capture_method, self.id()),
             ),
         }
     }
 }
 
-impl ConnectorIntegration<api::Session, types::PaymentsSessionData, types::PaymentsResponseData>
-    for Tsys
-{
-}
+impl ConnectorIntegration<Session, PaymentsSessionData, PaymentsResponseData> for Tsys {}
 
-impl ConnectorIntegration<api::AccessTokenAuth, types::AccessTokenRequestData, types::AccessToken>
-    for Tsys
-{
-}
+impl ConnectorIntegration<AccessTokenAuth, AccessTokenRequestData, AccessToken> for Tsys {}
 
-impl
-    ConnectorIntegration<
-        api::SetupMandate,
-        types::SetupMandateRequestData,
-        types::PaymentsResponseData,
-    > for Tsys
-{
+impl ConnectorIntegration<SetupMandate, SetupMandateRequestData, PaymentsResponseData> for Tsys {
     fn build_request(
         &self,
-        _req: &types::RouterData<
-            api::SetupMandate,
-            types::SetupMandateRequestData,
-            types::PaymentsResponseData,
-        >,
-        _connectors: &settings::Connectors,
-    ) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
+        _req: &RouterData<SetupMandate, SetupMandateRequestData, PaymentsResponseData>,
+        _connectors: &Connectors,
+    ) -> CustomResult<Option<Request>, errors::ConnectorError> {
         Err(
             errors::ConnectorError::NotImplemented("Setup Mandate flow for Tsys".to_string())
                 .into(),
@@ -131,14 +127,12 @@ impl
     }
 }
 
-impl ConnectorIntegration<api::Authorize, types::PaymentsAuthorizeData, types::PaymentsResponseData>
-    for Tsys
-{
+impl ConnectorIntegration<Authorize, PaymentsAuthorizeData, PaymentsResponseData> for Tsys {
     fn get_headers(
         &self,
-        req: &types::PaymentsAuthorizeRouterData,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Vec<(String, request::Maskable<String>)>, errors::ConnectorError> {
+        req: &PaymentsAuthorizeRouterData,
+        connectors: &Connectors,
+    ) -> CustomResult<Vec<(String, masking::Maskable<String>)>, errors::ConnectorError> {
         self.build_headers(req, connectors)
     }
 
@@ -148,8 +142,8 @@ impl ConnectorIntegration<api::Authorize, types::PaymentsAuthorizeData, types::P
 
     fn get_url(
         &self,
-        _req: &types::PaymentsAuthorizeRouterData,
-        connectors: &settings::Connectors,
+        _req: &PaymentsAuthorizeRouterData,
+        connectors: &Connectors,
     ) -> CustomResult<String, errors::ConnectorError> {
         Ok(format!(
             "{}servlets/transnox_api_server",
@@ -159,8 +153,8 @@ impl ConnectorIntegration<api::Authorize, types::PaymentsAuthorizeData, types::P
 
     fn get_request_body(
         &self,
-        req: &types::PaymentsAuthorizeRouterData,
-        _connectors: &settings::Connectors,
+        req: &PaymentsAuthorizeRouterData,
+        _connectors: &Connectors,
     ) -> CustomResult<RequestContent, errors::ConnectorError> {
         let connector_req = tsys::TsysPaymentsRequest::try_from(req)?;
         Ok(RequestContent::Json(Box::new(connector_req)))
@@ -168,20 +162,16 @@ impl ConnectorIntegration<api::Authorize, types::PaymentsAuthorizeData, types::P
 
     fn build_request(
         &self,
-        req: &types::PaymentsAuthorizeRouterData,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
+        req: &PaymentsAuthorizeRouterData,
+        connectors: &Connectors,
+    ) -> CustomResult<Option<Request>, errors::ConnectorError> {
         Ok(Some(
-            services::RequestBuilder::new()
-                .method(services::Method::Post)
-                .url(&types::PaymentsAuthorizeType::get_url(
-                    self, req, connectors,
-                )?)
+            RequestBuilder::new()
+                .method(Method::Post)
+                .url(&PaymentsAuthorizeType::get_url(self, req, connectors)?)
                 .attach_default_headers()
-                .headers(types::PaymentsAuthorizeType::get_headers(
-                    self, req, connectors,
-                )?)
-                .set_body(types::PaymentsAuthorizeType::get_request_body(
+                .headers(PaymentsAuthorizeType::get_headers(self, req, connectors)?)
+                .set_body(PaymentsAuthorizeType::get_request_body(
                     self, req, connectors,
                 )?)
                 .build(),
@@ -190,10 +180,10 @@ impl ConnectorIntegration<api::Authorize, types::PaymentsAuthorizeData, types::P
 
     fn handle_response(
         &self,
-        data: &types::PaymentsAuthorizeRouterData,
+        data: &PaymentsAuthorizeRouterData,
         event_builder: Option<&mut ConnectorEvent>,
         res: Response,
-    ) -> CustomResult<types::PaymentsAuthorizeRouterData, errors::ConnectorError> {
+    ) -> CustomResult<PaymentsAuthorizeRouterData, errors::ConnectorError> {
         let response: tsys::TsysPaymentsResponse = res
             .response
             .parse_struct("Tsys PaymentsAuthorizeResponse")
@@ -202,7 +192,7 @@ impl ConnectorIntegration<api::Authorize, types::PaymentsAuthorizeData, types::P
         event_builder.map(|i| i.set_response_body(&response));
         router_env::logger::info!(connector_response=?response);
 
-        types::RouterData::try_from(types::ResponseRouterData {
+        RouterData::try_from(ResponseRouterData {
             response,
             data: data.clone(),
             http_code: res.status_code,
@@ -218,14 +208,12 @@ impl ConnectorIntegration<api::Authorize, types::PaymentsAuthorizeData, types::P
     }
 }
 
-impl ConnectorIntegration<api::PSync, types::PaymentsSyncData, types::PaymentsResponseData>
-    for Tsys
-{
+impl ConnectorIntegration<PSync, PaymentsSyncData, PaymentsResponseData> for Tsys {
     fn get_headers(
         &self,
-        req: &types::PaymentsSyncRouterData,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Vec<(String, request::Maskable<String>)>, errors::ConnectorError> {
+        req: &PaymentsSyncRouterData,
+        connectors: &Connectors,
+    ) -> CustomResult<Vec<(String, masking::Maskable<String>)>, errors::ConnectorError> {
         self.build_headers(req, connectors)
     }
 
@@ -235,8 +223,8 @@ impl ConnectorIntegration<api::PSync, types::PaymentsSyncData, types::PaymentsRe
 
     fn get_url(
         &self,
-        _req: &types::PaymentsSyncRouterData,
-        connectors: &settings::Connectors,
+        _req: &PaymentsSyncRouterData,
+        connectors: &Connectors,
     ) -> CustomResult<String, errors::ConnectorError> {
         Ok(format!(
             "{}servlets/transnox_api_server",
@@ -246,8 +234,8 @@ impl ConnectorIntegration<api::PSync, types::PaymentsSyncData, types::PaymentsRe
 
     fn get_request_body(
         &self,
-        req: &types::PaymentsSyncRouterData,
-        _connectors: &settings::Connectors,
+        req: &PaymentsSyncRouterData,
+        _connectors: &Connectors,
     ) -> CustomResult<RequestContent, errors::ConnectorError> {
         let connector_req = tsys::TsysSyncRequest::try_from(req)?;
         Ok(RequestContent::Json(Box::new(connector_req)))
@@ -255,28 +243,26 @@ impl ConnectorIntegration<api::PSync, types::PaymentsSyncData, types::PaymentsRe
 
     fn build_request(
         &self,
-        req: &types::PaymentsSyncRouterData,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
+        req: &PaymentsSyncRouterData,
+        connectors: &Connectors,
+    ) -> CustomResult<Option<Request>, errors::ConnectorError> {
         Ok(Some(
-            services::RequestBuilder::new()
-                .method(services::Method::Post)
-                .url(&types::PaymentsSyncType::get_url(self, req, connectors)?)
+            RequestBuilder::new()
+                .method(Method::Post)
+                .url(&PaymentsSyncType::get_url(self, req, connectors)?)
                 .attach_default_headers()
-                .headers(types::PaymentsSyncType::get_headers(self, req, connectors)?)
-                .set_body(types::PaymentsSyncType::get_request_body(
-                    self, req, connectors,
-                )?)
+                .headers(PaymentsSyncType::get_headers(self, req, connectors)?)
+                .set_body(PaymentsSyncType::get_request_body(self, req, connectors)?)
                 .build(),
         ))
     }
 
     fn handle_response(
         &self,
-        data: &types::PaymentsSyncRouterData,
+        data: &PaymentsSyncRouterData,
         event_builder: Option<&mut ConnectorEvent>,
         res: Response,
-    ) -> CustomResult<types::PaymentsSyncRouterData, errors::ConnectorError> {
+    ) -> CustomResult<PaymentsSyncRouterData, errors::ConnectorError> {
         let response: tsys::TsysSyncResponse = res
             .response
             .parse_struct("tsys PaymentsSyncResponse")
@@ -285,7 +271,7 @@ impl ConnectorIntegration<api::PSync, types::PaymentsSyncData, types::PaymentsRe
         event_builder.map(|i| i.set_response_body(&response));
         router_env::logger::info!(connector_response=?response);
 
-        types::RouterData::try_from(types::ResponseRouterData {
+        RouterData::try_from(ResponseRouterData {
             response,
             data: data.clone(),
             http_code: res.status_code,
@@ -301,14 +287,12 @@ impl ConnectorIntegration<api::PSync, types::PaymentsSyncData, types::PaymentsRe
     }
 }
 
-impl ConnectorIntegration<api::Capture, types::PaymentsCaptureData, types::PaymentsResponseData>
-    for Tsys
-{
+impl ConnectorIntegration<Capture, PaymentsCaptureData, PaymentsResponseData> for Tsys {
     fn get_headers(
         &self,
-        req: &types::PaymentsCaptureRouterData,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Vec<(String, request::Maskable<String>)>, errors::ConnectorError> {
+        req: &PaymentsCaptureRouterData,
+        connectors: &Connectors,
+    ) -> CustomResult<Vec<(String, masking::Maskable<String>)>, errors::ConnectorError> {
         self.build_headers(req, connectors)
     }
 
@@ -318,8 +302,8 @@ impl ConnectorIntegration<api::Capture, types::PaymentsCaptureData, types::Payme
 
     fn get_url(
         &self,
-        _req: &types::PaymentsCaptureRouterData,
-        connectors: &settings::Connectors,
+        _req: &PaymentsCaptureRouterData,
+        connectors: &Connectors,
     ) -> CustomResult<String, errors::ConnectorError> {
         Ok(format!(
             "{}servlets/transnox_api_server",
@@ -329,8 +313,8 @@ impl ConnectorIntegration<api::Capture, types::PaymentsCaptureData, types::Payme
 
     fn get_request_body(
         &self,
-        req: &types::PaymentsCaptureRouterData,
-        _connectors: &settings::Connectors,
+        req: &PaymentsCaptureRouterData,
+        _connectors: &Connectors,
     ) -> CustomResult<RequestContent, errors::ConnectorError> {
         let connector_req = tsys::TsysPaymentsCaptureRequest::try_from(req)?;
         Ok(RequestContent::Json(Box::new(connector_req)))
@@ -338,18 +322,16 @@ impl ConnectorIntegration<api::Capture, types::PaymentsCaptureData, types::Payme
 
     fn build_request(
         &self,
-        req: &types::PaymentsCaptureRouterData,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
+        req: &PaymentsCaptureRouterData,
+        connectors: &Connectors,
+    ) -> CustomResult<Option<Request>, errors::ConnectorError> {
         Ok(Some(
-            services::RequestBuilder::new()
-                .method(services::Method::Post)
-                .url(&types::PaymentsCaptureType::get_url(self, req, connectors)?)
+            RequestBuilder::new()
+                .method(Method::Post)
+                .url(&PaymentsCaptureType::get_url(self, req, connectors)?)
                 .attach_default_headers()
-                .headers(types::PaymentsCaptureType::get_headers(
-                    self, req, connectors,
-                )?)
-                .set_body(types::PaymentsCaptureType::get_request_body(
+                .headers(PaymentsCaptureType::get_headers(self, req, connectors)?)
+                .set_body(PaymentsCaptureType::get_request_body(
                     self, req, connectors,
                 )?)
                 .build(),
@@ -358,10 +340,10 @@ impl ConnectorIntegration<api::Capture, types::PaymentsCaptureData, types::Payme
 
     fn handle_response(
         &self,
-        data: &types::PaymentsCaptureRouterData,
+        data: &PaymentsCaptureRouterData,
         event_builder: Option<&mut ConnectorEvent>,
         res: Response,
-    ) -> CustomResult<types::PaymentsCaptureRouterData, errors::ConnectorError> {
+    ) -> CustomResult<PaymentsCaptureRouterData, errors::ConnectorError> {
         let response: tsys::TsysPaymentsResponse = res
             .response
             .parse_struct("Tsys PaymentsCaptureResponse")
@@ -370,7 +352,7 @@ impl ConnectorIntegration<api::Capture, types::PaymentsCaptureData, types::Payme
         event_builder.map(|i| i.set_response_body(&response));
         router_env::logger::info!(connector_response=?response);
 
-        types::RouterData::try_from(types::ResponseRouterData {
+        RouterData::try_from(ResponseRouterData {
             response,
             data: data.clone(),
             http_code: res.status_code,
@@ -386,14 +368,12 @@ impl ConnectorIntegration<api::Capture, types::PaymentsCaptureData, types::Payme
     }
 }
 
-impl ConnectorIntegration<api::Void, types::PaymentsCancelData, types::PaymentsResponseData>
-    for Tsys
-{
+impl ConnectorIntegration<Void, PaymentsCancelData, PaymentsResponseData> for Tsys {
     fn get_headers(
         &self,
-        req: &types::PaymentsCancelRouterData,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Vec<(String, request::Maskable<String>)>, errors::ConnectorError> {
+        req: &PaymentsCancelRouterData,
+        connectors: &Connectors,
+    ) -> CustomResult<Vec<(String, masking::Maskable<String>)>, errors::ConnectorError> {
         self.build_headers(req, connectors)
     }
 
@@ -403,8 +383,8 @@ impl ConnectorIntegration<api::Void, types::PaymentsCancelData, types::PaymentsR
 
     fn get_url(
         &self,
-        _req: &types::PaymentsCancelRouterData,
-        connectors: &settings::Connectors,
+        _req: &PaymentsCancelRouterData,
+        connectors: &Connectors,
     ) -> CustomResult<String, errors::ConnectorError> {
         Ok(format!(
             "{}servlets/transnox_api_server",
@@ -413,8 +393,8 @@ impl ConnectorIntegration<api::Void, types::PaymentsCancelData, types::PaymentsR
     }
     fn get_request_body(
         &self,
-        req: &types::PaymentsCancelRouterData,
-        _connectors: &settings::Connectors,
+        req: &PaymentsCancelRouterData,
+        _connectors: &Connectors,
     ) -> CustomResult<RequestContent, errors::ConnectorError> {
         let connector_req = tsys::TsysPaymentsCancelRequest::try_from(req)?;
         Ok(RequestContent::Json(Box::new(connector_req)))
@@ -422,16 +402,14 @@ impl ConnectorIntegration<api::Void, types::PaymentsCancelData, types::PaymentsR
 
     fn build_request(
         &self,
-        req: &types::PaymentsCancelRouterData,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
-        let request = services::RequestBuilder::new()
-            .method(services::Method::Post)
-            .url(&types::PaymentsVoidType::get_url(self, req, connectors)?)
-            .headers(types::PaymentsVoidType::get_headers(self, req, connectors)?)
-            .set_body(types::PaymentsVoidType::get_request_body(
-                self, req, connectors,
-            )?)
+        req: &PaymentsCancelRouterData,
+        connectors: &Connectors,
+    ) -> CustomResult<Option<Request>, errors::ConnectorError> {
+        let request = RequestBuilder::new()
+            .method(Method::Post)
+            .url(&PaymentsVoidType::get_url(self, req, connectors)?)
+            .headers(PaymentsVoidType::get_headers(self, req, connectors)?)
+            .set_body(PaymentsVoidType::get_request_body(self, req, connectors)?)
             .build();
 
         Ok(Some(request))
@@ -439,10 +417,10 @@ impl ConnectorIntegration<api::Void, types::PaymentsCancelData, types::PaymentsR
 
     fn handle_response(
         &self,
-        data: &types::PaymentsCancelRouterData,
+        data: &PaymentsCancelRouterData,
         event_builder: Option<&mut ConnectorEvent>,
         res: Response,
-    ) -> CustomResult<types::PaymentsCancelRouterData, errors::ConnectorError> {
+    ) -> CustomResult<PaymentsCancelRouterData, errors::ConnectorError> {
         let response: tsys::TsysPaymentsResponse = res
             .response
             .parse_struct("PaymentCancelResponse")
@@ -451,7 +429,7 @@ impl ConnectorIntegration<api::Void, types::PaymentsCancelData, types::PaymentsR
         event_builder.map(|i| i.set_response_body(&response));
         router_env::logger::info!(connector_response=?response);
 
-        types::RouterData::try_from(types::ResponseRouterData {
+        RouterData::try_from(ResponseRouterData {
             response,
             data: data.clone(),
             http_code: res.status_code,
@@ -466,12 +444,12 @@ impl ConnectorIntegration<api::Void, types::PaymentsCancelData, types::PaymentsR
     }
 }
 
-impl ConnectorIntegration<api::Execute, types::RefundsData, types::RefundsResponseData> for Tsys {
+impl ConnectorIntegration<Execute, RefundsData, RefundsResponseData> for Tsys {
     fn get_headers(
         &self,
-        req: &types::RefundsRouterData<api::Execute>,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Vec<(String, request::Maskable<String>)>, errors::ConnectorError> {
+        req: &RefundsRouterData<Execute>,
+        connectors: &Connectors,
+    ) -> CustomResult<Vec<(String, masking::Maskable<String>)>, errors::ConnectorError> {
         self.build_headers(req, connectors)
     }
 
@@ -481,8 +459,8 @@ impl ConnectorIntegration<api::Execute, types::RefundsData, types::RefundsRespon
 
     fn get_url(
         &self,
-        _req: &types::RefundsRouterData<api::Execute>,
-        connectors: &settings::Connectors,
+        _req: &RefundsRouterData<Execute>,
+        connectors: &Connectors,
     ) -> CustomResult<String, errors::ConnectorError> {
         Ok(format!(
             "{}servlets/transnox_api_server",
@@ -492,8 +470,8 @@ impl ConnectorIntegration<api::Execute, types::RefundsData, types::RefundsRespon
 
     fn get_request_body(
         &self,
-        req: &types::RefundsRouterData<api::Execute>,
-        _connectors: &settings::Connectors,
+        req: &RefundsRouterData<Execute>,
+        _connectors: &Connectors,
     ) -> CustomResult<RequestContent, errors::ConnectorError> {
         let connector_req = tsys::TsysRefundRequest::try_from(req)?;
         Ok(RequestContent::Json(Box::new(connector_req)))
@@ -501,29 +479,25 @@ impl ConnectorIntegration<api::Execute, types::RefundsData, types::RefundsRespon
 
     fn build_request(
         &self,
-        req: &types::RefundsRouterData<api::Execute>,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
-        let request = services::RequestBuilder::new()
-            .method(services::Method::Post)
-            .url(&types::RefundExecuteType::get_url(self, req, connectors)?)
+        req: &RefundsRouterData<Execute>,
+        connectors: &Connectors,
+    ) -> CustomResult<Option<Request>, errors::ConnectorError> {
+        let request = RequestBuilder::new()
+            .method(Method::Post)
+            .url(&RefundExecuteType::get_url(self, req, connectors)?)
             .attach_default_headers()
-            .headers(types::RefundExecuteType::get_headers(
-                self, req, connectors,
-            )?)
-            .set_body(types::RefundExecuteType::get_request_body(
-                self, req, connectors,
-            )?)
+            .headers(RefundExecuteType::get_headers(self, req, connectors)?)
+            .set_body(RefundExecuteType::get_request_body(self, req, connectors)?)
             .build();
         Ok(Some(request))
     }
 
     fn handle_response(
         &self,
-        data: &types::RefundsRouterData<api::Execute>,
+        data: &RefundsRouterData<Execute>,
         event_builder: Option<&mut ConnectorEvent>,
         res: Response,
-    ) -> CustomResult<types::RefundsRouterData<api::Execute>, errors::ConnectorError> {
+    ) -> CustomResult<RefundsRouterData<Execute>, errors::ConnectorError> {
         let response: tsys::RefundResponse = res
             .response
             .parse_struct("tsys RefundResponse")
@@ -532,7 +506,7 @@ impl ConnectorIntegration<api::Execute, types::RefundsData, types::RefundsRespon
         event_builder.map(|i| i.set_response_body(&response));
         router_env::logger::info!(connector_response=?response);
 
-        types::RouterData::try_from(types::ResponseRouterData {
+        RouterData::try_from(ResponseRouterData {
             response,
             data: data.clone(),
             http_code: res.status_code,
@@ -548,12 +522,12 @@ impl ConnectorIntegration<api::Execute, types::RefundsData, types::RefundsRespon
     }
 }
 
-impl ConnectorIntegration<api::RSync, types::RefundsData, types::RefundsResponseData> for Tsys {
+impl ConnectorIntegration<RSync, RefundsData, RefundsResponseData> for Tsys {
     fn get_headers(
         &self,
-        req: &types::RefundSyncRouterData,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Vec<(String, request::Maskable<String>)>, errors::ConnectorError> {
+        req: &RefundSyncRouterData,
+        connectors: &Connectors,
+    ) -> CustomResult<Vec<(String, masking::Maskable<String>)>, errors::ConnectorError> {
         self.build_headers(req, connectors)
     }
 
@@ -563,8 +537,8 @@ impl ConnectorIntegration<api::RSync, types::RefundsData, types::RefundsResponse
 
     fn get_url(
         &self,
-        _req: &types::RefundSyncRouterData,
-        connectors: &settings::Connectors,
+        _req: &RefundSyncRouterData,
+        connectors: &Connectors,
     ) -> CustomResult<String, errors::ConnectorError> {
         Ok(format!(
             "{}servlets/transnox_api_server",
@@ -574,8 +548,8 @@ impl ConnectorIntegration<api::RSync, types::RefundsData, types::RefundsResponse
 
     fn get_request_body(
         &self,
-        req: &types::RefundSyncRouterData,
-        _connectors: &settings::Connectors,
+        req: &RefundSyncRouterData,
+        _connectors: &Connectors,
     ) -> CustomResult<RequestContent, errors::ConnectorError> {
         let connector_req = tsys::TsysSyncRequest::try_from(req)?;
         Ok(RequestContent::Json(Box::new(connector_req)))
@@ -583,28 +557,26 @@ impl ConnectorIntegration<api::RSync, types::RefundsData, types::RefundsResponse
 
     fn build_request(
         &self,
-        req: &types::RefundSyncRouterData,
-        connectors: &settings::Connectors,
-    ) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
+        req: &RefundSyncRouterData,
+        connectors: &Connectors,
+    ) -> CustomResult<Option<Request>, errors::ConnectorError> {
         Ok(Some(
-            services::RequestBuilder::new()
-                .method(services::Method::Post)
-                .url(&types::RefundSyncType::get_url(self, req, connectors)?)
+            RequestBuilder::new()
+                .method(Method::Post)
+                .url(&RefundSyncType::get_url(self, req, connectors)?)
                 .attach_default_headers()
-                .headers(types::RefundSyncType::get_headers(self, req, connectors)?)
-                .set_body(types::RefundSyncType::get_request_body(
-                    self, req, connectors,
-                )?)
+                .headers(RefundSyncType::get_headers(self, req, connectors)?)
+                .set_body(RefundSyncType::get_request_body(self, req, connectors)?)
                 .build(),
         ))
     }
 
     fn handle_response(
         &self,
-        data: &types::RefundSyncRouterData,
+        data: &RefundSyncRouterData,
         event_builder: Option<&mut ConnectorEvent>,
         res: Response,
-    ) -> CustomResult<types::RefundSyncRouterData, errors::ConnectorError> {
+    ) -> CustomResult<RefundSyncRouterData, errors::ConnectorError> {
         let response: tsys::TsysSyncResponse = res
             .response
             .parse_struct("tsys RefundSyncResponse")
@@ -613,7 +585,7 @@ impl ConnectorIntegration<api::RSync, types::RefundsData, types::RefundsResponse
         event_builder.map(|i| i.set_response_body(&response));
         router_env::logger::info!(connector_response=?response);
 
-        types::RouterData::try_from(types::ResponseRouterData {
+        RouterData::try_from(ResponseRouterData {
             response,
             data: data.clone(),
             http_code: res.status_code,
@@ -630,24 +602,24 @@ impl ConnectorIntegration<api::RSync, types::RefundsData, types::RefundsResponse
 }
 
 #[async_trait::async_trait]
-impl api::IncomingWebhook for Tsys {
+impl webhooks::IncomingWebhook for Tsys {
     fn get_webhook_object_reference_id(
         &self,
-        _request: &api::IncomingWebhookRequestDetails<'_>,
-    ) -> CustomResult<api::webhooks::ObjectReferenceId, errors::ConnectorError> {
+        _request: &webhooks::IncomingWebhookRequestDetails<'_>,
+    ) -> CustomResult<api_models::webhooks::ObjectReferenceId, errors::ConnectorError> {
         Err(report!(errors::ConnectorError::WebhooksNotImplemented))
     }
 
     fn get_webhook_event_type(
         &self,
-        _request: &api::IncomingWebhookRequestDetails<'_>,
-    ) -> CustomResult<api::IncomingWebhookEvent, errors::ConnectorError> {
+        _request: &webhooks::IncomingWebhookRequestDetails<'_>,
+    ) -> CustomResult<api_models::webhooks::IncomingWebhookEvent, errors::ConnectorError> {
         Err(report!(errors::ConnectorError::WebhooksNotImplemented))
     }
 
     fn get_webhook_resource_object(
         &self,
-        _request: &api::IncomingWebhookRequestDetails<'_>,
+        _request: &webhooks::IncomingWebhookRequestDetails<'_>,
     ) -> CustomResult<Box<dyn masking::ErasedMaskSerialize>, errors::ConnectorError> {
         Err(report!(errors::ConnectorError::WebhooksNotImplemented))
     }
diff --git a/crates/router/src/connector/tsys/transformers.rs b/crates/hyperswitch_connectors/src/connectors/tsys/transformers.rs
similarity index 81%
rename from crates/router/src/connector/tsys/transformers.rs
rename to crates/hyperswitch_connectors/src/connectors/tsys/transformers.rs
index 347a95151d5..8d96058c233 100644
--- a/crates/router/src/connector/tsys/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/tsys/transformers.rs
@@ -1,11 +1,23 @@
+use common_enums::enums;
 use error_stack::ResultExt;
+use hyperswitch_domain_models::{
+    payment_method_data::PaymentMethodData,
+    router_data::{self, ConnectorAuthType, RouterData},
+    router_flow_types::refunds::{Execute, RSync},
+    router_request_types::ResponseId,
+    router_response_types::{PaymentsResponseData, RefundsResponseData},
+    types::{
+        self, PaymentsCancelRouterData, PaymentsCaptureRouterData, PaymentsSyncRouterData,
+        RefundSyncRouterData, RefundsRouterData,
+    },
+};
+use hyperswitch_interfaces::errors;
 use masking::Secret;
 use serde::{Deserialize, Serialize};
 
 use crate::{
-    connector::utils::{self, CardData, PaymentsAuthorizeRequestData, RefundsRequestData},
-    core::errors,
-    types::{self, api, domain, storage::enums},
+    types::{RefundsResponseRouterData, ResponseRouterData},
+    utils::{self, CardData as _, PaymentsAuthorizeRequestData, RefundsRequestData as _},
 };
 
 #[derive(Debug, Serialize)]
@@ -38,7 +50,7 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> for TsysPaymentsRequest {
     type Error = error_stack::Report<errors::ConnectorError>;
     fn try_from(item: &types::PaymentsAuthorizeRouterData) -> Result<Self, Self::Error> {
         match item.request.payment_method_data.clone() {
-            domain::PaymentMethodData::Card(ccard) => {
+            PaymentMethodData::Card(ccard) => {
                 let connector_auth: TsysAuthType =
                     TsysAuthType::try_from(&item.connector_auth_type)?;
                 let auth_data: TsysPaymentAuthSaleRequest = TsysPaymentAuthSaleRequest {
@@ -63,26 +75,24 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> for TsysPaymentsRequest {
                     Ok(Self::Auth(auth_data))
                 }
             }
-            domain::PaymentMethodData::CardRedirect(_)
-            | domain::PaymentMethodData::Wallet(_)
-            | domain::PaymentMethodData::PayLater(_)
-            | domain::PaymentMethodData::BankRedirect(_)
-            | domain::PaymentMethodData::BankDebit(_)
-            | domain::PaymentMethodData::BankTransfer(_)
-            | domain::PaymentMethodData::Crypto(_)
-            | domain::PaymentMethodData::MandatePayment
-            | domain::PaymentMethodData::Reward
-            | domain::PaymentMethodData::RealTimePayment(_)
-            | domain::PaymentMethodData::Upi(_)
-            | domain::PaymentMethodData::Voucher(_)
-            | domain::PaymentMethodData::GiftCard(_)
-            | domain::PaymentMethodData::OpenBanking(_)
-            | domain::PaymentMethodData::CardToken(_)
-            | domain::PaymentMethodData::NetworkToken(_) => {
-                Err(errors::ConnectorError::NotImplemented(
-                    utils::get_unimplemented_payment_method_error_message("tsys"),
-                ))?
-            }
+            PaymentMethodData::CardRedirect(_)
+            | PaymentMethodData::Wallet(_)
+            | PaymentMethodData::PayLater(_)
+            | PaymentMethodData::BankRedirect(_)
+            | PaymentMethodData::BankDebit(_)
+            | PaymentMethodData::BankTransfer(_)
+            | PaymentMethodData::Crypto(_)
+            | PaymentMethodData::MandatePayment
+            | PaymentMethodData::Reward
+            | PaymentMethodData::RealTimePayment(_)
+            | PaymentMethodData::Upi(_)
+            | PaymentMethodData::Voucher(_)
+            | PaymentMethodData::GiftCard(_)
+            | PaymentMethodData::OpenBanking(_)
+            | PaymentMethodData::CardToken(_)
+            | PaymentMethodData::NetworkToken(_) => Err(errors::ConnectorError::NotImplemented(
+                utils::get_unimplemented_payment_method_error_message("tsys"),
+            ))?,
         }
     }
 }
@@ -94,11 +104,11 @@ pub struct TsysAuthType {
     pub(super) developer_id: Secret<String>,
 }
 
-impl TryFrom<&types::ConnectorAuthType> for TsysAuthType {
+impl TryFrom<&ConnectorAuthType> for TsysAuthType {
     type Error = error_stack::Report<errors::ConnectorError>;
-    fn try_from(auth_type: &types::ConnectorAuthType) -> Result<Self, Self::Error> {
+    fn try_from(auth_type: &ConnectorAuthType) -> Result<Self, Self::Error> {
         match auth_type {
-            types::ConnectorAuthType::SignatureKey {
+            ConnectorAuthType::SignatureKey {
                 api_key,
                 key1,
                 api_secret,
@@ -199,8 +209,8 @@ pub enum TsysPaymentsResponse {
 fn get_error_response(
     connector_response: TsysErrorResponse,
     status_code: u16,
-) -> types::ErrorResponse {
-    types::ErrorResponse {
+) -> router_data::ErrorResponse {
+    router_data::ErrorResponse {
         code: connector_response.response_code,
         message: connector_response.response_message.clone(),
         reason: Some(connector_response.response_message),
@@ -210,11 +220,9 @@ fn get_error_response(
     }
 }
 
-fn get_payments_response(connector_response: TsysResponse) -> types::PaymentsResponseData {
-    types::PaymentsResponseData::TransactionResponse {
-        resource_id: types::ResponseId::ConnectorTransactionId(
-            connector_response.transaction_id.clone(),
-        ),
+fn get_payments_response(connector_response: TsysResponse) -> PaymentsResponseData {
+    PaymentsResponseData::TransactionResponse {
+        resource_id: ResponseId::ConnectorTransactionId(connector_response.transaction_id.clone()),
         redirection_data: None,
         mandate_reference: None,
         connector_metadata: None,
@@ -227,9 +235,9 @@ fn get_payments_response(connector_response: TsysResponse) -> types::PaymentsRes
 
 fn get_payments_sync_response(
     connector_response: &TsysPaymentsSyncResponse,
-) -> types::PaymentsResponseData {
-    types::PaymentsResponseData::TransactionResponse {
-        resource_id: types::ResponseId::ConnectorTransactionId(
+) -> PaymentsResponseData {
+    PaymentsResponseData::TransactionResponse {
+        resource_id: ResponseId::ConnectorTransactionId(
             connector_response
                 .transaction_details
                 .transaction_id
@@ -250,13 +258,12 @@ fn get_payments_sync_response(
     }
 }
 
-impl<F, T>
-    TryFrom<types::ResponseRouterData<F, TsysPaymentsResponse, T, types::PaymentsResponseData>>
-    for types::RouterData<F, T, types::PaymentsResponseData>
+impl<F, T> TryFrom<ResponseRouterData<F, TsysPaymentsResponse, T, PaymentsResponseData>>
+    for RouterData<F, T, PaymentsResponseData>
 {
     type Error = error_stack::Report<errors::ConnectorError>;
     fn try_from(
-        item: types::ResponseRouterData<F, TsysPaymentsResponse, T, types::PaymentsResponseData>,
+        item: ResponseRouterData<F, TsysPaymentsResponse, T, PaymentsResponseData>,
     ) -> Result<Self, Self::Error> {
         let (response, status) = match item.response {
             TsysPaymentsResponse::AuthResponse(resp) => match resp {
@@ -326,9 +333,9 @@ pub struct TsysSyncRequest {
     search_transaction: TsysSearchTransactionRequest,
 }
 
-impl TryFrom<&types::PaymentsSyncRouterData> for TsysSyncRequest {
+impl TryFrom<&PaymentsSyncRouterData> for TsysSyncRequest {
     type Error = error_stack::Report<errors::ConnectorError>;
-    fn try_from(item: &types::PaymentsSyncRouterData) -> Result<Self, Self::Error> {
+    fn try_from(item: &PaymentsSyncRouterData) -> Result<Self, Self::Error> {
         let connector_auth: TsysAuthType = TsysAuthType::try_from(&item.connector_auth_type)?;
         let search_transaction = TsysSearchTransactionRequest {
             device_id: connector_auth.device_id,
@@ -357,12 +364,12 @@ pub struct TsysSyncResponse {
     search_transaction_response: SearchResponseTypes,
 }
 
-impl<F, T> TryFrom<types::ResponseRouterData<F, TsysSyncResponse, T, types::PaymentsResponseData>>
-    for types::RouterData<F, T, types::PaymentsResponseData>
+impl<F, T> TryFrom<ResponseRouterData<F, TsysSyncResponse, T, PaymentsResponseData>>
+    for RouterData<F, T, PaymentsResponseData>
 {
     type Error = error_stack::Report<errors::ConnectorError>;
     fn try_from(
-        item: types::ResponseRouterData<F, TsysSyncResponse, T, types::PaymentsResponseData>,
+        item: ResponseRouterData<F, TsysSyncResponse, T, PaymentsResponseData>,
     ) -> Result<Self, Self::Error> {
         let tsys_search_response = item.response.search_transaction_response;
         let (response, status) = match tsys_search_response {
@@ -400,9 +407,9 @@ pub struct TsysCancelRequest {
 pub struct TsysPaymentsCancelRequest {
     void: TsysCancelRequest,
 }
-impl TryFrom<&types::PaymentsCancelRouterData> for TsysPaymentsCancelRequest {
+impl TryFrom<&PaymentsCancelRouterData> for TsysPaymentsCancelRequest {
     type Error = error_stack::Report<errors::ConnectorError>;
-    fn try_from(item: &types::PaymentsCancelRouterData) -> Result<Self, Self::Error> {
+    fn try_from(item: &PaymentsCancelRouterData) -> Result<Self, Self::Error> {
         let connector_auth: TsysAuthType = TsysAuthType::try_from(&item.connector_auth_type)?;
         let void = TsysCancelRequest {
             device_id: connector_auth.device_id,
@@ -434,9 +441,9 @@ pub struct TsysPaymentsCaptureRequest {
     capture: TsysCaptureRequest,
 }
 
-impl TryFrom<&types::PaymentsCaptureRouterData> for TsysPaymentsCaptureRequest {
+impl TryFrom<&PaymentsCaptureRouterData> for TsysPaymentsCaptureRequest {
     type Error = error_stack::Report<errors::ConnectorError>;
-    fn try_from(item: &types::PaymentsCaptureRouterData) -> Result<Self, Self::Error> {
+    fn try_from(item: &PaymentsCaptureRouterData) -> Result<Self, Self::Error> {
         let connector_auth: TsysAuthType = TsysAuthType::try_from(&item.connector_auth_type)?;
         let capture = TsysCaptureRequest {
             device_id: connector_auth.device_id,
@@ -468,9 +475,9 @@ pub struct TsysRefundRequest {
     return_request: TsysReturnRequest,
 }
 
-impl<F> TryFrom<&types::RefundsRouterData<F>> for TsysRefundRequest {
+impl<F> TryFrom<&RefundsRouterData<F>> for TsysRefundRequest {
     type Error = error_stack::Report<errors::ConnectorError>;
-    fn try_from(item: &types::RefundsRouterData<F>) -> Result<Self, Self::Error> {
+    fn try_from(item: &RefundsRouterData<F>) -> Result<Self, Self::Error> {
         let connector_auth: TsysAuthType = TsysAuthType::try_from(&item.connector_auth_type)?;
         let return_request = TsysReturnRequest {
             device_id: connector_auth.device_id,
@@ -508,16 +515,14 @@ pub struct RefundResponse {
     return_response: TsysResponseTypes,
 }
 
-impl TryFrom<types::RefundsResponseRouterData<api::Execute, RefundResponse>>
-    for types::RefundsRouterData<api::Execute>
-{
+impl TryFrom<RefundsResponseRouterData<Execute, RefundResponse>> for RefundsRouterData<Execute> {
     type Error = error_stack::Report<errors::ConnectorError>;
     fn try_from(
-        item: types::RefundsResponseRouterData<api::Execute, RefundResponse>,
+        item: RefundsResponseRouterData<Execute, RefundResponse>,
     ) -> Result<Self, Self::Error> {
         let tsys_return_response = item.response.return_response;
         let response = match tsys_return_response {
-            TsysResponseTypes::SuccessResponse(return_response) => Ok(types::RefundsResponseData {
+            TsysResponseTypes::SuccessResponse(return_response) => Ok(RefundsResponseData {
                 connector_refund_id: return_response.transaction_id,
                 refund_status: enums::RefundStatus::from(return_response.status),
             }),
@@ -532,9 +537,9 @@ impl TryFrom<types::RefundsResponseRouterData<api::Execute, RefundResponse>>
     }
 }
 
-impl TryFrom<&types::RefundSyncRouterData> for TsysSyncRequest {
+impl TryFrom<&RefundSyncRouterData> for TsysSyncRequest {
     type Error = error_stack::Report<errors::ConnectorError>;
-    fn try_from(item: &types::RefundSyncRouterData) -> Result<Self, Self::Error> {
+    fn try_from(item: &RefundSyncRouterData) -> Result<Self, Self::Error> {
         let connector_auth: TsysAuthType = TsysAuthType::try_from(&item.connector_auth_type)?;
         let search_transaction = TsysSearchTransactionRequest {
             device_id: connector_auth.device_id,
@@ -546,21 +551,17 @@ impl TryFrom<&types::RefundSyncRouterData> for TsysSyncRequest {
     }
 }
 
-impl TryFrom<types::RefundsResponseRouterData<api::RSync, TsysSyncResponse>>
-    for types::RefundsRouterData<api::RSync>
-{
+impl TryFrom<RefundsResponseRouterData<RSync, TsysSyncResponse>> for RefundsRouterData<RSync> {
     type Error = error_stack::Report<errors::ConnectorError>;
     fn try_from(
-        item: types::RefundsResponseRouterData<api::RSync, TsysSyncResponse>,
+        item: RefundsResponseRouterData<RSync, TsysSyncResponse>,
     ) -> Result<Self, Self::Error> {
         let tsys_search_response = item.response.search_transaction_response;
         let response = match tsys_search_response {
-            SearchResponseTypes::SuccessResponse(search_response) => {
-                Ok(types::RefundsResponseData {
-                    connector_refund_id: search_response.transaction_details.transaction_id.clone(),
-                    refund_status: enums::RefundStatus::from(search_response.transaction_details),
-                })
-            }
+            SearchResponseTypes::SuccessResponse(search_response) => Ok(RefundsResponseData {
+                connector_refund_id: search_response.transaction_details.transaction_id.clone(),
+                refund_status: enums::RefundStatus::from(search_response.transaction_details),
+            }),
             SearchResponseTypes::ErrorResponse(connector_response) => {
                 Err(get_error_response(connector_response, item.http_code))
             }
diff --git a/crates/router/src/connector/worldline.rs b/crates/hyperswitch_connectors/src/connectors/worldline.rs
similarity index 65%
rename from crates/router/src/connector/worldline.rs
rename to crates/hyperswitch_connectors/src/connectors/worldline.rs
index 6c8e1a1e951..c5a8466175c 100644
--- a/crates/router/src/connector/worldline.rs
+++ b/crates/hyperswitch_connectors/src/connectors/worldline.rs
@@ -3,32 +3,56 @@ pub mod transformers;
 use std::fmt::Debug;
 
 use base64::Engine;
-use common_utils::{ext_traits::ByteSliceExt, request::RequestContent};
-use diesel_models::enums;
+use common_enums::enums;
+use common_utils::{
+    consts, crypto,
+    errors::CustomResult,
+    ext_traits::{ByteSliceExt, OptionExt},
+    request::{Method, Request, RequestBuilder, RequestContent},
+};
 use error_stack::ResultExt;
-use masking::{ExposeInterface, PeekInterface};
+use hyperswitch_domain_models::{
+    router_data::{AccessToken, ErrorResponse, RouterData},
+    router_flow_types::{
+        access_token_auth::AccessTokenAuth,
+        payments::{Authorize, Capture, PSync, PaymentMethodToken, Session, SetupMandate, Void},
+        refunds::{Execute, RSync},
+    },
+    router_request_types::{
+        AccessTokenRequestData, PaymentMethodTokenizationData, PaymentsAuthorizeData,
+        PaymentsCancelData, PaymentsCaptureData, PaymentsSessionData, PaymentsSyncData,
+        RefundsData, SetupMandateRequestData,
+    },
+    router_response_types::{PaymentsResponseData, RefundsResponseData},
+    types::{
+        PaymentsAuthorizeRouterData, PaymentsCancelRouterData, PaymentsSyncRouterData,
+        RefundSyncRouterData, RefundsRouterData,
+    },
+};
+use hyperswitch_interfaces::{
+    api::{
+        self, ConnectorCommon, ConnectorCommonExt, ConnectorIntegration, ConnectorValidation,
+        PaymentCapture, PaymentSync,
+    },
+    configs::Connectors,
+    errors,
+    events::connector_api_logs::ConnectorEvent,
+    types::{
+        PaymentsAuthorizeType, PaymentsCaptureType, PaymentsSyncType, PaymentsVoidType,
+        RefundExecuteType, RefundSyncType, Response,
+    },
+    webhooks,
+};
+use masking::{ExposeInterface, Mask, PeekInterface};
 use ring::hmac;
+use router_env::logger;
 use time::{format_description, OffsetDateTime};
 use transformers as worldline;
 
-use super::utils::{self as connector_utils, RefundsRequestData};
 use crate::{
-    configs::settings::Connectors,
-    consts,
-    core::errors::{self, CustomResult},
-    events::connector_api_logs::ConnectorEvent,
-    headers, logger,
-    services::{
-        self,
-        request::{self, Mask},
-        ConnectorIntegration, ConnectorValidation,
-    },
-    types::{
-        self,
-        api::{self, ConnectorCommon, ConnectorCommonExt},
-        ErrorResponse,
-    },
-    utils::{crypto, BytesExt, OptionExt},
+    constants::headers,
+    types::ResponseRouterData,
+    utils::{self, RefundsRequestData as _},
 };
 
 #[derive(Debug, Clone)]
@@ -38,7 +62,7 @@ impl Worldline {
     pub fn generate_authorization_token(
         &self,
         auth: worldline::WorldlineAuthType,
-        http_method: &services::Method,
+        http_method: &Method,
         content_type: &str,
         date: &str,
         endpoint: &str,
@@ -78,9 +102,9 @@ where
 {
     fn build_headers(
         &self,
-        req: &types::RouterData<Flow, Request, Response>,
+        req: &RouterData<Flow, Request, Response>,
         connectors: &Connectors,
-    ) -> CustomResult<Vec<(String, request::Maskable<String>)>, errors::ConnectorError> {
+    ) -> CustomResult<Vec<(String, masking::Maskable<String>)>, errors::ConnectorError> {
         let base_url = self.base_url(connectors);
         let url = Self::get_url(self, req, connectors)?;
         let endpoint = url.replace(base_url, "");
@@ -120,7 +144,7 @@ impl ConnectorCommon for Worldline {
 
     fn build_error_response(
         &self,
-        res: types::Response,
+        res: Response,
         event_builder: Option<&mut ConnectorEvent>,
     ) -> CustomResult<ErrorResponse, errors::ConnectorError> {
         let response: worldline::ErrorResponse = res
@@ -129,17 +153,17 @@ impl ConnectorCommon for Worldline {
             .change_context(errors::ConnectorError::ResponseDeserializationFailed)?;
 
         event_builder.map(|i| i.set_error_response_body(&response));
-        router_env::logger::info!(connector_response=?response);
+        logger::info!(connector_response=?response);
 
         let error = response.errors.into_iter().next().unwrap_or_default();
         Ok(ErrorResponse {
             status_code: res.status_code,
             code: error
                 .code
-                .unwrap_or_else(|| consts::NO_ERROR_CODE.to_string()),
+                .unwrap_or_else(|| hyperswitch_interfaces::consts::NO_ERROR_CODE.to_string()),
             message: error
                 .message
-                .unwrap_or_else(|| consts::NO_ERROR_MESSAGE.to_string()),
+                .unwrap_or_else(|| hyperswitch_interfaces::consts::NO_ERROR_MESSAGE.to_string()),
             ..Default::default()
         })
     }
@@ -155,7 +179,7 @@ impl ConnectorValidation for Worldline {
         match capture_method {
             enums::CaptureMethod::Automatic | enums::CaptureMethod::Manual => Ok(()),
             enums::CaptureMethod::ManualMultiple | enums::CaptureMethod::Scheduled => Err(
-                connector_utils::construct_not_implemented_error_report(capture_method, self.id()),
+                utils::construct_not_implemented_error_report(capture_method, self.id()),
             ),
         }
     }
@@ -163,30 +187,19 @@ impl ConnectorValidation for Worldline {
 
 impl api::ConnectorAccessToken for Worldline {}
 
-impl ConnectorIntegration<api::AccessTokenAuth, types::AccessTokenRequestData, types::AccessToken>
-    for Worldline
-{
-}
+impl ConnectorIntegration<AccessTokenAuth, AccessTokenRequestData, AccessToken> for Worldline {}
 
 impl api::Payment for Worldline {}
 
 impl api::MandateSetup for Worldline {}
-impl
-    ConnectorIntegration<
-        api::SetupMandate,
-        types::SetupMandateRequestData,
-        types::PaymentsResponseData,
-    > for Worldline
+impl ConnectorIntegration<SetupMandate, SetupMandateRequestData, PaymentsResponseData>
+    for Worldline
 {
     fn build_request(
         &self,
-        _req: &types::RouterData<
-            api::SetupMandate,
-            types::SetupMandateRequestData,
-            types::PaymentsResponseData,
-        >,
+        _req: &RouterData<SetupMandate, SetupMandateRequestData, PaymentsResponseData>,
         _connectors: &Connectors,
-    ) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
+    ) -> CustomResult<Option<Request>, errors::ConnectorError> {
         Err(
             errors::ConnectorError::NotImplemented("Setup Mandate flow for Worldline".to_string())
                 .into(),
@@ -196,32 +209,26 @@ impl
 
 impl api::PaymentToken for Worldline {}
 
-impl
-    ConnectorIntegration<
-        api::PaymentMethodToken,
-        types::PaymentMethodTokenizationData,
-        types::PaymentsResponseData,
-    > for Worldline
+impl ConnectorIntegration<PaymentMethodToken, PaymentMethodTokenizationData, PaymentsResponseData>
+    for Worldline
 {
     // Not Implemented (R)
 }
 
 impl api::PaymentVoid for Worldline {}
 
-impl ConnectorIntegration<api::Void, types::PaymentsCancelData, types::PaymentsResponseData>
-    for Worldline
-{
+impl ConnectorIntegration<Void, PaymentsCancelData, PaymentsResponseData> for Worldline {
     fn get_headers(
         &self,
-        req: &types::RouterData<api::Void, types::PaymentsCancelData, types::PaymentsResponseData>,
+        req: &RouterData<Void, PaymentsCancelData, PaymentsResponseData>,
         connectors: &Connectors,
-    ) -> CustomResult<Vec<(String, request::Maskable<String>)>, errors::ConnectorError> {
+    ) -> CustomResult<Vec<(String, masking::Maskable<String>)>, errors::ConnectorError> {
         self.build_headers(req, connectors)
     }
 
     fn get_url(
         &self,
-        req: &types::PaymentsCancelRouterData,
+        req: &PaymentsCancelRouterData,
         connectors: &Connectors,
     ) -> CustomResult<String, errors::ConnectorError> {
         let base_url = self.base_url(connectors);
@@ -236,34 +243,34 @@ impl ConnectorIntegration<api::Void, types::PaymentsCancelData, types::PaymentsR
 
     fn build_request(
         &self,
-        req: &types::RouterData<api::Void, types::PaymentsCancelData, types::PaymentsResponseData>,
+        req: &RouterData<Void, PaymentsCancelData, PaymentsResponseData>,
         connectors: &Connectors,
-    ) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
+    ) -> CustomResult<Option<Request>, errors::ConnectorError> {
         Ok(Some(
-            services::RequestBuilder::new()
-                .method(types::PaymentsVoidType::get_http_method(self))
-                .url(&types::PaymentsVoidType::get_url(self, req, connectors)?)
+            RequestBuilder::new()
+                .method(PaymentsVoidType::get_http_method(self))
+                .url(&PaymentsVoidType::get_url(self, req, connectors)?)
                 .attach_default_headers()
-                .headers(types::PaymentsVoidType::get_headers(self, req, connectors)?)
+                .headers(PaymentsVoidType::get_headers(self, req, connectors)?)
                 .build(),
         ))
     }
 
     fn handle_response(
         &self,
-        data: &types::PaymentsCancelRouterData,
+        data: &PaymentsCancelRouterData,
         event_builder: Option<&mut ConnectorEvent>,
-        res: types::Response,
-    ) -> CustomResult<types::PaymentsCancelRouterData, errors::ConnectorError> {
+        res: Response,
+    ) -> CustomResult<PaymentsCancelRouterData, errors::ConnectorError> {
         let response: worldline::PaymentResponse = res
             .response
             .parse_struct("Worldline PaymentResponse")
             .change_context(errors::ConnectorError::ResponseDeserializationFailed)?;
 
         event_builder.map(|i| i.set_response_body(&response));
-        router_env::logger::info!(connector_response=?response);
+        logger::info!(connector_response=?response);
 
-        types::RouterData::try_from(types::ResponseRouterData {
+        RouterData::try_from(ResponseRouterData {
             response,
             data: data.clone(),
             http_code: res.status_code,
@@ -273,19 +280,17 @@ impl ConnectorIntegration<api::Void, types::PaymentsCancelData, types::PaymentsR
 
     fn get_error_response(
         &self,
-        res: types::Response,
+        res: Response,
         event_builder: Option<&mut ConnectorEvent>,
     ) -> CustomResult<ErrorResponse, errors::ConnectorError> {
         self.build_error_response(res, event_builder)
     }
 }
 
-impl api::PaymentSync for Worldline {}
-impl ConnectorIntegration<api::PSync, types::PaymentsSyncData, types::PaymentsResponseData>
-    for Worldline
-{
-    fn get_http_method(&self) -> services::Method {
-        services::Method::Get
+impl PaymentSync for Worldline {}
+impl ConnectorIntegration<PSync, PaymentsSyncData, PaymentsResponseData> for Worldline {
+    fn get_http_method(&self) -> Method {
+        Method::Get
     }
 
     fn get_content_type(&self) -> &'static str {
@@ -294,15 +299,15 @@ impl ConnectorIntegration<api::PSync, types::PaymentsSyncData, types::PaymentsRe
 
     fn get_headers(
         &self,
-        req: &types::RouterData<api::PSync, types::PaymentsSyncData, types::PaymentsResponseData>,
+        req: &RouterData<PSync, PaymentsSyncData, PaymentsResponseData>,
         connectors: &Connectors,
-    ) -> CustomResult<Vec<(String, request::Maskable<String>)>, errors::ConnectorError> {
+    ) -> CustomResult<Vec<(String, masking::Maskable<String>)>, errors::ConnectorError> {
         self.build_headers(req, connectors)
     }
 
     fn get_url(
         &self,
-        req: &types::PaymentsSyncRouterData,
+        req: &PaymentsSyncRouterData,
         connectors: &Connectors,
     ) -> CustomResult<String, errors::ConnectorError> {
         let payment_id = req
@@ -320,22 +325,22 @@ impl ConnectorIntegration<api::PSync, types::PaymentsSyncData, types::PaymentsRe
 
     fn build_request(
         &self,
-        req: &types::PaymentsSyncRouterData,
+        req: &PaymentsSyncRouterData,
         connectors: &Connectors,
-    ) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
+    ) -> CustomResult<Option<Request>, errors::ConnectorError> {
         Ok(Some(
-            services::RequestBuilder::new()
-                .method(types::PaymentsSyncType::get_http_method(self))
-                .url(&types::PaymentsSyncType::get_url(self, req, connectors)?)
+            RequestBuilder::new()
+                .method(PaymentsSyncType::get_http_method(self))
+                .url(&PaymentsSyncType::get_url(self, req, connectors)?)
                 .attach_default_headers()
-                .headers(types::PaymentsSyncType::get_headers(self, req, connectors)?)
+                .headers(PaymentsSyncType::get_headers(self, req, connectors)?)
                 .build(),
         ))
     }
 
     fn get_error_response(
         &self,
-        res: types::Response,
+        res: Response,
         event_builder: Option<&mut ConnectorEvent>,
     ) -> CustomResult<ErrorResponse, errors::ConnectorError> {
         self.build_error_response(res, event_builder)
@@ -343,10 +348,10 @@ impl ConnectorIntegration<api::PSync, types::PaymentsSyncData, types::PaymentsRe
 
     fn handle_response(
         &self,
-        data: &types::PaymentsSyncRouterData,
+        data: &PaymentsSyncRouterData,
         event_builder: Option<&mut ConnectorEvent>,
-        res: types::Response,
-    ) -> CustomResult<types::PaymentsSyncRouterData, errors::ConnectorError> {
+        res: Response,
+    ) -> CustomResult<PaymentsSyncRouterData, errors::ConnectorError> {
         logger::debug!(payment_sync_response=?res);
         let mut response: worldline::Payment = res
             .response
@@ -355,9 +360,9 @@ impl ConnectorIntegration<api::PSync, types::PaymentsSyncData, types::PaymentsRe
         response.capture_method = data.request.capture_method.unwrap_or_default();
 
         event_builder.map(|i| i.set_response_body(&response));
-        router_env::logger::info!(connector_response=?response);
+        logger::info!(connector_response=?response);
 
-        types::RouterData::try_from(types::ResponseRouterData {
+        RouterData::try_from(ResponseRouterData {
             response,
             data: data.clone(),
             http_code: res.status_code,
@@ -366,29 +371,19 @@ impl ConnectorIntegration<api::PSync, types::PaymentsSyncData, types::PaymentsRe
     }
 }
 
-impl api::PaymentCapture for Worldline {}
-impl ConnectorIntegration<api::Capture, types::PaymentsCaptureData, types::PaymentsResponseData>
-    for Worldline
-{
+impl PaymentCapture for Worldline {}
+impl ConnectorIntegration<Capture, PaymentsCaptureData, PaymentsResponseData> for Worldline {
     fn get_headers(
         &self,
-        req: &types::RouterData<
-            api::Capture,
-            types::PaymentsCaptureData,
-            types::PaymentsResponseData,
-        >,
+        req: &RouterData<Capture, PaymentsCaptureData, PaymentsResponseData>,
         connectors: &Connectors,
-    ) -> CustomResult<Vec<(String, request::Maskable<String>)>, errors::ConnectorError> {
+    ) -> CustomResult<Vec<(String, masking::Maskable<String>)>, errors::ConnectorError> {
         self.build_headers(req, connectors)
     }
 
     fn get_url(
         &self,
-        req: &types::RouterData<
-            api::Capture,
-            types::PaymentsCaptureData,
-            types::PaymentsResponseData,
-        >,
+        req: &RouterData<Capture, PaymentsCaptureData, PaymentsResponseData>,
         connectors: &Connectors,
     ) -> CustomResult<String, errors::ConnectorError> {
         let payment_id = req.request.connector_transaction_id.clone();
@@ -402,11 +397,7 @@ impl ConnectorIntegration<api::Capture, types::PaymentsCaptureData, types::Payme
 
     fn get_request_body(
         &self,
-        req: &types::RouterData<
-            api::Capture,
-            types::PaymentsCaptureData,
-            types::PaymentsResponseData,
-        >,
+        req: &RouterData<Capture, PaymentsCaptureData, PaymentsResponseData>,
         _connectors: &Connectors,
     ) -> CustomResult<RequestContent, errors::ConnectorError> {
         let connector_req = worldline::ApproveRequest::try_from(req)?;
@@ -416,22 +407,16 @@ impl ConnectorIntegration<api::Capture, types::PaymentsCaptureData, types::Payme
 
     fn build_request(
         &self,
-        req: &types::RouterData<
-            api::Capture,
-            types::PaymentsCaptureData,
-            types::PaymentsResponseData,
-        >,
+        req: &RouterData<Capture, PaymentsCaptureData, PaymentsResponseData>,
         connectors: &Connectors,
-    ) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
+    ) -> CustomResult<Option<Request>, errors::ConnectorError> {
         Ok(Some(
-            services::RequestBuilder::new()
-                .method(types::PaymentsCaptureType::get_http_method(self))
-                .url(&types::PaymentsCaptureType::get_url(self, req, connectors)?)
+            RequestBuilder::new()
+                .method(PaymentsCaptureType::get_http_method(self))
+                .url(&PaymentsCaptureType::get_url(self, req, connectors)?)
                 .attach_default_headers()
-                .headers(types::PaymentsCaptureType::get_headers(
-                    self, req, connectors,
-                )?)
-                .set_body(types::PaymentsCaptureType::get_request_body(
+                .headers(PaymentsCaptureType::get_headers(self, req, connectors)?)
+                .set_body(PaymentsCaptureType::get_request_body(
                     self, req, connectors,
                 )?)
                 .build(),
@@ -440,21 +425,17 @@ impl ConnectorIntegration<api::Capture, types::PaymentsCaptureData, types::Payme
 
     fn handle_response(
         &self,
-        data: &types::RouterData<
-            api::Capture,
-            types::PaymentsCaptureData,
-            types::PaymentsResponseData,
-        >,
+        data: &RouterData<Capture, PaymentsCaptureData, PaymentsResponseData>,
         event_builder: Option<&mut ConnectorEvent>,
-        res: types::Response,
+        res: Response,
     ) -> CustomResult<
-        types::RouterData<api::Capture, types::PaymentsCaptureData, types::PaymentsResponseData>,
+        RouterData<Capture, PaymentsCaptureData, PaymentsResponseData>,
         errors::ConnectorError,
     >
     where
-        api::Capture: Clone,
-        types::PaymentsCaptureData: Clone,
-        types::PaymentsResponseData: Clone,
+        Capture: Clone,
+        PaymentsCaptureData: Clone,
+        PaymentsResponseData: Clone,
     {
         logger::debug!(payment_capture_response=?res);
         let mut response: worldline::PaymentResponse = res
@@ -464,9 +445,9 @@ impl ConnectorIntegration<api::Capture, types::PaymentsCaptureData, types::Payme
         response.payment.capture_method = enums::CaptureMethod::Manual;
 
         event_builder.map(|i| i.set_response_body(&response));
-        router_env::logger::info!(connector_response=?response);
+        logger::info!(connector_response=?response);
 
-        types::RouterData::try_from(types::ResponseRouterData {
+        RouterData::try_from(ResponseRouterData {
             response,
             data: data.clone(),
             http_code: res.status_code,
@@ -476,7 +457,7 @@ impl ConnectorIntegration<api::Capture, types::PaymentsCaptureData, types::Payme
 
     fn get_error_response(
         &self,
-        res: types::Response,
+        res: Response,
         event_builder: Option<&mut ConnectorEvent>,
     ) -> CustomResult<ErrorResponse, errors::ConnectorError> {
         self.build_error_response(res, event_builder)
@@ -485,32 +466,24 @@ impl ConnectorIntegration<api::Capture, types::PaymentsCaptureData, types::Payme
 
 impl api::PaymentSession for Worldline {}
 
-impl ConnectorIntegration<api::Session, types::PaymentsSessionData, types::PaymentsResponseData>
-    for Worldline
-{
+impl ConnectorIntegration<Session, PaymentsSessionData, PaymentsResponseData> for Worldline {
     // Not Implemented
 }
 
 impl api::PaymentAuthorize for Worldline {}
 
-impl ConnectorIntegration<api::Authorize, types::PaymentsAuthorizeData, types::PaymentsResponseData>
-    for Worldline
-{
+impl ConnectorIntegration<Authorize, PaymentsAuthorizeData, PaymentsResponseData> for Worldline {
     fn get_headers(
         &self,
-        req: &types::RouterData<
-            api::Authorize,
-            types::PaymentsAuthorizeData,
-            types::PaymentsResponseData,
-        >,
+        req: &RouterData<Authorize, PaymentsAuthorizeData, PaymentsResponseData>,
         connectors: &Connectors,
-    ) -> CustomResult<Vec<(String, request::Maskable<String>)>, errors::ConnectorError> {
+    ) -> CustomResult<Vec<(String, masking::Maskable<String>)>, errors::ConnectorError> {
         self.build_headers(req, connectors)
     }
 
     fn get_url(
         &self,
-        req: &types::PaymentsAuthorizeRouterData,
+        req: &PaymentsAuthorizeRouterData,
         connectors: &Connectors,
     ) -> CustomResult<String, errors::ConnectorError> {
         let base_url = self.base_url(connectors);
@@ -521,7 +494,7 @@ impl ConnectorIntegration<api::Authorize, types::PaymentsAuthorizeData, types::P
 
     fn get_request_body(
         &self,
-        req: &types::PaymentsAuthorizeRouterData,
+        req: &PaymentsAuthorizeRouterData,
         _connectors: &Connectors,
     ) -> CustomResult<RequestContent, errors::ConnectorError> {
         let connector_router_data = worldline::WorldlineRouterData::try_from((
@@ -536,24 +509,16 @@ impl ConnectorIntegration<api::Authorize, types::PaymentsAuthorizeData, types::P
 
     fn build_request(
         &self,
-        req: &types::RouterData<
-            api::Authorize,
-            types::PaymentsAuthorizeData,
-            types::PaymentsResponseData,
-        >,
+        req: &RouterData<Authorize, PaymentsAuthorizeData, PaymentsResponseData>,
         connectors: &Connectors,
-    ) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
+    ) -> CustomResult<Option<Request>, errors::ConnectorError> {
         Ok(Some(
-            services::RequestBuilder::new()
-                .method(types::PaymentsAuthorizeType::get_http_method(self))
-                .url(&types::PaymentsAuthorizeType::get_url(
-                    self, req, connectors,
-                )?)
+            RequestBuilder::new()
+                .method(PaymentsAuthorizeType::get_http_method(self))
+                .url(&PaymentsAuthorizeType::get_url(self, req, connectors)?)
                 .attach_default_headers()
-                .headers(types::PaymentsAuthorizeType::get_headers(
-                    self, req, connectors,
-                )?)
-                .set_body(types::PaymentsAuthorizeType::get_request_body(
+                .headers(PaymentsAuthorizeType::get_headers(self, req, connectors)?)
+                .set_body(PaymentsAuthorizeType::get_request_body(
                     self, req, connectors,
                 )?)
                 .build(),
@@ -561,10 +526,10 @@ impl ConnectorIntegration<api::Authorize, types::PaymentsAuthorizeData, types::P
     }
     fn handle_response(
         &self,
-        data: &types::PaymentsAuthorizeRouterData,
+        data: &PaymentsAuthorizeRouterData,
         event_builder: Option<&mut ConnectorEvent>,
-        res: types::Response,
-    ) -> CustomResult<types::PaymentsAuthorizeRouterData, errors::ConnectorError> {
+        res: Response,
+    ) -> CustomResult<PaymentsAuthorizeRouterData, errors::ConnectorError> {
         logger::debug!(payment_authorize_response=?res);
         let mut response: worldline::PaymentResponse = res
             .response
@@ -572,8 +537,8 @@ impl ConnectorIntegration<api::Authorize, types::PaymentsAuthorizeData, types::P
             .change_context(errors::ConnectorError::ResponseDeserializationFailed)?;
         response.payment.capture_method = data.request.capture_method.unwrap_or_default();
         event_builder.map(|i| i.set_response_body(&response));
-        router_env::logger::info!(connector_response=?response);
-        types::RouterData::try_from(types::ResponseRouterData {
+        logger::info!(connector_response=?response);
+        RouterData::try_from(ResponseRouterData {
             response,
             data: data.clone(),
             http_code: res.status_code,
@@ -583,7 +548,7 @@ impl ConnectorIntegration<api::Authorize, types::PaymentsAuthorizeData, types::P
 
     fn get_error_response(
         &self,
-        res: types::Response,
+        res: Response,
         event_builder: Option<&mut ConnectorEvent>,
     ) -> CustomResult<ErrorResponse, errors::ConnectorError> {
         self.build_error_response(res, event_builder)
@@ -594,20 +559,18 @@ impl api::Refund for Worldline {}
 impl api::RefundExecute for Worldline {}
 impl api::RefundSync for Worldline {}
 
-impl ConnectorIntegration<api::Execute, types::RefundsData, types::RefundsResponseData>
-    for Worldline
-{
+impl ConnectorIntegration<Execute, RefundsData, RefundsResponseData> for Worldline {
     fn get_headers(
         &self,
-        req: &types::RefundsRouterData<api::Execute>,
+        req: &RefundsRouterData<Execute>,
         connectors: &Connectors,
-    ) -> CustomResult<Vec<(String, request::Maskable<String>)>, errors::ConnectorError> {
+    ) -> CustomResult<Vec<(String, masking::Maskable<String>)>, errors::ConnectorError> {
         self.build_headers(req, connectors)
     }
 
     fn get_url(
         &self,
-        req: &types::RefundsRouterData<api::Execute>,
+        req: &RefundsRouterData<Execute>,
         connectors: &Connectors,
     ) -> CustomResult<String, errors::ConnectorError> {
         let payment_id = req.request.connector_transaction_id.clone();
@@ -621,7 +584,7 @@ impl ConnectorIntegration<api::Execute, types::RefundsData, types::RefundsRespon
 
     fn get_request_body(
         &self,
-        req: &types::RefundsRouterData<api::Execute>,
+        req: &RefundsRouterData<Execute>,
         _connectors: &Connectors,
     ) -> CustomResult<RequestContent, errors::ConnectorError> {
         let connector_req = worldline::WorldlineRefundRequest::try_from(req)?;
@@ -630,37 +593,33 @@ impl ConnectorIntegration<api::Execute, types::RefundsData, types::RefundsRespon
 
     fn build_request(
         &self,
-        req: &types::RefundsRouterData<api::Execute>,
+        req: &RefundsRouterData<Execute>,
         connectors: &Connectors,
-    ) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
-        let request = services::RequestBuilder::new()
-            .method(types::RefundExecuteType::get_http_method(self))
-            .url(&types::RefundExecuteType::get_url(self, req, connectors)?)
+    ) -> CustomResult<Option<Request>, errors::ConnectorError> {
+        let request = RequestBuilder::new()
+            .method(RefundExecuteType::get_http_method(self))
+            .url(&RefundExecuteType::get_url(self, req, connectors)?)
             .attach_default_headers()
-            .headers(types::RefundExecuteType::get_headers(
-                self, req, connectors,
-            )?)
-            .set_body(types::RefundExecuteType::get_request_body(
-                self, req, connectors,
-            )?)
+            .headers(RefundExecuteType::get_headers(self, req, connectors)?)
+            .set_body(RefundExecuteType::get_request_body(self, req, connectors)?)
             .build();
         Ok(Some(request))
     }
 
     fn handle_response(
         &self,
-        data: &types::RefundsRouterData<api::Execute>,
+        data: &RefundsRouterData<Execute>,
         event_builder: Option<&mut ConnectorEvent>,
-        res: types::Response,
-    ) -> CustomResult<types::RefundsRouterData<api::Execute>, errors::ConnectorError> {
+        res: Response,
+    ) -> CustomResult<RefundsRouterData<Execute>, errors::ConnectorError> {
         logger::debug!(target: "router::connector::worldline", response=?res);
         let response: worldline::RefundResponse = res
             .response
             .parse_struct("Worldline RefundResponse")
             .change_context(errors::ConnectorError::RequestEncodingFailed)?;
         event_builder.map(|i| i.set_response_body(&response));
-        router_env::logger::info!(connector_response=?response);
-        types::RouterData::try_from(types::ResponseRouterData {
+        logger::info!(connector_response=?response);
+        RouterData::try_from(ResponseRouterData {
             response,
             data: data.clone(),
             http_code: res.status_code,
@@ -670,18 +629,16 @@ impl ConnectorIntegration<api::Execute, types::RefundsData, types::RefundsRespon
 
     fn get_error_response(
         &self,
-        res: types::Response,
+        res: Response,
         event_builder: Option<&mut ConnectorEvent>,
     ) -> CustomResult<ErrorResponse, errors::ConnectorError> {
         self.build_error_response(res, event_builder)
     }
 }
 
-impl ConnectorIntegration<api::RSync, types::RefundsData, types::RefundsResponseData>
-    for Worldline
-{
-    fn get_http_method(&self) -> services::Method {
-        services::Method::Get
+impl ConnectorIntegration<RSync, RefundsData, RefundsResponseData> for Worldline {
+    fn get_http_method(&self) -> Method {
+        Method::Get
     }
 
     fn get_content_type(&self) -> &'static str {
@@ -690,15 +647,15 @@ impl ConnectorIntegration<api::RSync, types::RefundsData, types::RefundsResponse
 
     fn get_headers(
         &self,
-        req: &types::RefundSyncRouterData,
+        req: &RefundSyncRouterData,
         connectors: &Connectors,
-    ) -> CustomResult<Vec<(String, request::Maskable<String>)>, errors::ConnectorError> {
+    ) -> CustomResult<Vec<(String, masking::Maskable<String>)>, errors::ConnectorError> {
         self.build_headers(req, connectors)
     }
 
     fn get_url(
         &self,
-        req: &types::RefundSyncRouterData,
+        req: &RefundSyncRouterData,
         connectors: &Connectors,
     ) -> CustomResult<String, errors::ConnectorError> {
         let refund_id = req.request.get_connector_refund_id()?;
@@ -713,33 +670,33 @@ impl ConnectorIntegration<api::RSync, types::RefundsData, types::RefundsResponse
 
     fn build_request(
         &self,
-        req: &types::RefundSyncRouterData,
+        req: &RefundSyncRouterData,
         connectors: &Connectors,
-    ) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
+    ) -> CustomResult<Option<Request>, errors::ConnectorError> {
         Ok(Some(
-            services::RequestBuilder::new()
-                .method(types::RefundSyncType::get_http_method(self))
-                .url(&types::RefundSyncType::get_url(self, req, connectors)?)
+            RequestBuilder::new()
+                .method(RefundSyncType::get_http_method(self))
+                .url(&RefundSyncType::get_url(self, req, connectors)?)
                 .attach_default_headers()
-                .headers(types::RefundSyncType::get_headers(self, req, connectors)?)
+                .headers(RefundSyncType::get_headers(self, req, connectors)?)
                 .build(),
         ))
     }
 
     fn handle_response(
         &self,
-        data: &types::RefundSyncRouterData,
+        data: &RefundSyncRouterData,
         event_builder: Option<&mut ConnectorEvent>,
-        res: types::Response,
-    ) -> CustomResult<types::RefundSyncRouterData, errors::ConnectorError> {
+        res: Response,
+    ) -> CustomResult<RefundSyncRouterData, errors::ConnectorError> {
         logger::debug!(target: "router::connector::worldline", response=?res);
         let response: worldline::RefundResponse = res
             .response
             .parse_struct("Worldline RefundResponse")
             .change_context(errors::ConnectorError::ResponseDeserializationFailed)?;
         event_builder.map(|i| i.set_response_body(&response));
-        router_env::logger::info!(connector_response=?response);
-        types::RouterData::try_from(types::ResponseRouterData {
+        logger::info!(connector_response=?response);
+        RouterData::try_from(ResponseRouterData {
             response,
             data: data.clone(),
             http_code: res.status_code,
@@ -749,7 +706,7 @@ impl ConnectorIntegration<api::RSync, types::RefundsData, types::RefundsResponse
 
     fn get_error_response(
         &self,
-        res: types::Response,
+        res: Response,
         event_builder: Option<&mut ConnectorEvent>,
     ) -> CustomResult<ErrorResponse, errors::ConnectorError> {
         self.build_error_response(res, event_builder)
@@ -763,21 +720,20 @@ fn is_endpoint_verification(headers: &actix_web::http::header::HeaderMap) -> boo
 }
 
 #[async_trait::async_trait]
-impl api::IncomingWebhook for Worldline {
+impl webhooks::IncomingWebhook for Worldline {
     fn get_webhook_source_verification_algorithm(
         &self,
-        _request: &api::IncomingWebhookRequestDetails<'_>,
+        _request: &webhooks::IncomingWebhookRequestDetails<'_>,
     ) -> CustomResult<Box<dyn crypto::VerifySignature + Send>, errors::ConnectorError> {
         Ok(Box::new(crypto::HmacSha256))
     }
 
     fn get_webhook_source_verification_signature(
         &self,
-        request: &api::IncomingWebhookRequestDetails<'_>,
+        request: &webhooks::IncomingWebhookRequestDetails<'_>,
         _connector_webhook_secrets: &api_models::webhooks::ConnectorWebhookSecrets,
     ) -> CustomResult<Vec<u8>, errors::ConnectorError> {
-        let header_value =
-            connector_utils::get_header_key_value("X-GCS-Signature", request.headers)?;
+        let header_value = utils::get_header_key_value("X-GCS-Signature", request.headers)?;
         let signature = consts::BASE64_ENGINE
             .decode(header_value.as_bytes())
             .change_context(errors::ConnectorError::WebhookSourceVerificationFailed)?;
@@ -786,7 +742,7 @@ impl api::IncomingWebhook for Worldline {
 
     fn get_webhook_source_verification_message(
         &self,
-        request: &api::IncomingWebhookRequestDetails<'_>,
+        request: &webhooks::IncomingWebhookRequestDetails<'_>,
         _merchant_id: &common_utils::id_type::MerchantId,
         _connector_webhook_secrets: &api_models::webhooks::ConnectorWebhookSecrets,
     ) -> CustomResult<Vec<u8>, errors::ConnectorError> {
@@ -795,7 +751,7 @@ impl api::IncomingWebhook for Worldline {
 
     fn get_webhook_object_reference_id(
         &self,
-        request: &api::IncomingWebhookRequestDetails<'_>,
+        request: &webhooks::IncomingWebhookRequestDetails<'_>,
     ) -> CustomResult<api_models::webhooks::ObjectReferenceId, errors::ConnectorError> {
         || -> _ {
             Ok::<_, error_stack::Report<common_utils::errors::ParsingError>>(
@@ -816,21 +772,25 @@ impl api::IncomingWebhook for Worldline {
 
     fn get_webhook_event_type(
         &self,
-        request: &api::IncomingWebhookRequestDetails<'_>,
-    ) -> CustomResult<api::IncomingWebhookEvent, errors::ConnectorError> {
+        request: &webhooks::IncomingWebhookRequestDetails<'_>,
+    ) -> CustomResult<api_models::webhooks::IncomingWebhookEvent, errors::ConnectorError> {
         if is_endpoint_verification(request.headers) {
-            Ok(api::IncomingWebhookEvent::EndpointVerification)
+            Ok(api_models::webhooks::IncomingWebhookEvent::EndpointVerification)
         } else {
             let details: worldline::WebhookBody = request
                 .body
                 .parse_struct("WorldlineWebhookObjectId")
                 .change_context(errors::ConnectorError::WebhookEventTypeNotFound)?;
             let event = match details.event_type {
-                worldline::WebhookEvent::Paid => api::IncomingWebhookEvent::PaymentIntentSuccess,
+                worldline::WebhookEvent::Paid => {
+                    api_models::webhooks::IncomingWebhookEvent::PaymentIntentSuccess
+                }
                 worldline::WebhookEvent::Rejected | worldline::WebhookEvent::RejectedCapture => {
-                    api::IncomingWebhookEvent::PaymentIntentFailure
+                    api_models::webhooks::IncomingWebhookEvent::PaymentIntentFailure
+                }
+                worldline::WebhookEvent::Unknown => {
+                    api_models::webhooks::IncomingWebhookEvent::EventNotSupported
                 }
-                worldline::WebhookEvent::Unknown => api::IncomingWebhookEvent::EventNotSupported,
             };
             Ok(event)
         }
@@ -838,7 +798,7 @@ impl api::IncomingWebhook for Worldline {
 
     fn get_webhook_resource_object(
         &self,
-        request: &api::IncomingWebhookRequestDetails<'_>,
+        request: &webhooks::IncomingWebhookRequestDetails<'_>,
     ) -> CustomResult<Box<dyn masking::ErasedMaskSerialize>, errors::ConnectorError> {
         let details = request
             .body
@@ -853,18 +813,22 @@ impl api::IncomingWebhook for Worldline {
 
     fn get_webhook_api_response(
         &self,
-        request: &api::IncomingWebhookRequestDetails<'_>,
-    ) -> CustomResult<services::api::ApplicationResponse<serde_json::Value>, errors::ConnectorError>
-    {
+        request: &webhooks::IncomingWebhookRequestDetails<'_>,
+    ) -> CustomResult<
+        hyperswitch_domain_models::api::ApplicationResponse<serde_json::Value>,
+        errors::ConnectorError,
+    > {
         let verification_header = request.headers.get("x-gcs-webhooks-endpoint-verification");
         let response = match verification_header {
-            None => services::api::ApplicationResponse::StatusOk,
+            None => hyperswitch_domain_models::api::ApplicationResponse::StatusOk,
             Some(header_value) => {
                 let verification_signature_value = header_value
                     .to_str()
                     .change_context(errors::ConnectorError::WebhookResponseEncodingFailed)?
                     .to_string();
-                services::api::ApplicationResponse::TextPlain(verification_signature_value)
+                hyperswitch_domain_models::api::ApplicationResponse::TextPlain(
+                    verification_signature_value,
+                )
             }
         };
         Ok(response)
diff --git a/crates/router/src/connector/worldline/transformers.rs b/crates/hyperswitch_connectors/src/connectors/worldline/transformers.rs
similarity index 68%
rename from crates/router/src/connector/worldline/transformers.rs
rename to crates/hyperswitch_connectors/src/connectors/worldline/transformers.rs
index e0278dc4ccb..33c865c3b5f 100644
--- a/crates/router/src/connector/worldline/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/worldline/transformers.rs
@@ -1,21 +1,25 @@
 use api_models::payments;
-use common_utils::pii::Email;
+use common_enums::enums::{AttemptStatus, BankNames, CaptureMethod, CountryAlpha2, Currency};
+use common_utils::{pii::Email, request::Method};
+use hyperswitch_domain_models::{
+    payment_method_data::{BankRedirectData, PaymentMethodData},
+    router_data::{ConnectorAuthType, RouterData},
+    router_flow_types::{
+        payments::Authorize,
+        refunds::{Execute, RSync},
+    },
+    router_request_types::{PaymentsAuthorizeData, ResponseId},
+    router_response_types::{PaymentsResponseData, RedirectForm, RefundsResponseData},
+    types::{PaymentsAuthorizeRouterData, PaymentsCaptureRouterData, RefundsRouterData},
+};
+use hyperswitch_interfaces::{api::CurrencyUnit, errors};
 use masking::{PeekInterface, Secret};
 use serde::{Deserialize, Serialize};
 use url::Url;
 
 use crate::{
-    connector::utils::{self, CardData, RouterData},
-    core::errors,
-    services,
-    types::{
-        self,
-        api::{self, enums as api_enums},
-        domain,
-        storage::enums,
-        transformers::ForeignFrom,
-        PaymentsAuthorizeData, PaymentsResponseData,
-    },
+    types::{RefundsResponseRouterData, ResponseRouterData},
+    utils::{self, CardData, RouterData as RouterDataUtils},
 };
 
 #[derive(Default, Debug, Serialize, Eq, PartialEq)]
@@ -60,7 +64,7 @@ pub struct Order {
 #[serde(rename_all = "camelCase")]
 pub struct BillingAddress {
     pub city: Option<String>,
-    pub country_code: Option<api_enums::CountryAlpha2>,
+    pub country_code: Option<CountryAlpha2>,
     pub house_number: Option<Secret<String>>,
     pub state: Option<Secret<String>>,
     pub state_code: Option<Secret<String>>,
@@ -95,7 +99,7 @@ pub struct Name {
 #[serde(rename_all = "camelCase")]
 pub struct Shipping {
     pub city: Option<String>,
-    pub country_code: Option<api_enums::CountryAlpha2>,
+    pub country_code: Option<CountryAlpha2>,
     pub house_number: Option<Secret<String>>,
     pub name: Option<Name>,
     pub state: Option<Secret<String>>,
@@ -190,10 +194,10 @@ pub struct WorldlineRouterData<T> {
     amount: i64,
     router_data: T,
 }
-impl<T> TryFrom<(&api::CurrencyUnit, enums::Currency, i64, T)> for WorldlineRouterData<T> {
+impl<T> TryFrom<(&CurrencyUnit, Currency, i64, T)> for WorldlineRouterData<T> {
     type Error = error_stack::Report<errors::ConnectorError>;
     fn try_from(
-        (_currency_unit, _currency, amount, item): (&api::CurrencyUnit, enums::Currency, i64, T),
+        (_currency_unit, _currency, amount, item): (&CurrencyUnit, Currency, i64, T),
     ) -> Result<Self, Self::Error> {
         Ok(Self {
             amount,
@@ -204,59 +208,48 @@ impl<T> TryFrom<(&api::CurrencyUnit, enums::Currency, i64, T)> for WorldlineRout
 
 impl
     TryFrom<
-        &WorldlineRouterData<
-            &types::RouterData<
-                api::payments::Authorize,
-                PaymentsAuthorizeData,
-                PaymentsResponseData,
-            >,
-        >,
+        &WorldlineRouterData<&RouterData<Authorize, PaymentsAuthorizeData, PaymentsResponseData>>,
     > for PaymentsRequest
 {
     type Error = error_stack::Report<errors::ConnectorError>;
 
     fn try_from(
         item: &WorldlineRouterData<
-            &types::RouterData<
-                api::payments::Authorize,
-                PaymentsAuthorizeData,
-                PaymentsResponseData,
-            >,
+            &RouterData<Authorize, PaymentsAuthorizeData, PaymentsResponseData>,
         >,
     ) -> Result<Self, Self::Error> {
-        let payment_data =
-            match &item.router_data.request.payment_method_data {
-                domain::PaymentMethodData::Card(card) => {
-                    let card_holder_name = item.router_data.get_optional_billing_full_name();
-                    WorldlinePaymentMethod::CardPaymentMethodSpecificInput(Box::new(
-                        make_card_request(&item.router_data.request, card, card_holder_name)?,
-                    ))
-                }
-                domain::PaymentMethodData::BankRedirect(bank_redirect) => {
-                    WorldlinePaymentMethod::RedirectPaymentMethodSpecificInput(Box::new(
-                        make_bank_redirect_request(item.router_data, bank_redirect)?,
-                    ))
-                }
-                domain::PaymentMethodData::CardRedirect(_)
-                | domain::PaymentMethodData::Wallet(_)
-                | domain::PaymentMethodData::PayLater(_)
-                | domain::PaymentMethodData::BankDebit(_)
-                | domain::PaymentMethodData::BankTransfer(_)
-                | domain::PaymentMethodData::Crypto(_)
-                | domain::PaymentMethodData::MandatePayment
-                | domain::PaymentMethodData::Reward
-                | domain::PaymentMethodData::RealTimePayment(_)
-                | domain::PaymentMethodData::Upi(_)
-                | domain::PaymentMethodData::Voucher(_)
-                | domain::PaymentMethodData::GiftCard(_)
-                | domain::PaymentMethodData::OpenBanking(_)
-                | domain::PaymentMethodData::CardToken(_)
-                | domain::PaymentMethodData::NetworkToken(_) => {
-                    Err(errors::ConnectorError::NotImplemented(
-                        utils::get_unimplemented_payment_method_error_message("worldline"),
-                    ))?
-                }
-            };
+        let payment_data = match &item.router_data.request.payment_method_data {
+            PaymentMethodData::Card(card) => {
+                let card_holder_name = item.router_data.get_optional_billing_full_name();
+                WorldlinePaymentMethod::CardPaymentMethodSpecificInput(Box::new(make_card_request(
+                    &item.router_data.request,
+                    card,
+                    card_holder_name,
+                )?))
+            }
+            PaymentMethodData::BankRedirect(bank_redirect) => {
+                WorldlinePaymentMethod::RedirectPaymentMethodSpecificInput(Box::new(
+                    make_bank_redirect_request(item.router_data, bank_redirect)?,
+                ))
+            }
+            PaymentMethodData::CardRedirect(_)
+            | PaymentMethodData::Wallet(_)
+            | PaymentMethodData::PayLater(_)
+            | PaymentMethodData::BankDebit(_)
+            | PaymentMethodData::BankTransfer(_)
+            | PaymentMethodData::Crypto(_)
+            | PaymentMethodData::MandatePayment
+            | PaymentMethodData::Reward
+            | PaymentMethodData::RealTimePayment(_)
+            | PaymentMethodData::Upi(_)
+            | PaymentMethodData::Voucher(_)
+            | PaymentMethodData::GiftCard(_)
+            | PaymentMethodData::OpenBanking(_)
+            | PaymentMethodData::CardToken(_)
+            | PaymentMethodData::NetworkToken(_) => Err(errors::ConnectorError::NotImplemented(
+                utils::get_unimplemented_payment_method_error_message("worldline"),
+            ))?,
+        };
 
         let billing_address = item.router_data.get_billing()?;
 
@@ -309,20 +302,20 @@ impl TryFrom<utils::CardIssuer> for Gateway {
     }
 }
 
-impl TryFrom<&common_enums::enums::BankNames> for WorldlineBic {
+impl TryFrom<&BankNames> for WorldlineBic {
     type Error = error_stack::Report<errors::ConnectorError>;
-    fn try_from(bank: &common_enums::enums::BankNames) -> Result<Self, Self::Error> {
+    fn try_from(bank: &BankNames) -> Result<Self, Self::Error> {
         match bank {
-            common_enums::enums::BankNames::AbnAmro => Ok(Self::Abnamro),
-            common_enums::enums::BankNames::AsnBank => Ok(Self::Asn),
-            common_enums::enums::BankNames::Ing => Ok(Self::Ing),
-            common_enums::enums::BankNames::Knab => Ok(Self::Knab),
-            common_enums::enums::BankNames::Rabobank => Ok(Self::Rabobank),
-            common_enums::enums::BankNames::Regiobank => Ok(Self::Regiobank),
-            common_enums::enums::BankNames::SnsBank => Ok(Self::Sns),
-            common_enums::enums::BankNames::TriodosBank => Ok(Self::Triodos),
-            common_enums::enums::BankNames::VanLanschot => Ok(Self::Vanlanschot),
-            common_enums::enums::BankNames::FrieslandBank => Ok(Self::Friesland),
+            BankNames::AbnAmro => Ok(Self::Abnamro),
+            BankNames::AsnBank => Ok(Self::Asn),
+            BankNames::Ing => Ok(Self::Ing),
+            BankNames::Knab => Ok(Self::Knab),
+            BankNames::Rabobank => Ok(Self::Rabobank),
+            BankNames::Regiobank => Ok(Self::Regiobank),
+            BankNames::SnsBank => Ok(Self::Sns),
+            BankNames::TriodosBank => Ok(Self::Triodos),
+            BankNames::VanLanschot => Ok(Self::Vanlanschot),
+            BankNames::FrieslandBank => Ok(Self::Friesland),
             _ => Err(errors::ConnectorError::FlowNotSupported {
                 flow: bank.to_string(),
                 connector: "Worldline".to_string(),
@@ -334,7 +327,7 @@ impl TryFrom<&common_enums::enums::BankNames> for WorldlineBic {
 
 fn make_card_request(
     req: &PaymentsAuthorizeData,
-    ccard: &domain::Card,
+    ccard: &hyperswitch_domain_models::payment_method_data::Card,
     card_holder_name: Option<Secret<String>>,
 ) -> Result<CardPaymentMethod, error_stack::Report<errors::ConnectorError>> {
     let expiry_year = ccard.card_exp_year.peek();
@@ -356,20 +349,20 @@ fn make_card_request(
     let payment_product_id = Gateway::try_from(ccard.get_card_issuer()?)? as u16;
     let card_payment_method_specific_input = CardPaymentMethod {
         card,
-        requires_approval: matches!(req.capture_method, Some(enums::CaptureMethod::Manual)),
+        requires_approval: matches!(req.capture_method, Some(CaptureMethod::Manual)),
         payment_product_id,
     };
     Ok(card_payment_method_specific_input)
 }
 
 fn make_bank_redirect_request(
-    req: &types::PaymentsAuthorizeRouterData,
-    bank_redirect: &domain::BankRedirectData,
+    req: &PaymentsAuthorizeRouterData,
+    bank_redirect: &BankRedirectData,
 ) -> Result<RedirectPaymentMethod, error_stack::Report<errors::ConnectorError>> {
     let return_url = req.request.router_return_url.clone();
     let redirection_data = RedirectionData { return_url };
     let (payment_method_specific_data, payment_product_id) = match bank_redirect {
-        domain::BankRedirectData::Giropay {
+        BankRedirectData::Giropay {
             bank_account_iban, ..
         } => (
             {
@@ -382,7 +375,7 @@ fn make_bank_redirect_request(
             },
             816,
         ),
-        domain::BankRedirectData::Ideal { bank_name, .. } => (
+        BankRedirectData::Ideal { bank_name, .. } => (
             {
                 PaymentMethodSpecificData::PaymentProduct809SpecificInput(Box::new(Ideal {
                     issuer_id: bank_name
@@ -392,22 +385,22 @@ fn make_bank_redirect_request(
             },
             809,
         ),
-        domain::BankRedirectData::BancontactCard { .. }
-        | domain::BankRedirectData::Bizum {}
-        | domain::BankRedirectData::Blik { .. }
-        | domain::BankRedirectData::Eps { .. }
-        | domain::BankRedirectData::Interac { .. }
-        | domain::BankRedirectData::OnlineBankingCzechRepublic { .. }
-        | domain::BankRedirectData::OnlineBankingFinland { .. }
-        | domain::BankRedirectData::OnlineBankingPoland { .. }
-        | domain::BankRedirectData::OnlineBankingSlovakia { .. }
-        | domain::BankRedirectData::OpenBankingUk { .. }
-        | domain::BankRedirectData::Przelewy24 { .. }
-        | domain::BankRedirectData::Sofort { .. }
-        | domain::BankRedirectData::Trustly { .. }
-        | domain::BankRedirectData::OnlineBankingFpx { .. }
-        | domain::BankRedirectData::OnlineBankingThailand { .. }
-        | domain::BankRedirectData::LocalBankRedirect {} => {
+        BankRedirectData::BancontactCard { .. }
+        | BankRedirectData::Bizum {}
+        | BankRedirectData::Blik { .. }
+        | BankRedirectData::Eps { .. }
+        | BankRedirectData::Interac { .. }
+        | BankRedirectData::OnlineBankingCzechRepublic { .. }
+        | BankRedirectData::OnlineBankingFinland { .. }
+        | BankRedirectData::OnlineBankingPoland { .. }
+        | BankRedirectData::OnlineBankingSlovakia { .. }
+        | BankRedirectData::OpenBankingUk { .. }
+        | BankRedirectData::Przelewy24 { .. }
+        | BankRedirectData::Sofort { .. }
+        | BankRedirectData::Trustly { .. }
+        | BankRedirectData::OnlineBankingFpx { .. }
+        | BankRedirectData::OnlineBankingThailand { .. }
+        | BankRedirectData::LocalBankRedirect {} => {
             return Err(errors::ConnectorError::NotImplemented(
                 utils::get_unimplemented_payment_method_error_message("worldline"),
             )
@@ -493,10 +486,10 @@ pub struct WorldlineAuthType {
     pub merchant_account_id: Secret<String>,
 }
 
-impl TryFrom<&types::ConnectorAuthType> for WorldlineAuthType {
+impl TryFrom<&ConnectorAuthType> for WorldlineAuthType {
     type Error = error_stack::Report<errors::ConnectorError>;
-    fn try_from(auth_type: &types::ConnectorAuthType) -> Result<Self, Self::Error> {
-        if let types::ConnectorAuthType::SignatureKey {
+    fn try_from(auth_type: &ConnectorAuthType) -> Result<Self, Self::Error> {
+        if let ConnectorAuthType::SignatureKey {
             api_key,
             key1,
             api_secret,
@@ -530,28 +523,26 @@ pub enum PaymentStatus {
     Redirected,
 }
 
-impl ForeignFrom<(PaymentStatus, enums::CaptureMethod)> for enums::AttemptStatus {
-    fn foreign_from(item: (PaymentStatus, enums::CaptureMethod)) -> Self {
-        let (status, capture_method) = item;
-        match status {
-            PaymentStatus::Captured
-            | PaymentStatus::Paid
-            | PaymentStatus::ChargebackNotification => Self::Charged,
-            PaymentStatus::Cancelled => Self::Voided,
-            PaymentStatus::Rejected => Self::Failure,
-            PaymentStatus::RejectedCapture => Self::CaptureFailed,
-            PaymentStatus::CaptureRequested => {
-                if capture_method == enums::CaptureMethod::Automatic {
-                    Self::Pending
-                } else {
-                    Self::CaptureInitiated
-                }
+fn get_status(item: (PaymentStatus, CaptureMethod)) -> AttemptStatus {
+    let (status, capture_method) = item;
+    match status {
+        PaymentStatus::Captured | PaymentStatus::Paid | PaymentStatus::ChargebackNotification => {
+            AttemptStatus::Charged
+        }
+        PaymentStatus::Cancelled => AttemptStatus::Voided,
+        PaymentStatus::Rejected => AttemptStatus::Failure,
+        PaymentStatus::RejectedCapture => AttemptStatus::CaptureFailed,
+        PaymentStatus::CaptureRequested => {
+            if capture_method == CaptureMethod::Automatic {
+                AttemptStatus::Pending
+            } else {
+                AttemptStatus::CaptureInitiated
             }
-            PaymentStatus::PendingApproval => Self::Authorized,
-            PaymentStatus::Created => Self::Started,
-            PaymentStatus::Redirected => Self::AuthenticationPending,
-            _ => Self::Pending,
         }
+        PaymentStatus::PendingApproval => AttemptStatus::Authorized,
+        PaymentStatus::Created => AttemptStatus::Started,
+        PaymentStatus::Redirected => AttemptStatus::AuthenticationPending,
+        _ => AttemptStatus::Pending,
     }
 }
 
@@ -563,23 +554,20 @@ pub struct Payment {
     pub id: String,
     pub status: PaymentStatus,
     #[serde(skip_deserializing)]
-    pub capture_method: enums::CaptureMethod,
+    pub capture_method: CaptureMethod,
 }
 
-impl<F, T> TryFrom<types::ResponseRouterData<F, Payment, T, PaymentsResponseData>>
-    for types::RouterData<F, T, PaymentsResponseData>
+impl<F, T> TryFrom<ResponseRouterData<F, Payment, T, PaymentsResponseData>>
+    for RouterData<F, T, PaymentsResponseData>
 {
     type Error = error_stack::Report<errors::ConnectorError>;
     fn try_from(
-        item: types::ResponseRouterData<F, Payment, T, PaymentsResponseData>,
+        item: ResponseRouterData<F, Payment, T, PaymentsResponseData>,
     ) -> Result<Self, Self::Error> {
         Ok(Self {
-            status: enums::AttemptStatus::foreign_from((
-                item.response.status,
-                item.response.capture_method,
-            )),
+            status: get_status((item.response.status, item.response.capture_method)),
             response: Ok(PaymentsResponseData::TransactionResponse {
-                resource_id: types::ResponseId::ConnectorTransactionId(item.response.id.clone()),
+                resource_id: ResponseId::ConnectorTransactionId(item.response.id.clone()),
                 redirection_data: None,
                 mandate_reference: None,
                 connector_metadata: None,
@@ -612,29 +600,25 @@ pub struct RedirectData {
     pub redirect_url: Url,
 }
 
-impl<F, T> TryFrom<types::ResponseRouterData<F, PaymentResponse, T, PaymentsResponseData>>
-    for types::RouterData<F, T, PaymentsResponseData>
+impl<F, T> TryFrom<ResponseRouterData<F, PaymentResponse, T, PaymentsResponseData>>
+    for RouterData<F, T, PaymentsResponseData>
 {
     type Error = error_stack::Report<errors::ConnectorError>;
     fn try_from(
-        item: types::ResponseRouterData<F, PaymentResponse, T, PaymentsResponseData>,
+        item: ResponseRouterData<F, PaymentResponse, T, PaymentsResponseData>,
     ) -> Result<Self, Self::Error> {
         let redirection_data = item
             .response
             .merchant_action
             .map(|action| action.redirect_data.redirect_url)
-            .map(|redirect_url| {
-                services::RedirectForm::from((redirect_url, services::Method::Get))
-            });
+            .map(|redirect_url| RedirectForm::from((redirect_url, Method::Get)));
         Ok(Self {
-            status: enums::AttemptStatus::foreign_from((
+            status: get_status((
                 item.response.payment.status,
                 item.response.payment.capture_method,
             )),
             response: Ok(PaymentsResponseData::TransactionResponse {
-                resource_id: types::ResponseId::ConnectorTransactionId(
-                    item.response.payment.id.clone(),
-                ),
+                resource_id: ResponseId::ConnectorTransactionId(item.response.payment.id.clone()),
                 redirection_data,
                 mandate_reference: None,
                 connector_metadata: None,
@@ -650,9 +634,9 @@ impl<F, T> TryFrom<types::ResponseRouterData<F, PaymentResponse, T, PaymentsResp
 #[derive(Default, Debug, Serialize)]
 pub struct ApproveRequest {}
 
-impl TryFrom<&types::PaymentsCaptureRouterData> for ApproveRequest {
+impl TryFrom<&PaymentsCaptureRouterData> for ApproveRequest {
     type Error = error_stack::Report<errors::ConnectorError>;
-    fn try_from(_item: &types::PaymentsCaptureRouterData) -> Result<Self, Self::Error> {
+    fn try_from(_item: &PaymentsCaptureRouterData) -> Result<Self, Self::Error> {
         Ok(Self {})
     }
 }
@@ -662,9 +646,9 @@ pub struct WorldlineRefundRequest {
     amount_of_money: AmountOfMoney,
 }
 
-impl<F> TryFrom<&types::RefundsRouterData<F>> for WorldlineRefundRequest {
+impl<F> TryFrom<&RefundsRouterData<F>> for WorldlineRefundRequest {
     type Error = error_stack::Report<errors::ConnectorError>;
-    fn try_from(item: &types::RefundsRouterData<F>) -> Result<Self, Self::Error> {
+    fn try_from(item: &RefundsRouterData<F>) -> Result<Self, Self::Error> {
         Ok(Self {
             amount_of_money: AmountOfMoney {
                 amount: item.request.refund_amount,
@@ -685,7 +669,7 @@ pub enum RefundStatus {
     Processing,
 }
 
-impl From<RefundStatus> for enums::RefundStatus {
+impl From<RefundStatus> for common_enums::enums::RefundStatus {
     fn from(item: RefundStatus) -> Self {
         match item {
             RefundStatus::Refunded => Self::Success,
@@ -701,16 +685,14 @@ pub struct RefundResponse {
     status: RefundStatus,
 }
 
-impl TryFrom<types::RefundsResponseRouterData<api::Execute, RefundResponse>>
-    for types::RefundsRouterData<api::Execute>
-{
+impl TryFrom<RefundsResponseRouterData<Execute, RefundResponse>> for RefundsRouterData<Execute> {
     type Error = error_stack::Report<errors::ConnectorError>;
     fn try_from(
-        item: types::RefundsResponseRouterData<api::Execute, RefundResponse>,
+        item: RefundsResponseRouterData<Execute, RefundResponse>,
     ) -> Result<Self, Self::Error> {
-        let refund_status = enums::RefundStatus::from(item.response.status);
+        let refund_status = common_enums::enums::RefundStatus::from(item.response.status);
         Ok(Self {
-            response: Ok(types::RefundsResponseData {
+            response: Ok(RefundsResponseData {
                 connector_refund_id: item.response.id.clone(),
                 refund_status,
             }),
@@ -719,16 +701,14 @@ impl TryFrom<types::RefundsResponseRouterData<api::Execute, RefundResponse>>
     }
 }
 
-impl TryFrom<types::RefundsResponseRouterData<api::RSync, RefundResponse>>
-    for types::RefundsRouterData<api::RSync>
-{
+impl TryFrom<RefundsResponseRouterData<RSync, RefundResponse>> for RefundsRouterData<RSync> {
     type Error = error_stack::Report<errors::ConnectorError>;
     fn try_from(
-        item: types::RefundsResponseRouterData<api::RSync, RefundResponse>,
+        item: RefundsResponseRouterData<RSync, RefundResponse>,
     ) -> Result<Self, Self::Error> {
-        let refund_status = enums::RefundStatus::from(item.response.status);
+        let refund_status = common_enums::enums::RefundStatus::from(item.response.status);
         Ok(Self {
-            response: Ok(types::RefundsResponseData {
+            response: Ok(RefundsResponseData {
                 connector_refund_id: item.response.id.clone(),
                 refund_status,
             }),
diff --git a/crates/hyperswitch_connectors/src/constants.rs b/crates/hyperswitch_connectors/src/constants.rs
index 1fd61689307..1427b567c44 100644
--- a/crates/hyperswitch_connectors/src/constants.rs
+++ b/crates/hyperswitch_connectors/src/constants.rs
@@ -4,6 +4,7 @@ pub(crate) mod headers {
     pub(crate) const API_TOKEN: &str = "Api-Token";
     pub(crate) const AUTHORIZATION: &str = "Authorization";
     pub(crate) const CONTENT_TYPE: &str = "Content-Type";
+    pub(crate) const DATE: &str = "Date";
     pub(crate) const IDEMPOTENCY_KEY: &str = "Idempotency-Key";
     pub(crate) const MESSAGE_SIGNATURE: &str = "Message-Signature";
     pub(crate) const TIMESTAMP: &str = "Timestamp";
diff --git a/crates/hyperswitch_connectors/src/default_implementations.rs b/crates/hyperswitch_connectors/src/default_implementations.rs
index 101bb145966..11a071d135e 100644
--- a/crates/hyperswitch_connectors/src/default_implementations.rs
+++ b/crates/hyperswitch_connectors/src/default_implementations.rs
@@ -91,11 +91,15 @@ default_imp_for_authorize_session_token!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 use crate::connectors;
@@ -119,11 +123,14 @@ default_imp_for_complete_authorize!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 macro_rules! default_imp_for_incremental_authorization {
@@ -147,11 +154,15 @@ default_imp_for_incremental_authorization!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 macro_rules! default_imp_for_create_customer {
@@ -175,10 +186,14 @@ default_imp_for_create_customer!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
-    connectors::Taxjar
+    connectors::Powertranz,
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 macro_rules! default_imp_for_connector_redirect_response {
@@ -203,11 +218,15 @@ default_imp_for_connector_redirect_response!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 macro_rules! default_imp_for_pre_processing_steps{
@@ -231,11 +250,15 @@ default_imp_for_pre_processing_steps!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 macro_rules! default_imp_for_post_processing_steps{
@@ -259,11 +282,15 @@ default_imp_for_post_processing_steps!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 macro_rules! default_imp_for_approve {
@@ -287,11 +314,15 @@ default_imp_for_approve!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 macro_rules! default_imp_for_reject {
@@ -315,11 +346,15 @@ default_imp_for_reject!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 macro_rules! default_imp_for_webhook_source_verification {
@@ -343,11 +378,15 @@ default_imp_for_webhook_source_verification!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 macro_rules! default_imp_for_accept_dispute {
@@ -372,11 +411,15 @@ default_imp_for_accept_dispute!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 macro_rules! default_imp_for_submit_evidence {
@@ -400,11 +443,15 @@ default_imp_for_submit_evidence!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 macro_rules! default_imp_for_defend_dispute {
@@ -428,11 +475,15 @@ default_imp_for_defend_dispute!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 macro_rules! default_imp_for_file_upload {
@@ -465,11 +516,15 @@ default_imp_for_file_upload!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 #[cfg(feature = "payouts")]
@@ -495,11 +550,15 @@ default_imp_for_payouts_create!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 #[cfg(feature = "payouts")]
@@ -525,11 +584,15 @@ default_imp_for_payouts_retrieve!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 #[cfg(feature = "payouts")]
@@ -555,11 +618,15 @@ default_imp_for_payouts_eligibility!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 #[cfg(feature = "payouts")]
@@ -585,11 +652,15 @@ default_imp_for_payouts_fulfill!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 #[cfg(feature = "payouts")]
@@ -615,11 +686,15 @@ default_imp_for_payouts_cancel!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 #[cfg(feature = "payouts")]
@@ -645,11 +720,15 @@ default_imp_for_payouts_quote!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 #[cfg(feature = "payouts")]
@@ -675,11 +754,15 @@ default_imp_for_payouts_recipient!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 #[cfg(feature = "payouts")]
@@ -705,11 +788,15 @@ default_imp_for_payouts_recipient_account!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 #[cfg(feature = "frm")]
@@ -735,11 +822,15 @@ default_imp_for_frm_sale!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 #[cfg(feature = "frm")]
@@ -765,11 +856,15 @@ default_imp_for_frm_checkout!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 #[cfg(feature = "frm")]
@@ -795,11 +890,15 @@ default_imp_for_frm_transaction!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 #[cfg(feature = "frm")]
@@ -825,11 +924,15 @@ default_imp_for_frm_fulfillment!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 #[cfg(feature = "frm")]
@@ -855,11 +958,15 @@ default_imp_for_frm_record_return!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 macro_rules! default_imp_for_revoking_mandates {
@@ -882,9 +989,13 @@ default_imp_for_revoking_mandates!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
diff --git a/crates/hyperswitch_connectors/src/default_implementations_v2.rs b/crates/hyperswitch_connectors/src/default_implementations_v2.rs
index e3989e38a71..ae7f81ffd30 100644
--- a/crates/hyperswitch_connectors/src/default_implementations_v2.rs
+++ b/crates/hyperswitch_connectors/src/default_implementations_v2.rs
@@ -186,11 +186,15 @@ default_imp_for_new_connector_integration_payment!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 macro_rules! default_imp_for_new_connector_integration_refund {
@@ -215,11 +219,15 @@ default_imp_for_new_connector_integration_refund!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 macro_rules! default_imp_for_new_connector_integration_connector_access_token {
@@ -239,11 +247,15 @@ default_imp_for_new_connector_integration_connector_access_token!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 macro_rules! default_imp_for_new_connector_integration_accept_dispute {
@@ -269,11 +281,15 @@ default_imp_for_new_connector_integration_accept_dispute!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 macro_rules! default_imp_for_new_connector_integration_submit_evidence {
@@ -298,11 +314,15 @@ default_imp_for_new_connector_integration_submit_evidence!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 macro_rules! default_imp_for_new_connector_integration_defend_dispute {
@@ -327,11 +347,15 @@ default_imp_for_new_connector_integration_defend_dispute!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 macro_rules! default_imp_for_new_connector_integration_file_upload {
@@ -366,11 +390,15 @@ default_imp_for_new_connector_integration_file_upload!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 #[cfg(feature = "payouts")]
@@ -397,11 +425,15 @@ default_imp_for_new_connector_integration_payouts_create!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 #[cfg(feature = "payouts")]
@@ -428,11 +460,15 @@ default_imp_for_new_connector_integration_payouts_eligibility!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 #[cfg(feature = "payouts")]
@@ -459,11 +495,15 @@ default_imp_for_new_connector_integration_payouts_fulfill!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 #[cfg(feature = "payouts")]
@@ -490,11 +530,15 @@ default_imp_for_new_connector_integration_payouts_cancel!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 #[cfg(feature = "payouts")]
@@ -521,11 +565,15 @@ default_imp_for_new_connector_integration_payouts_quote!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 #[cfg(feature = "payouts")]
@@ -552,11 +600,15 @@ default_imp_for_new_connector_integration_payouts_recipient!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 #[cfg(feature = "payouts")]
@@ -583,11 +635,15 @@ default_imp_for_new_connector_integration_payouts_sync!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 #[cfg(feature = "payouts")]
@@ -614,11 +670,15 @@ default_imp_for_new_connector_integration_payouts_recipient_account!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 macro_rules! default_imp_for_new_connector_integration_webhook_source_verification {
@@ -643,11 +703,15 @@ default_imp_for_new_connector_integration_webhook_source_verification!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 #[cfg(feature = "frm")]
@@ -674,11 +738,15 @@ default_imp_for_new_connector_integration_frm_sale!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 #[cfg(feature = "frm")]
@@ -705,11 +773,15 @@ default_imp_for_new_connector_integration_frm_checkout!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 #[cfg(feature = "frm")]
@@ -736,11 +808,15 @@ default_imp_for_new_connector_integration_frm_transaction!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 #[cfg(feature = "frm")]
@@ -767,11 +843,15 @@ default_imp_for_new_connector_integration_frm_fulfillment!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 #[cfg(feature = "frm")]
@@ -798,11 +878,15 @@ default_imp_for_new_connector_integration_frm_record_return!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
 
 macro_rules! default_imp_for_new_connector_integration_revoking_mandates {
@@ -826,9 +910,13 @@ default_imp_for_new_connector_integration_revoking_mandates!(
     connectors::Fiserv,
     connectors::Fiservemea,
     connectors::Fiuu,
+    connectors::Globepay,
     connectors::Helcim,
     connectors::Novalnet,
     connectors::Nexixpay,
+    connectors::Powertranz,
     connectors::Stax,
-    connectors::Taxjar
+    connectors::Taxjar,
+    connectors::Tsys,
+    connectors::Worldline
 );
diff --git a/crates/hyperswitch_connectors/src/utils.rs b/crates/hyperswitch_connectors/src/utils.rs
index ebd3ff34704..e5ed9d3e7b4 100644
--- a/crates/hyperswitch_connectors/src/utils.rs
+++ b/crates/hyperswitch_connectors/src/utils.rs
@@ -1,3 +1,5 @@
+use std::collections::HashMap;
+
 use api_models::payments::{self, Address, AddressDetails, OrderDetailsWithAmount, PhoneDetails};
 use common_enums::{enums, enums::FutureUsage};
 use common_utils::{
@@ -7,7 +9,7 @@ use common_utils::{
     pii::{self, Email, IpAddress},
     types::{AmountConvertor, MinorUnit},
 };
-use error_stack::ResultExt;
+use error_stack::{report, ResultExt};
 use hyperswitch_domain_models::{
     payment_method_data::{Card, PaymentMethodData},
     router_data::{PaymentMethodToken, RecurringMandatePaymentData},
@@ -19,6 +21,8 @@ use hyperswitch_domain_models::{
 };
 use hyperswitch_interfaces::{api, errors};
 use masking::{ExposeInterface, PeekInterface, Secret};
+use once_cell::sync::Lazy;
+use regex::Regex;
 use serde::Serializer;
 
 type Error = error_stack::Report<errors::ConnectorError>;
@@ -607,8 +611,21 @@ impl<Flow, Request, Response> RouterData
     }
 }
 
+#[derive(Debug, Copy, Clone, strum::Display, Eq, Hash, PartialEq)]
+pub enum CardIssuer {
+    AmericanExpress,
+    Master,
+    Maestro,
+    Visa,
+    Discover,
+    DinersClub,
+    JCB,
+    CarteBlanche,
+}
+
 pub trait CardData {
     fn get_card_expiry_year_2_digit(&self) -> Result<Secret<String>, errors::ConnectorError>;
+    fn get_card_issuer(&self) -> Result<CardIssuer, Error>;
     fn get_card_expiry_month_year_2_digit_with_delimiter(
         &self,
         delimiter: String,
@@ -631,6 +648,9 @@ impl CardData for Card {
                 .to_string(),
         ))
     }
+    fn get_card_issuer(&self) -> Result<CardIssuer, Error> {
+        get_card_issuer(self.card_number.peek())
+    }
     fn get_card_expiry_month_year_2_digit_with_delimiter(
         &self,
         delimiter: String,
@@ -691,6 +711,45 @@ impl CardData for Card {
     }
 }
 
+#[track_caller]
+fn get_card_issuer(card_number: &str) -> Result<CardIssuer, Error> {
+    for (k, v) in CARD_REGEX.iter() {
+        let regex: Regex = v
+            .clone()
+            .change_context(errors::ConnectorError::RequestEncodingFailed)?;
+        if regex.is_match(card_number) {
+            return Ok(*k);
+        }
+    }
+    Err(error_stack::Report::new(
+        errors::ConnectorError::NotImplemented("Card Type".into()),
+    ))
+}
+
+static CARD_REGEX: Lazy<HashMap<CardIssuer, Result<Regex, regex::Error>>> = Lazy::new(|| {
+    let mut map = HashMap::new();
+    // Reference: https://gist.github.com/michaelkeevildown/9096cd3aac9029c4e6e05588448a8841
+    // [#379]: Determine card issuer from card BIN number
+    map.insert(CardIssuer::Master, Regex::new(r"^5[1-5][0-9]{14}$"));
+    map.insert(CardIssuer::AmericanExpress, Regex::new(r"^3[47][0-9]{13}$"));
+    map.insert(CardIssuer::Visa, Regex::new(r"^4[0-9]{12}(?:[0-9]{3})?$"));
+    map.insert(CardIssuer::Discover, Regex::new(r"^65[4-9][0-9]{13}|64[4-9][0-9]{13}|6011[0-9]{12}|(622(?:12[6-9]|1[3-9][0-9]|[2-8][0-9][0-9]|9[01][0-9]|92[0-5])[0-9]{10})$"));
+    map.insert(
+        CardIssuer::Maestro,
+        Regex::new(r"^(5018|5020|5038|5893|6304|6759|6761|6762|6763)[0-9]{8,15}$"),
+    );
+    map.insert(
+        CardIssuer::DinersClub,
+        Regex::new(r"^3(?:0[0-5]|[68][0-9])[0-9]{11}$"),
+    );
+    map.insert(
+        CardIssuer::JCB,
+        Regex::new(r"^(3(?:088|096|112|158|337|5(?:2[89]|[3-8][0-9]))\d{12})$"),
+    );
+    map.insert(CardIssuer::CarteBlanche, Regex::new(r"^389[0-9]{11}$"));
+    map
+});
+
 pub trait AddressDetailsData {
     fn get_first_name(&self) -> Result<&Secret<String>, Error>;
     fn get_last_name(&self) -> Result<&Secret<String>, Error>;
@@ -1215,6 +1274,34 @@ impl BrowserInformationData for BrowserInformation {
     }
 }
 
+pub fn get_header_key_value<'a>(
+    key: &str,
+    headers: &'a actix_web::http::header::HeaderMap,
+) -> CustomResult<&'a str, errors::ConnectorError> {
+    get_header_field(headers.get(key))
+}
+
+pub fn get_http_header<'a>(
+    key: &str,
+    headers: &'a http::HeaderMap,
+) -> CustomResult<&'a str, errors::ConnectorError> {
+    get_header_field(headers.get(key))
+}
+
+fn get_header_field(
+    field: Option<&http::HeaderValue>,
+) -> CustomResult<&str, errors::ConnectorError> {
+    field
+        .map(|header_value| {
+            header_value
+                .to_str()
+                .change_context(errors::ConnectorError::WebhookSignatureNotFound)
+        })
+        .ok_or(report!(
+            errors::ConnectorError::WebhookSourceVerificationFailed
+        ))?
+}
+
 #[macro_export]
 macro_rules! unimplemented_payment_method {
     ($payment_method:expr, $connector:expr) => {
diff --git a/crates/router/src/connector.rs b/crates/router/src/connector.rs
index f093832db43..e6e7453b033 100644
--- a/crates/router/src/connector.rs
+++ b/crates/router/src/connector.rs
@@ -21,7 +21,6 @@ pub mod dummyconnector;
 pub mod ebanx;
 pub mod forte;
 pub mod globalpay;
-pub mod globepay;
 pub mod gocardless;
 pub mod gpayments;
 pub mod iatapay;
@@ -45,7 +44,6 @@ pub mod paypal;
 pub mod payu;
 pub mod placetopay;
 pub mod plaid;
-pub mod powertranz;
 pub mod prophetpay;
 pub mod rapyd;
 pub mod razorpay;
@@ -56,21 +54,20 @@ pub mod square;
 pub mod stripe;
 pub mod threedsecureio;
 pub mod trustpay;
-pub mod tsys;
 pub mod utils;
 pub mod volt;
 pub mod wellsfargo;
 pub mod wellsfargopayout;
 pub mod wise;
-pub mod worldline;
 pub mod worldpay;
 pub mod zen;
 pub mod zsl;
 
 pub use hyperswitch_connectors::connectors::{
     bambora, bambora::Bambora, bitpay, bitpay::Bitpay, fiserv, fiserv::Fiserv, fiservemea,
-    fiservemea::Fiservemea, fiuu, fiuu::Fiuu, helcim, helcim::Helcim, nexixpay, nexixpay::Nexixpay,
-    novalnet, novalnet::Novalnet, stax, stax::Stax, taxjar, taxjar::Taxjar,
+    fiservemea::Fiservemea, fiuu, fiuu::Fiuu, globepay, globepay::Globepay, helcim, helcim::Helcim,
+    nexixpay, nexixpay::Nexixpay, novalnet, novalnet::Novalnet, powertranz, powertranz::Powertranz,
+    stax, stax::Stax, taxjar, taxjar::Taxjar, tsys, tsys::Tsys, worldline, worldline::Worldline,
 };
 
 #[cfg(feature = "dummy_connector")]
@@ -81,14 +78,13 @@ pub use self::{
     billwerk::Billwerk, bluesnap::Bluesnap, boku::Boku, braintree::Braintree,
     cashtocode::Cashtocode, checkout::Checkout, coinbase::Coinbase, cryptopay::Cryptopay,
     cybersource::Cybersource, datatrans::Datatrans, dlocal::Dlocal, ebanx::Ebanx, forte::Forte,
-    globalpay::Globalpay, globepay::Globepay, gocardless::Gocardless, gpayments::Gpayments,
-    iatapay::Iatapay, itaubank::Itaubank, klarna::Klarna, mifinity::Mifinity, mollie::Mollie,
+    globalpay::Globalpay, gocardless::Gocardless, gpayments::Gpayments, iatapay::Iatapay,
+    itaubank::Itaubank, klarna::Klarna, mifinity::Mifinity, mollie::Mollie,
     multisafepay::Multisafepay, netcetera::Netcetera, nexinets::Nexinets, nmi::Nmi, noon::Noon,
     nuvei::Nuvei, opayo::Opayo, opennode::Opennode, paybox::Paybox, payeezy::Payeezy, payme::Payme,
     payone::Payone, paypal::Paypal, payu::Payu, placetopay::Placetopay, plaid::Plaid,
-    powertranz::Powertranz, prophetpay::Prophetpay, rapyd::Rapyd, razorpay::Razorpay,
-    riskified::Riskified, shift4::Shift4, signifyd::Signifyd, square::Square, stripe::Stripe,
-    threedsecureio::Threedsecureio, trustpay::Trustpay, tsys::Tsys, volt::Volt,
-    wellsfargo::Wellsfargo, wellsfargopayout::Wellsfargopayout, wise::Wise, worldline::Worldline,
-    worldpay::Worldpay, zen::Zen, zsl::Zsl,
+    prophetpay::Prophetpay, rapyd::Rapyd, razorpay::Razorpay, riskified::Riskified, shift4::Shift4,
+    signifyd::Signifyd, square::Square, stripe::Stripe, threedsecureio::Threedsecureio,
+    trustpay::Trustpay, volt::Volt, wellsfargo::Wellsfargo, wellsfargopayout::Wellsfargopayout,
+    wise::Wise, worldpay::Worldpay, zen::Zen, zsl::Zsl,
 };
diff --git a/crates/router/src/core/payments/connector_integration_v2_impls.rs b/crates/router/src/core/payments/connector_integration_v2_impls.rs
index cd38c087dd2..0a98fdfdb92 100644
--- a/crates/router/src/core/payments/connector_integration_v2_impls.rs
+++ b/crates/router/src/core/payments/connector_integration_v2_impls.rs
@@ -655,7 +655,6 @@ default_imp_for_new_connector_integration_payment!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -678,7 +677,6 @@ default_imp_for_new_connector_integration_payment!(
     connector::Paypal,
     connector::Payu,
     connector::Placetopay,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -689,12 +687,10 @@ default_imp_for_new_connector_integration_payment!(
     connector::Shift4,
     connector::Trustpay,
     connector::Threedsecureio,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wellsfargopayout,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl,
@@ -739,7 +735,6 @@ default_imp_for_new_connector_integration_refund!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -762,7 +757,6 @@ default_imp_for_new_connector_integration_refund!(
     connector::Paypal,
     connector::Payu,
     connector::Placetopay,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -773,11 +767,9 @@ default_imp_for_new_connector_integration_refund!(
     connector::Shift4,
     connector::Trustpay,
     connector::Threedsecureio,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl,
@@ -817,7 +809,6 @@ default_imp_for_new_connector_integration_connector_access_token!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -840,7 +831,6 @@ default_imp_for_new_connector_integration_connector_access_token!(
     connector::Paypal,
     connector::Payu,
     connector::Placetopay,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -851,11 +841,9 @@ default_imp_for_new_connector_integration_connector_access_token!(
     connector::Shift4,
     connector::Trustpay,
     connector::Threedsecureio,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl,
@@ -917,7 +905,6 @@ default_imp_for_new_connector_integration_accept_dispute!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -940,7 +927,6 @@ default_imp_for_new_connector_integration_accept_dispute!(
     connector::Paypal,
     connector::Payu,
     connector::Placetopay,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -951,11 +937,9 @@ default_imp_for_new_connector_integration_accept_dispute!(
     connector::Shift4,
     connector::Trustpay,
     connector::Threedsecureio,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl,
@@ -999,7 +983,6 @@ default_imp_for_new_connector_integration_defend_dispute!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -1022,7 +1005,6 @@ default_imp_for_new_connector_integration_defend_dispute!(
     connector::Paypal,
     connector::Payu,
     connector::Placetopay,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -1033,11 +1015,9 @@ default_imp_for_new_connector_integration_defend_dispute!(
     connector::Shift4,
     connector::Trustpay,
     connector::Threedsecureio,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl,
@@ -1065,7 +1045,6 @@ default_imp_for_new_connector_integration_submit_evidence!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -1088,7 +1067,6 @@ default_imp_for_new_connector_integration_submit_evidence!(
     connector::Paypal,
     connector::Payu,
     connector::Placetopay,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -1099,11 +1077,9 @@ default_imp_for_new_connector_integration_submit_evidence!(
     connector::Shift4,
     connector::Trustpay,
     connector::Threedsecureio,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl,
@@ -1158,7 +1134,6 @@ default_imp_for_new_connector_integration_file_upload!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -1181,7 +1156,6 @@ default_imp_for_new_connector_integration_file_upload!(
     connector::Paypal,
     connector::Payu,
     connector::Placetopay,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -1192,11 +1166,9 @@ default_imp_for_new_connector_integration_file_upload!(
     connector::Shift4,
     connector::Trustpay,
     connector::Threedsecureio,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl,
@@ -1328,7 +1300,6 @@ default_imp_for_new_connector_integration_payouts_create!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -1351,7 +1322,6 @@ default_imp_for_new_connector_integration_payouts_create!(
     connector::Paypal,
     connector::Payu,
     connector::Placetopay,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -1362,11 +1332,9 @@ default_imp_for_new_connector_integration_payouts_create!(
     connector::Shift4,
     connector::Trustpay,
     connector::Threedsecureio,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl,
@@ -1413,7 +1381,6 @@ default_imp_for_new_connector_integration_payouts_eligibility!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -1436,7 +1403,6 @@ default_imp_for_new_connector_integration_payouts_eligibility!(
     connector::Paypal,
     connector::Payu,
     connector::Placetopay,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -1447,11 +1413,9 @@ default_imp_for_new_connector_integration_payouts_eligibility!(
     connector::Shift4,
     connector::Trustpay,
     connector::Threedsecureio,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl,
@@ -1498,7 +1462,6 @@ default_imp_for_new_connector_integration_payouts_fulfill!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -1521,7 +1484,6 @@ default_imp_for_new_connector_integration_payouts_fulfill!(
     connector::Paypal,
     connector::Payu,
     connector::Placetopay,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -1532,11 +1494,9 @@ default_imp_for_new_connector_integration_payouts_fulfill!(
     connector::Shift4,
     connector::Trustpay,
     connector::Threedsecureio,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl,
@@ -1583,7 +1543,6 @@ default_imp_for_new_connector_integration_payouts_cancel!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -1606,7 +1565,6 @@ default_imp_for_new_connector_integration_payouts_cancel!(
     connector::Paypal,
     connector::Payu,
     connector::Placetopay,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -1617,11 +1575,9 @@ default_imp_for_new_connector_integration_payouts_cancel!(
     connector::Shift4,
     connector::Trustpay,
     connector::Threedsecureio,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl,
@@ -1668,7 +1624,6 @@ default_imp_for_new_connector_integration_payouts_quote!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -1691,7 +1646,6 @@ default_imp_for_new_connector_integration_payouts_quote!(
     connector::Paypal,
     connector::Payu,
     connector::Placetopay,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -1702,11 +1656,9 @@ default_imp_for_new_connector_integration_payouts_quote!(
     connector::Shift4,
     connector::Trustpay,
     connector::Threedsecureio,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl,
@@ -1753,7 +1705,6 @@ default_imp_for_new_connector_integration_payouts_recipient!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -1776,7 +1727,6 @@ default_imp_for_new_connector_integration_payouts_recipient!(
     connector::Paypal,
     connector::Payu,
     connector::Placetopay,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -1787,11 +1737,9 @@ default_imp_for_new_connector_integration_payouts_recipient!(
     connector::Shift4,
     connector::Trustpay,
     connector::Threedsecureio,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl,
@@ -1838,7 +1786,6 @@ default_imp_for_new_connector_integration_payouts_sync!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -1861,7 +1808,6 @@ default_imp_for_new_connector_integration_payouts_sync!(
     connector::Paypal,
     connector::Payu,
     connector::Placetopay,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -1872,11 +1818,9 @@ default_imp_for_new_connector_integration_payouts_sync!(
     connector::Shift4,
     connector::Threedsecureio,
     connector::Trustpay,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl,
@@ -1923,7 +1867,6 @@ default_imp_for_new_connector_integration_payouts_recipient_account!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -1946,7 +1889,6 @@ default_imp_for_new_connector_integration_payouts_recipient_account!(
     connector::Paypal,
     connector::Payu,
     connector::Placetopay,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -1957,11 +1899,9 @@ default_imp_for_new_connector_integration_payouts_recipient_account!(
     connector::Shift4,
     connector::Trustpay,
     connector::Threedsecureio,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl,
@@ -2006,7 +1946,6 @@ default_imp_for_new_connector_integration_webhook_source_verification!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -2029,7 +1968,6 @@ default_imp_for_new_connector_integration_webhook_source_verification!(
     connector::Paypal,
     connector::Payu,
     connector::Placetopay,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -2040,11 +1978,9 @@ default_imp_for_new_connector_integration_webhook_source_verification!(
     connector::Shift4,
     connector::Trustpay,
     connector::Threedsecureio,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl,
@@ -2176,7 +2112,6 @@ default_imp_for_new_connector_integration_frm_sale!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -2199,7 +2134,6 @@ default_imp_for_new_connector_integration_frm_sale!(
     connector::Paypal,
     connector::Payu,
     connector::Placetopay,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -2210,11 +2144,9 @@ default_imp_for_new_connector_integration_frm_sale!(
     connector::Shift4,
     connector::Trustpay,
     connector::Threedsecureio,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl,
@@ -2261,7 +2193,6 @@ default_imp_for_new_connector_integration_frm_checkout!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -2284,7 +2215,6 @@ default_imp_for_new_connector_integration_frm_checkout!(
     connector::Paypal,
     connector::Payu,
     connector::Placetopay,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -2295,11 +2225,9 @@ default_imp_for_new_connector_integration_frm_checkout!(
     connector::Shift4,
     connector::Trustpay,
     connector::Threedsecureio,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl,
@@ -2346,7 +2274,6 @@ default_imp_for_new_connector_integration_frm_transaction!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -2369,7 +2296,6 @@ default_imp_for_new_connector_integration_frm_transaction!(
     connector::Paypal,
     connector::Payu,
     connector::Placetopay,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -2380,11 +2306,9 @@ default_imp_for_new_connector_integration_frm_transaction!(
     connector::Shift4,
     connector::Trustpay,
     connector::Threedsecureio,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl,
@@ -2431,7 +2355,6 @@ default_imp_for_new_connector_integration_frm_fulfillment!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -2454,7 +2377,6 @@ default_imp_for_new_connector_integration_frm_fulfillment!(
     connector::Paypal,
     connector::Payu,
     connector::Placetopay,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -2465,11 +2387,9 @@ default_imp_for_new_connector_integration_frm_fulfillment!(
     connector::Shift4,
     connector::Trustpay,
     connector::Threedsecureio,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl,
@@ -2516,7 +2436,6 @@ default_imp_for_new_connector_integration_frm_record_return!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -2539,7 +2458,6 @@ default_imp_for_new_connector_integration_frm_record_return!(
     connector::Paypal,
     connector::Payu,
     connector::Placetopay,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -2550,11 +2468,9 @@ default_imp_for_new_connector_integration_frm_record_return!(
     connector::Shift4,
     connector::Trustpay,
     connector::Threedsecureio,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl,
@@ -2598,7 +2514,6 @@ default_imp_for_new_connector_integration_revoking_mandates!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -2621,7 +2536,6 @@ default_imp_for_new_connector_integration_revoking_mandates!(
     connector::Paypal,
     connector::Payu,
     connector::Placetopay,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -2632,11 +2546,9 @@ default_imp_for_new_connector_integration_revoking_mandates!(
     connector::Shift4,
     connector::Trustpay,
     connector::Threedsecureio,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl,
diff --git a/crates/router/src/core/payments/flows.rs b/crates/router/src/core/payments/flows.rs
index 6cf07bca148..0650797ce1d 100644
--- a/crates/router/src/core/payments/flows.rs
+++ b/crates/router/src/core/payments/flows.rs
@@ -214,7 +214,6 @@ default_imp_for_complete_authorize!(
     connector::Dlocal,
     connector::Ebanx,
     connector::Forte,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -241,12 +240,10 @@ default_imp_for_complete_authorize!(
     connector::Stripe,
     connector::Threedsecureio,
     connector::Trustpay,
-    connector::Tsys,
     connector::Volt,
     connector::Wise,
     connector::Wellsfargo,
     connector::Wellsfargopayout,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl
@@ -299,7 +296,6 @@ default_imp_for_webhook_source_verification!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -322,7 +318,6 @@ default_imp_for_webhook_source_verification!(
     connector::Payu,
     connector::Placetopay,
     connector::Plaid,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -333,12 +328,10 @@ default_imp_for_webhook_source_verification!(
     connector::Stripe,
     connector::Threedsecureio,
     connector::Trustpay,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wellsfargopayout,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl
@@ -393,7 +386,6 @@ default_imp_for_create_customer!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gpayments,
     connector::Iatapay,
     connector::Itaubank,
@@ -416,7 +408,6 @@ default_imp_for_create_customer!(
     connector::Payu,
     connector::Placetopay,
     connector::Plaid,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -426,12 +417,10 @@ default_imp_for_create_customer!(
     connector::Square,
     connector::Threedsecureio,
     connector::Trustpay,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wellsfargopayout,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl
@@ -482,7 +471,6 @@ default_imp_for_connector_redirect_response!(
     connector::Dlocal,
     connector::Ebanx,
     connector::Forte,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -500,7 +488,6 @@ default_imp_for_connector_redirect_response!(
     connector::Payu,
     connector::Placetopay,
     connector::Plaid,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -509,12 +496,10 @@ default_imp_for_connector_redirect_response!(
     connector::Signifyd,
     connector::Square,
     connector::Threedsecureio,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wellsfargopayout,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zsl
 );
@@ -656,7 +641,6 @@ default_imp_for_accept_dispute!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -680,7 +664,6 @@ default_imp_for_accept_dispute!(
     connector::Payu,
     connector::Placetopay,
     connector::Plaid,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -691,12 +674,10 @@ default_imp_for_accept_dispute!(
     connector::Stripe,
     connector::Threedsecureio,
     connector::Trustpay,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wellsfargopayout,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl
@@ -771,7 +752,6 @@ default_imp_for_file_upload!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -794,7 +774,6 @@ default_imp_for_file_upload!(
     connector::Payu,
     connector::Placetopay,
     connector::Plaid,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -804,13 +783,11 @@ default_imp_for_file_upload!(
     connector::Square,
     connector::Threedsecureio,
     connector::Trustpay,
-    connector::Tsys,
     connector::Volt,
     connector::Opennode,
     connector::Wellsfargo,
     connector::Wellsfargopayout,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl
@@ -863,7 +840,6 @@ default_imp_for_submit_evidence!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -886,7 +862,6 @@ default_imp_for_submit_evidence!(
     connector::Payu,
     connector::Placetopay,
     connector::Plaid,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -896,13 +871,11 @@ default_imp_for_submit_evidence!(
     connector::Square,
     connector::Threedsecureio,
     connector::Trustpay,
-    connector::Tsys,
     connector::Volt,
     connector::Opennode,
     connector::Wellsfargo,
     connector::Wellsfargopayout,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl
@@ -953,7 +926,6 @@ default_imp_for_defend_dispute!(
     connector::Datatrans,
     connector::Dlocal,
     connector::Ebanx,
-    connector::Globepay,
     connector::Forte,
     connector::Globalpay,
     connector::Gocardless,
@@ -978,7 +950,6 @@ default_imp_for_defend_dispute!(
     connector::Payu,
     connector::Placetopay,
     connector::Plaid,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -989,13 +960,11 @@ default_imp_for_defend_dispute!(
     connector::Stripe,
     connector::Threedsecureio,
     connector::Trustpay,
-    connector::Tsys,
     connector::Volt,
     connector::Opennode,
     connector::Wellsfargo,
     connector::Wellsfargopayout,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl
@@ -1064,7 +1033,6 @@ default_imp_for_pre_processing_steps!(
     connector::Itaubank,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gpayments,
     connector::Klarna,
     connector::Mifinity,
@@ -1081,7 +1049,6 @@ default_imp_for_pre_processing_steps!(
     connector::Payu,
     connector::Placetopay,
     connector::Plaid,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -1089,12 +1056,10 @@ default_imp_for_pre_processing_steps!(
     connector::Signifyd,
     connector::Square,
     connector::Threedsecureio,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wellsfargopayout,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl
@@ -1144,7 +1109,6 @@ default_imp_for_post_processing_steps!(
     connector::Itaubank,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gpayments,
     connector::Klarna,
     connector::Mifinity,
@@ -1160,19 +1124,16 @@ default_imp_for_post_processing_steps!(
     connector::Payone,
     connector::Payu,
     connector::Placetopay,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Riskified,
     connector::Signifyd,
     connector::Square,
     connector::Threedsecureio,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wellsfargopayout,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl,
@@ -1308,7 +1269,6 @@ default_imp_for_payouts_create!(
     connector::Dlocal,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -1331,7 +1291,6 @@ default_imp_for_payouts_create!(
     connector::Payu,
     connector::Placetopay,
     connector::Plaid,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -1341,11 +1300,9 @@ default_imp_for_payouts_create!(
     connector::Shift4,
     connector::Threedsecureio,
     connector::Trustpay,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wellsfargopayout,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl
@@ -1401,7 +1358,6 @@ default_imp_for_payouts_retrieve!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -1424,7 +1380,6 @@ default_imp_for_payouts_retrieve!(
     connector::Payu,
     connector::Placetopay,
     connector::Plaid,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -1435,12 +1390,10 @@ default_imp_for_payouts_retrieve!(
     connector::Shift4,
     connector::Threedsecureio,
     connector::Trustpay,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wellsfargopayout,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl
@@ -1497,7 +1450,6 @@ default_imp_for_payouts_eligibility!(
     connector::Dlocal,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -1521,7 +1473,6 @@ default_imp_for_payouts_eligibility!(
     connector::Payu,
     connector::Placetopay,
     connector::Plaid,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -1532,11 +1483,9 @@ default_imp_for_payouts_eligibility!(
     connector::Shift4,
     connector::Threedsecureio,
     connector::Trustpay,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wellsfargopayout,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl
@@ -1588,7 +1537,6 @@ default_imp_for_payouts_fulfill!(
     connector::Dlocal,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -1610,7 +1558,6 @@ default_imp_for_payouts_fulfill!(
     connector::Payu,
     connector::Placetopay,
     connector::Plaid,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -1620,11 +1567,9 @@ default_imp_for_payouts_fulfill!(
     connector::Shift4,
     connector::Threedsecureio,
     connector::Trustpay,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wellsfargopayout,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl
@@ -1678,7 +1623,6 @@ default_imp_for_payouts_cancel!(
     connector::Dlocal,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -1702,7 +1646,6 @@ default_imp_for_payouts_cancel!(
     connector::Payu,
     connector::Placetopay,
     connector::Plaid,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -1712,11 +1655,9 @@ default_imp_for_payouts_cancel!(
     connector::Shift4,
     connector::Threedsecureio,
     connector::Trustpay,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wellsfargopayout,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl
@@ -1771,7 +1712,6 @@ default_imp_for_payouts_quote!(
     connector::Dlocal,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -1795,7 +1735,6 @@ default_imp_for_payouts_quote!(
     connector::Payu,
     connector::Placetopay,
     connector::Plaid,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -1806,11 +1745,9 @@ default_imp_for_payouts_quote!(
     connector::Shift4,
     connector::Threedsecureio,
     connector::Trustpay,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wellsfargopayout,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl
@@ -1865,7 +1802,6 @@ default_imp_for_payouts_recipient!(
     connector::Dlocal,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -1889,7 +1825,6 @@ default_imp_for_payouts_recipient!(
     connector::Payu,
     connector::Placetopay,
     connector::Plaid,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -1899,11 +1834,9 @@ default_imp_for_payouts_recipient!(
     connector::Shift4,
     connector::Threedsecureio,
     connector::Trustpay,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wellsfargopayout,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl
@@ -1962,7 +1895,6 @@ default_imp_for_payouts_recipient_account!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -1986,7 +1918,6 @@ default_imp_for_payouts_recipient_account!(
     connector::Payu,
     connector::Placetopay,
     connector::Plaid,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -1996,12 +1927,10 @@ default_imp_for_payouts_recipient_account!(
     connector::Shift4,
     connector::Threedsecureio,
     connector::Trustpay,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wellsfargopayout,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl
@@ -2056,7 +1985,6 @@ default_imp_for_approve!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -2080,7 +2008,6 @@ default_imp_for_approve!(
     connector::Payu,
     connector::Placetopay,
     connector::Plaid,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -2091,12 +2018,10 @@ default_imp_for_approve!(
     connector::Shift4,
     connector::Threedsecureio,
     connector::Trustpay,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wellsfargopayout,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl
@@ -2151,7 +2076,6 @@ default_imp_for_reject!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -2175,7 +2099,6 @@ default_imp_for_reject!(
     connector::Payu,
     connector::Placetopay,
     connector::Plaid,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -2186,12 +2109,10 @@ default_imp_for_reject!(
     connector::Shift4,
     connector::Threedsecureio,
     connector::Trustpay,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wellsfargopayout,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl
@@ -2335,7 +2256,6 @@ default_imp_for_frm_sale!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -2359,7 +2279,6 @@ default_imp_for_frm_sale!(
     connector::Payu,
     connector::Placetopay,
     connector::Plaid,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -2368,12 +2287,10 @@ default_imp_for_frm_sale!(
     connector::Shift4,
     connector::Threedsecureio,
     connector::Trustpay,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wellsfargopayout,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl
@@ -2430,7 +2347,6 @@ default_imp_for_frm_checkout!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -2454,7 +2370,6 @@ default_imp_for_frm_checkout!(
     connector::Payu,
     connector::Placetopay,
     connector::Plaid,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -2463,12 +2378,10 @@ default_imp_for_frm_checkout!(
     connector::Shift4,
     connector::Threedsecureio,
     connector::Trustpay,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wellsfargopayout,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl
@@ -2525,7 +2438,6 @@ default_imp_for_frm_transaction!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -2549,7 +2461,6 @@ default_imp_for_frm_transaction!(
     connector::Payu,
     connector::Placetopay,
     connector::Plaid,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -2558,12 +2469,10 @@ default_imp_for_frm_transaction!(
     connector::Shift4,
     connector::Threedsecureio,
     connector::Trustpay,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wellsfargopayout,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl
@@ -2620,7 +2529,6 @@ default_imp_for_frm_fulfillment!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -2644,7 +2552,6 @@ default_imp_for_frm_fulfillment!(
     connector::Payu,
     connector::Placetopay,
     connector::Plaid,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -2653,12 +2560,10 @@ default_imp_for_frm_fulfillment!(
     connector::Shift4,
     connector::Threedsecureio,
     connector::Trustpay,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wellsfargopayout,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl
@@ -2715,7 +2620,6 @@ default_imp_for_frm_record_return!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -2739,7 +2643,6 @@ default_imp_for_frm_record_return!(
     connector::Payu,
     connector::Placetopay,
     connector::Plaid,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -2748,12 +2651,10 @@ default_imp_for_frm_record_return!(
     connector::Shift4,
     connector::Threedsecureio,
     connector::Trustpay,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wellsfargopayout,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl
@@ -2807,7 +2708,6 @@ default_imp_for_incremental_authorization!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -2831,7 +2731,6 @@ default_imp_for_incremental_authorization!(
     connector::Payu,
     connector::Placetopay,
     connector::Plaid,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -2842,11 +2741,9 @@ default_imp_for_incremental_authorization!(
     connector::Shift4,
     connector::Threedsecureio,
     connector::Trustpay,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargopayout,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl
@@ -2898,7 +2795,6 @@ default_imp_for_revoking_mandates!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -2921,7 +2817,6 @@ default_imp_for_revoking_mandates!(
     connector::Payu,
     connector::Placetopay,
     connector::Plaid,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -2932,10 +2827,8 @@ default_imp_for_revoking_mandates!(
     connector::Shift4,
     connector::Threedsecureio,
     connector::Trustpay,
-    connector::Tsys,
     connector::Volt,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl
@@ -3148,7 +3041,6 @@ default_imp_for_authorize_session_token!(
     connector::Ebanx,
     connector::Forte,
     connector::Globalpay,
-    connector::Globepay,
     connector::Gocardless,
     connector::Gpayments,
     connector::Iatapay,
@@ -3171,7 +3063,6 @@ default_imp_for_authorize_session_token!(
     connector::Payu,
     connector::Placetopay,
     connector::Plaid,
-    connector::Powertranz,
     connector::Prophetpay,
     connector::Rapyd,
     connector::Razorpay,
@@ -3181,12 +3072,10 @@ default_imp_for_authorize_session_token!(
     connector::Shift4,
     connector::Threedsecureio,
     connector::Trustpay,
-    connector::Tsys,
     connector::Volt,
     connector::Wellsfargo,
     connector::Wellsfargopayout,
     connector::Wise,
-    connector::Worldline,
     connector::Worldpay,
     connector::Zen,
     connector::Zsl

## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [ ] Bugfix
- [ ] New feature
- [ ] Enhancement
- [ ] Refactoring
- [ ] Dependency updates
- [ ] Documentation
- [ ] CI/CD

## Description
<!-- Describe your changes in detail -->


### Additional Changes

- [ ] This PR modifies the API contract
- [ ] This PR modifies the database schema
- [ ] This PR modifies application configuration/environment variables

<!--
Provide links to the files with corresponding changes.

Following are the paths where you can find config files:
1. `config`
2. `crates/router/src/configs`
3. `loadtest/config`
-->


## Motivation and Context
<!--
Why is this change required? What problem does it solve?
If it fixes an open issue, please link to the issue here.

If you don't have an issue, we'd recommend starting with one first so the PR
can focus on the implementation (unless it is an obvious bug or documentation fix
that will have little conversation).
-->
https://github.com/juspay/hyperswitch/issues/5759

## How did you test it?
<!--
Did you write an integration/unit/API test to verify the code changes?
Or did you test this change manually (provide relevant screenshots)?
-->
1. Worldline:
Request:
```
curl --location 'http://localhost:8080/payments' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'api-key: dev_CwqDbNztbMVSQb2nXB765MuZZ42QdqKJ5Bs4XPlC6s0e20sqfhi59GInfhqaRWLL' \
--data '{
    "amount": 2980,
    "currency": "GBP",
    "confirm": true,
    "customer_id": "customer123",
    "payment_method": "card",
    "payment_method_type": "credit",
    "payment_method_data": {
        "card": {
            "card_number": "4567350000427977",
            "card_exp_month": "10",
            "card_exp_year": "25",
            "card_holder_name": "joseph Doe",
            "card_cvc": "123"
        }
    },
    "billing": {
        "address": {
            "country": "US"
        },
        "phone": {
            "number": "8056594427",
            "country_code": "+44"
        }
    }
}'
```

Response:
```
{
    "payment_id": "pay_vx9YCgwBjjL6FeFdGz4i",
    "merchant_id": "merchant_1725268605",
    "status": "processing",
    "amount": 2980,
    "net_amount": 2980,
    "amount_capturable": 0,
    "amount_received": null,
    "connector": "worldline",
    "client_secret": "pay_vx9YCgwBjjL6FeFdGz4i_secret_H5QXqheAQBQqyKasRbVX",
    "created": "2024-09-02T09:34:06.186Z",
    "currency": "GBP",
    "customer_id": "customer123",
    "customer": {
        "id": "customer123",
        "name": "John Doe",
        "email": "customer@gmail.com",
        "phone": "9999999999",
        "phone_country_code": "+1"
    },
    "description": null,
    "refunds": null,
    "disputes": null,
    "mandate_id": null,
    "mandate_data": null,
    "setup_future_usage": null,
    "off_session": null,
    "capture_on": null,
    "capture_method": null,
    "payment_method": "card",
    "payment_method_data": {
        "card": {
            "last4": "7977",
            "card_type": null,
            "card_network": null,
            "card_issuer": null,
            "card_issuing_country": null,
            "card_isin": "456735",
            "card_extended_bin": null,
            "card_exp_month": "10",
            "card_exp_year": "25",
            "card_holder_name": null,
            "payment_checks": null,
            "authentication_data": null
        },
        "billing": null
    },
    "payment_token": null,
    "shipping": null,
    "billing": {
        "address": {
            "city": null,
            "country": "US",
            "line1": null,
            "line2": null,
            "line3": null,
            "zip": null,
            "state": null,
            "first_name": null,
            "last_name": null
        },
        "phone": {
            "number": "8056594427",
            "country_code": "+44"
        },
        "email": null
    },
    "order_details": null,
    "email": "customer@gmail.com",
    "name": "John Doe",
    "phone": "9999999999",
    "return_url": null,
    "authentication_type": "no_three_ds",
    "statement_descriptor_name": null,
    "statement_descriptor_suffix": null,
    "next_action": null,
    "cancellation_reason": null,
    "error_code": null,
    "error_message": null,
    "unified_code": null,
    "unified_message": null,
    "payment_experience": null,
    "payment_method_type": "credit",
    "connector_label": null,
    "business_country": null,
    "business_label": "default",
    "business_sub_label": null,
    "allowed_payment_method_types": null,
    "ephemeral_key": {
        "customer_id": "customer123",
        "created_at": 1725269646,
        "expires": 1725273246,
        "secret": "epk_a0d661efb5264d76948f0dc2f5ff15d8"
    },
    "manual_retry_allowed": false,
    "connector_transaction_id": "000000113200000161210000100001",
    "frm_message": null,
    "metadata": null,
    "connector_metadata": null,
    "feature_metadata": null,
    "reference_id": "000000113200000161210000100001",
    "payment_link": null,
    "profile_id": "pro_W9NsQwrIh7qVDMa4Bktf",
    "surcharge_details": null,
    "attempt_count": 1,
    "merchant_decision": null,
    "merchant_connector_id": "mca_m3RwegNJwdLuak50MVPc",
    "incremental_authorization_allowed": null,
    "authorization_count": null,
    "incremental_authorizations": null,
    "external_authentication_details": null,
    "external_3ds_authentication_attempted": false,
    "expires_on": "2024-09-02T09:49:06.186Z",
    "fingerprint": null,
    "browser_info": null,
    "payment_method_id": null,
    "payment_method_status": null,
    "updated": "2024-09-02T09:34:07.353Z",
    "charges": null,
    "frm_metadata": null,
    "merchant_order_reference_id": null
}
```

2. Globepay:
Request:
```
curl --location 'http://localhost:8080/payments' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'api-key: dev_njzwR5DqT1Qs2CHNooqmGECzaX1dUZxtJPGhNAPWU5NHFjjqS41YbWytVmsiLEZW' \
--data '{
    "amount": 6540,
    "currency": "GBP",
    "confirm": true,
    "capture_method": "automatic",
    "customer_id": "customer123",
    "payment_method": "wallet",
    "payment_method_type": "we_chat_pay",
    "payment_method_data": { 
        "wallet": {
            "we_chat_pay_qr": {}
        }
    },
    "description": "Its my first payment request"
}'
```

Response:
```
{
    "payment_id": "pay_dwBc0BicdRUttxbtSTS1",
    "merchant_id": "merchant_1725270185",
    "status": "requires_customer_action",
    "amount": 6540,
    "net_amount": 6540,
    "amount_capturable": 6540,
    "amount_received": null,
    "connector": "globepay",
    "client_secret": "pay_dwBc0BicdRUttxbtSTS1_secret_8461fh9sP2tvSWiDILr7",
    "created": "2024-09-02T09:48:25.461Z",
    "currency": "GBP",
    "customer_id": "customer123",
    "customer": {
        "id": "customer123",
        "name": "John Doe",
        "email": "customer@gmail.com",
        "phone": "9999999999",
        "phone_country_code": "+1"
    },
    "description": "Its my first payment request",
    "refunds": null,
    "disputes": null,
    "mandate_id": null,
    "mandate_data": null,
    "setup_future_usage": null,
    "off_session": null,
    "capture_on": null,
    "capture_method": "automatic",
    "payment_method": "wallet",
    "payment_method_data": {
        "wallet": {},
        "billing": null
    },
    "payment_token": null,
    "shipping": null,
    "billing": null,
    "order_details": null,
    "email": "customer@gmail.com",
    "name": "John Doe",
    "phone": "9999999999",
    "return_url": null,
    "authentication_type": "no_three_ds",
    "statement_descriptor_name": null,
    "statement_descriptor_suffix": null,
    "next_action": {
        "type": "qr_code_information",
        "image_data_url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsAQAAAABRBrPYAAACFElEQVR42u2aO5LDIBBERxHH0E31uSlH2JBILNM92GvLrtqULigHMnqJh54vtvqf9WMTm9jEJjYxBewyX3vNW6pn+17MUr1S9t2khflzY/Je1oOvytp29nilhGVL2HSzuE1OZ/Jmtili3DxLaOBIstjuxw1TQORnlcQgcmsKX9vpt7eu9vTFF4bGELiaO799Psa3obFYxZYCd/aH9WvOGhlzg/jPXyNkNQbkWXxHCWsK903ko4UYfHl5FbkG1sIyAbrz9pS9FgZtI/swSjM+345eAMNB0xrGB6ZdT1JS2OXFcEX2wadQ3pm8FgbnLca1hVnsZpDxMa8r/NwXFP8Qua8TlpHCcOheEhv9N8rjW3M3PBY6RzF8RZ2coYT10sL8mZtd5E3hLvJ7wz44xgKD4QvabmnIPBl5LtbC8NsXnnjv6ah2S1JYi1qH+7LH5ObX8OJPIhfAsLmXyEdLzNZQdVQ1jN06+50TOr8Sh05SWPVNei5EHgLw6cSrLwyPMWR1I3hdgS4vygwxjLUx27qt15BvzZ0EFkN+WuDAM01UqxyGGNVduE/VELqVsF43sm/Nj0N/lBwyWB+WsnRE8i0hdRPDEidOoeoDZRVagzeRC2C8vgmGlnlYQxCDLy8cqXHO5qFbEWMCws2y4fSPWzIaH4uLqhoiX+Pm0d6GMONjfy6qMAZ/lhZHksLmX1wmNrGJTUwf+wVePQd56UlWcQAAAABJRU5ErkJggg==",
        "display_to_timestamp": null,
        "qr_code_url": null
    },
    "cancellation_reason": null,
    "error_code": null,
    "error_message": null,
    "unified_code": null,
    "unified_message": null,
    "payment_experience": null,
    "payment_method_type": "we_chat_pay",
    "connector_label": null,
    "business_country": null,
    "business_label": "default",
    "business_sub_label": null,
    "allowed_payment_method_types": null,
    "ephemeral_key": {
        "customer_id": "customer123",
        "created_at": 1725270505,
        "expires": 1725274105,
        "secret": "epk_8afa80cd997e4be4be43e6221f9b300d"
    },
    "manual_retry_allowed": null,
    "connector_transaction_id": "0000920240902094826388089",
    "frm_message": null,
    "metadata": null,
    "connector_metadata": null,
    "feature_metadata": null,
    "reference_id": null,
    "payment_link": null,
    "profile_id": "pro_fsEcq42jh4O69UULhH9o",
    "surcharge_details": null,
    "attempt_count": 1,
    "merchant_decision": null,
    "merchant_connector_id": "mca_7iZkoKSF0rPm0B1cKcCg",
    "incremental_authorization_allowed": null,
    "authorization_count": null,
    "incremental_authorizations": null,
    "external_authentication_details": null,
    "external_3ds_authentication_attempted": false,
    "expires_on": "2024-09-02T10:03:25.461Z",
    "fingerprint": null,
    "browser_info": null,
    "payment_method_id": null,
    "payment_method_status": null,
    "updated": "2024-09-02T09:48:26.385Z",
    "charges": null,
    "frm_metadata": null,
    "merchant_order_reference_id": null
}
```

3. We are unable to test Powertranz and Tsys for now as we do not have working sandbox credentials.

## Checklist
<!-- Put an `x` in the boxes that apply -->

- [x] I formatted the code `cargo +nightly fmt --all`
- [x] I addressed lints thrown by `cargo clippy`
- [x] I reviewed the submitted code
- [ ] I added unit tests for my changes where possible
