Issue:
Bug: chore: address Rust 1.82.0 clippy lints



Address the clippy lints occurring due to new rust version 1.82.0

See https://github.com/juspay/hyperswitch/issues/3391 for more information.

Pull request description:
## 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 -->
This PR addresses the clippy lints occurring due to new rust version 1.82.0.

Majorly addresses below warning - 

![image](https://github.com/user-attachments/assets/f3f154e7-4062-4b48-a71b-ea5a2ea61e94)


### 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).
-->


## 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)?
-->
This PR addresses clippy lint due to new rust version. So basic sanity testing should suffice.

## 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


Testing:

This PR addresses clippy lint due to new rust version. So basic sanity testing should suffice.

Patch:
diff --git a/add_connector.md b/add_connector.md
index eda368db9c8..4d6e885b7ed 100644
--- a/add_connector.md
+++ b/add_connector.md
@@ -311,7 +311,7 @@ impl TryFrom<types::PaymentsResponseRouterData<PaymentsResponse>>
         let payments_response_data = types::PaymentsResponseData::TransactionResponse {
             resource_id: types::ResponseId::ConnectorTransactionId(item.response.id.clone()),
             redirection_data,
-            mandate_reference: None,
+            mandate_reference: Box::new(None),
             connector_metadata: None,
             network_txn_id: None,
             connector_response_reference_id: Some(
diff --git a/connector-template/transformers.rs b/connector-template/transformers.rs
index 1454be66c8b..b508596cbc0 100644
--- a/connector-template/transformers.rs
+++ b/connector-template/transformers.rs
@@ -132,8 +132,8 @@ impl<F,T> TryFrom<ResponseRouterData<F, {{project-name | downcase | pascal_case}
             status: common_enums::AttemptStatus::from(item.response.status),
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(item.response.id),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: None,
diff --git a/crates/api_models/src/connector_onboarding.rs b/crates/api_models/src/connector_onboarding.rs
index 2dca57d5953..e86f4a6f2fa 100644
--- a/crates/api_models/src/connector_onboarding.rs
+++ b/crates/api_models/src/connector_onboarding.rs
@@ -42,7 +42,7 @@ pub enum PayPalOnboardingStatus {
     MorePermissionsNeeded,
     EmailNotVerified,
     Success(PayPalOnboardingDone),
-    ConnectorIntegrated(admin::MerchantConnectorResponse),
+    ConnectorIntegrated(Box<admin::MerchantConnectorResponse>),
 }
 
 #[derive(serde::Serialize, Debug, Clone)]
diff --git a/crates/api_models/src/payouts.rs b/crates/api_models/src/payouts.rs
index a7be9703d38..237d165d572 100644
--- a/crates/api_models/src/payouts.rs
+++ b/crates/api_models/src/payouts.rs
@@ -19,7 +19,7 @@ use crate::{enums as api_enums, payment_methods::RequiredFieldInfo, payments};
 #[derive(Debug, Deserialize, Serialize, Clone, ToSchema)]
 pub enum PayoutRequest {
     PayoutActionRequest(PayoutActionRequest),
-    PayoutCreateRequest(PayoutCreateRequest),
+    PayoutCreateRequest(Box<PayoutCreateRequest>),
     PayoutRetrieveRequest(PayoutRetrieveRequest),
 }
 
diff --git a/crates/api_models/src/webhooks.rs b/crates/api_models/src/webhooks.rs
index ce9b303066e..56a566d170a 100644
--- a/crates/api_models/src/webhooks.rs
+++ b/crates/api_models/src/webhooks.rs
@@ -229,16 +229,16 @@ pub struct OutgoingWebhook {
 #[serde(tag = "type", content = "object", rename_all = "snake_case")]
 pub enum OutgoingWebhookContent {
     #[schema(value_type = PaymentsResponse, title = "PaymentsResponse")]
-    PaymentDetails(payments::PaymentsResponse),
+    PaymentDetails(Box<payments::PaymentsResponse>),
     #[schema(value_type = RefundResponse, title = "RefundResponse")]
-    RefundDetails(refunds::RefundResponse),
+    RefundDetails(Box<refunds::RefundResponse>),
     #[schema(value_type = DisputeResponse, title = "DisputeResponse")]
     DisputeDetails(Box<disputes::DisputeResponse>),
     #[schema(value_type = MandateResponse, title = "MandateResponse")]
     MandateDetails(Box<mandates::MandateResponse>),
     #[cfg(feature = "payouts")]
     #[schema(value_type = PayoutCreateResponse, title = "PayoutCreateResponse")]
-    PayoutDetails(payouts::PayoutCreateResponse),
+    PayoutDetails(Box<payouts::PayoutCreateResponse>),
 }
 
 #[derive(Debug, Clone, Serialize)]
diff --git a/crates/diesel_models/src/kv.rs b/crates/diesel_models/src/kv.rs
index d91e57a2b5d..0bfa1434f69 100644
--- a/crates/diesel_models/src/kv.rs
+++ b/crates/diesel_models/src/kv.rs
@@ -20,8 +20,8 @@ use crate::{
 #[derive(Debug, Serialize, Deserialize)]
 #[serde(rename_all = "snake_case", tag = "db_op", content = "data")]
 pub enum DBOperation {
-    Insert { insertable: Insertable },
-    Update { updatable: Updateable },
+    Insert { insertable: Box<Insertable> },
+    Update { updatable: Box<Updateable> },
 }
 
 impl DBOperation {
@@ -33,7 +33,7 @@ impl DBOperation {
     }
     pub fn table<'a>(&self) -> &'a str {
         match self {
-            Self::Insert { insertable } => match insertable {
+            Self::Insert { insertable } => match **insertable {
                 Insertable::PaymentIntent(_) => "payment_intent",
                 Insertable::PaymentAttempt(_) => "payment_attempt",
                 Insertable::Refund(_) => "refund",
@@ -45,7 +45,7 @@ impl DBOperation {
                 Insertable::PaymentMethod(_) => "payment_method",
                 Insertable::Mandate(_) => "mandate",
             },
-            Self::Update { updatable } => match updatable {
+            Self::Update { updatable } => match **updatable {
                 Updateable::PaymentIntentUpdate(_) => "payment_intent",
                 Updateable::PaymentAttemptUpdate(_) => "payment_attempt",
                 Updateable::RefundUpdate(_) => "refund",
@@ -83,7 +83,7 @@ pub struct TypedSql {
 impl DBOperation {
     pub async fn execute(self, conn: &PgPooledConn) -> crate::StorageResult<DBResult> {
         Ok(match self {
-            Self::Insert { insertable } => match insertable {
+            Self::Insert { insertable } => match *insertable {
                 Insertable::PaymentIntent(a) => {
                     DBResult::PaymentIntent(Box::new(a.insert(conn).await?))
                 }
@@ -107,7 +107,7 @@ impl DBOperation {
                 }
                 Insertable::Mandate(m) => DBResult::Mandate(Box::new(m.insert(conn).await?)),
             },
-            Self::Update { updatable } => match updatable {
+            Self::Update { updatable } => match *updatable {
                 Updateable::PaymentIntentUpdate(a) => {
                     DBResult::PaymentIntent(Box::new(a.orig.update(conn, a.update_data).await?))
                 }
@@ -201,8 +201,8 @@ impl TypedSql {
 #[derive(Debug, Serialize, Deserialize)]
 #[serde(rename_all = "snake_case", tag = "table", content = "data")]
 pub enum Insertable {
-    PaymentIntent(PaymentIntentNew),
-    PaymentAttempt(PaymentAttemptNew),
+    PaymentIntent(Box<PaymentIntentNew>),
+    PaymentAttempt(Box<PaymentAttemptNew>),
     Refund(RefundNew),
     Address(Box<AddressNew>),
     Customer(CustomerNew),
@@ -216,14 +216,14 @@ pub enum Insertable {
 #[derive(Debug, Serialize, Deserialize)]
 #[serde(rename_all = "snake_case", tag = "table", content = "data")]
 pub enum Updateable {
-    PaymentIntentUpdate(PaymentIntentUpdateMems),
-    PaymentAttemptUpdate(PaymentAttemptUpdateMems),
+    PaymentIntentUpdate(Box<PaymentIntentUpdateMems>),
+    PaymentAttemptUpdate(Box<PaymentAttemptUpdateMems>),
     RefundUpdate(RefundUpdateMems),
     CustomerUpdate(CustomerUpdateMems),
     AddressUpdate(Box<AddressUpdateMems>),
     PayoutsUpdate(PayoutsUpdateMems),
     PayoutAttemptUpdate(PayoutAttemptUpdateMems),
-    PaymentMethodUpdate(PaymentMethodUpdateMems),
+    PaymentMethodUpdate(Box<PaymentMethodUpdateMems>),
     MandateUpdate(MandateUpdateMems),
 }
 
diff --git a/crates/hyperswitch_connectors/src/connectors/bambora/transformers.rs b/crates/hyperswitch_connectors/src/connectors/bambora/transformers.rs
index 4212f7168db..567f519d794 100644
--- a/crates/hyperswitch_connectors/src/connectors/bambora/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/bambora/transformers.rs
@@ -471,8 +471,8 @@ impl<F> TryFrom<ResponseRouterData<F, BamboraResponse, PaymentsAuthorizeData, Pa
                 },
                 response: Ok(PaymentsResponseData::TransactionResponse {
                     resource_id: ResponseId::ConnectorTransactionId(pg_response.id.to_string()),
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: Some(pg_response.order_number.to_string()),
@@ -491,8 +491,8 @@ impl<F> TryFrom<ResponseRouterData<F, BamboraResponse, PaymentsAuthorizeData, Pa
                     status: enums::AttemptStatus::AuthenticationPending,
                     response: Ok(PaymentsResponseData::TransactionResponse {
                         resource_id: ResponseId::NoResponseId,
-                        redirection_data,
-                        mandate_reference: None,
+                        redirection_data: Box::new(redirection_data),
+                        mandate_reference: Box::new(None),
                         connector_metadata: Some(
                             serde_json::to_value(BamboraMeta {
                                 three_d_session_data: response.three_d_session_data.expose(),
@@ -541,8 +541,8 @@ impl<F>
             },
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(item.response.id.to_string()),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.order_number.to_string()),
@@ -586,8 +586,8 @@ impl<F>
             },
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(item.response.id.to_string()),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.order_number.to_string()),
@@ -621,8 +621,8 @@ impl<F>
             },
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(item.response.id.to_string()),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.order_number.to_string()),
@@ -656,8 +656,8 @@ impl<F>
             },
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(item.response.id.to_string()),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.order_number.to_string()),
diff --git a/crates/hyperswitch_connectors/src/connectors/billwerk/transformers.rs b/crates/hyperswitch_connectors/src/connectors/billwerk/transformers.rs
index cc63e1ad7cc..798f28d1f0a 100644
--- a/crates/hyperswitch_connectors/src/connectors/billwerk/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/billwerk/transformers.rs
@@ -284,8 +284,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, BillwerkPaymentsResponse, T, PaymentsRe
         };
         let payments_response = PaymentsResponseData::TransactionResponse {
             resource_id: ResponseId::ConnectorTransactionId(item.response.handle.clone()),
-            redirection_data: None,
-            mandate_reference: None,
+            redirection_data: Box::new(None),
+            mandate_reference: Box::new(None),
             connector_metadata: None,
             network_txn_id: None,
             connector_response_reference_id: Some(item.response.handle),
diff --git a/crates/hyperswitch_connectors/src/connectors/bitpay/transformers.rs b/crates/hyperswitch_connectors/src/connectors/bitpay/transformers.rs
index 1c42bfd08c8..333398dfa90 100644
--- a/crates/hyperswitch_connectors/src/connectors/bitpay/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/bitpay/transformers.rs
@@ -159,8 +159,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, BitpayPaymentsResponse, T, PaymentsResp
             status: enums::AttemptStatus::from(attempt_status),
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: connector_id,
-                redirection_data,
-                mandate_reference: None,
+                redirection_data: Box::new(redirection_data),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: item
diff --git a/crates/hyperswitch_connectors/src/connectors/cashtocode/transformers.rs b/crates/hyperswitch_connectors/src/connectors/cashtocode/transformers.rs
index 49493127621..2a282414f4b 100644
--- a/crates/hyperswitch_connectors/src/connectors/cashtocode/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/cashtocode/transformers.rs
@@ -269,8 +269,8 @@ impl<F>
                         resource_id: ResponseId::ConnectorTransactionId(
                             item.data.attempt_id.clone(),
                         ),
-                        redirection_data: Some(redirection_data),
-                        mandate_reference: None,
+                        redirection_data: Box::new(Some(redirection_data)),
+                        mandate_reference: Box::new(None),
                         connector_metadata: None,
                         network_txn_id: None,
                         connector_response_reference_id: None,
@@ -302,8 +302,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, CashtocodePaymentsSyncResponse, T, Paym
                 resource_id: ResponseId::ConnectorTransactionId(
                     item.data.attempt_id.clone(), //in response they only send PayUrl, so we use attempt_id as connector_transaction_id
                 ),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: None,
diff --git a/crates/hyperswitch_connectors/src/connectors/coinbase/transformers.rs b/crates/hyperswitch_connectors/src/connectors/coinbase/transformers.rs
index 3633c366c4c..41a5306527c 100644
--- a/crates/hyperswitch_connectors/src/connectors/coinbase/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/coinbase/transformers.rs
@@ -146,8 +146,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, CoinbasePaymentsResponse, T, PaymentsRe
         let response_data = timeline.context.map_or(
             Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: connector_id.clone(),
-                redirection_data: Some(redirection_data),
-                mandate_reference: None,
+                redirection_data: Box::new(Some(redirection_data)),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.data.id.clone()),
diff --git a/crates/hyperswitch_connectors/src/connectors/cryptopay/transformers.rs b/crates/hyperswitch_connectors/src/connectors/cryptopay/transformers.rs
index 4440346db6b..1228edcaaea 100644
--- a/crates/hyperswitch_connectors/src/connectors/cryptopay/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/cryptopay/transformers.rs
@@ -183,8 +183,8 @@ impl<F, T>
                 .map(|x| RedirectForm::from((x, common_utils::request::Method::Get)));
             Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(item.response.data.id.clone()),
-                redirection_data,
-                mandate_reference: None,
+                redirection_data: Box::new(redirection_data),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: item
diff --git a/crates/hyperswitch_connectors/src/connectors/deutschebank/transformers.rs b/crates/hyperswitch_connectors/src/connectors/deutschebank/transformers.rs
index e4b011f6204..ccecdaa3d41 100644
--- a/crates/hyperswitch_connectors/src/connectors/deutschebank/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/deutschebank/transformers.rs
@@ -298,16 +298,16 @@ impl
                 },
                 response: Ok(PaymentsResponseData::TransactionResponse {
                     resource_id: ResponseId::NoResponseId,
-                    redirection_data: Some(RedirectForm::Form {
+                    redirection_data: Box::new(Some(RedirectForm::Form {
                         endpoint: item.data.request.get_complete_authorize_url()?,
                         method: common_utils::request::Method::Get,
                         form_fields: HashMap::from([
                             ("reference".to_string(), reference.clone()),
                             ("signed_on".to_string(), signed_on.clone()),
                         ]),
-                    }),
+                    })),
                     mandate_reference: if item.data.request.is_mandate_payment() {
-                        Some(MandateReference {
+                        Box::new(Some(MandateReference {
                             connector_mandate_id: item.response.mandate_id,
                             payment_method_id: None,
                             mandate_metadata: Some(serde_json::json!(DeutschebankMandateMetadata {
@@ -325,9 +325,9 @@ impl
                                 reference: Secret::from(reference.clone()),
                                 signed_on,
                             })),
-                        })
+                        }))
                     } else {
-                        None
+                        Box::new(None)
                     },
                     connector_metadata: None,
                     network_txn_id: None,
@@ -375,8 +375,8 @@ impl
             },
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(item.response.tx_id),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: None,
@@ -578,8 +578,8 @@ impl
             },
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(item.response.tx_id),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: None,
@@ -637,8 +637,8 @@ impl
         Ok(Self {
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(item.response.tx_id),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: None,
diff --git a/crates/hyperswitch_connectors/src/connectors/digitalvirgo/transformers.rs b/crates/hyperswitch_connectors/src/connectors/digitalvirgo/transformers.rs
index 722c78442da..856736842f9 100644
--- a/crates/hyperswitch_connectors/src/connectors/digitalvirgo/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/digitalvirgo/transformers.rs
@@ -124,8 +124,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, DigitalvirgoPaymentsResponse, T, Paymen
             status: common_enums::AttemptStatus::from(item.response.status),
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(item.response.id),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: None,
diff --git a/crates/hyperswitch_connectors/src/connectors/dlocal/transformers.rs b/crates/hyperswitch_connectors/src/connectors/dlocal/transformers.rs
index d21fa481579..f2a6e1b6a6f 100644
--- a/crates/hyperswitch_connectors/src/connectors/dlocal/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/dlocal/transformers.rs
@@ -326,8 +326,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, DlocalPaymentsResponse, T, PaymentsResp
 
         let response = PaymentsResponseData::TransactionResponse {
             resource_id: ResponseId::ConnectorTransactionId(item.response.id.clone()),
-            redirection_data,
-            mandate_reference: None,
+            redirection_data: Box::new(redirection_data),
+            mandate_reference: Box::new(None),
             connector_metadata: None,
             network_txn_id: None,
             connector_response_reference_id: item.response.order_id.clone(),
@@ -360,8 +360,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, DlocalPaymentsSyncResponse, T, Payments
             status: enums::AttemptStatus::from(item.response.status),
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(item.response.id.clone()),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: item.response.order_id.clone(),
@@ -391,8 +391,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, DlocalPaymentsCaptureResponse, T, Payme
             status: enums::AttemptStatus::from(item.response.status),
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(item.response.id.clone()),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: item.response.order_id.clone(),
@@ -420,8 +420,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, DlocalPaymentsCancelResponse, T, Paymen
             status: enums::AttemptStatus::from(item.response.status),
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(item.response.order_id.clone()),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.order_id.clone()),
diff --git a/crates/hyperswitch_connectors/src/connectors/fiserv/transformers.rs b/crates/hyperswitch_connectors/src/connectors/fiserv/transformers.rs
index cdcd82f5b4f..6f4f303ae8e 100644
--- a/crates/hyperswitch_connectors/src/connectors/fiserv/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/fiserv/transformers.rs
@@ -374,8 +374,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, FiservPaymentsResponse, T, PaymentsResp
                 resource_id: ResponseId::ConnectorTransactionId(
                     gateway_resp.transaction_processing_details.transaction_id,
                 ),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: Some(
@@ -413,8 +413,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, FiservSyncResponse, T, PaymentsResponse
                         .transaction_id
                         .clone(),
                 ),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: Some(
diff --git a/crates/hyperswitch_connectors/src/connectors/fiservemea/transformers.rs b/crates/hyperswitch_connectors/src/connectors/fiservemea/transformers.rs
index 7f88903e867..a5362283e7a 100644
--- a/crates/hyperswitch_connectors/src/connectors/fiservemea/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/fiservemea/transformers.rs
@@ -361,8 +361,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, FiservemeaPaymentsResponse, T, Payments
             ),
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(item.response.ipg_transaction_id),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: item.response.order_id,
diff --git a/crates/hyperswitch_connectors/src/connectors/fiuu/transformers.rs b/crates/hyperswitch_connectors/src/connectors/fiuu/transformers.rs
index a401af51008..3d11c24688d 100644
--- a/crates/hyperswitch_connectors/src/connectors/fiuu/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/fiuu/transformers.rs
@@ -604,8 +604,8 @@ impl<F>
                 status: enums::AttemptStatus::AuthenticationPending,
                 response: Ok(PaymentsResponseData::TransactionResponse {
                     resource_id: ResponseId::ConnectorTransactionId(response.txn_id.clone()),
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata: get_qr_metadata(response)?,
                     network_txn_id: None,
                     connector_response_reference_id: None,
@@ -640,8 +640,8 @@ impl<F>
                         status: enums::AttemptStatus::AuthenticationPending,
                         response: Ok(PaymentsResponseData::TransactionResponse {
                             resource_id: ResponseId::ConnectorTransactionId(data.txn_id),
-                            redirection_data,
-                            mandate_reference: None,
+                            redirection_data: Box::new(redirection_data),
+                            mandate_reference: Box::new(None),
                             connector_metadata: None,
                             network_txn_id: None,
                             connector_response_reference_id: None,
@@ -684,8 +684,8 @@ impl<F>
                     } else {
                         Ok(PaymentsResponseData::TransactionResponse {
                             resource_id: ResponseId::ConnectorTransactionId(data.txn_id),
-                            redirection_data: None,
-                            mandate_reference: None,
+                            redirection_data: Box::new(None),
+                            mandate_reference: Box::new(None),
                             connector_metadata: None,
                             network_txn_id: None,
                             connector_response_reference_id: None,
@@ -924,8 +924,8 @@ impl TryFrom<PaymentsSyncResponseRouterData<FiuuPaymentResponse>> for PaymentsSy
                 };
                 let payments_response_data = PaymentsResponseData::TransactionResponse {
                     resource_id: item.data.request.connector_transaction_id.clone(),
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: None,
@@ -963,8 +963,8 @@ impl TryFrom<PaymentsSyncResponseRouterData<FiuuPaymentResponse>> for PaymentsSy
                 };
                 let payments_response_data = PaymentsResponseData::TransactionResponse {
                     resource_id: item.data.request.connector_transaction_id.clone(),
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: None,
@@ -1130,8 +1130,8 @@ impl TryFrom<PaymentsCaptureResponseRouterData<PaymentCaptureResponse>>
         };
         let payments_response_data = PaymentsResponseData::TransactionResponse {
             resource_id: ResponseId::ConnectorTransactionId(item.response.tran_id.to_string()),
-            redirection_data: None,
-            mandate_reference: None,
+            redirection_data: Box::new(None),
+            mandate_reference: Box::new(None),
             connector_metadata: None,
             network_txn_id: None,
             connector_response_reference_id: None,
@@ -1241,8 +1241,8 @@ impl TryFrom<PaymentsCancelResponseRouterData<FiuuPaymentCancelResponse>>
         };
         let payments_response_data = PaymentsResponseData::TransactionResponse {
             resource_id: ResponseId::ConnectorTransactionId(item.response.tran_id.to_string()),
-            redirection_data: None,
-            mandate_reference: None,
+            redirection_data: Box::new(None),
+            mandate_reference: Box::new(None),
             connector_metadata: None,
             network_txn_id: None,
             connector_response_reference_id: None,
diff --git a/crates/hyperswitch_connectors/src/connectors/forte/transformers.rs b/crates/hyperswitch_connectors/src/connectors/forte/transformers.rs
index d04ea7bfee4..6e67409238d 100644
--- a/crates/hyperswitch_connectors/src/connectors/forte/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/forte/transformers.rs
@@ -299,8 +299,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, FortePaymentsResponse, T, PaymentsRespo
             status: get_status(response_code, action),
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(transaction_id.to_string()),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: Some(serde_json::json!(ForteMeta {
                     auth_id: item.response.authorization_code,
                 })),
@@ -342,8 +342,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, FortePaymentsSyncResponse, T, PaymentsR
             status: enums::AttemptStatus::from(item.response.status),
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(transaction_id.to_string()),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: Some(serde_json::json!(ForteMeta {
                     auth_id: item.response.authorization_code,
                 })),
@@ -411,8 +411,8 @@ impl TryFrom<PaymentsCaptureResponseRouterData<ForteCaptureResponse>>
             status: enums::AttemptStatus::from(item.response.response.response_code),
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(transaction_id.clone()),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: Some(serde_json::json!(ForteMeta {
                     auth_id: item.response.authorization_code,
                 })),
@@ -479,8 +479,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, ForteCancelResponse, T, PaymentsRespons
             status: enums::AttemptStatus::from(item.response.response.response_code),
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(transaction_id.to_string()),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: Some(serde_json::json!(ForteMeta {
                     auth_id: item.response.authorization_code,
                 })),
diff --git a/crates/hyperswitch_connectors/src/connectors/globepay/transformers.rs b/crates/hyperswitch_connectors/src/connectors/globepay/transformers.rs
index 2e3919cfc48..66525d49c63 100644
--- a/crates/hyperswitch_connectors/src/connectors/globepay/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/globepay/transformers.rs
@@ -213,8 +213,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, GlobepayPaymentsResponse, T, PaymentsRe
                             .order_id
                             .ok_or(errors::ConnectorError::ResponseHandlingFailed)?,
                     ),
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata,
                     network_txn_id: None,
                     connector_response_reference_id: None,
@@ -287,8 +287,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, GlobepaySyncResponse, T, PaymentsRespon
                 status: enums::AttemptStatus::from(globepay_status),
                 response: Ok(PaymentsResponseData::TransactionResponse {
                     resource_id: ResponseId::ConnectorTransactionId(globepay_id),
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: None,
diff --git a/crates/hyperswitch_connectors/src/connectors/helcim/transformers.rs b/crates/hyperswitch_connectors/src/connectors/helcim/transformers.rs
index a01e2cf918d..427fef3836c 100644
--- a/crates/hyperswitch_connectors/src/connectors/helcim/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/helcim/transformers.rs
@@ -379,8 +379,8 @@ impl<F>
                 resource_id: ResponseId::ConnectorTransactionId(
                     item.response.transaction_id.to_string(),
                 ),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: item.response.invoice_number.clone(),
@@ -430,8 +430,8 @@ impl<F>
         Ok(Self {
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id,
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata,
                 network_txn_id: None,
                 connector_response_reference_id: item.response.invoice_number.clone(),
@@ -479,8 +479,8 @@ impl<F>
                     resource_id: ResponseId::ConnectorTransactionId(
                         item.response.transaction_id.to_string(),
                     ),
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: item.response.invoice_number.clone(),
@@ -559,8 +559,8 @@ impl<F>
                 resource_id: ResponseId::ConnectorTransactionId(
                     item.response.transaction_id.to_string(),
                 ),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: item.response.invoice_number.clone(),
@@ -616,8 +616,8 @@ impl<F>
                 resource_id: ResponseId::ConnectorTransactionId(
                     item.response.transaction_id.to_string(),
                 ),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: item.response.invoice_number.clone(),
diff --git a/crates/hyperswitch_connectors/src/connectors/mollie/transformers.rs b/crates/hyperswitch_connectors/src/connectors/mollie/transformers.rs
index dc5f64bee18..cef3d684e7b 100644
--- a/crates/hyperswitch_connectors/src/connectors/mollie/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/mollie/transformers.rs
@@ -507,8 +507,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, MolliePaymentsResponse, T, PaymentsResp
             status: enums::AttemptStatus::from(item.response.status),
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(item.response.id.clone()),
-                redirection_data: url,
-                mandate_reference: None,
+                redirection_data: Box::new(url),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.id),
diff --git a/crates/hyperswitch_connectors/src/connectors/nexinets/transformers.rs b/crates/hyperswitch_connectors/src/connectors/nexinets/transformers.rs
index eeb24233bef..4761581401f 100644
--- a/crates/hyperswitch_connectors/src/connectors/nexinets/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/nexinets/transformers.rs
@@ -365,8 +365,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, NexinetsPreAuthOrDebitResponse, T, Paym
             status: get_status(transaction.status.clone(), item.response.transaction_type),
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id,
-                redirection_data,
-                mandate_reference,
+                redirection_data: Box::new(redirection_data),
+                mandate_reference: Box::new(mandate_reference),
                 connector_metadata: Some(connector_metadata),
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.order_id),
@@ -445,8 +445,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, NexinetsPaymentResponse, T, PaymentsRes
             status: get_status(item.response.status, item.response.transaction_type),
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id,
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: Some(connector_metadata),
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.order.order_id),
diff --git a/crates/hyperswitch_connectors/src/connectors/nexixpay/transformers.rs b/crates/hyperswitch_connectors/src/connectors/nexixpay/transformers.rs
index 1677343fe38..d593864dbfc 100644
--- a/crates/hyperswitch_connectors/src/connectors/nexixpay/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/nexixpay/transformers.rs
@@ -353,8 +353,8 @@ impl<F>
                 resource_id: ResponseId::ConnectorTransactionId(
                     item.response.operation.order_id.clone(),
                 ),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata,
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.operation.order_id),
@@ -626,8 +626,8 @@ impl<F>
                 resource_id: ResponseId::ConnectorTransactionId(
                     item.response.operation.order_id.clone(),
                 ),
-                redirection_data: Some(redirection_form.clone()),
-                mandate_reference: None,
+                redirection_data: Box::new(Some(redirection_form.clone())),
+                mandate_reference: Box::new(None),
                 connector_metadata,
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.operation.order_id),
@@ -744,8 +744,8 @@ impl<F>
                 resource_id: ResponseId::ConnectorTransactionId(
                     item.response.operation.order_id.clone(),
                 ),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata,
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.operation.order_id),
@@ -867,8 +867,8 @@ impl<F>
             status: AttemptStatus::from(item.response.operation_result),
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(item.response.order_id.clone()),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: item.data.request.connector_meta.clone(),
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.order_id.clone()),
@@ -923,8 +923,8 @@ impl<F>
                 resource_id: ResponseId::ConnectorTransactionId(
                     item.data.request.connector_transaction_id.clone(),
                 ),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata,
                 network_txn_id: None,
                 connector_response_reference_id: Some(
@@ -986,8 +986,8 @@ impl<F>
                 resource_id: ResponseId::ConnectorTransactionId(
                     item.data.request.connector_transaction_id.clone(),
                 ),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata,
                 network_txn_id: None,
                 connector_response_reference_id: Some(
diff --git a/crates/hyperswitch_connectors/src/connectors/novalnet/transformers.rs b/crates/hyperswitch_connectors/src/connectors/novalnet/transformers.rs
index ab209a4db05..1f16a14fde3 100644
--- a/crates/hyperswitch_connectors/src/connectors/novalnet/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/novalnet/transformers.rs
@@ -594,14 +594,14 @@ impl<F, T> TryFrom<ResponseRouterData<F, NovalnetPaymentsResponse, T, PaymentsRe
                             .clone()
                             .map(ResponseId::ConnectorTransactionId)
                             .unwrap_or(ResponseId::NoResponseId),
-                        redirection_data,
-                        mandate_reference: mandate_reference_id.as_ref().map(|id| {
+                        redirection_data: Box::new(redirection_data),
+                        mandate_reference: Box::new(mandate_reference_id.as_ref().map(|id| {
                             MandateReference {
                                 connector_mandate_id: Some(id.clone()),
                                 payment_method_id: None,
                                 mandate_metadata: None,
                             }
-                        }),
+                        })),
                         connector_metadata: None,
                         network_txn_id: None,
                         connector_response_reference_id: transaction_id.clone(),
@@ -995,14 +995,14 @@ impl<F>
                             .clone()
                             .map(ResponseId::ConnectorTransactionId)
                             .unwrap_or(ResponseId::NoResponseId),
-                        redirection_data: None,
-                        mandate_reference: mandate_reference_id.as_ref().map(|id| {
+                        redirection_data: Box::new(None),
+                        mandate_reference: Box::new(mandate_reference_id.as_ref().map(|id| {
                             MandateReference {
                                 connector_mandate_id: Some(id.clone()),
                                 payment_method_id: None,
                                 mandate_metadata: None,
                             }
-                        }),
+                        })),
                         connector_metadata: None,
                         network_txn_id: None,
                         connector_response_reference_id: transaction_id.clone(),
@@ -1085,8 +1085,8 @@ impl<F>
                             .clone()
                             .map(ResponseId::ConnectorTransactionId)
                             .unwrap_or(ResponseId::NoResponseId),
-                        redirection_data: None,
-                        mandate_reference: None,
+                        redirection_data: Box::new(None),
+                        mandate_reference: Box::new(None),
                         connector_metadata: None,
                         network_txn_id: None,
                         connector_response_reference_id: transaction_id.clone(),
@@ -1254,8 +1254,8 @@ impl<F>
                             .clone()
                             .map(ResponseId::ConnectorTransactionId)
                             .unwrap_or(ResponseId::NoResponseId),
-                        redirection_data: None,
-                        mandate_reference: None,
+                        redirection_data: Box::new(None),
+                        mandate_reference: Box::new(None),
                         connector_metadata: None,
                         network_txn_id: None,
                         connector_response_reference_id: transaction_id.clone(),
diff --git a/crates/hyperswitch_connectors/src/connectors/payeezy/transformers.rs b/crates/hyperswitch_connectors/src/connectors/payeezy/transformers.rs
index 47c5c40363e..af29d54117a 100644
--- a/crates/hyperswitch_connectors/src/connectors/payeezy/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/payeezy/transformers.rs
@@ -432,8 +432,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, PayeezyPaymentsResponse, T, PaymentsRes
                 resource_id: ResponseId::ConnectorTransactionId(
                     item.response.transaction_id.clone(),
                 ),
-                redirection_data: None,
-                mandate_reference,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(mandate_reference),
                 connector_metadata: metadata,
                 network_txn_id: None,
                 connector_response_reference_id: Some(
diff --git a/crates/hyperswitch_connectors/src/connectors/payu/transformers.rs b/crates/hyperswitch_connectors/src/connectors/payu/transformers.rs
index 7b3792c0e24..0b2b7030528 100644
--- a/crates/hyperswitch_connectors/src/connectors/payu/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/payu/transformers.rs
@@ -210,8 +210,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, PayuPaymentsResponse, T, PaymentsRespon
             status: enums::AttemptStatus::from(item.response.status.status_code),
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(item.response.order_id.clone()),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: item
@@ -260,8 +260,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, PayuPaymentsCaptureResponse, T, Payment
             status: enums::AttemptStatus::from(item.response.status.status_code.clone()),
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::NoResponseId,
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: None,
@@ -335,8 +335,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, PayuPaymentsCancelResponse, T, Payments
             status: enums::AttemptStatus::from(item.response.status.status_code.clone()),
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(item.response.order_id.clone()),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: item
@@ -464,8 +464,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, PayuPaymentsSyncResponse, T, PaymentsRe
             status: enums::AttemptStatus::from(order.status.clone()),
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(order.order_id.clone()),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: order
diff --git a/crates/hyperswitch_connectors/src/connectors/powertranz/transformers.rs b/crates/hyperswitch_connectors/src/connectors/powertranz/transformers.rs
index 770688a3468..93ba3425978 100644
--- a/crates/hyperswitch_connectors/src/connectors/powertranz/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/powertranz/transformers.rs
@@ -336,8 +336,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, PowertranzBaseResponse, T, PaymentsResp
         let response = error_response.map_or(
             Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(connector_transaction_id),
-                redirection_data,
-                mandate_reference: None,
+                redirection_data: Box::new(redirection_data),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.order_identifier),
diff --git a/crates/hyperswitch_connectors/src/connectors/square/transformers.rs b/crates/hyperswitch_connectors/src/connectors/square/transformers.rs
index b2151c524be..0e6d3128b30 100644
--- a/crates/hyperswitch_connectors/src/connectors/square/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/square/transformers.rs
@@ -385,8 +385,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, SquarePaymentsResponse, T, PaymentsResp
             status,
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(item.response.payment.id),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: item.response.payment.reference_id,
diff --git a/crates/hyperswitch_connectors/src/connectors/stax/transformers.rs b/crates/hyperswitch_connectors/src/connectors/stax/transformers.rs
index 0f112566796..a8e9a7ad829 100644
--- a/crates/hyperswitch_connectors/src/connectors/stax/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/stax/transformers.rs
@@ -372,8 +372,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, StaxPaymentsResponse, T, PaymentsRespon
             status,
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(item.response.id.clone()),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata,
                 network_txn_id: None,
                 connector_response_reference_id: Some(
diff --git a/crates/hyperswitch_connectors/src/connectors/thunes/transformers.rs b/crates/hyperswitch_connectors/src/connectors/thunes/transformers.rs
index c0ee0fdae94..ca18179ff17 100644
--- a/crates/hyperswitch_connectors/src/connectors/thunes/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/thunes/transformers.rs
@@ -129,8 +129,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, ThunesPaymentsResponse, T, PaymentsResp
             status: common_enums::AttemptStatus::from(item.response.status),
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(item.response.id),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: None,
diff --git a/crates/hyperswitch_connectors/src/connectors/tsys/transformers.rs b/crates/hyperswitch_connectors/src/connectors/tsys/transformers.rs
index e97cf228729..fc485e65727 100644
--- a/crates/hyperswitch_connectors/src/connectors/tsys/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/tsys/transformers.rs
@@ -226,8 +226,8 @@ fn get_error_response(
 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,
+        redirection_data: Box::new(None),
+        mandate_reference: Box::new(None),
         connector_metadata: None,
         network_txn_id: None,
         connector_response_reference_id: Some(connector_response.transaction_id),
@@ -246,8 +246,8 @@ fn get_payments_sync_response(
                 .transaction_id
                 .clone(),
         ),
-        redirection_data: None,
-        mandate_reference: None,
+        redirection_data: Box::new(None),
+        mandate_reference: Box::new(None),
         connector_metadata: None,
         network_txn_id: None,
         connector_response_reference_id: Some(
diff --git a/crates/hyperswitch_connectors/src/connectors/volt/transformers.rs b/crates/hyperswitch_connectors/src/connectors/volt/transformers.rs
index e04eae63b4c..b13d029185f 100644
--- a/crates/hyperswitch_connectors/src/connectors/volt/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/volt/transformers.rs
@@ -277,8 +277,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, VoltPaymentsResponse, T, PaymentsRespon
             status: enums::AttemptStatus::AuthenticationPending,
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(item.response.id.clone()),
-                redirection_data,
-                mandate_reference: None,
+                redirection_data: Box::new(redirection_data),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.id),
@@ -351,8 +351,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, VoltPaymentsResponseData, T, PaymentsRe
                             resource_id: ResponseId::ConnectorTransactionId(
                                 payment_response.id.clone(),
                             ),
-                            redirection_data: None,
-                            mandate_reference: None,
+                            redirection_data: Box::new(None),
+                            mandate_reference: Box::new(None),
                             connector_metadata: None,
                             network_txn_id: None,
                             connector_response_reference_id: payment_response
@@ -392,8 +392,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, VoltPaymentsResponseData, T, PaymentsRe
                             resource_id: ResponseId::ConnectorTransactionId(
                                 webhook_response.payment.clone(),
                             ),
-                            redirection_data: None,
-                            mandate_reference: None,
+                            redirection_data: Box::new(None),
+                            mandate_reference: Box::new(None),
                             connector_metadata: None,
                             network_txn_id: None,
                             connector_response_reference_id: webhook_response
diff --git a/crates/hyperswitch_connectors/src/connectors/worldline/transformers.rs b/crates/hyperswitch_connectors/src/connectors/worldline/transformers.rs
index 09ffac81425..05986631c67 100644
--- a/crates/hyperswitch_connectors/src/connectors/worldline/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/worldline/transformers.rs
@@ -570,8 +570,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, Payment, T, PaymentsResponseData>>
             status: get_status((item.response.status, item.response.capture_method)),
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(item.response.id.clone()),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.id),
@@ -621,8 +621,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, PaymentResponse, T, PaymentsResponseDat
             )),
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(item.response.payment.id.clone()),
-                redirection_data,
-                mandate_reference: None,
+                redirection_data: Box::new(redirection_data),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.payment.id),
diff --git a/crates/hyperswitch_connectors/src/connectors/zen/transformers.rs b/crates/hyperswitch_connectors/src/connectors/zen/transformers.rs
index a564fb4ee60..d4a18a15182 100644
--- a/crates/hyperswitch_connectors/src/connectors/zen/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/zen/transformers.rs
@@ -939,8 +939,8 @@ fn get_zen_response(
     };
     let payment_response_data = PaymentsResponseData::TransactionResponse {
         resource_id: ResponseId::ConnectorTransactionId(response.id.clone()),
-        redirection_data,
-        mandate_reference: None,
+        redirection_data: Box::new(redirection_data),
+        mandate_reference: Box::new(None),
         connector_metadata: None,
         network_txn_id: None,
         connector_response_reference_id: None,
@@ -983,8 +983,8 @@ impl<F, T> TryFrom<ResponseRouterData<F, CheckoutResponse, T, PaymentsResponseDa
             status: enums::AttemptStatus::AuthenticationPending,
             response: Ok(PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::NoResponseId,
-                redirection_data,
-                mandate_reference: None,
+                redirection_data: Box::new(redirection_data),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: None,
diff --git a/crates/hyperswitch_domain_models/src/customer.rs b/crates/hyperswitch_domain_models/src/customer.rs
index af901a80558..9f079f1312e 100644
--- a/crates/hyperswitch_domain_models/src/customer.rs
+++ b/crates/hyperswitch_domain_models/src/customer.rs
@@ -275,7 +275,7 @@ pub enum CustomerUpdate {
         description: Option<Description>,
         phone_country_code: Option<String>,
         metadata: Option<pii::SecretSerdeValue>,
-        connector_customer: Option<pii::SecretSerdeValue>,
+        connector_customer: Box<Option<pii::SecretSerdeValue>>,
         default_billing_address: Option<Encryption>,
         default_shipping_address: Option<Encryption>,
         default_payment_method_id: Option<Option<String>>,
@@ -312,7 +312,7 @@ impl From<CustomerUpdate> for CustomerUpdateInternal {
                 description,
                 phone_country_code,
                 metadata,
-                connector_customer,
+                connector_customer: *connector_customer,
                 modified_at: date_time::now(),
                 default_billing_address,
                 default_shipping_address,
@@ -366,7 +366,7 @@ pub enum CustomerUpdate {
         description: Option<Description>,
         phone_country_code: Option<String>,
         metadata: Option<pii::SecretSerdeValue>,
-        connector_customer: Option<pii::SecretSerdeValue>,
+        connector_customer: Box<Option<pii::SecretSerdeValue>>,
         address_id: Option<String>,
     },
     ConnectorCustomer {
@@ -397,7 +397,7 @@ impl From<CustomerUpdate> for CustomerUpdateInternal {
                 description,
                 phone_country_code,
                 metadata,
-                connector_customer,
+                connector_customer: *connector_customer,
                 modified_at: date_time::now(),
                 address_id,
                 default_payment_method_id: None,
diff --git a/crates/hyperswitch_domain_models/src/merchant_connector_account.rs b/crates/hyperswitch_domain_models/src/merchant_connector_account.rs
index 66b98389818..9418f6f8f1e 100644
--- a/crates/hyperswitch_domain_models/src/merchant_connector_account.rs
+++ b/crates/hyperswitch_domain_models/src/merchant_connector_account.rs
@@ -88,20 +88,20 @@ pub enum MerchantConnectorAccountUpdate {
     Update {
         connector_type: Option<enums::ConnectorType>,
         connector_name: Option<String>,
-        connector_account_details: Option<Encryptable<pii::SecretSerdeValue>>,
+        connector_account_details: Box<Option<Encryptable<pii::SecretSerdeValue>>>,
         test_mode: Option<bool>,
         disabled: Option<bool>,
         merchant_connector_id: Option<id_type::MerchantConnectorAccountId>,
         payment_methods_enabled: Option<Vec<pii::SecretSerdeValue>>,
         metadata: Option<pii::SecretSerdeValue>,
         frm_configs: Option<Vec<pii::SecretSerdeValue>>,
-        connector_webhook_details: Option<pii::SecretSerdeValue>,
+        connector_webhook_details: Box<Option<pii::SecretSerdeValue>>,
         applepay_verified_domains: Option<Vec<String>>,
-        pm_auth_config: Option<pii::SecretSerdeValue>,
+        pm_auth_config: Box<Option<pii::SecretSerdeValue>>,
         connector_label: Option<String>,
         status: Option<enums::ConnectorStatus>,
-        connector_wallets_details: Option<Encryptable<pii::SecretSerdeValue>>,
-        additional_merchant_data: Option<Encryptable<pii::SecretSerdeValue>>,
+        connector_wallets_details: Box<Option<Encryptable<pii::SecretSerdeValue>>>,
+        additional_merchant_data: Box<Option<Encryptable<pii::SecretSerdeValue>>>,
     },
     ConnectorWalletDetailsUpdate {
         connector_wallets_details: Encryptable<pii::SecretSerdeValue>,
@@ -113,18 +113,18 @@ pub enum MerchantConnectorAccountUpdate {
 pub enum MerchantConnectorAccountUpdate {
     Update {
         connector_type: Option<enums::ConnectorType>,
-        connector_account_details: Option<Encryptable<pii::SecretSerdeValue>>,
+        connector_account_details: Box<Option<Encryptable<pii::SecretSerdeValue>>>,
         disabled: Option<bool>,
         payment_methods_enabled: Option<Vec<pii::SecretSerdeValue>>,
         metadata: Option<pii::SecretSerdeValue>,
         frm_configs: Option<Vec<pii::SecretSerdeValue>>,
         connector_webhook_details: Option<pii::SecretSerdeValue>,
         applepay_verified_domains: Option<Vec<String>>,
-        pm_auth_config: Option<pii::SecretSerdeValue>,
+        pm_auth_config: Box<Option<pii::SecretSerdeValue>>,
         connector_label: Option<String>,
         status: Option<enums::ConnectorStatus>,
-        connector_wallets_details: Option<Encryptable<pii::SecretSerdeValue>>,
-        additional_merchant_data: Option<Encryptable<pii::SecretSerdeValue>>,
+        connector_wallets_details: Box<Option<Encryptable<pii::SecretSerdeValue>>>,
+        additional_merchant_data: Box<Option<Encryptable<pii::SecretSerdeValue>>>,
     },
     ConnectorWalletDetailsUpdate {
         connector_wallets_details: Encryptable<pii::SecretSerdeValue>,
@@ -413,9 +413,9 @@ impl From<MerchantConnectorAccountUpdate> for MerchantConnectorAccountUpdateInte
                 frm_configs: None,
                 frm_config: frm_configs,
                 modified_at: Some(date_time::now()),
-                connector_webhook_details,
+                connector_webhook_details: *connector_webhook_details,
                 applepay_verified_domains,
-                pm_auth_config,
+                pm_auth_config: *pm_auth_config,
                 connector_label,
                 status,
                 connector_wallets_details: connector_wallets_details.map(Encryption::from),
@@ -475,7 +475,7 @@ impl From<MerchantConnectorAccountUpdate> for MerchantConnectorAccountUpdateInte
                 modified_at: Some(date_time::now()),
                 connector_webhook_details,
                 applepay_verified_domains,
-                pm_auth_config,
+                pm_auth_config: *pm_auth_config,
                 connector_label,
                 status,
                 connector_wallets_details: connector_wallets_details.map(Encryption::from),
diff --git a/crates/hyperswitch_domain_models/src/router_response_types.rs b/crates/hyperswitch_domain_models/src/router_response_types.rs
index 6682ac1ad44..2ed77c8072d 100644
--- a/crates/hyperswitch_domain_models/src/router_response_types.rs
+++ b/crates/hyperswitch_domain_models/src/router_response_types.rs
@@ -17,8 +17,8 @@ pub struct RefundsResponseData {
 pub enum PaymentsResponseData {
     TransactionResponse {
         resource_id: ResponseId,
-        redirection_data: Option<RedirectForm>,
-        mandate_reference: Option<MandateReference>,
+        redirection_data: Box<Option<RedirectForm>>,
+        mandate_reference: Box<Option<MandateReference>>,
         connector_metadata: Option<serde_json::Value>,
         network_txn_id: Option<String>,
         connector_response_reference_id: Option<String>,
diff --git a/crates/router/src/compatibility/stripe/webhooks.rs b/crates/router/src/compatibility/stripe/webhooks.rs
index 8445011f569..ddc291e6b13 100644
--- a/crates/router/src/compatibility/stripe/webhooks.rs
+++ b/crates/router/src/compatibility/stripe/webhooks.rs
@@ -81,7 +81,7 @@ impl OutgoingWebhookType for StripeOutgoingWebhook {
 #[derive(Serialize, Debug)]
 #[serde(tag = "type", content = "object", rename_all = "snake_case")]
 pub enum StripeWebhookObject {
-    PaymentIntent(StripePaymentIntentResponse),
+    PaymentIntent(Box<StripePaymentIntentResponse>),
     Refund(StripeRefundResponse),
     Dispute(StripeDisputeResponse),
     Mandate(StripeMandateResponse),
@@ -327,9 +327,9 @@ impl From<api::OutgoingWebhookContent> for StripeWebhookObject {
     fn from(value: api::OutgoingWebhookContent) -> Self {
         match value {
             api::OutgoingWebhookContent::PaymentDetails(payment) => {
-                Self::PaymentIntent(payment.into())
+                Self::PaymentIntent(Box::new((*payment).into()))
             }
-            api::OutgoingWebhookContent::RefundDetails(refund) => Self::Refund(refund.into()),
+            api::OutgoingWebhookContent::RefundDetails(refund) => Self::Refund((*refund).into()),
             api::OutgoingWebhookContent::DisputeDetails(dispute) => {
                 Self::Dispute((*dispute).into())
             }
@@ -337,7 +337,7 @@ impl From<api::OutgoingWebhookContent> for StripeWebhookObject {
                 Self::Mandate((*mandate).into())
             }
             #[cfg(feature = "payouts")]
-            api::OutgoingWebhookContent::PayoutDetails(payout) => Self::Payout(payout.into()),
+            api::OutgoingWebhookContent::PayoutDetails(payout) => Self::Payout((*payout).into()),
         }
     }
 }
diff --git a/crates/router/src/connector/aci/transformers.rs b/crates/router/src/connector/aci/transformers.rs
index 5e803b593ee..7355617b53a 100644
--- a/crates/router/src/connector/aci/transformers.rs
+++ b/crates/router/src/connector/aci/transformers.rs
@@ -763,8 +763,8 @@ impl<F, T>
             },
             response: Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: types::ResponseId::ConnectorTransactionId(item.response.id.clone()),
-                redirection_data,
-                mandate_reference,
+                redirection_data: Box::new(redirection_data),
+                mandate_reference: Box::new(mandate_reference),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.id),
diff --git a/crates/router/src/connector/adyen/transformers.rs b/crates/router/src/connector/adyen/transformers.rs
index ca13e57e401..21c9c34409a 100644
--- a/crates/router/src/connector/adyen/transformers.rs
+++ b/crates/router/src/connector/adyen/transformers.rs
@@ -3273,8 +3273,8 @@ impl TryFrom<types::PaymentsCancelResponseRouterData<AdyenCancelResponse>>
                 resource_id: types::ResponseId::ConnectorTransactionId(
                     item.response.payment_psp_reference,
                 ),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.reference),
@@ -3308,8 +3308,8 @@ impl<F>
         Ok(Self {
             response: Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: types::ResponseId::ConnectorTransactionId(item.response.psp_reference),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: None,
@@ -3374,8 +3374,8 @@ pub fn get_adyen_response(
 
     let payments_response_data = types::PaymentsResponseData::TransactionResponse {
         resource_id: types::ResponseId::ConnectorTransactionId(response.psp_reference),
-        redirection_data: None,
-        mandate_reference,
+        redirection_data: Box::new(None),
+        mandate_reference: Box::new(mandate_reference),
         connector_metadata: None,
         network_txn_id,
         connector_response_reference_id: Some(response.merchant_reference),
@@ -3438,8 +3438,8 @@ pub fn get_webhook_response(
                     .payment_reference
                     .unwrap_or(response.transaction_id),
             ),
-            redirection_data: None,
-            mandate_reference: None,
+            redirection_data: Box::new(None),
+            mandate_reference: Box::new(None),
             connector_metadata: None,
             network_txn_id: None,
             connector_response_reference_id: Some(response.merchant_reference_id),
@@ -3508,8 +3508,8 @@ pub fn get_redirection_response(
             Some(psp) => types::ResponseId::ConnectorTransactionId(psp.to_string()),
             None => types::ResponseId::NoResponseId,
         },
-        redirection_data,
-        mandate_reference: None,
+        redirection_data: Box::new(redirection_data),
+        mandate_reference: Box::new(None),
         connector_metadata,
         network_txn_id: None,
         connector_response_reference_id: response
@@ -3566,8 +3566,8 @@ pub fn get_present_to_shopper_response(
             Some(psp) => types::ResponseId::ConnectorTransactionId(psp.to_string()),
             None => types::ResponseId::NoResponseId,
         },
-        redirection_data: None,
-        mandate_reference: None,
+        redirection_data: Box::new(None),
+        mandate_reference: Box::new(None),
         connector_metadata,
         network_txn_id: None,
         connector_response_reference_id: response
@@ -3623,8 +3623,8 @@ pub fn get_qr_code_response(
             Some(psp) => types::ResponseId::ConnectorTransactionId(psp.to_string()),
             None => types::ResponseId::NoResponseId,
         },
-        redirection_data: None,
-        mandate_reference: None,
+        redirection_data: Box::new(None),
+        mandate_reference: Box::new(None),
         connector_metadata,
         network_txn_id: None,
         connector_response_reference_id: response
@@ -3666,8 +3666,8 @@ pub fn get_redirection_error_response(
     // We don't get connector transaction id for redirections in Adyen.
     let payments_response_data = types::PaymentsResponseData::TransactionResponse {
         resource_id: types::ResponseId::NoResponseId,
-        redirection_data: None,
-        mandate_reference: None,
+        redirection_data: Box::new(None),
+        mandate_reference: Box::new(None),
         connector_metadata: None,
         network_txn_id: None,
         connector_response_reference_id: response
@@ -4036,8 +4036,8 @@ impl TryFrom<types::PaymentsCaptureResponseRouterData<AdyenCaptureResponse>>
             status: storage_enums::AttemptStatus::Pending,
             response: Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: types::ResponseId::ConnectorTransactionId(connector_transaction_id),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.reference),
diff --git a/crates/router/src/connector/airwallex/transformers.rs b/crates/router/src/connector/airwallex/transformers.rs
index d3824e9d0da..ad7ae2716f1 100644
--- a/crates/router/src/connector/airwallex/transformers.rs
+++ b/crates/router/src/connector/airwallex/transformers.rs
@@ -570,8 +570,8 @@ impl<F, T>
             reference_id: Some(item.response.id.clone()),
             response: Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: types::ResponseId::ConnectorTransactionId(item.response.id.clone()),
-                redirection_data,
-                mandate_reference: None,
+                redirection_data: Box::new(redirection_data),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.id),
@@ -613,8 +613,8 @@ impl
             reference_id: Some(item.response.id.clone()),
             response: Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: types::ResponseId::ConnectorTransactionId(item.response.id.clone()),
-                redirection_data,
-                mandate_reference: None,
+                redirection_data: Box::new(redirection_data),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.id),
diff --git a/crates/router/src/connector/authorizedotnet/transformers.rs b/crates/router/src/connector/authorizedotnet/transformers.rs
index 903470ae952..6961a87326b 100644
--- a/crates/router/src/connector/authorizedotnet/transformers.rs
+++ b/crates/router/src/connector/authorizedotnet/transformers.rs
@@ -388,20 +388,19 @@ impl<F, T>
                 status: enums::AttemptStatus::Charged,
                 response: Ok(types::PaymentsResponseData::TransactionResponse {
                     resource_id: types::ResponseId::NoResponseId,
-                    redirection_data: None,
-                    mandate_reference: item.response.customer_profile_id.map(
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(item.response.customer_profile_id.map(
                         |customer_profile_id| types::MandateReference {
-                            connector_mandate_id: item
-                                .response
-                                .customer_payment_profile_id_list
-                                .first()
-                                .map(|payment_profile_id| {
-                                    format!("{customer_profile_id}-{payment_profile_id}")
-                                }),
+                            connector_mandate_id:
+                                item.response.customer_payment_profile_id_list.first().map(
+                                    |payment_profile_id| {
+                                        format!("{customer_profile_id}-{payment_profile_id}")
+                                    },
+                                ),
                             payment_method_id: None,
                             mandate_metadata: None,
                         },
-                    ),
+                    )),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: None,
@@ -1125,8 +1124,8 @@ impl<F, T>
                             resource_id: types::ResponseId::ConnectorTransactionId(
                                 transaction_response.transaction_id.clone(),
                             ),
-                            redirection_data,
-                            mandate_reference,
+                            redirection_data: Box::new(redirection_data),
+                            mandate_reference: Box::new(mandate_reference),
                             connector_metadata: metadata,
                             network_txn_id: transaction_response
                                 .network_trans_id
@@ -1198,8 +1197,8 @@ impl<F, T>
                             resource_id: types::ResponseId::ConnectorTransactionId(
                                 transaction_response.transaction_id.clone(),
                             ),
-                            redirection_data: None,
-                            mandate_reference: None,
+                            redirection_data: Box::new(None),
+                            mandate_reference: Box::new(None),
                             connector_metadata: metadata,
                             network_txn_id: transaction_response
                                 .network_trans_id
@@ -1528,8 +1527,8 @@ impl<F, Req>
                         resource_id: types::ResponseId::ConnectorTransactionId(
                             transaction.transaction_id.clone(),
                         ),
-                        redirection_data: None,
-                        mandate_reference: None,
+                        redirection_data: Box::new(None),
+                        mandate_reference: Box::new(None),
                         connector_metadata: None,
                         network_txn_id: None,
                         connector_response_reference_id: Some(transaction.transaction_id.clone()),
diff --git a/crates/router/src/connector/bamboraapac/transformers.rs b/crates/router/src/connector/bamboraapac/transformers.rs
index 819c918338e..8fcbcd98f09 100644
--- a/crates/router/src/connector/bamboraapac/transformers.rs
+++ b/crates/router/src/connector/bamboraapac/transformers.rs
@@ -39,14 +39,14 @@ pub fn get_payment_body(
     let transaction_data = get_transaction_body(req)?;
     let body = format!(
         r#"
-            <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
+            <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
             xmlns:dts="http://www.ippayments.com.au/interface/api/dts">
                 <soapenv:Body>
                     <dts:SubmitSinglePayment>
                         <dts:trnXML>
                             <![CDATA[
                                 {}
-                            ]]>    
+                            ]]>
                         </dts:trnXML>
                     </dts:SubmitSinglePayment>
                 </soapenv:Body>
@@ -293,8 +293,8 @@ impl<F>
                     resource_id: types::ResponseId::ConnectorTransactionId(
                         connector_transaction_id.to_owned(),
                     ),
-                    redirection_data: None,
-                    mandate_reference,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(mandate_reference),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: Some(connector_transaction_id),
@@ -354,12 +354,12 @@ pub fn get_setup_mandate_body(req: &types::SetupMandateRouterData) -> Result<Vec
                         <sipp:tokeniseCreditCardXML>
                             <![CDATA[
                                 <TokeniseCreditCard>
-                                    <CardNumber>{}</CardNumber> 
+                                    <CardNumber>{}</CardNumber>
                                     <ExpM>{}</ExpM>
                                     <ExpY>{}</ExpY>
                                     <CardHolderName>{}</CardHolderName>
                                     <TokeniseAlgorithmID>2</TokeniseAlgorithmID>
-                                    <UserName>{}</UserName> 
+                                    <UserName>{}</UserName>
                                     <Password>{}</Password>
                                 </TokeniseCreditCard>
                             ]]>
@@ -460,12 +460,12 @@ impl<F>
                 status: enums::AttemptStatus::Charged,
                 response: Ok(types::PaymentsResponseData::TransactionResponse {
                     resource_id: types::ResponseId::NoResponseId,
-                    redirection_data: None,
-                    mandate_reference: Some(types::MandateReference {
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(Some(types::MandateReference {
                         connector_mandate_id: Some(connector_mandate_id),
                         payment_method_id: None,
                         mandate_metadata: None,
-                    }),
+                    })),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: None,
@@ -501,7 +501,7 @@ pub fn get_capture_body(
     let auth_details = BamboraapacAuthType::try_from(&req.router_data.connector_auth_type)?;
     let body = format!(
         r#"
-            <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
+            <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
             xmlns:dts="http://www.ippayments.com.au/interface/api/dts">
                 <soapenv:Body>
                     <dts:SubmitSingleCapture>
@@ -514,8 +514,8 @@ pub fn get_capture_body(
                                                 <UserName>{}</UserName>
                                                 <Password>{}</Password>
                                         </Security>
-                                </Capture>	
-                            ]]>    
+                                </Capture>
+                            ]]>
                         </dts:trnXML>
                     </dts:SubmitSingleCapture>
                 </soapenv:Body>
@@ -610,8 +610,8 @@ impl<F>
                     resource_id: types::ResponseId::ConnectorTransactionId(
                         connector_transaction_id.to_owned(),
                     ),
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata,
                     network_txn_id: None,
                     connector_response_reference_id: Some(connector_transaction_id),
@@ -663,7 +663,7 @@ pub fn get_refund_body(
     let auth_details = BamboraapacAuthType::try_from(&req.router_data.connector_auth_type)?;
     let body = format!(
         r#"
-            <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
+            <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
             xmlns:dts="http://www.ippayments.com.au/interface/api/dts">
                 <soapenv:Header/>
                 <soapenv:Body>
@@ -677,9 +677,9 @@ pub fn get_refund_body(
                                 <Security>
                                     <UserName>{}</UserName>
                                     <Password>{}</Password>
-                                </Security> 
+                                </Security>
                             </Refund>
-                            ]]>    
+                            ]]>
                         </dts:trnXML>
                     </dts:SubmitSingleRefund>
                 </soapenv:Body>
@@ -792,7 +792,7 @@ pub fn get_payment_sync_body(req: &types::PaymentsSyncRouterData) -> Result<Vec<
         .change_context(errors::ConnectorError::MissingConnectorTransactionID)?;
     let body = format!(
         r#"
-            <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
+            <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
             xmlns:dts="http://www.ippayments.com.au/interface/api/dts">
                 <soapenv:Header/>
                 <soapenv:Body>
@@ -810,8 +810,8 @@ pub fn get_payment_sync_body(req: &types::PaymentsSyncRouterData) -> Result<Vec<
                                         <UserName>{}</UserName>
                                         <Password>{}</Password>
                                     </Security>
-                            </QueryTransaction>	
-                            ]]>    
+                            </QueryTransaction>
+                            ]]>
                         </dts:queryXML>
                     </dts:QueryTransaction>
                 </soapenv:Body>
@@ -909,8 +909,8 @@ impl<F>
                     resource_id: types::ResponseId::ConnectorTransactionId(
                         connector_transaction_id.to_owned(),
                     ),
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: Some(connector_transaction_id),
@@ -961,7 +961,7 @@ pub fn get_refund_sync_body(req: &types::RefundSyncRouterData) -> Result<Vec<u8>
 
     let body = format!(
         r#"
-            <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
+            <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
             xmlns:dts="http://www.ippayments.com.au/interface/api/dts">
                 <soapenv:Header/>
                 <soapenv:Body>
@@ -979,8 +979,8 @@ pub fn get_refund_sync_body(req: &types::RefundSyncRouterData) -> Result<Vec<u8>
                                         <UserName>{}</UserName>
                                         <Password>{}</Password>
                                     </Security>
-                            </QueryTransaction>	
-                            ]]>    
+                            </QueryTransaction>
+                            ]]>
                         </dts:queryXML>
                     </dts:QueryTransaction>
                 </soapenv:Body>
diff --git a/crates/router/src/connector/bankofamerica/transformers.rs b/crates/router/src/connector/bankofamerica/transformers.rs
index ad75328322d..b5669decd86 100644
--- a/crates/router/src/connector/bankofamerica/transformers.rs
+++ b/crates/router/src/connector/bankofamerica/transformers.rs
@@ -412,8 +412,8 @@ impl<F, T>
                             resource_id: types::ResponseId::ConnectorTransactionId(
                                 info_response.id.clone(),
                             ),
-                            redirection_data: None,
-                            mandate_reference,
+                            redirection_data: Box::new(None),
+                            mandate_reference: Box::new(mandate_reference),
                             connector_metadata: None,
                             network_txn_id: None,
                             connector_response_reference_id: Some(
@@ -1516,8 +1516,8 @@ fn get_payment_response(
 
             Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: types::ResponseId::ConnectorTransactionId(info_response.id.clone()),
-                redirection_data: None,
-                mandate_reference,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(mandate_reference),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: Some(
@@ -1829,8 +1829,8 @@ impl<F>
                             resource_id: types::ResponseId::ConnectorTransactionId(
                                 item.response.id.clone(),
                             ),
-                            redirection_data: None,
-                            mandate_reference: None,
+                            redirection_data: Box::new(None),
+                            mandate_reference: Box::new(None),
                             connector_metadata: None,
                             network_txn_id: None,
                             connector_response_reference_id: item
@@ -1852,8 +1852,8 @@ impl<F>
                     resource_id: types::ResponseId::ConnectorTransactionId(
                         item.response.id.clone(),
                     ),
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: Some(item.response.id),
diff --git a/crates/router/src/connector/bluesnap.rs b/crates/router/src/connector/bluesnap.rs
index e6f01700c6d..468f68dc340 100644
--- a/crates/router/src/connector/bluesnap.rs
+++ b/crates/router/src/connector/bluesnap.rs
@@ -741,10 +741,10 @@ impl ConnectorIntegration<api::Authorize, types::PaymentsAuthorizeData, types::P
                     status: enums::AttemptStatus::AuthenticationPending,
                     response: Ok(types::PaymentsResponseData::TransactionResponse {
                         resource_id: types::ResponseId::NoResponseId,
-                        redirection_data: Some(services::RedirectForm::BlueSnap {
+                        redirection_data: Box::new(Some(services::RedirectForm::BlueSnap {
                             payment_fields_token,
-                        }),
-                        mandate_reference: None,
+                        })),
+                        mandate_reference: Box::new(None),
                         connector_metadata: None,
                         network_txn_id: None,
                         connector_response_reference_id: None,
diff --git a/crates/router/src/connector/bluesnap/transformers.rs b/crates/router/src/connector/bluesnap/transformers.rs
index 39be2517e4b..6db0ddac49b 100644
--- a/crates/router/src/connector/bluesnap/transformers.rs
+++ b/crates/router/src/connector/bluesnap/transformers.rs
@@ -875,8 +875,8 @@ impl<F, T>
                 resource_id: types::ResponseId::ConnectorTransactionId(
                     item.response.transaction_id.clone(),
                 ),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.transaction_id),
diff --git a/crates/router/src/connector/boku/transformers.rs b/crates/router/src/connector/boku/transformers.rs
index bc9eb4e3722..777b795a438 100644
--- a/crates/router/src/connector/boku/transformers.rs
+++ b/crates/router/src/connector/boku/transformers.rs
@@ -301,8 +301,8 @@ impl<F, T> TryFrom<types::ResponseRouterData<F, BokuResponse, T, types::Payments
             status,
             response: Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: types::ResponseId::ConnectorTransactionId(transaction_id),
-                redirection_data,
-                mandate_reference: None,
+                redirection_data: Box::new(redirection_data),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: None,
diff --git a/crates/router/src/connector/braintree/transformers.rs b/crates/router/src/connector/braintree/transformers.rs
index b7515a964bb..948d6f2cfd3 100644
--- a/crates/router/src/connector/braintree/transformers.rs
+++ b/crates/router/src/connector/braintree/transformers.rs
@@ -439,14 +439,14 @@ impl<F>
                 } else {
                     Ok(types::PaymentsResponseData::TransactionResponse {
                         resource_id: types::ResponseId::ConnectorTransactionId(transaction_data.id),
-                        redirection_data: None,
-                        mandate_reference: transaction_data.payment_method.as_ref().map(|pm| {
-                            MandateReference {
+                        redirection_data: Box::new(None),
+                        mandate_reference: Box::new(transaction_data.payment_method.as_ref().map(
+                            |pm| MandateReference {
                                 connector_mandate_id: Some(pm.id.clone().expose()),
                                 payment_method_id: None,
                                 mandate_metadata: None,
-                            }
-                        }),
+                            },
+                        )),
                         connector_metadata: None,
                         network_txn_id: None,
                         connector_response_reference_id: None,
@@ -464,12 +464,12 @@ impl<F>
                 status: enums::AttemptStatus::AuthenticationPending,
                 response: Ok(types::PaymentsResponseData::TransactionResponse {
                     resource_id: types::ResponseId::NoResponseId,
-                    redirection_data: Some(get_braintree_redirect_form(
+                    redirection_data: Box::new(Some(get_braintree_redirect_form(
                         *client_token_data,
                         item.data.get_payment_method_token()?,
                         item.data.request.payment_method_data.clone(),
-                    )?),
-                    mandate_reference: None,
+                    )?)),
+                    mandate_reference: Box::new(None),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: None,
@@ -614,14 +614,14 @@ impl<F>
                 } else {
                     Ok(types::PaymentsResponseData::TransactionResponse {
                         resource_id: types::ResponseId::ConnectorTransactionId(transaction_data.id),
-                        redirection_data: None,
-                        mandate_reference: transaction_data.payment_method.as_ref().map(|pm| {
-                            MandateReference {
+                        redirection_data: Box::new(None),
+                        mandate_reference: Box::new(transaction_data.payment_method.as_ref().map(
+                            |pm| MandateReference {
                                 connector_mandate_id: Some(pm.id.clone().expose()),
                                 payment_method_id: None,
                                 mandate_metadata: None,
-                            }
-                        }),
+                            },
+                        )),
                         connector_metadata: None,
                         network_txn_id: None,
                         connector_response_reference_id: None,
@@ -639,12 +639,12 @@ impl<F>
                 status: enums::AttemptStatus::AuthenticationPending,
                 response: Ok(types::PaymentsResponseData::TransactionResponse {
                     resource_id: types::ResponseId::NoResponseId,
-                    redirection_data: Some(get_braintree_redirect_form(
+                    redirection_data: Box::new(Some(get_braintree_redirect_form(
                         *client_token_data,
                         item.data.get_payment_method_token()?,
                         item.data.request.payment_method_data.clone(),
-                    )?),
-                    mandate_reference: None,
+                    )?)),
+                    mandate_reference: Box::new(None),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: None,
@@ -696,14 +696,14 @@ impl<F>
                 } else {
                     Ok(types::PaymentsResponseData::TransactionResponse {
                         resource_id: types::ResponseId::ConnectorTransactionId(transaction_data.id),
-                        redirection_data: None,
-                        mandate_reference: transaction_data.payment_method.as_ref().map(|pm| {
-                            MandateReference {
+                        redirection_data: Box::new(None),
+                        mandate_reference: Box::new(transaction_data.payment_method.as_ref().map(
+                            |pm| MandateReference {
                                 connector_mandate_id: Some(pm.id.clone().expose()),
                                 payment_method_id: None,
                                 mandate_metadata: None,
-                            }
-                        }),
+                            },
+                        )),
                         connector_metadata: None,
                         network_txn_id: None,
                         connector_response_reference_id: None,
@@ -760,14 +760,14 @@ impl<F>
                 } else {
                     Ok(types::PaymentsResponseData::TransactionResponse {
                         resource_id: types::ResponseId::ConnectorTransactionId(transaction_data.id),
-                        redirection_data: None,
-                        mandate_reference: transaction_data.payment_method.as_ref().map(|pm| {
-                            MandateReference {
+                        redirection_data: Box::new(None),
+                        mandate_reference: Box::new(transaction_data.payment_method.as_ref().map(
+                            |pm| MandateReference {
                                 connector_mandate_id: Some(pm.id.clone().expose()),
                                 payment_method_id: None,
                                 mandate_metadata: None,
-                            }
-                        }),
+                            },
+                        )),
                         connector_metadata: None,
                         network_txn_id: None,
                         connector_response_reference_id: None,
@@ -1274,8 +1274,8 @@ impl TryFrom<types::PaymentsCaptureResponseRouterData<BraintreeCaptureResponse>>
                 } else {
                     Ok(types::PaymentsResponseData::TransactionResponse {
                         resource_id: types::ResponseId::ConnectorTransactionId(transaction_data.id),
-                        redirection_data: None,
-                        mandate_reference: None,
+                        redirection_data: Box::new(None),
+                        mandate_reference: Box::new(None),
                         connector_metadata: None,
                         network_txn_id: None,
                         connector_response_reference_id: None,
@@ -1384,8 +1384,8 @@ impl<F, T>
                 } else {
                     Ok(types::PaymentsResponseData::TransactionResponse {
                         resource_id: types::ResponseId::NoResponseId,
-                        redirection_data: None,
-                        mandate_reference: None,
+                        redirection_data: Box::new(None),
+                        mandate_reference: Box::new(None),
                         connector_metadata: None,
                         network_txn_id: None,
                         connector_response_reference_id: None,
@@ -1489,8 +1489,8 @@ impl<F, T>
                         resource_id: types::ResponseId::ConnectorTransactionId(
                             edge_data.node.id.clone(),
                         ),
-                        redirection_data: None,
-                        mandate_reference: None,
+                        redirection_data: Box::new(None),
+                        mandate_reference: Box::new(None),
                         connector_metadata: None,
                         network_txn_id: None,
                         connector_response_reference_id: None,
diff --git a/crates/router/src/connector/checkout/transformers.rs b/crates/router/src/connector/checkout/transformers.rs
index 3e951b3ac86..686a9d57ac3 100644
--- a/crates/router/src/connector/checkout/transformers.rs
+++ b/crates/router/src/connector/checkout/transformers.rs
@@ -688,8 +688,8 @@ impl TryFrom<types::PaymentsResponseRouterData<PaymentsResponse>>
         };
         let payments_response_data = types::PaymentsResponseData::TransactionResponse {
             resource_id: types::ResponseId::ConnectorTransactionId(item.response.id.clone()),
-            redirection_data,
-            mandate_reference: None,
+            redirection_data: Box::new(redirection_data),
+            mandate_reference: Box::new(None),
             connector_metadata: Some(connector_meta),
             network_txn_id: None,
             connector_response_reference_id: Some(
@@ -741,8 +741,8 @@ impl TryFrom<types::PaymentsSyncResponseRouterData<PaymentsResponse>>
         };
         let payments_response_data = types::PaymentsResponseData::TransactionResponse {
             resource_id: types::ResponseId::ConnectorTransactionId(item.response.id.clone()),
-            redirection_data,
-            mandate_reference: None,
+            redirection_data: Box::new(redirection_data),
+            mandate_reference: Box::new(None),
             connector_metadata: None,
             network_txn_id: None,
             connector_response_reference_id: Some(
@@ -819,8 +819,8 @@ impl TryFrom<types::PaymentsCancelResponseRouterData<PaymentVoidResponse>>
         Ok(Self {
             response: Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: types::ResponseId::ConnectorTransactionId(response.action_id.clone()),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: None,
@@ -920,8 +920,8 @@ impl TryFrom<types::PaymentsCaptureResponseRouterData<PaymentCaptureResponse>>
         Ok(Self {
             response: Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: types::ResponseId::ConnectorTransactionId(resource_id),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: Some(connector_meta),
                 network_txn_id: None,
                 connector_response_reference_id: item.response.reference,
diff --git a/crates/router/src/connector/cybersource/transformers.rs b/crates/router/src/connector/cybersource/transformers.rs
index da768258614..4331b4d7983 100644
--- a/crates/router/src/connector/cybersource/transformers.rs
+++ b/crates/router/src/connector/cybersource/transformers.rs
@@ -2559,8 +2559,8 @@ fn get_payment_response(
 
             Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: types::ResponseId::ConnectorTransactionId(info_response.id.clone()),
-                redirection_data: None,
-                mandate_reference,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(mandate_reference),
                 connector_metadata: None,
                 network_txn_id: info_response.processor_information.as_ref().and_then(
                     |processor_information| processor_information.network_transaction_id.clone(),
@@ -2647,18 +2647,20 @@ impl<F>
                 status: enums::AttemptStatus::AuthenticationPending,
                 response: Ok(types::PaymentsResponseData::TransactionResponse {
                     resource_id: types::ResponseId::NoResponseId,
-                    redirection_data: Some(services::RedirectForm::CybersourceAuthSetup {
-                        access_token: info_response
-                            .consumer_authentication_information
-                            .access_token,
-                        ddc_url: info_response
-                            .consumer_authentication_information
-                            .device_data_collection_url,
-                        reference_id: info_response
-                            .consumer_authentication_information
-                            .reference_id,
-                    }),
-                    mandate_reference: None,
+                    redirection_data: Box::new(Some(
+                        services::RedirectForm::CybersourceAuthSetup {
+                            access_token: info_response
+                                .consumer_authentication_information
+                                .access_token,
+                            ddc_url: info_response
+                                .consumer_authentication_information
+                                .device_data_collection_url,
+                            reference_id: info_response
+                                .consumer_authentication_information
+                                .reference_id,
+                        },
+                    )),
+                    mandate_reference: Box::new(None),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: Some(
@@ -3066,8 +3068,8 @@ impl<F>
                         status,
                         response: Ok(types::PaymentsResponseData::TransactionResponse {
                             resource_id: types::ResponseId::NoResponseId,
-                            redirection_data,
-                            mandate_reference: None,
+                            redirection_data: Box::new(redirection_data),
+                            mandate_reference: Box::new(None),
                             connector_metadata: Some(serde_json::json!({
                                 "three_ds_data": three_ds_data
                             })),
@@ -3311,8 +3313,8 @@ impl
                     resource_id: types::ResponseId::ConnectorTransactionId(
                         item.response.id.clone(),
                     ),
-                    redirection_data: None,
-                    mandate_reference,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(mandate_reference),
                     connector_metadata: None,
                     network_txn_id: item.response.processor_information.as_ref().and_then(
                         |processor_information| {
@@ -3449,8 +3451,8 @@ impl<F>
                             resource_id: types::ResponseId::ConnectorTransactionId(
                                 item.response.id.clone(),
                             ),
-                            redirection_data: None,
-                            mandate_reference: None,
+                            redirection_data: Box::new(None),
+                            mandate_reference: Box::new(None),
                             connector_metadata: None,
                             network_txn_id: None,
                             connector_response_reference_id: item
@@ -3471,8 +3473,8 @@ impl<F>
                     resource_id: types::ResponseId::ConnectorTransactionId(
                         item.response.id.clone(),
                     ),
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: Some(item.response.id),
diff --git a/crates/router/src/connector/datatrans/transformers.rs b/crates/router/src/connector/datatrans/transformers.rs
index b28504a1d83..e9dcfd87071 100644
--- a/crates/router/src/connector/datatrans/transformers.rs
+++ b/crates/router/src/connector/datatrans/transformers.rs
@@ -293,8 +293,8 @@ impl<F>
                     resource_id: types::ResponseId::ConnectorTransactionId(
                         response.transaction_id.clone(),
                     ),
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: None,
@@ -411,8 +411,8 @@ impl TryFrom<types::PaymentsSyncResponseRouterData<DatatransSyncResponse>>
                     status: enums::AttemptStatus::from(response),
                     response: Ok(types::PaymentsResponseData::TransactionResponse {
                         resource_id,
-                        redirection_data: None,
-                        mandate_reference: None,
+                        redirection_data: Box::new(None),
+                        mandate_reference: Box::new(None),
                         connector_metadata: None,
                         network_txn_id: None,
                         connector_response_reference_id: None,
diff --git a/crates/router/src/connector/dummyconnector/transformers.rs b/crates/router/src/connector/dummyconnector/transformers.rs
index 2cf5960bf75..79caa3d0a76 100644
--- a/crates/router/src/connector/dummyconnector/transformers.rs
+++ b/crates/router/src/connector/dummyconnector/transformers.rs
@@ -253,8 +253,8 @@ impl<F, T> TryFrom<types::ResponseRouterData<F, PaymentsResponse, T, types::Paym
             status: enums::AttemptStatus::from(item.response.status),
             response: Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: types::ResponseId::ConnectorTransactionId(item.response.id),
-                redirection_data,
-                mandate_reference: None,
+                redirection_data: Box::new(redirection_data),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: None,
diff --git a/crates/router/src/connector/globalpay/transformers.rs b/crates/router/src/connector/globalpay/transformers.rs
index 19568ae4671..d17c8a8fdfd 100644
--- a/crates/router/src/connector/globalpay/transformers.rs
+++ b/crates/router/src/connector/globalpay/transformers.rs
@@ -274,8 +274,8 @@ fn get_payment_response(
         }),
         _ => Ok(types::PaymentsResponseData::TransactionResponse {
             resource_id: types::ResponseId::ConnectorTransactionId(response.id),
-            redirection_data,
-            mandate_reference,
+            redirection_data: Box::new(redirection_data),
+            mandate_reference: Box::new(mandate_reference),
             connector_metadata: None,
             network_txn_id: None,
             connector_response_reference_id: response.reference,
diff --git a/crates/router/src/connector/gocardless/transformers.rs b/crates/router/src/connector/gocardless/transformers.rs
index c0360a94a51..dac90b28366 100644
--- a/crates/router/src/connector/gocardless/transformers.rs
+++ b/crates/router/src/connector/gocardless/transformers.rs
@@ -523,8 +523,8 @@ impl<F>
                 connector_response_reference_id: None,
                 incremental_authorization_allowed: None,
                 resource_id: ResponseId::NoResponseId,
-                redirection_data: None,
-                mandate_reference,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(mandate_reference),
                 network_txn_id: None,
                 charge_id: None,
             }),
@@ -674,8 +674,8 @@ impl<F>
             status: enums::AttemptStatus::from(item.response.payments.status),
             response: Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(item.response.payments.id),
-                redirection_data: None,
-                mandate_reference: Some(mandate_reference),
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(Some(mandate_reference)),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: None,
@@ -710,8 +710,8 @@ impl<F>
             status: enums::AttemptStatus::from(item.response.payments.status),
             response: Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: ResponseId::ConnectorTransactionId(item.response.payments.id),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: None,
diff --git a/crates/router/src/connector/iatapay/transformers.rs b/crates/router/src/connector/iatapay/transformers.rs
index de92168036c..ec94b322fe7 100644
--- a/crates/router/src/connector/iatapay/transformers.rs
+++ b/crates/router/src/connector/iatapay/transformers.rs
@@ -382,8 +382,8 @@ fn get_iatpay_response(
 
             types::PaymentsResponseData::TransactionResponse {
                 resource_id: id,
-                redirection_data,
-                mandate_reference: None,
+                redirection_data: Box::new(redirection_data),
+                mandate_reference: Box::new(None),
                 connector_metadata,
                 network_txn_id: None,
                 connector_response_reference_id: connector_response_reference_id.clone(),
@@ -393,8 +393,8 @@ fn get_iatpay_response(
         }
         None => types::PaymentsResponseData::TransactionResponse {
             resource_id: id.clone(),
-            redirection_data: None,
-            mandate_reference: None,
+            redirection_data: Box::new(None),
+            mandate_reference: Box::new(None),
             connector_metadata: None,
             network_txn_id: None,
             connector_response_reference_id: connector_response_reference_id.clone(),
diff --git a/crates/router/src/connector/itaubank/transformers.rs b/crates/router/src/connector/itaubank/transformers.rs
index 41c41408381..15dfb1ce240 100644
--- a/crates/router/src/connector/itaubank/transformers.rs
+++ b/crates/router/src/connector/itaubank/transformers.rs
@@ -280,8 +280,8 @@ impl<F, T>
                 resource_id: types::ResponseId::ConnectorTransactionId(
                     item.response.txid.to_owned(),
                 ),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata,
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.txid),
@@ -368,8 +368,8 @@ impl<F, T>
                 resource_id: types::ResponseId::ConnectorTransactionId(
                     item.response.txid.to_owned(),
                 ),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata,
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.txid),
diff --git a/crates/router/src/connector/klarna/transformers.rs b/crates/router/src/connector/klarna/transformers.rs
index e6f0bab9c2c..ea83e20d99d 100644
--- a/crates/router/src/connector/klarna/transformers.rs
+++ b/crates/router/src/connector/klarna/transformers.rs
@@ -272,8 +272,8 @@ impl TryFrom<types::PaymentsResponseRouterData<KlarnaPaymentsResponse>>
                 resource_id: types::ResponseId::ConnectorTransactionId(
                     item.response.order_id.clone(),
                 ),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.order_id.clone()),
@@ -394,8 +394,8 @@ impl<F, T>
                 resource_id: types::ResponseId::ConnectorTransactionId(
                     item.response.order_id.clone(),
                 ),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: item
@@ -474,8 +474,8 @@ impl<F>
         Ok(Self {
             response: Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: types::ResponseId::ConnectorTransactionId(resource_id),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: Some(connector_meta),
                 network_txn_id: None,
                 connector_response_reference_id: None,
diff --git a/crates/router/src/connector/mifinity/transformers.rs b/crates/router/src/connector/mifinity/transformers.rs
index 03c63d66795..6ff52bb7eb1 100644
--- a/crates/router/src/connector/mifinity/transformers.rs
+++ b/crates/router/src/connector/mifinity/transformers.rs
@@ -259,10 +259,10 @@ impl<F, T>
                     status: enums::AttemptStatus::AuthenticationPending,
                     response: Ok(types::PaymentsResponseData::TransactionResponse {
                         resource_id: types::ResponseId::ConnectorTransactionId(trace_id.clone()),
-                        redirection_data: Some(services::RedirectForm::Mifinity {
+                        redirection_data: Box::new(Some(services::RedirectForm::Mifinity {
                             initialization_token,
-                        }),
-                        mandate_reference: None,
+                        })),
+                        mandate_reference: Box::new(None),
                         connector_metadata: None,
                         network_txn_id: None,
                         connector_response_reference_id: Some(trace_id),
@@ -276,8 +276,8 @@ impl<F, T>
                 status: enums::AttemptStatus::AuthenticationPending,
                 response: Ok(types::PaymentsResponseData::TransactionResponse {
                     resource_id: types::ResponseId::NoResponseId,
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: None,
@@ -345,8 +345,8 @@ impl<F, T>
                                 resource_id: types::ResponseId::ConnectorTransactionId(
                                     transaction_reference,
                                 ),
-                                redirection_data: None,
-                                mandate_reference: None,
+                                redirection_data: Box::new(None),
+                                mandate_reference: Box::new(None),
                                 connector_metadata: None,
                                 network_txn_id: None,
                                 connector_response_reference_id: None,
@@ -360,8 +360,8 @@ impl<F, T>
                         status: enums::AttemptStatus::from(status),
                         response: Ok(types::PaymentsResponseData::TransactionResponse {
                             resource_id: types::ResponseId::NoResponseId,
-                            redirection_data: None,
-                            mandate_reference: None,
+                            redirection_data: Box::new(None),
+                            mandate_reference: Box::new(None),
                             connector_metadata: None,
                             network_txn_id: None,
                             connector_response_reference_id: None,
@@ -376,8 +376,8 @@ impl<F, T>
                 status: item.data.status,
                 response: Ok(types::PaymentsResponseData::TransactionResponse {
                     resource_id: types::ResponseId::NoResponseId,
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: None,
diff --git a/crates/router/src/connector/multisafepay/transformers.rs b/crates/router/src/connector/multisafepay/transformers.rs
index 9db1cb3701a..2831b63fcbe 100644
--- a/crates/router/src/connector/multisafepay/transformers.rs
+++ b/crates/router/src/connector/multisafepay/transformers.rs
@@ -930,7 +930,7 @@ pub struct MultisafepayPaymentsResponse {
 #[serde(untagged)]
 pub enum MultisafepayAuthResponse {
     ErrorResponse(MultisafepayErrorResponse),
-    PaymentResponse(MultisafepayPaymentsResponse),
+    PaymentResponse(Box<MultisafepayPaymentsResponse>),
 }
 
 impl<F, T>
@@ -979,16 +979,18 @@ impl<F, T>
                             resource_id: types::ResponseId::ConnectorTransactionId(
                                 payment_response.data.order_id.clone(),
                             ),
-                            redirection_data,
-                            mandate_reference: payment_response
-                                .data
-                                .payment_details
-                                .and_then(|payment_details| payment_details.recurring_id)
-                                .map(|id| types::MandateReference {
-                                    connector_mandate_id: Some(id.expose()),
-                                    payment_method_id: None,
-                                    mandate_metadata: None,
-                                }),
+                            redirection_data: Box::new(redirection_data),
+                            mandate_reference: Box::new(
+                                payment_response
+                                    .data
+                                    .payment_details
+                                    .and_then(|payment_details| payment_details.recurring_id)
+                                    .map(|id| types::MandateReference {
+                                        connector_mandate_id: Some(id.expose()),
+                                        payment_method_id: None,
+                                        mandate_metadata: None,
+                                    }),
+                            ),
                             connector_metadata: None,
                             network_txn_id: None,
                             connector_response_reference_id: Some(
diff --git a/crates/router/src/connector/nmi/transformers.rs b/crates/router/src/connector/nmi/transformers.rs
index af2a9fe56bb..0ec9cc94888 100644
--- a/crates/router/src/connector/nmi/transformers.rs
+++ b/crates/router/src/connector/nmi/transformers.rs
@@ -185,7 +185,7 @@ impl
             Response::Approved => (
                 Ok(types::PaymentsResponseData::TransactionResponse {
                     resource_id: types::ResponseId::NoResponseId,
-                    redirection_data: Some(services::RedirectForm::Nmi {
+                    redirection_data: Box::new(Some(services::RedirectForm::Nmi {
                         amount: utils::to_currency_base_unit_asf64(
                             amount_data,
                             currency_data.to_owned(),
@@ -206,8 +206,8 @@ impl
                             },
                         )?,
                         order_id: item.data.connector_request_reference_id.clone(),
-                    }),
-                    mandate_reference: None,
+                    })),
+                    mandate_reference: Box::new(None),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: Some(item.response.transactionid),
@@ -360,8 +360,8 @@ impl
                     resource_id: types::ResponseId::ConnectorTransactionId(
                         item.response.transactionid,
                     ),
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: Some(item.response.orderid),
@@ -743,8 +743,8 @@ impl
                     resource_id: types::ResponseId::ConnectorTransactionId(
                         item.response.transactionid.to_owned(),
                     ),
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: Some(item.response.orderid),
@@ -838,8 +838,8 @@ impl<T>
                     resource_id: types::ResponseId::ConnectorTransactionId(
                         item.response.transactionid.clone(),
                     ),
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: Some(item.response.orderid),
@@ -895,8 +895,8 @@ impl TryFrom<types::PaymentsResponseRouterData<StandardResponse>>
                     resource_id: types::ResponseId::ConnectorTransactionId(
                         item.response.transactionid.clone(),
                     ),
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: Some(item.response.orderid),
@@ -946,8 +946,8 @@ impl<T>
                     resource_id: types::ResponseId::ConnectorTransactionId(
                         item.response.transactionid.clone(),
                     ),
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: Some(item.response.orderid),
@@ -997,8 +997,8 @@ impl<F, T> TryFrom<types::ResponseRouterData<F, SyncResponse, T, types::Payments
                 status: enums::AttemptStatus::from(NmiStatus::from(trn.condition)),
                 response: Ok(types::PaymentsResponseData::TransactionResponse {
                     resource_id: types::ResponseId::ConnectorTransactionId(trn.transaction_id),
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: None,
diff --git a/crates/router/src/connector/noon/transformers.rs b/crates/router/src/connector/noon/transformers.rs
index 5c3de332b70..634a9feccf3 100644
--- a/crates/router/src/connector/noon/transformers.rs
+++ b/crates/router/src/connector/noon/transformers.rs
@@ -596,8 +596,8 @@ impl<F, T>
                         resource_id: types::ResponseId::ConnectorTransactionId(
                             order.id.to_string(),
                         ),
-                        redirection_data,
-                        mandate_reference,
+                        redirection_data: Box::new(redirection_data),
+                        mandate_reference: Box::new(mandate_reference),
                         connector_metadata: None,
                         network_txn_id: None,
                         connector_response_reference_id,
diff --git a/crates/router/src/connector/nuvei/transformers.rs b/crates/router/src/connector/nuvei/transformers.rs
index d1d7122f49e..68c25f58acb 100644
--- a/crates/router/src/connector/nuvei/transformers.rs
+++ b/crates/router/src/connector/nuvei/transformers.rs
@@ -1598,15 +1598,17 @@ where
                         .map_or(response.order_id.clone(), Some) // For paypal there will be no transaction_id, only order_id will be present
                         .map(types::ResponseId::ConnectorTransactionId)
                         .ok_or(errors::ConnectorError::MissingConnectorTransactionID)?,
-                    redirection_data,
-                    mandate_reference: response
-                        .payment_option
-                        .and_then(|po| po.user_payment_option_id)
-                        .map(|id| types::MandateReference {
-                            connector_mandate_id: Some(id),
-                            payment_method_id: None,
-                            mandate_metadata: None,
-                        }),
+                    redirection_data: Box::new(redirection_data),
+                    mandate_reference: Box::new(
+                        response
+                            .payment_option
+                            .and_then(|po| po.user_payment_option_id)
+                            .map(|id| types::MandateReference {
+                                connector_mandate_id: Some(id),
+                                payment_method_id: None,
+                                mandate_metadata: None,
+                            }),
+                    ),
                     // we don't need to save session token for capture, void flow so ignoring if it is not present
                     connector_metadata: if let Some(token) = response.session_token {
                         Some(
diff --git a/crates/router/src/connector/opayo/transformers.rs b/crates/router/src/connector/opayo/transformers.rs
index 44069f3650b..44445a3d7d9 100644
--- a/crates/router/src/connector/opayo/transformers.rs
+++ b/crates/router/src/connector/opayo/transformers.rs
@@ -144,8 +144,8 @@ impl<F, T>
                 resource_id: types::ResponseId::ConnectorTransactionId(
                     item.response.transaction_id.clone(),
                 ),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.transaction_id),
diff --git a/crates/router/src/connector/opennode/transformers.rs b/crates/router/src/connector/opennode/transformers.rs
index 8f1579ac1ff..1e8239d377b 100644
--- a/crates/router/src/connector/opennode/transformers.rs
+++ b/crates/router/src/connector/opennode/transformers.rs
@@ -138,8 +138,8 @@ impl<F, T>
         let response_data = if attempt_status != OpennodePaymentStatus::Underpaid {
             Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: connector_id,
-                redirection_data: Some(redirection_data),
-                mandate_reference: None,
+                redirection_data: Box::new(Some(redirection_data)),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: item.response.data.order_id,
diff --git a/crates/router/src/connector/paybox/transformers.rs b/crates/router/src/connector/paybox/transformers.rs
index d02f75693c4..b52a6e463f6 100644
--- a/crates/router/src/connector/paybox/transformers.rs
+++ b/crates/router/src/connector/paybox/transformers.rs
@@ -597,8 +597,8 @@ impl<F, T>
                     resource_id: types::ResponseId::ConnectorTransactionId(
                         response.paybox_order_id,
                     ),
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata: Some(serde_json::json!(PayboxMeta {
                         connector_request_id: response.transaction_number.clone()
                     })),
@@ -657,8 +657,8 @@ impl<F>
                             resource_id: types::ResponseId::ConnectorTransactionId(
                                 response.paybox_order_id,
                             ),
-                            redirection_data: None,
-                            mandate_reference: None,
+                            redirection_data: Box::new(None),
+                            mandate_reference: Box::new(None),
                             connector_metadata: Some(serde_json::json!(PayboxMeta {
                                 connector_request_id: response.transaction_number.clone()
                             })),
@@ -686,10 +686,10 @@ impl<F>
                 status: enums::AttemptStatus::AuthenticationPending,
                 response: Ok(types::PaymentsResponseData::TransactionResponse {
                     resource_id: types::ResponseId::NoResponseId,
-                    redirection_data: Some(RedirectForm::Html {
+                    redirection_data: Box::new(Some(RedirectForm::Html {
                         html_data: data.peek().to_string(),
-                    }),
-                    mandate_reference: None,
+                    })),
+                    mandate_reference: Box::new(None),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: None,
@@ -731,8 +731,8 @@ impl<F, T> TryFrom<types::ResponseRouterData<F, PayboxSyncResponse, T, types::Pa
                     resource_id: types::ResponseId::ConnectorTransactionId(
                         response.paybox_order_id,
                     ),
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata: Some(serde_json::json!(PayboxMeta {
                         connector_request_id: response.transaction_number.clone()
                     })),
@@ -916,8 +916,8 @@ impl<F>
                     resource_id: types::ResponseId::ConnectorTransactionId(
                         response.paybox_order_id,
                     ),
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata: Some(serde_json::json!(PayboxMeta {
                         connector_request_id: response.transaction_number.clone()
                     })),
diff --git a/crates/router/src/connector/payme/transformers.rs b/crates/router/src/connector/payme/transformers.rs
index 4eac0a6f94d..ceeafb50251 100644
--- a/crates/router/src/connector/payme/transformers.rs
+++ b/crates/router/src/connector/payme/transformers.rs
@@ -246,12 +246,14 @@ impl TryFrom<&PaymePaySaleResponse> for types::PaymentsResponseData {
         };
         Ok(Self::TransactionResponse {
             resource_id: types::ResponseId::ConnectorTransactionId(value.payme_sale_id.clone()),
-            redirection_data,
-            mandate_reference: value.buyer_key.clone().map(|buyer_key| MandateReference {
-                connector_mandate_id: Some(buyer_key.expose()),
-                payment_method_id: None,
-                mandate_metadata: None,
-            }),
+            redirection_data: Box::new(redirection_data),
+            mandate_reference: Box::new(value.buyer_key.clone().map(|buyer_key| {
+                MandateReference {
+                    connector_mandate_id: Some(buyer_key.expose()),
+                    payment_method_id: None,
+                    mandate_metadata: None,
+                }
+            })),
             connector_metadata: None,
             network_txn_id: None,
             connector_response_reference_id: None,
@@ -316,9 +318,9 @@ impl From<&SaleQuery> for types::PaymentsResponseData {
     fn from(value: &SaleQuery) -> Self {
         Self::TransactionResponse {
             resource_id: types::ResponseId::ConnectorTransactionId(value.sale_payme_id.clone()),
-            redirection_data: None,
+            redirection_data: Box::new(None),
             // mandate reference will be updated with webhooks only. That has been handled with PaymePaySaleResponse struct
-            mandate_reference: None,
+            mandate_reference: Box::new(None),
             connector_metadata: None,
             network_txn_id: None,
             connector_response_reference_id: None,
@@ -536,8 +538,8 @@ impl<F>
                             resource_id: types::ResponseId::ConnectorTransactionId(
                                 item.response.payme_sale_id.to_owned(),
                             ),
-                            redirection_data: Some(services::RedirectForm::Payme),
-                            mandate_reference: None,
+                            redirection_data: Box::new(Some(services::RedirectForm::Payme)),
+                            mandate_reference: Box::new(None),
                             connector_metadata: None,
                             network_txn_id: None,
                             connector_response_reference_id: None,
@@ -1110,8 +1112,8 @@ impl TryFrom<types::PaymentsCancelResponseRouterData<PaymeVoidResponse>>
             // Since we are not receiving payme_sale_id, we are not populating the transaction response
             Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: types::ResponseId::NoResponseId,
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: None,
diff --git a/crates/router/src/connector/paypal.rs b/crates/router/src/connector/paypal.rs
index 274aab8e504..7b866971b01 100644
--- a/crates/router/src/connector/paypal.rs
+++ b/crates/router/src/connector/paypal.rs
@@ -1117,14 +1117,14 @@ impl
                             status: storage_enums::AttemptStatus::AuthenticationSuccessful,
                             response: Ok(types::PaymentsResponseData::TransactionResponse {
                                 resource_id: types::ResponseId::NoResponseId,
-                                redirection_data: None,
-                                mandate_reference: None,
+                                redirection_data: Box::new(None),
+                                mandate_reference: Box::new(None),
                                 connector_metadata: None,
                                 network_txn_id: None,
                                 connector_response_reference_id: None,
                                 incremental_authorization_allowed: None,
-                charge_id: None,
-            }),
+                                charge_id: None,
+                            }),
                             ..data.clone()
                         })
                     }
@@ -1168,8 +1168,8 @@ impl
                     status: storage_enums::AttemptStatus::AuthenticationSuccessful,
                     response: Ok(types::PaymentsResponseData::TransactionResponse {
                         resource_id: types::ResponseId::NoResponseId,
-                        redirection_data: None,
-                        mandate_reference: None,
+                        redirection_data: Box::new(None),
+                        mandate_reference: Box::new(None),
                         connector_metadata: None,
                         network_txn_id: None,
                         connector_response_reference_id: None,
diff --git a/crates/router/src/connector/paypal/transformers.rs b/crates/router/src/connector/paypal/transformers.rs
index 30aaf5a84a8..e30a3f07c9b 100644
--- a/crates/router/src/connector/paypal/transformers.rs
+++ b/crates/router/src/connector/paypal/transformers.rs
@@ -1388,8 +1388,8 @@ impl<F, T>
             status,
             response: Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: order_id,
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: Some(connector_meta),
                 network_txn_id: None,
                 connector_response_reference_id: purchase_units
@@ -1511,11 +1511,11 @@ impl<F, T>
             status,
             response: Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: types::ResponseId::ConnectorTransactionId(item.response.id.clone()),
-                redirection_data: Some(services::RedirectForm::from((
+                redirection_data: Box::new(Some(services::RedirectForm::from((
                     link.ok_or(errors::ConnectorError::ResponseDeserializationFailed)?,
                     services::Method::Get,
-                ))),
-                mandate_reference: None,
+                )))),
+                mandate_reference: Box::new(None),
                 connector_metadata: Some(connector_meta),
                 network_txn_id: None,
                 connector_response_reference_id: Some(
@@ -1566,11 +1566,11 @@ impl
             status,
             response: Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: types::ResponseId::ConnectorTransactionId(item.response.id.clone()),
-                redirection_data: Some(services::RedirectForm::from((
+                redirection_data: Box::new(Some(services::RedirectForm::from((
                     link.ok_or(errors::ConnectorError::ResponseDeserializationFailed)?,
                     services::Method::Get,
-                ))),
-                mandate_reference: None,
+                )))),
+                mandate_reference: Box::new(None),
                 connector_metadata: Some(connector_meta),
                 network_txn_id: None,
                 connector_response_reference_id: Some(
@@ -1624,8 +1624,8 @@ impl
             status,
             response: Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: types::ResponseId::NoResponseId,
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: Some(connector_meta),
                 network_txn_id: None,
                 connector_response_reference_id: None,
@@ -1662,8 +1662,8 @@ impl<F>
             status: storage_enums::AttemptStatus::AuthenticationPending,
             response: Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: types::ResponseId::ConnectorTransactionId(item.response.id),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: None,
@@ -1712,11 +1712,11 @@ impl<F>
             status,
             response: Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: types::ResponseId::ConnectorTransactionId(item.response.id),
-                redirection_data: Some(paypal_threeds_link((
+                redirection_data: Box::new(Some(paypal_threeds_link((
                     link,
                     item.data.request.complete_authorize_url.clone(),
-                ))?),
-                mandate_reference: None,
+                ))?)),
+                mandate_reference: Box::new(None),
                 connector_metadata: Some(connector_meta),
                 network_txn_id: None,
                 connector_response_reference_id: None,
@@ -1780,8 +1780,8 @@ impl<F, T>
                         .order_id
                         .clone(),
                 ),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: item
@@ -2115,8 +2115,8 @@ impl TryFrom<types::PaymentsCaptureResponseRouterData<PaypalCaptureResponse>>
                 resource_id: types::ResponseId::ConnectorTransactionId(
                     item.data.request.connector_transaction_id.clone(),
                 ),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: Some(serde_json::json!(PaypalMeta {
                     authorize_id: connector_payment_id.authorize_id,
                     capture_id: Some(item.response.id.clone()),
@@ -2173,8 +2173,8 @@ impl<F, T>
             status,
             response: Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: types::ResponseId::ConnectorTransactionId(item.response.id.clone()),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: item
diff --git a/crates/router/src/connector/placetopay/transformers.rs b/crates/router/src/connector/placetopay/transformers.rs
index 32d651787b6..2d1ce4771ca 100644
--- a/crates/router/src/connector/placetopay/transformers.rs
+++ b/crates/router/src/connector/placetopay/transformers.rs
@@ -263,8 +263,8 @@ impl<F, T>
                 resource_id: types::ResponseId::ConnectorTransactionId(
                     item.response.internal_reference.to_string(),
                 ),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: item
                     .response
                     .authorization
diff --git a/crates/router/src/connector/plaid/transformers.rs b/crates/router/src/connector/plaid/transformers.rs
index f0cf91b9cf6..29d4db1297f 100644
--- a/crates/router/src/connector/plaid/transformers.rs
+++ b/crates/router/src/connector/plaid/transformers.rs
@@ -308,8 +308,8 @@ impl<F, T>
                     resource_id: types::ResponseId::ConnectorTransactionId(
                         item.response.payment_id.clone(),
                     ),
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: Some(item.response.payment_id),
@@ -394,8 +394,8 @@ impl<F, T> TryFrom<types::ResponseRouterData<F, PlaidSyncResponse, T, types::Pay
                     resource_id: types::ResponseId::ConnectorTransactionId(
                         item.response.payment_id.clone(),
                     ),
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: Some(item.response.payment_id),
diff --git a/crates/router/src/connector/prophetpay/transformers.rs b/crates/router/src/connector/prophetpay/transformers.rs
index 6862c7c4c80..24bd4642c01 100644
--- a/crates/router/src/connector/prophetpay/transformers.rs
+++ b/crates/router/src/connector/prophetpay/transformers.rs
@@ -201,8 +201,8 @@ impl<F>
             status: enums::AttemptStatus::AuthenticationPending,
             response: Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: types::ResponseId::NoResponseId,
-                redirection_data,
-                mandate_reference: None,
+                redirection_data: Box::new(redirection_data),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: None,
@@ -401,8 +401,8 @@ impl<F>
                     resource_id: types::ResponseId::ConnectorTransactionId(
                         item.response.transaction_id,
                     ),
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata,
                     network_txn_id: None,
                     connector_response_reference_id: None,
@@ -452,8 +452,8 @@ impl<F, T>
                     resource_id: types::ResponseId::ConnectorTransactionId(
                         item.response.transaction_id,
                     ),
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: None,
@@ -503,8 +503,8 @@ impl<F, T>
                     resource_id: types::ResponseId::ConnectorTransactionId(
                         item.response.transaction_id,
                     ),
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: None,
diff --git a/crates/router/src/connector/rapyd/transformers.rs b/crates/router/src/connector/rapyd/transformers.rs
index 044a64b413c..bcd0693500a 100644
--- a/crates/router/src/connector/rapyd/transformers.rs
+++ b/crates/router/src/connector/rapyd/transformers.rs
@@ -474,8 +474,8 @@ impl<F, T>
                                 resource_id: types::ResponseId::ConnectorTransactionId(
                                     data.id.to_owned(),
                                 ), //transaction_id is also the field but this id is used to initiate a refund
-                                redirection_data,
-                                mandate_reference: None,
+                                redirection_data: Box::new(redirection_data),
+                                mandate_reference: Box::new(None),
                                 connector_metadata: None,
                                 network_txn_id: None,
                                 connector_response_reference_id: None,
diff --git a/crates/router/src/connector/razorpay/transformers.rs b/crates/router/src/connector/razorpay/transformers.rs
index fde72cac100..6755a2d1816 100644
--- a/crates/router/src/connector/razorpay/transformers.rs
+++ b/crates/router/src/connector/razorpay/transformers.rs
@@ -789,8 +789,8 @@ impl<F, T>
                     resource_id: types::ResponseId::ConnectorTransactionId(
                         second_factor.epg_txn_id,
                     ),
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: Some(second_factor.txn_id),
@@ -1010,8 +1010,8 @@ impl<F, T>
                 resource_id: types::ResponseId::ConnectorTransactionId(
                     item.response.second_factor.epg_txn_id,
                 ),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.second_factor.txn_id),
diff --git a/crates/router/src/connector/shift4/transformers.rs b/crates/router/src/connector/shift4/transformers.rs
index 3b768151115..570d3b90aff 100644
--- a/crates/router/src/connector/shift4/transformers.rs
+++ b/crates/router/src/connector/shift4/transformers.rs
@@ -759,8 +759,8 @@ impl TryFrom<types::PaymentsPreprocessingResponseRouterData<Shift4ThreeDsRespons
             },
             response: Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: types::ResponseId::NoResponseId,
-                redirection_data,
-                mandate_reference: None,
+                redirection_data: Box::new(redirection_data),
+                mandate_reference: Box::new(None),
                 connector_metadata: Some(
                     serde_json::to_value(Shift4CardToken {
                         id: item.response.token.id,
@@ -802,13 +802,14 @@ impl<T, F>
             )),
             response: Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: connector_id,
-                redirection_data: item
-                    .response
-                    .flow
-                    .and_then(|flow| flow.redirect)
-                    .and_then(|redirect| redirect.redirect_url)
-                    .map(|url| services::RedirectForm::from((url, services::Method::Get))),
-                mandate_reference: None,
+                redirection_data: Box::new(
+                    item.response
+                        .flow
+                        .and_then(|flow| flow.redirect)
+                        .and_then(|redirect| redirect.redirect_url)
+                        .map(|url| services::RedirectForm::from((url, services::Method::Get))),
+                ),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.id),
diff --git a/crates/router/src/connector/stripe/transformers.rs b/crates/router/src/connector/stripe/transformers.rs
index 63720696ef4..fe69f43777e 100644
--- a/crates/router/src/connector/stripe/transformers.rs
+++ b/crates/router/src/connector/stripe/transformers.rs
@@ -2490,8 +2490,8 @@ impl<F, T>
                 });
             Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: types::ResponseId::ConnectorTransactionId(item.response.id.clone()),
-                redirection_data,
-                mandate_reference,
+                redirection_data: Box::new(redirection_data),
+                mandate_reference: Box::new(mandate_reference),
                 connector_metadata,
                 network_txn_id,
                 connector_response_reference_id: Some(item.response.id),
@@ -2697,8 +2697,8 @@ impl<F, T>
                 });
             Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: types::ResponseId::ConnectorTransactionId(item.response.id.clone()),
-                redirection_data,
-                mandate_reference,
+                redirection_data: Box::new(redirection_data),
+                mandate_reference: Box::new(mandate_reference),
                 connector_metadata,
                 network_txn_id: network_transaction_id,
                 connector_response_reference_id: Some(item.response.id.clone()),
@@ -2776,8 +2776,8 @@ impl<F, T>
 
             Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: types::ResponseId::ConnectorTransactionId(item.response.id.clone()),
-                redirection_data,
-                mandate_reference,
+                redirection_data: Box::new(redirection_data),
+                mandate_reference: Box::new(mandate_reference),
                 connector_metadata: None,
                 network_txn_id: network_transaction_id,
                 connector_response_reference_id: Some(item.response.id),
@@ -3270,7 +3270,7 @@ pub struct MitExemption {
 #[derive(Clone, Debug, Eq, PartialEq, Deserialize, Serialize)]
 #[serde(untagged)]
 pub enum LatestAttempt {
-    PaymentIntentAttempt(LatestPaymentAttempt),
+    PaymentIntentAttempt(Box<LatestPaymentAttempt>),
     SetupAttempt(String),
 }
 #[derive(Clone, Debug, Default, Eq, PartialEq, Deserialize, Serialize)]
@@ -3480,8 +3480,8 @@ impl<F, T> TryFrom<types::ResponseRouterData<F, ChargesResponse, T, types::Payme
         } else {
             Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: types::ResponseId::ConnectorTransactionId(item.response.id.clone()),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: Some(connector_metadata),
                 network_txn_id: None,
                 connector_response_reference_id: Some(item.response.id.clone()),
diff --git a/crates/router/src/connector/trustpay/transformers.rs b/crates/router/src/connector/trustpay/transformers.rs
index fbff19fd0ad..3b109a7f02e 100644
--- a/crates/router/src/connector/trustpay/transformers.rs
+++ b/crates/router/src/connector/trustpay/transformers.rs
@@ -727,8 +727,8 @@ fn handle_cards_response(
     };
     let payment_response_data = types::PaymentsResponseData::TransactionResponse {
         resource_id: types::ResponseId::ConnectorTransactionId(response.instance_id.clone()),
-        redirection_data,
-        mandate_reference: None,
+        redirection_data: Box::new(redirection_data),
+        mandate_reference: Box::new(None),
         connector_metadata: None,
         network_txn_id: None,
         connector_response_reference_id: None,
@@ -754,11 +754,11 @@ fn handle_bank_redirects_response(
         resource_id: types::ResponseId::ConnectorTransactionId(
             response.payment_request_id.to_string(),
         ),
-        redirection_data: Some(services::RedirectForm::from((
+        redirection_data: Box::new(Some(services::RedirectForm::from((
             response.gateway_url,
             services::Method::Get,
-        ))),
-        mandate_reference: None,
+        )))),
+        mandate_reference: Box::new(None),
         connector_metadata: None,
         network_txn_id: None,
         connector_response_reference_id: None,
@@ -791,8 +791,8 @@ fn handle_bank_redirects_error_response(
     });
     let payment_response_data = types::PaymentsResponseData::TransactionResponse {
         resource_id: types::ResponseId::NoResponseId,
-        redirection_data: None,
-        mandate_reference: None,
+        redirection_data: Box::new(None),
+        mandate_reference: Box::new(None),
         connector_metadata: None,
         network_txn_id: None,
         connector_response_reference_id: None,
@@ -852,8 +852,8 @@ fn handle_bank_redirects_sync_response(
                 .payment_request_id
                 .clone(),
         ),
-        redirection_data: None,
-        mandate_reference: None,
+        redirection_data: Box::new(None),
+        mandate_reference: Box::new(None),
         connector_metadata: None,
         network_txn_id: None,
         connector_response_reference_id: None,
@@ -900,8 +900,8 @@ pub fn handle_webhook_response(
     };
     let payment_response_data = types::PaymentsResponseData::TransactionResponse {
         resource_id: types::ResponseId::NoResponseId,
-        redirection_data: None,
-        mandate_reference: None,
+        redirection_data: Box::new(None),
+        mandate_reference: Box::new(None),
         connector_metadata: None,
         network_txn_id: None,
         connector_response_reference_id: None,
diff --git a/crates/router/src/connector/wellsfargo/transformers.rs b/crates/router/src/connector/wellsfargo/transformers.rs
index 999b81a2ff9..4dd455d0da3 100644
--- a/crates/router/src/connector/wellsfargo/transformers.rs
+++ b/crates/router/src/connector/wellsfargo/transformers.rs
@@ -1791,8 +1791,8 @@ fn get_payment_response(
 
             Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: types::ResponseId::ConnectorTransactionId(info_response.id.clone()),
-                redirection_data: None,
-                mandate_reference,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(mandate_reference),
                 connector_metadata: None,
                 network_txn_id: info_response.processor_information.as_ref().and_then(
                     |processor_information| processor_information.network_transaction_id.clone(),
@@ -2003,8 +2003,8 @@ impl
                     resource_id: types::ResponseId::ConnectorTransactionId(
                         item.response.id.clone(),
                     ),
-                    redirection_data: None,
-                    mandate_reference,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(mandate_reference),
                     connector_metadata: None,
                     network_txn_id: item.response.processor_information.as_ref().and_then(
                         |processor_information| {
@@ -2141,8 +2141,8 @@ impl<F>
                             resource_id: types::ResponseId::ConnectorTransactionId(
                                 item.response.id.clone(),
                             ),
-                            redirection_data: None,
-                            mandate_reference: None,
+                            redirection_data: Box::new(None),
+                            mandate_reference: Box::new(None),
                             connector_metadata: None,
                             network_txn_id: None,
                             connector_response_reference_id: item
@@ -2163,8 +2163,8 @@ impl<F>
                     resource_id: types::ResponseId::ConnectorTransactionId(
                         item.response.id.clone(),
                     ),
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: Some(item.response.id),
diff --git a/crates/router/src/connector/wellsfargopayout/transformers.rs b/crates/router/src/connector/wellsfargopayout/transformers.rs
index e335c3cf59a..135cb5f53cb 100644
--- a/crates/router/src/connector/wellsfargopayout/transformers.rs
+++ b/crates/router/src/connector/wellsfargopayout/transformers.rs
@@ -134,8 +134,8 @@ impl<F, T>
             status: enums::AttemptStatus::from(item.response.status),
             response: Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: types::ResponseId::ConnectorTransactionId(item.response.id),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: None,
diff --git a/crates/router/src/connector/worldpay.rs b/crates/router/src/connector/worldpay.rs
index 777594a4534..79147a35b5e 100644
--- a/crates/router/src/connector/worldpay.rs
+++ b/crates/router/src/connector/worldpay.rs
@@ -260,8 +260,8 @@ impl ConnectorIntegration<api::Void, types::PaymentsCancelData, types::PaymentsR
                             response,
                             Some(data.request.connector_transaction_id.clone()),
                         ))?,
-                        redirection_data: None,
-                        mandate_reference: None,
+                        redirection_data: Box::new(None),
+                        mandate_reference: Box::new(None),
                         connector_metadata: None,
                         network_txn_id: None,
                         connector_response_reference_id: optional_correlation_id,
@@ -403,8 +403,8 @@ impl ConnectorIntegration<api::PSync, types::PaymentsSyncData, types::PaymentsRe
             status,
             response: Ok(types::PaymentsResponseData::TransactionResponse {
                 resource_id: data.request.connector_transaction_id.clone(),
-                redirection_data: None,
-                mandate_reference: None,
+                redirection_data: Box::new(None),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: optional_correlation_id,
@@ -506,8 +506,8 @@ impl ConnectorIntegration<api::Capture, types::PaymentsCaptureData, types::Payme
                             response,
                             Some(data.request.connector_transaction_id.clone()),
                         ))?,
-                        redirection_data: None,
-                        mandate_reference: None,
+                        redirection_data: Box::new(None),
+                        mandate_reference: Box::new(None),
                         connector_metadata: None,
                         network_txn_id: None,
                         connector_response_reference_id: optional_correlation_id,
diff --git a/crates/router/src/connector/worldpay/transformers.rs b/crates/router/src/connector/worldpay/transformers.rs
index fee004a6e4c..efdd0fa6878 100644
--- a/crates/router/src/connector/worldpay/transformers.rs
+++ b/crates/router/src/connector/worldpay/transformers.rs
@@ -485,8 +485,8 @@ impl<F, T>
                     router_data.response,
                     optional_correlation_id.clone(),
                 ))?,
-                redirection_data,
-                mandate_reference: None,
+                redirection_data: Box::new(redirection_data),
+                mandate_reference: Box::new(None),
                 connector_metadata: None,
                 network_txn_id: None,
                 connector_response_reference_id: optional_correlation_id.clone(),
diff --git a/crates/router/src/connector/zsl/transformers.rs b/crates/router/src/connector/zsl/transformers.rs
index c8758f5322c..d6f9117d786 100644
--- a/crates/router/src/connector/zsl/transformers.rs
+++ b/crates/router/src/connector/zsl/transformers.rs
@@ -328,12 +328,12 @@ impl<F, T>
                     status: enums::AttemptStatus::AuthenticationPending, // Redirect is always expected after success response
                     response: Ok(types::PaymentsResponseData::TransactionResponse {
                         resource_id: types::ResponseId::NoResponseId,
-                        redirection_data: Some(services::RedirectForm::Form {
+                        redirection_data: Box::new(Some(services::RedirectForm::Form {
                             endpoint: redirect_url,
                             method: services::Method::Get,
                             form_fields: HashMap::new(),
-                        }),
-                        mandate_reference: None,
+                        })),
+                        mandate_reference: Box::new(None),
                         connector_metadata: None,
                         network_txn_id: None,
                         connector_response_reference_id: Some(item.response.mer_ref.clone()),
@@ -451,8 +451,8 @@ impl<F>
                     resource_id: types::ResponseId::ConnectorTransactionId(
                         item.response.txn_id.clone(),
                     ),
-                    redirection_data: None,
-                    mandate_reference: None,
+                    redirection_data: Box::new(None),
+                    mandate_reference: Box::new(None),
                     connector_metadata: None,
                     network_txn_id: None,
                     connector_response_reference_id: Some(item.response.mer_ref.clone()),
diff --git a/crates/router/src/core/admin.rs b/crates/router/src/core/admin.rs
index 545f94cfeb4..f49f4096340 100644
--- a/crates/router/src/core/admin.rs
+++ b/crates/router/src/core/admin.rs
@@ -2122,7 +2122,7 @@ impl MerchantConnectorAccountUpdateBridge for api_models::admin::MerchantConnect
         Ok(storage::MerchantConnectorAccountUpdate::Update {
             connector_type: Some(self.connector_type),
             connector_label: self.connector_label.clone(),
-            connector_account_details: encrypted_data.connector_account_details,
+            connector_account_details: Box::new(encrypted_data.connector_account_details),
             disabled,
             payment_methods_enabled,
             metadata: self.metadata,
@@ -2136,10 +2136,10 @@ impl MerchantConnectorAccountUpdateBridge for api_models::admin::MerchantConnect
                 None => None,
             },
             applepay_verified_domains: None,
-            pm_auth_config: self.pm_auth_config,
+            pm_auth_config: Box::new(self.pm_auth_config),
             status: Some(connector_status),
-            additional_merchant_data: encrypted_data.additional_merchant_data,
-            connector_wallets_details: encrypted_data.connector_wallets_details,
+            additional_merchant_data: Box::new(encrypted_data.additional_merchant_data),
+            connector_wallets_details: Box::new(encrypted_data.connector_wallets_details),
         })
     }
 }
@@ -2291,25 +2291,27 @@ impl MerchantConnectorAccountUpdateBridge for api_models::admin::MerchantConnect
             connector_name: None,
             merchant_connector_id: None,
             connector_label: self.connector_label.clone(),
-            connector_account_details: encrypted_data.connector_account_details,
+            connector_account_details: Box::new(encrypted_data.connector_account_details),
             test_mode: self.test_mode,
             disabled,
             payment_methods_enabled,
             metadata: self.metadata,
             frm_configs,
             connector_webhook_details: match &self.connector_webhook_details {
-                Some(connector_webhook_details) => connector_webhook_details
-                    .encode_to_value()
-                    .change_context(errors::ApiErrorResponse::InternalServerError)
-                    .map(Some)?
-                    .map(Secret::new),
-                None => None,
+                Some(connector_webhook_details) => Box::new(
+                    connector_webhook_details
+                        .encode_to_value()
+                        .change_context(errors::ApiErrorResponse::InternalServerError)
+                        .map(Some)?
+                        .map(Secret::new),
+                ),
+                None => Box::new(None),
             },
             applepay_verified_domains: None,
-            pm_auth_config: self.pm_auth_config,
+            pm_auth_config: Box::new(self.pm_auth_config),
             status: Some(connector_status),
-            additional_merchant_data: encrypted_data.additional_merchant_data,
-            connector_wallets_details: encrypted_data.connector_wallets_details,
+            additional_merchant_data: Box::new(encrypted_data.additional_merchant_data),
+            connector_wallets_details: Box::new(encrypted_data.connector_wallets_details),
         })
     }
 }
diff --git a/crates/router/src/core/connector_onboarding.rs b/crates/router/src/core/connector_onboarding.rs
index c3de228d9a7..5813a5bcd0c 100644
--- a/crates/router/src/core/connector_onboarding.rs
+++ b/crates/router/src/core/connector_onboarding.rs
@@ -95,7 +95,7 @@ pub async fn sync_onboarding_status(
                 .await?;
 
                 return Ok(ApplicationResponse::Json(api::OnboardingStatus::PayPal(
-                    api::PayPalOnboardingStatus::ConnectorIntegrated(update_mca_data),
+                    api::PayPalOnboardingStatus::ConnectorIntegrated(Box::new(update_mca_data)),
                 )));
             }
             Ok(ApplicationResponse::Json(status))
diff --git a/crates/router/src/core/customers.rs b/crates/router/src/core/customers.rs
index 19fbbf1952b..18cc8682eee 100644
--- a/crates/router/src/core/customers.rs
+++ b/crates/router/src/core/customers.rs
@@ -662,7 +662,7 @@ impl CustomerDeleteBridge for customers::GlobalId {
             description: Some(Description::from_str_unchecked(REDACTED)),
             phone_country_code: Some(REDACTED.to_string()),
             metadata: None,
-            connector_customer: None,
+            connector_customer: Box::new(None),
             default_billing_address: None,
             default_shipping_address: None,
             default_payment_method_id: None,
@@ -904,7 +904,7 @@ impl CustomerDeleteBridge for customers::CustomerId {
             description: Some(Description::from_str_unchecked(REDACTED)),
             phone_country_code: Some(REDACTED.to_string()),
             metadata: None,
-            connector_customer: None,
+            connector_customer: Box::new(None),
             address_id: None,
         };
 
@@ -1204,7 +1204,7 @@ impl CustomerUpdateBridge for customers::CustomerUpdateRequest {
                     phone_country_code: self.phone_country_code.clone(),
                     metadata: self.metadata.clone(),
                     description: self.description.clone(),
-                    connector_customer: None,
+                    connector_customer: Box::new(None),
                     address_id: address.clone().map(|addr| addr.address_id),
                 },
                 key_store,
@@ -1296,7 +1296,7 @@ impl CustomerUpdateBridge for customers::CustomerUpdateRequest {
                     phone_country_code: self.phone_country_code.clone(),
                     metadata: self.metadata.clone(),
                     description: self.description.clone(),
-                    connector_customer: None,
+                    connector_customer: Box::new(None),
                     default_billing_address: encrypted_customer_billing_address.map(Into::into),
                     default_shipping_address: encrypted_customer_shipping_address.map(Into::into),
                     default_payment_method_id: Some(self.default_payment_method_id.clone()),
diff --git a/crates/router/src/core/mandate.rs b/crates/router/src/core/mandate.rs
index b5707979247..5ed3e910563 100644
--- a/crates/router/src/core/mandate.rs
+++ b/crates/router/src/core/mandate.rs
@@ -357,10 +357,10 @@ where
                     network_txn_id,
                     ..
                 } => (mandate_reference.clone(), network_txn_id.clone()),
-                _ => (None, None),
+                _ => (Box::new(None), None),
             };
 
-            let mandate_ids = mandate_reference
+            let mandate_ids = (*mandate_reference)
                 .as_ref()
                 .map(|md| {
                     md.encode_to_value()
@@ -379,7 +379,7 @@ where
                 mandate_ids,
                 network_txn_id,
                 get_insensitive_payment_method_data_if_exists(resp),
-                mandate_reference,
+                *mandate_reference,
                 merchant_connector_id,
             )?
             else {
@@ -439,7 +439,7 @@ impl ForeignFrom<Result<types::PaymentsResponseData, types::ErrorResponse>>
         match resp {
             Ok(types::PaymentsResponseData::TransactionResponse {
                 mandate_reference, ..
-            }) => mandate_reference,
+            }) => *mandate_reference,
             _ => None,
         }
     }
diff --git a/crates/router/src/core/payments.rs b/crates/router/src/core/payments.rs
index 2218197743a..b4acb98a7d4 100644
--- a/crates/router/src/core/payments.rs
+++ b/crates/router/src/core/payments.rs
@@ -3071,9 +3071,9 @@ where
                 let should_continue = matches!(
                     router_data.response,
                     Ok(router_types::PaymentsResponseData::TransactionResponse {
-                        redirection_data: None,
+                        ref redirection_data,
                         ..
-                    })
+                    }) if redirection_data.is_none()
                 ) && router_data.status
                     != common_enums::AttemptStatus::AuthenticationFailed;
                 (router_data, should_continue)
diff --git a/crates/router/src/core/payments/helpers.rs b/crates/router/src/core/payments/helpers.rs
index 51cb5793adb..0de7683097b 100644
--- a/crates/router/src/core/payments/helpers.rs
+++ b/crates/router/src/core/payments/helpers.rs
@@ -1620,7 +1620,7 @@ pub async fn create_customer_if_not_exist<'a, F: Clone, R, D>(
                             phone: Box::new(encryptable_customer.phone),
                             phone_country_code: request_customer_details.phone_country_code,
                             description: None,
-                            connector_customer: None,
+                            connector_customer: Box::new(None),
                             metadata: None,
                             address_id: None,
                         };
@@ -3581,7 +3581,7 @@ pub async fn insert_merchant_connector_creds_to_config(
 
 #[derive(Clone)]
 pub enum MerchantConnectorAccountType {
-    DbVal(domain::MerchantConnectorAccount),
+    DbVal(Box<domain::MerchantConnectorAccount>),
     CacheVal(api_models::admin::MerchantConnectorDetails),
 }
 
@@ -3795,7 +3795,7 @@ pub async fn get_merchant_connector_account(
                         todo!()
                     }
                 };
-            mca.map(MerchantConnectorAccountType::DbVal)
+            mca.map(Box::new).map(MerchantConnectorAccountType::DbVal)
         }
     }
 }
diff --git a/crates/router/src/core/payments/operations/payment_confirm.rs b/crates/router/src/core/payments/operations/payment_confirm.rs
index 74339a88fb6..69cf19b09bb 100644
--- a/crates/router/src/core/payments/operations/payment_confirm.rs
+++ b/crates/router/src/core/payments/operations/payment_confirm.rs
@@ -1496,7 +1496,7 @@ impl<F: Clone> UpdateTracker<F, PaymentData<F>, api::PaymentsRequest> for Paymen
             .event(AuditEvent::new(AuditEventType::PaymentConfirm {
                 client_src,
                 client_ver,
-                frm_message,
+                frm_message: Box::new(frm_message),
             }))
             .with(payment_data.to_event())
             .emit();
diff --git a/crates/router/src/core/payments/operations/payment_response.rs b/crates/router/src/core/payments/operations/payment_response.rs
index ae64fe41b1f..3e115ee74f0 100644
--- a/crates/router/src/core/payments/operations/payment_response.rs
+++ b/crates/router/src/core/payments/operations/payment_response.rs
@@ -1500,7 +1500,7 @@ async fn payment_response_update_tracker<F: Clone, T: types::Capturable>(
 
                             let encoded_data = payment_data.payment_attempt.encoded_data.clone();
 
-                            let authentication_data = redirection_data
+                            let authentication_data = (*redirection_data)
                                 .as_ref()
                                 .map(Encode::encode_to_value)
                                 .transpose()
diff --git a/crates/router/src/core/payments/retry.rs b/crates/router/src/core/payments/retry.rs
index 060e93474b4..7fdccf9c60f 100644
--- a/crates/router/src/core/payments/retry.rs
+++ b/crates/router/src/core/payments/retry.rs
@@ -424,7 +424,7 @@ where
         }) => {
             let encoded_data = payment_data.get_payment_attempt().encoded_data.clone();
 
-            let authentication_data = redirection_data
+            let authentication_data = (*redirection_data)
                 .as_ref()
                 .map(Encode::encode_to_value)
                 .transpose()
diff --git a/crates/router/src/core/payments/tokenization.rs b/crates/router/src/core/payments/tokenization.rs
index b4e5ade5698..9809d40f7f6 100644
--- a/crates/router/src/core/payments/tokenization.rs
+++ b/crates/router/src/core/payments/tokenization.rs
@@ -157,10 +157,9 @@ where
 
             let (connector_mandate_id, mandate_metadata) = match responses {
                 types::PaymentsResponseData::TransactionResponse {
-                    ref mandate_reference,
-                    ..
+                    mandate_reference, ..
                 } => {
-                    if let Some(mandate_ref) = mandate_reference {
+                    if let Some(ref mandate_ref) = *mandate_reference {
                         (
                             mandate_ref.connector_mandate_id.clone(),
                             mandate_ref.mandate_metadata.clone(),
diff --git a/crates/router/src/core/payments/transformers.rs b/crates/router/src/core/payments/transformers.rs
index 58ea3b43462..66e5c996d34 100644
--- a/crates/router/src/core/payments/transformers.rs
+++ b/crates/router/src/core/payments/transformers.rs
@@ -436,8 +436,8 @@ where
     // [#44]: why should response be filled during request
     let response = Ok(types::PaymentsResponseData::TransactionResponse {
         resource_id,
-        redirection_data: None,
-        mandate_reference: None,
+        redirection_data: Box::new(None),
+        mandate_reference: Box::new(None),
         connector_metadata: None,
         network_txn_id: None,
         connector_response_reference_id: None,
diff --git a/crates/router/src/core/payouts.rs b/crates/router/src/core/payouts.rs
index c1b8f78eeb1..02c619b68d9 100644
--- a/crates/router/src/core/payouts.rs
+++ b/crates/router/src/core/payouts.rs
@@ -375,7 +375,7 @@ pub async fn payouts_confirm_core(
         &merchant_account,
         None,
         &key_store,
-        &payouts::PayoutRequest::PayoutCreateRequest(req.to_owned()),
+        &payouts::PayoutRequest::PayoutCreateRequest(Box::new(req.to_owned())),
         locale,
     )
     .await?;
@@ -448,7 +448,7 @@ pub async fn payouts_update_core(
         &merchant_account,
         None,
         &key_store,
-        &payouts::PayoutRequest::PayoutCreateRequest(req.to_owned()),
+        &payouts::PayoutRequest::PayoutCreateRequest(Box::new(req.to_owned())),
         locale,
     )
     .await?;
diff --git a/crates/router/src/core/verification/utils.rs b/crates/router/src/core/verification/utils.rs
index 8193109c250..a51b6c86a34 100644
--- a/crates/router/src/core/verification/utils.rs
+++ b/crates/router/src/core/verification/utils.rs
@@ -68,36 +68,36 @@ pub async fn check_existence_and_add_domain_to_db(
     let updated_mca = storage::MerchantConnectorAccountUpdate::Update {
         connector_type: None,
         connector_name: None,
-        connector_account_details: None,
+        connector_account_details: Box::new(None),
         test_mode: None,
         disabled: None,
         merchant_connector_id: None,
         payment_methods_enabled: None,
         metadata: None,
         frm_configs: None,
-        connector_webhook_details: None,
+        connector_webhook_details: Box::new(None),
         applepay_verified_domains: Some(already_verified_domains.clone()),
-        pm_auth_config: None,
+        pm_auth_config: Box::new(None),
         connector_label: None,
         status: None,
-        connector_wallets_details: None,
-        additional_merchant_data: None,
+        connector_wallets_details: Box::new(None),
+        additional_merchant_data: Box::new(None),
     };
     #[cfg(feature = "v2")]
     let updated_mca = storage::MerchantConnectorAccountUpdate::Update {
         connector_type: None,
-        connector_account_details: None,
+        connector_account_details: Box::new(None),
         disabled: None,
         payment_methods_enabled: None,
         metadata: None,
         frm_configs: None,
         connector_webhook_details: None,
         applepay_verified_domains: Some(already_verified_domains.clone()),
-        pm_auth_config: None,
+        pm_auth_config: Box::new(None),
         connector_label: None,
         status: None,
-        connector_wallets_details: None,
-        additional_merchant_data: None,
+        connector_wallets_details: Box::new(None),
+        additional_merchant_data: Box::new(None),
     };
     state
         .store
diff --git a/crates/router/src/core/webhooks/incoming.rs b/crates/router/src/core/webhooks/incoming.rs
index 66de5106e6f..3627438547c 100644
--- a/crates/router/src/core/webhooks/incoming.rs
+++ b/crates/router/src/core/webhooks/incoming.rs
@@ -613,7 +613,7 @@ async fn payments_incoming_webhook_flow(
                     enums::EventClass::Payments,
                     payment_id.get_string_repr().to_owned(),
                     enums::EventObjectType::PaymentDetails,
-                    api::OutgoingWebhookContent::PaymentDetails(payments_response),
+                    api::OutgoingWebhookContent::PaymentDetails(Box::new(payments_response)),
                     primary_object_created_at,
                 ))
                 .await?;
@@ -745,7 +745,7 @@ async fn payouts_incoming_webhook_flow(
                 enums::EventClass::Payouts,
                 updated_payout_attempt.payout_id.clone(),
                 enums::EventObjectType::PayoutDetails,
-                api::OutgoingWebhookContent::PayoutDetails(payout_create_response),
+                api::OutgoingWebhookContent::PayoutDetails(Box::new(payout_create_response)),
                 Some(updated_payout_attempt.created_at),
             ))
             .await?;
@@ -852,7 +852,7 @@ async fn refunds_incoming_webhook_flow(
             enums::EventClass::Refunds,
             refund_id,
             enums::EventObjectType::RefundDetails,
-            api::OutgoingWebhookContent::RefundDetails(refund_response),
+            api::OutgoingWebhookContent::RefundDetails(Box::new(refund_response)),
             Some(updated_refund.created_at),
         ))
         .await?;
@@ -1128,7 +1128,9 @@ async fn external_authentication_incoming_webhook_flow(
                                 enums::EventClass::Payments,
                                 payment_id.get_string_repr().to_owned(),
                                 enums::EventObjectType::PaymentDetails,
-                                api::OutgoingWebhookContent::PaymentDetails(payments_response),
+                                api::OutgoingWebhookContent::PaymentDetails(Box::new(
+                                    payments_response,
+                                )),
                                 primary_object_created_at,
                             ))
                             .await?;
@@ -1334,7 +1336,7 @@ async fn frm_incoming_webhook_flow(
                         enums::EventClass::Payments,
                         payment_id.get_string_repr().to_owned(),
                         enums::EventObjectType::PaymentDetails,
-                        api::OutgoingWebhookContent::PaymentDetails(payments_response),
+                        api::OutgoingWebhookContent::PaymentDetails(Box::new(payments_response)),
                         primary_object_created_at,
                     ))
                     .await?;
@@ -1498,7 +1500,7 @@ async fn bank_transfer_webhook_flow(
                     enums::EventClass::Payments,
                     payment_id.get_string_repr().to_owned(),
                     enums::EventObjectType::PaymentDetails,
-                    api::OutgoingWebhookContent::PaymentDetails(payments_response),
+                    api::OutgoingWebhookContent::PaymentDetails(Box::new(payments_response)),
                     primary_object_created_at,
                 ))
                 .await?;
diff --git a/crates/router/src/core/webhooks/outgoing.rs b/crates/router/src/core/webhooks/outgoing.rs
index fbf69278357..0a9c17ed3a0 100644
--- a/crates/router/src/core/webhooks/outgoing.rs
+++ b/crates/router/src/core/webhooks/outgoing.rs
@@ -361,7 +361,7 @@ async fn trigger_webhook_to_merchant(
                         &event_id,
                         client_error,
                         delivery_attempt,
-                        ScheduleWebhookRetry::WithProcessTracker(process_tracker),
+                        ScheduleWebhookRetry::WithProcessTracker(Box::new(process_tracker)),
                     )
                     .await?;
                 }
@@ -391,7 +391,7 @@ async fn trigger_webhook_to_merchant(
                             delivery_attempt,
                             status_code.as_u16(),
                             "An error occurred when sending webhook to merchant",
-                            ScheduleWebhookRetry::WithProcessTracker(process_tracker),
+                            ScheduleWebhookRetry::WithProcessTracker(Box::new(process_tracker)),
                         )
                         .await?;
                     }
@@ -668,7 +668,7 @@ pub(crate) fn get_outgoing_webhook_request(
 
 #[derive(Debug)]
 enum ScheduleWebhookRetry {
-    WithProcessTracker(storage::ProcessTracker),
+    WithProcessTracker(Box<storage::ProcessTracker>),
     NoSchedule,
 }
 
@@ -757,7 +757,7 @@ async fn api_client_error_handler(
         outgoing_webhook_retry::retry_webhook_delivery_task(
             &*state.store,
             merchant_id,
-            process_tracker,
+            *process_tracker,
         )
         .await
         .change_context(errors::WebhooksFlowError::OutgoingWebhookRetrySchedulingFailed)?;
@@ -903,7 +903,7 @@ async fn error_response_handler(
         outgoing_webhook_retry::retry_webhook_delivery_task(
             &*state.store,
             merchant_id,
-            process_tracker,
+            *process_tracker,
         )
         .await
         .change_context(errors::WebhooksFlowError::OutgoingWebhookRetrySchedulingFailed)?;
diff --git a/crates/router/src/core/webhooks/utils.rs b/crates/router/src/core/webhooks/utils.rs
index 8680e43eff3..3d71f5f5553 100644
--- a/crates/router/src/core/webhooks/utils.rs
+++ b/crates/router/src/core/webhooks/utils.rs
@@ -64,7 +64,7 @@ pub async fn construct_webhook_router_data<'a>(
     request_details: &api::IncomingWebhookRequestDetails<'_>,
 ) -> CustomResult<types::VerifyWebhookSourceRouterData, errors::ApiErrorResponse> {
     let auth_type: types::ConnectorAuthType =
-        helpers::MerchantConnectorAccountType::DbVal(merchant_connector_account.clone())
+        helpers::MerchantConnectorAccountType::DbVal(Box::new(merchant_connector_account.clone()))
             .get_connector_account_details()
             .parse_value("ConnectorAuthType")
             .change_context(errors::ApiErrorResponse::InternalServerError)?;
diff --git a/crates/router/src/core/webhooks/webhook_events.rs b/crates/router/src/core/webhooks/webhook_events.rs
index 34a7c69d91a..64b52b7995e 100644
--- a/crates/router/src/core/webhooks/webhook_events.rs
+++ b/crates/router/src/core/webhooks/webhook_events.rs
@@ -14,8 +14,8 @@ const INITIAL_DELIVERY_ATTEMPTS_LIST_MAX_LIMIT: i64 = 100;
 
 #[derive(Debug)]
 enum MerchantAccountOrProfile {
-    MerchantAccount(domain::MerchantAccount),
-    Profile(domain::Profile),
+    MerchantAccount(Box<domain::MerchantAccount>),
+    Profile(Box<domain::Profile>),
 }
 
 #[instrument(skip(state))]
@@ -302,7 +302,7 @@ async fn get_account_and_key_store(
                 })?;
 
             Ok((
-                MerchantAccountOrProfile::Profile(business_profile),
+                MerchantAccountOrProfile::Profile(Box::new(business_profile)),
                 merchant_key_store,
             ))
         }
@@ -318,7 +318,7 @@ async fn get_account_and_key_store(
                 .to_not_found_response(errors::ApiErrorResponse::MerchantAccountNotFound)?;
 
             Ok((
-                MerchantAccountOrProfile::MerchantAccount(merchant_account),
+                MerchantAccountOrProfile::MerchantAccount(Box::new(merchant_account)),
                 merchant_key_store,
             ))
         }
diff --git a/crates/router/src/db/address.rs b/crates/router/src/db/address.rs
index 3a8750feff9..2e2bb7dccbb 100644
--- a/crates/router/src/db/address.rs
+++ b/crates/router/src/db/address.rs
@@ -493,12 +493,12 @@ mod storage {
 
                     let redis_entry = kv::TypedSql {
                         op: kv::DBOperation::Update {
-                            updatable: kv::Updateable::AddressUpdate(Box::new(
+                            updatable: Box::new(kv::Updateable::AddressUpdate(Box::new(
                                 kv::AddressUpdateMems {
                                     orig: address,
                                     update_data: address_update.into(),
                                 },
-                            )),
+                            ))),
                         },
                     };
 
@@ -597,7 +597,7 @@ mod storage {
 
                     let redis_entry = kv::TypedSql {
                         op: kv::DBOperation::Insert {
-                            insertable: kv::Insertable::Address(Box::new(address_new)),
+                            insertable: Box::new(kv::Insertable::Address(Box::new(address_new))),
                         },
                     };
 
diff --git a/crates/router/src/db/customers.rs b/crates/router/src/db/customers.rs
index 5020c238e4a..ae23f81e2ea 100644
--- a/crates/router/src/db/customers.rs
+++ b/crates/router/src/db/customers.rs
@@ -446,10 +446,12 @@ mod storage {
 
                     let redis_entry = kv::TypedSql {
                         op: kv::DBOperation::Update {
-                            updatable: kv::Updateable::CustomerUpdate(kv::CustomerUpdateMems {
-                                orig: customer,
-                                update_data: customer_update.into(),
-                            }),
+                            updatable: Box::new(kv::Updateable::CustomerUpdate(
+                                kv::CustomerUpdateMems {
+                                    orig: customer,
+                                    update_data: customer_update.into(),
+                                },
+                            )),
                         },
                     };
 
@@ -689,7 +691,7 @@ mod storage {
 
                     let redis_entry = kv::TypedSql {
                         op: kv::DBOperation::Insert {
-                            insertable: kv::Insertable::Customer(new_customer.clone()),
+                            insertable: Box::new(kv::Insertable::Customer(new_customer.clone())),
                         },
                     };
                     let storage_customer = new_customer.into();
@@ -768,7 +770,7 @@ mod storage {
 
                     let redis_entry = kv::TypedSql {
                         op: kv::DBOperation::Insert {
-                            insertable: kv::Insertable::Customer(new_customer.clone()),
+                            insertable: Box::new(kv::Insertable::Customer(new_customer.clone())),
                         },
                     };
                     let storage_customer = new_customer.into();
@@ -931,10 +933,12 @@ mod storage {
 
                     let redis_entry = kv::TypedSql {
                         op: kv::DBOperation::Update {
-                            updatable: kv::Updateable::CustomerUpdate(kv::CustomerUpdateMems {
-                                orig: customer,
-                                update_data: customer_update.into(),
-                            }),
+                            updatable: Box::new(kv::Updateable::CustomerUpdate(
+                                kv::CustomerUpdateMems {
+                                    orig: customer,
+                                    update_data: customer_update.into(),
+                                },
+                            )),
                         },
                     };
 
diff --git a/crates/router/src/db/mandate.rs b/crates/router/src/db/mandate.rs
index 95733805b43..076cb768e61 100644
--- a/crates/router/src/db/mandate.rs
+++ b/crates/router/src/db/mandate.rs
@@ -274,10 +274,12 @@ mod storage {
 
                     let redis_entry = kv::TypedSql {
                         op: kv::DBOperation::Update {
-                            updatable: kv::Updateable::MandateUpdate(kv::MandateUpdateMems {
-                                orig: mandate,
-                                update_data: m_update,
-                            }),
+                            updatable: Box::new(kv::Updateable::MandateUpdate(
+                                kv::MandateUpdateMems {
+                                    orig: mandate,
+                                    update_data: m_update,
+                                },
+                            )),
                         },
                     };
 
@@ -346,7 +348,7 @@ mod storage {
 
                     let redis_entry = kv::TypedSql {
                         op: kv::DBOperation::Insert {
-                            insertable: kv::Insertable::Mandate(mandate),
+                            insertable: Box::new(kv::Insertable::Mandate(mandate)),
                         },
                     };
 
diff --git a/crates/router/src/db/payment_method.rs b/crates/router/src/db/payment_method.rs
index e75fb940a35..ac66ed707f1 100644
--- a/crates/router/src/db/payment_method.rs
+++ b/crates/router/src/db/payment_method.rs
@@ -496,7 +496,7 @@ mod storage {
 
                     let redis_entry = kv::TypedSql {
                         op: kv::DBOperation::Insert {
-                            insertable: kv::Insertable::PaymentMethod(payment_method_new),
+                            insertable: Box::new(kv::Insertable::PaymentMethod(payment_method_new)),
                         },
                     };
 
@@ -588,12 +588,12 @@ mod storage {
 
                     let redis_entry = kv::TypedSql {
                         op: kv::DBOperation::Update {
-                            updatable: kv::Updateable::PaymentMethodUpdate(
+                            updatable: Box::new(kv::Updateable::PaymentMethodUpdate(Box::new(
                                 kv::PaymentMethodUpdateMems {
                                     orig: payment_method,
                                     update_data: p_update,
                                 },
-                            ),
+                            ))),
                         },
                     };
 
diff --git a/crates/router/src/db/refund.rs b/crates/router/src/db/refund.rs
index 41cb3cef5c6..745170d7075 100644
--- a/crates/router/src/db/refund.rs
+++ b/crates/router/src/db/refund.rs
@@ -445,7 +445,7 @@ mod storage {
 
                     let redis_entry = kv::TypedSql {
                         op: kv::DBOperation::Insert {
-                            insertable: kv::Insertable::Refund(new),
+                            insertable: Box::new(kv::Insertable::Refund(new)),
                         },
                     };
 
@@ -617,10 +617,12 @@ mod storage {
 
                     let redis_entry = kv::TypedSql {
                         op: kv::DBOperation::Update {
-                            updatable: kv::Updateable::RefundUpdate(kv::RefundUpdateMems {
-                                orig: this,
-                                update_data: refund,
-                            }),
+                            updatable: Box::new(kv::Updateable::RefundUpdate(
+                                kv::RefundUpdateMems {
+                                    orig: this,
+                                    update_data: refund,
+                                },
+                            )),
                         },
                     };
 
diff --git a/crates/router/src/db/reverse_lookup.rs b/crates/router/src/db/reverse_lookup.rs
index 06bd84675b1..c022c70d9e2 100644
--- a/crates/router/src/db/reverse_lookup.rs
+++ b/crates/router/src/db/reverse_lookup.rs
@@ -116,7 +116,7 @@ mod storage {
                     };
                     let redis_entry = kv::TypedSql {
                         op: kv::DBOperation::Insert {
-                            insertable: kv::Insertable::ReverseLookUp(new),
+                            insertable: Box::new(kv::Insertable::ReverseLookUp(new)),
                         },
                     };
 
diff --git a/crates/router/src/events/audit_events.rs b/crates/router/src/events/audit_events.rs
index 367a573a93b..9b7a688f7eb 100644
--- a/crates/router/src/events/audit_events.rs
+++ b/crates/router/src/events/audit_events.rs
@@ -18,7 +18,7 @@ pub enum AuditEventType {
     PaymentConfirm {
         client_src: Option<String>,
         client_ver: Option<String>,
-        frm_message: Option<FraudCheck>,
+        frm_message: Box<Option<FraudCheck>>,
     },
     PaymentCancelled {
         cancellation_reason: Option<String>,
diff --git a/crates/router/src/utils.rs b/crates/router/src/utils.rs
index a54c2bc8ad6..f56a741dc1a 100644
--- a/crates/router/src/utils.rs
+++ b/crates/router/src/utils.rs
@@ -1166,9 +1166,9 @@ where
                             diesel_models::enums::EventClass::Payments,
                             payment_id.get_string_repr().to_owned(),
                             diesel_models::enums::EventObjectType::PaymentDetails,
-                            webhooks::OutgoingWebhookContent::PaymentDetails(
+                            webhooks::OutgoingWebhookContent::PaymentDetails(Box::new(
                                 payments_response_json,
-                            ),
+                            )),
                             primary_object_created_at,
                         ))
                         .await
diff --git a/crates/router/src/workflows/outgoing_webhook_retry.rs b/crates/router/src/workflows/outgoing_webhook_retry.rs
index eb4530bbe54..1bfcc8ebe7b 100644
--- a/crates/router/src/workflows/outgoing_webhook_retry.rs
+++ b/crates/router/src/workflows/outgoing_webhook_retry.rs
@@ -423,7 +423,7 @@ async fn get_outgoing_webhook_content_and_event_type(
             logger::debug!(current_resource_status=%payments_response.status);
 
             Ok((
-                OutgoingWebhookContent::PaymentDetails(payments_response),
+                OutgoingWebhookContent::PaymentDetails(Box::new(payments_response)),
                 event_type,
             ))
         }
@@ -449,7 +449,7 @@ async fn get_outgoing_webhook_content_and_event_type(
             let refund_response = RefundResponse::foreign_from(refund);
 
             Ok((
-                OutgoingWebhookContent::RefundDetails(refund_response),
+                OutgoingWebhookContent::RefundDetails(Box::new(refund_response)),
                 event_type,
             ))
         }
@@ -548,7 +548,7 @@ async fn get_outgoing_webhook_content_and_event_type(
             logger::debug!(current_resource_status=%payout_data.payout_attempt.status);
 
             Ok((
-                OutgoingWebhookContent::PayoutDetails(payout_create_response),
+                OutgoingWebhookContent::PayoutDetails(Box::new(payout_create_response)),
                 event_type,
             ))
         }
diff --git a/crates/storage_impl/src/lookup.rs b/crates/storage_impl/src/lookup.rs
index 54377e45267..eec85e267b9 100644
--- a/crates/storage_impl/src/lookup.rs
+++ b/crates/storage_impl/src/lookup.rs
@@ -93,7 +93,7 @@ impl<T: DatabaseStore> ReverseLookupInterface for KVRouterStore<T> {
                 };
                 let redis_entry = kv::TypedSql {
                     op: kv::DBOperation::Insert {
-                        insertable: kv::Insertable::ReverseLookUp(new),
+                        insertable: Box::new(kv::Insertable::ReverseLookUp(new)),
                     },
                 };
 
diff --git a/crates/storage_impl/src/payments/payment_attempt.rs b/crates/storage_impl/src/payments/payment_attempt.rs
index 36a9da5944b..552630a0f76 100644
--- a/crates/storage_impl/src/payments/payment_attempt.rs
+++ b/crates/storage_impl/src/payments/payment_attempt.rs
@@ -538,9 +538,9 @@ impl<T: DatabaseStore> PaymentAttemptInterface for KVRouterStore<T> {
 
                 let redis_entry = kv::TypedSql {
                     op: kv::DBOperation::Insert {
-                        insertable: kv::Insertable::PaymentAttempt(
+                        insertable: Box::new(kv::Insertable::PaymentAttempt(Box::new(
                             payment_attempt.to_storage_model(),
-                        ),
+                        ))),
                     },
                 };
 
@@ -645,12 +645,12 @@ impl<T: DatabaseStore> PaymentAttemptInterface for KVRouterStore<T> {
 
                 let redis_entry = kv::TypedSql {
                     op: kv::DBOperation::Update {
-                        updatable: kv::Updateable::PaymentAttemptUpdate(
+                        updatable: Box::new(kv::Updateable::PaymentAttemptUpdate(Box::new(
                             kv::PaymentAttemptUpdateMems {
                                 orig: this.clone().to_storage_model(),
                                 update_data: payment_attempt.to_storage_model(),
                             },
-                        ),
+                        ))),
                     },
                 };
 
diff --git a/crates/storage_impl/src/payments/payment_intent.rs b/crates/storage_impl/src/payments/payment_intent.rs
index 8ca63e79037..3fcd30f1e89 100644
--- a/crates/storage_impl/src/payments/payment_intent.rs
+++ b/crates/storage_impl/src/payments/payment_intent.rs
@@ -103,7 +103,9 @@ impl<T: DatabaseStore> PaymentIntentInterface for KVRouterStore<T> {
 
                 let redis_entry = kv::TypedSql {
                     op: kv::DBOperation::Insert {
-                        insertable: kv::Insertable::PaymentIntent(new_payment_intent),
+                        insertable: Box::new(kv::Insertable::PaymentIntent(Box::new(
+                            new_payment_intent,
+                        ))),
                     },
                 };
 
@@ -219,12 +221,12 @@ impl<T: DatabaseStore> PaymentIntentInterface for KVRouterStore<T> {
 
                 let redis_entry = kv::TypedSql {
                     op: kv::DBOperation::Update {
-                        updatable: kv::Updateable::PaymentIntentUpdate(
+                        updatable: Box::new(kv::Updateable::PaymentIntentUpdate(Box::new(
                             kv::PaymentIntentUpdateMems {
                                 orig: origin_diesel_intent,
                                 update_data: diesel_intent_update,
                             },
-                        ),
+                        ))),
                     },
                 };
 
diff --git a/crates/storage_impl/src/payouts/payout_attempt.rs b/crates/storage_impl/src/payouts/payout_attempt.rs
index 81d06a1cbd5..3ac66a2c301 100644
--- a/crates/storage_impl/src/payouts/payout_attempt.rs
+++ b/crates/storage_impl/src/payouts/payout_attempt.rs
@@ -93,9 +93,9 @@ impl<T: DatabaseStore> PayoutAttemptInterface for KVRouterStore<T> {
 
                 let redis_entry = kv::TypedSql {
                     op: kv::DBOperation::Insert {
-                        insertable: kv::Insertable::PayoutAttempt(
+                        insertable: Box::new(kv::Insertable::PayoutAttempt(
                             new_payout_attempt.to_storage_model(),
-                        ),
+                        )),
                     },
                 };
 
@@ -182,12 +182,12 @@ impl<T: DatabaseStore> PayoutAttemptInterface for KVRouterStore<T> {
 
                 let redis_entry = kv::TypedSql {
                     op: kv::DBOperation::Update {
-                        updatable: kv::Updateable::PayoutAttemptUpdate(
+                        updatable: Box::new(kv::Updateable::PayoutAttemptUpdate(
                             kv::PayoutAttemptUpdateMems {
                                 orig: origin_diesel_payout,
                                 update_data: diesel_payout_update,
                             },
-                        ),
+                        )),
                     },
                 };
 
diff --git a/crates/storage_impl/src/payouts/payouts.rs b/crates/storage_impl/src/payouts/payouts.rs
index 9a94743da3f..2f6540732fd 100644
--- a/crates/storage_impl/src/payouts/payouts.rs
+++ b/crates/storage_impl/src/payouts/payouts.rs
@@ -130,7 +130,7 @@ impl<T: DatabaseStore> PayoutsInterface for KVRouterStore<T> {
 
                 let redis_entry = kv::TypedSql {
                     op: kv::DBOperation::Insert {
-                        insertable: kv::Insertable::Payouts(new.to_storage_model()),
+                        insertable: Box::new(kv::Insertable::Payouts(new.to_storage_model())),
                     },
                 };
 
@@ -201,10 +201,10 @@ impl<T: DatabaseStore> PayoutsInterface for KVRouterStore<T> {
 
                 let redis_entry = kv::TypedSql {
                     op: kv::DBOperation::Update {
-                        updatable: kv::Updateable::PayoutsUpdate(kv::PayoutsUpdateMems {
+                        updatable: Box::new(kv::Updateable::PayoutsUpdate(kv::PayoutsUpdateMems {
                             orig: origin_diesel_payout,
                             update_data: diesel_payout_update,
-                        }),
+                        })),
                     },
                 };