Bug: [FEATURE] : Add `WASM` support for `endpoint_prefix` in dashboard



### Feature Description

Add WASM configs for dashboard to take `endpoint_prefix` as input for Adyen Connector Create.

### Possible Implementation

Add WASM configs for dashboard to take `endpoint_prefix` as input for Adyen Connector Create.

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

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

### Have you read the Contributing Guidelines?

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

### Are you willing to submit a PR?

Yes, I am willing to submit a PR!
diff --git a/crates/connector_configs/src/common_config.rs b/crates/connector_configs/src/common_config.rs
index c3cbaab4ab3..2af5b88b337 100644
--- a/crates/connector_configs/src/common_config.rs
+++ b/crates/connector_configs/src/common_config.rs
@@ -81,6 +81,7 @@ pub struct ApiModelMetaData {
     pub google_pay: Option<GoogleApiModelData>,
     pub apple_pay: Option<ApplePayData>,
     pub apple_pay_combined: Option<ApplePayData>,
+    pub endpoint_prefix: Option<String>,
 }
 
 #[serde_with::skip_serializing_none]
@@ -173,4 +174,5 @@ pub struct DashboardMetaData {
     pub google_pay: Option<GooglePayData>,
     pub apple_pay: Option<ApplePayData>,
     pub apple_pay_combined: Option<ApplePayData>,
+    pub endpoint_prefix: Option<String>,
 }
diff --git a/crates/connector_configs/src/connector.rs b/crates/connector_configs/src/connector.rs
index f0997d53107..357ee0cb73f 100644
--- a/crates/connector_configs/src/connector.rs
+++ b/crates/connector_configs/src/connector.rs
@@ -74,6 +74,7 @@ pub struct ConfigMetadata {
     pub google_pay: Option<GooglePayData>,
     pub apple_pay: Option<ApplePayTomlConfig>,
     pub merchant_id: Option<String>,
+    pub endpoint_prefix: Option<String>,
 }
 
 #[serde_with::skip_serializing_none]
diff --git a/crates/connector_configs/src/response_modifier.rs b/crates/connector_configs/src/response_modifier.rs
index 80332612c13..5942a9e01ae 100644
--- a/crates/connector_configs/src/response_modifier.rs
+++ b/crates/connector_configs/src/response_modifier.rs
@@ -293,6 +293,10 @@ impl ConnectorApiIntegrationPayload {
             Some(meta_data) => meta_data.terminal_id,
             _ => None,
         };
+        let endpoint_prefix = match response.metadata.clone() {
+            Some(meta_data) => meta_data.endpoint_prefix,
+            _ => None,
+        };
         let apple_pay = match response.metadata.clone() {
             Some(meta_data) => meta_data.apple_pay,
             _ => None,
@@ -315,6 +319,7 @@ impl ConnectorApiIntegrationPayload {
             account_name,
             terminal_id,
             merchant_id,
+            endpoint_prefix,
         };
 
         DashboardRequestPayload {
diff --git a/crates/connector_configs/src/transformer.rs b/crates/connector_configs/src/transformer.rs
index be68a0c5f94..735178cd676 100644
--- a/crates/connector_configs/src/transformer.rs
+++ b/crates/connector_configs/src/transformer.rs
@@ -186,6 +186,7 @@ impl DashboardRequestPayload {
             merchant_account_id: None,
             merchant_id: None,
             merchant_config_currency: None,
+            endpoint_prefix: None,
         };
         let meta_data = match request.metadata {
             Some(data) => data,
@@ -196,6 +197,7 @@ impl DashboardRequestPayload {
         let merchant_account_id = meta_data.merchant_account_id.clone();
         let merchant_id = meta_data.merchant_id.clone();
         let terminal_id = meta_data.terminal_id.clone();
+        let endpoint_prefix = meta_data.endpoint_prefix.clone();
         let apple_pay = meta_data.apple_pay;
         let apple_pay_combined = meta_data.apple_pay_combined;
         let merchant_config_currency = meta_data.merchant_config_currency;
@@ -208,6 +210,7 @@ impl DashboardRequestPayload {
             merchant_id,
             merchant_config_currency,
             apple_pay_combined,
+            endpoint_prefix,
         })
     }
 
diff --git a/crates/diesel_models/src/enums.rs b/crates/diesel_models/src/enums.rs
index a616f302cfc..0310944de7e 100644
--- a/crates/diesel_models/src/enums.rs
+++ b/crates/diesel_models/src/enums.rs
@@ -372,6 +372,9 @@ pub enum BankNames {
     TsbBank,
     TescoBank,
     UlsterBank,
+    Yoursafe,
+    N26,
+    NationaleNederlanden,
 }
 
 #[derive(
diff --git a/crates/router/src/connector/adyen.rs b/crates/router/src/connector/adyen.rs
index 261495e2bfa..93301364e62 100644
--- a/crates/router/src/connector/adyen.rs
+++ b/crates/router/src/connector/adyen.rs
@@ -280,10 +280,12 @@ fn build_env_specific_endpoint(
     } else {
         let adyen_connector_metadata_object =
             transformers::AdyenConnectorMetadataObject::try_from(connector_metadata)?;
-        Ok(base_url.replace(
-            "{{merchant_endpoint_prefix}}",
-            &adyen_connector_metadata_object.endpoint_prefix,
-        ))
+        let endpoint_prefix = adyen_connector_metadata_object.endpoint_prefix.ok_or(
+            errors::ConnectorError::InvalidConnectorConfig {
+                config: "metadata.endpoint_prefix",
+            },
+        )?;
+        Ok(base_url.replace("{{merchant_endpoint_prefix}}", &endpoint_prefix))
     }
 }
 
@@ -1556,17 +1558,6 @@ impl services::ConnectorIntegration<api::Execute, types::RefundsData, types::Ref
 impl services::ConnectorIntegration<api::RSync, types::RefundsData, types::RefundsResponseData>
     for Adyen
 {
-    fn build_request(
-        &self,
-        _req: &types::RefundsRouterData<api::RSync>,
-        _connectors: &settings::Connectors,
-    ) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
-        Err(errors::ConnectorError::FlowNotSupported {
-            flow: "Rsync".to_owned(),
-            connector: "Adyen".to_owned(),
-        }
-        .into())
-    }
 }
 
 fn get_webhook_object_from_body(
diff --git a/crates/router/src/connector/adyen/transformers.rs b/crates/router/src/connector/adyen/transformers.rs
index 7f20041e1fc..9fbf7d99812 100644
--- a/crates/router/src/connector/adyen/transformers.rs
+++ b/crates/router/src/connector/adyen/transformers.rs
@@ -63,7 +63,7 @@ impl<T>
 }
 #[derive(Debug, Default, Serialize, Deserialize)]
 pub struct AdyenConnectorMetadataObject {
-    pub endpoint_prefix: String,
+    pub endpoint_prefix: Option<String>,
 }
 
 impl TryFrom<&Option<pii::SecretSerdeValue>> for AdyenConnectorMetadataObject {
@@ -106,7 +106,8 @@ pub enum AuthType {
 #[serde(rename_all = "camelCase")]
 pub struct AdditionalData {
     authorisation_type: Option<AuthType>,
-    manual_capture: Option<bool>,
+    manual_capture: Option<String>,
+    execute_three_d: Option<String>,
     pub recurring_processing_model: Option<AdyenRecurringModel>,
     /// Enable recurring details in dashboard to receive this ID, https://docs.adyen.com/online-payments/tokenization/create-and-use-tokens#test-and-go-live
     #[serde(rename = "recurring.recurringDetailReference")]
@@ -1641,19 +1642,28 @@ fn get_browser_info(
 }
 
 fn get_additional_data(item: &types::PaymentsAuthorizeRouterData) -> Option<AdditionalData> {
-    match item.request.capture_method {
+    let (authorisation_type, manual_capture) = match item.request.capture_method {
         Some(diesel_models::enums::CaptureMethod::Manual)
-        | Some(diesel_models::enums::CaptureMethod::ManualMultiple) => Some(AdditionalData {
-            authorisation_type: Some(AuthType::PreAuth),
-            manual_capture: Some(true),
-            network_tx_reference: None,
-            recurring_detail_reference: None,
-            recurring_shopper_reference: None,
-            recurring_processing_model: Some(AdyenRecurringModel::UnscheduledCardOnFile),
-            ..AdditionalData::default()
-        }),
-        _ => None,
-    }
+        | Some(diesel_models::enums::CaptureMethod::ManualMultiple) => {
+            (Some(AuthType::PreAuth), Some("true".to_string()))
+        }
+        _ => (None, None),
+    };
+    let execute_three_d = if matches!(item.auth_type, enums::AuthenticationType::ThreeDs) {
+        Some("true".to_string())
+    } else {
+        None
+    };
+    Some(AdditionalData {
+        authorisation_type,
+        manual_capture,
+        execute_three_d,
+        network_tx_reference: None,
+        recurring_detail_reference: None,
+        recurring_shopper_reference: None,
+        recurring_processing_model: None,
+        ..AdditionalData::default()
+    })
 }
 
 fn get_channel_type(pm_type: &Option<storage_enums::PaymentMethodType>) -> Option<Channel> {
@@ -3809,7 +3819,7 @@ impl<F> TryFrom<types::RefundsResponseRouterData<F, AdyenRefundResponse>>
     ) -> Result<Self, Self::Error> {
         Ok(Self {
             response: Ok(types::RefundsResponseData {
-                connector_refund_id: item.response.reference,
+                connector_refund_id: item.response.psp_reference,
                 // From the docs, the only value returned is "received", outcome of refund is available
                 // through refund notification webhook
                 // For more info: https://docs.adyen.com/online-payments/refund
diff --git a/postman/collection-dir/adyen_uk/Flow Testcases/Happy Cases/Scenario5-Void the payment/Payments - Cancel/event.test.js b/postman/collection-dir/adyen_uk/Flow Testcases/Happy Cases/Scenario5-Void the payment/Payments - Cancel/event.test.js
index dcf3f191643..cfbd9695bd1 100644
--- a/postman/collection-dir/adyen_uk/Flow Testcases/Happy Cases/Scenario5-Void the payment/Payments - Cancel/event.test.js	
+++ b/postman/collection-dir/adyen_uk/Flow Testcases/Happy Cases/Scenario5-Void the payment/Payments - Cancel/event.test.js	
@@ -22,7 +22,7 @@ pm.test("[POST]::/payments/:id/cancel - Response has JSON Body", function () {
 let jsonData = {};
 try {
   jsonData = pm.response.json();
-} catch (e) {}
+} catch (e) { }
 
 // pm.collectionVariables - Set payment_id as variable for jsonData.payment_id
 if (jsonData?.payment_id) {
@@ -53,9 +53,9 @@ if (jsonData?.client_secret) {
 // Response body should have value "cancelled" for "status"
 if (jsonData?.status) {
   pm.test(
-    "[POST]::/payments/:id/cancel - Content check if value for 'status' matches 'cancelled'",
+    "[POST]::/payments/:id/cancel - Content check if value for 'status' matches 'processing'",
     function () {
-      pm.expect(jsonData.status).to.eql("cancelled");
+      pm.expect(jsonData.status).to.eql("processing");
     },
   );
 }
diff --git a/postman/collection-dir/adyen_uk/Flow Testcases/Happy Cases/Scenario5-Void the payment/Payments - Retrieve/event.test.js b/postman/collection-dir/adyen_uk/Flow Testcases/Happy Cases/Scenario5-Void the payment/Payments - Retrieve/event.test.js
index 5e52e13a59e..ec02aad8626 100644
--- a/postman/collection-dir/adyen_uk/Flow Testcases/Happy Cases/Scenario5-Void the payment/Payments - Retrieve/event.test.js	
+++ b/postman/collection-dir/adyen_uk/Flow Testcases/Happy Cases/Scenario5-Void the payment/Payments - Retrieve/event.test.js	
@@ -19,7 +19,7 @@ pm.test("[GET]::/payments/:id - Response has JSON Body", function () {
 let jsonData = {};
 try {
   jsonData = pm.response.json();
-} catch (e) {}
+} catch (e) { }
 
 // pm.collectionVariables - Set payment_id as variable for jsonData.payment_id
 if (jsonData?.payment_id) {
@@ -63,9 +63,9 @@ if (jsonData?.client_secret) {
 // Response body should have value "cancelled" for "status"
 if (jsonData?.status) {
   pm.test(
-    "[POST]::/payments/:id - Content check if value for 'status' matches 'cancelled'",
+    "[POST]::/payments/:id - Content check if value for 'status' matches 'processing'",
     function () {
-      pm.expect(jsonData.status).to.eql("cancelled");
+      pm.expect(jsonData.status).to.eql("processing");
     },
   );
 }
diff --git a/postman/collection-dir/adyen_uk/Flow Testcases/QuickStart/Payment Connector - Create/request.json b/postman/collection-dir/adyen_uk/Flow Testcases/QuickStart/Payment Connector - Create/request.json
index b5002aeca8e..401201dff64 100644
--- a/postman/collection-dir/adyen_uk/Flow Testcases/QuickStart/Payment Connector - Create/request.json	
+++ b/postman/collection-dir/adyen_uk/Flow Testcases/QuickStart/Payment Connector - Create/request.json	
@@ -46,7 +46,7 @@
         "key1": "{{connector_key1}}",
         "api_secret": "{{connector_api_secret}}"
       },
-      "test_mode": false,
+      "test_mode": true,
       "disabled": false,
       "business_country": "US",
       "business_label": "default",
@@ -56,12 +56,17 @@
           "payment_method_types": [
             {
               "payment_method_type": "credit",
-              "card_networks": ["AmericanExpress",
-              "Discover",
-              "Interac",
-              "JCB",
-              "Mastercard",
-              "Visa", "DinersClub","UnionPay","RuPay"],
+              "card_networks": [
+                "AmericanExpress",
+                "Discover",
+                "Interac",
+                "JCB",
+                "Mastercard",
+                "Visa",
+                "DinersClub",
+                "UnionPay",
+                "RuPay"
+              ],
               "minimum_amount": 1,
               "maximum_amount": 68607706,
               "recurring_enabled": true,
@@ -69,12 +74,17 @@
             },
             {
               "payment_method_type": "debit",
-              "card_networks": ["AmericanExpress",
-              "Discover",
-              "Interac",
-              "JCB",
-              "Mastercard",
-              "Visa", "DinersClub","UnionPay","RuPay"],
+              "card_networks": [
+                "AmericanExpress",
+                "Discover",
+                "Interac",
+                "JCB",
+                "Mastercard",
+                "Visa",
+                "DinersClub",
+                "UnionPay",
+                "RuPay"
+              ],
               "minimum_amount": 1,
               "maximum_amount": 68607706,
               "recurring_enabled": true,
@@ -203,15 +213,15 @@
         {
           "payment_method": "gift_card",
           "payment_method_types": [
-              {
-                  "payment_method_type": "givex",
-                  "minimum_amount": 1,
-                  "maximum_amount": 68607706,
-                  "recurring_enabled": true,
-                  "installment_payment_enabled": true
-              }
+            {
+              "payment_method_type": "givex",
+              "minimum_amount": 1,
+              "maximum_amount": 68607706,
+              "recurring_enabled": true,
+              "installment_payment_enabled": true
+            }
           ]
-      },
+        },
         {
           "payment_method": "bank_redirect",
           "payment_method_types": [
@@ -303,7 +313,10 @@
             {
               "type": "CARD",
               "parameters": {
-                "allowed_auth_methods": ["PAN_ONLY", "CRYPTOGRAM_3DS"],
+                "allowed_auth_methods": [
+                  "PAN_ONLY",
+                  "CRYPTOGRAM_3DS"
+                ],
                 "allowed_card_networks": [
                   "AMEX",
                   "DISCOVER",
@@ -327,8 +340,14 @@
   },
   "url": {
     "raw": "{{baseUrl}}/account/:account_id/connectors",
-    "host": ["{{baseUrl}}"],
-    "path": ["account", ":account_id", "connectors"],
+    "host": [
+      "{{baseUrl}}"
+    ],
+    "path": [
+      "account",
+      ":account_id",
+      "connectors"
+    ],
     "variable": [
       {
         "key": "account_id",
@@ -338,4 +357,4 @@
     ]
   },
   "description": "Create a new Payment Connector for the merchant account. The connector could be a payment processor / facilitator / acquirer or specialised services like Fraud / Accounting etc."
-}
+}
\ No newline at end of file

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

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

## Description
<!-- Describe your changes in detail -->
- Update Connector Account configs for WASM build
- Update Postman Collection test case for Cancelled payments
- Make `endpoint_prefix` as Optional in MCA-create
- Change `connector_refund_id` to `psp_reference`
- Add support to enforce 3DS

### 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).
-->
#3911 

## 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)?
-->

- Create a manual capture payment and Cancel it, it should go into processing
``` 
curl --location 'http://localhost:8080/payments/pay_7RzGoWYbCpeSHynBpytc/cancel' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'api-key: dev_LyWBxSXvkIRgcdWNLamgVQul9tMWq2axdKYlmJSwSFbv0nfDsppaJ6UwSbny0PBm' \
--data '{"cancellation_reason":"requested_by_customer"}'
```
RESPONSE:
```
{
    "payment_id": "pay_AF6YTcabCeegWRQUWjdZ",
    "merchant_id": "postman_merchant_GHAction_b6d214c4-4173-4a86-b4e1-52478efba2ca",
    "status": "processing",
    "amount": 2134,
    "net_amount": 2134,
    "amount_capturable": 0,
    "amount_received": null,
    "connector": "adyen",
    "client_secret": "pay_AF6YTcabCeegWRQUWjdZ_secret_fkz68YL0UTuAJ64Tlji8",
    "created": "2024-03-01T08:35:04.606Z",
    "currency": "USD",
    "customer_id": "StripeCustomer",
    "description": "Its my first payment request",
    "refunds": null,
    "disputes": null,
    "mandate_id": null,
    "mandate_data": null,
    "setup_future_usage": null,
    "off_session": null,
    "capture_on": null,
    "capture_method": "manual",
    "payment_method": "card",
    "payment_method_data": {
        "card": {
            "last4": "8431",
            "card_type": null,
            "card_network": null,
            "card_issuer": null,
            "card_issuing_country": null,
            "card_isin": "371449",
            "card_extended_bin": "37144963",
            "card_exp_month": "03",
            "card_exp_year": "2030",
            "card_holder_name": "joseph Doe"
        }
    },
    "payment_token": null,
    "shipping": {
        "address": {
            "city": "San Fransico",
            "country": "US",
            "line1": "1467",
            "line2": "Harrison Street",
            "line3": "Harrison Street",
            "zip": "94122",
            "state": "California",
            "first_name": "PiX",
            "last_name": null
        },
        "phone": {
            "number": null,
            "country_code": null
        },
        "email": null
    },
    "billing": {
        "address": {
            "city": "San Fransico",
            "country": "US",
            "line1": "1467",
            "line2": "Harrison Street",
            "line3": "Harrison Street",
            "zip": "94122",
            "state": "California",
            "first_name": "PiX",
            "last_name": null
        },
        "phone": {
            "number": null,
            "country_code": null
        },
        "email": null
    },
    "order_details": null,
    "email": "guest@example.com",
    "name": "John Doe",
    "phone": "999999999",
    "return_url": "https://duck.com/",
    "authentication_type": "no_three_ds",
    "statement_descriptor_name": "joseph",
    "statement_descriptor_suffix": "JS",
    "next_action": null,
    "cancellation_reason": "requested_by_customer",
    "error_code": null,
    "error_message": null,
    "unified_code": null,
    "unified_message": null,
    "payment_experience": null,
    "payment_method_type": "credit",
    "connector_label": null,
    "business_country": null,
    "business_label": "default",
    "business_sub_label": null,
    "allowed_payment_method_types": null,
    "ephemeral_key": null,
    "manual_retry_allowed": false,
    "connector_transaction_id": "H2GSJ9JB3RJWHST5",
    "frm_message": null,
    "metadata": {
        "udf1": "value1",
        "login_date": "2019-09-10T10:11:12Z",
        "new_customer": "true"
    },
    "connector_metadata": null,
    "feature_metadata": null,
    "reference_id": "pay_AF6YTcabCeegWRQUWjdZ_1",
    "payment_link": null,
    "profile_id": "pro_KNzwSZXU8MXNySCtfhtI",
    "surcharge_details": null,
    "attempt_count": 1,
    "merchant_decision": null,
    "merchant_connector_id": "mca_kwbRKJxDNAJaEtZkdVFF",
    "incremental_authorization_allowed": null,
    "authorization_count": null,
    "incremental_authorizations": null,
    "expires_on": "2024-03-01T08:50:04.606Z",
    "fingerprint": null
}
``` 

- For Refunds Check the `connector_refund_id` and match with Connector psp_reference
- Test 3DS payments with normal card and `auth_type` as `three_ds`, 3DS should be triggered
```
curl --location 'http://localhost:8080/payments' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'api-key: dev_5dUdESXJ81peNfBZoKwB47YehzdbXBzraGgh69wH0ZtFad9hHHT3isDg7ymJiHZc' \
--data-raw '{
    "amount": 2121,
    "currency": "CZK",
    "confirm": true,
    "capture_method": "automatic",
    "capture_on": "2022-09-10T10:11:12Z",
    "amount_to_capture": 2121,
    "customer_id": "StripeCustomer",
    "email": "guest@example.com",
    "name": "John Doe",
    "phone": "999999999",
    "phone_country_code": "+1",
    "description": "Its my first payment request",
    "authentication_type": "three_ds",
    "return_url": "https://duck.com",
    "payment_method": "card",
    "payment_method_type": "credit",
    "payment_method_data": {
        "card": {
            "card_number": "371449635398431",
            "card_exp_month": "03",
            "card_exp_year": "2030",
            "card_holder_name": "joseph Doe",
            "card_cvc": "7373"
        }
    },
    "routing": {
        "type": "single",
        "data": "adyen"
    },
    "billing": {
        "address": {
            "line1": "1467",
            "line2": "Harrison Street",
            "line3": "Harrison Street",
            "city": "San Fransico",
            "state": "California",
            "zip": "94122",
            "country": "US",
            "first_name": "PiX"
        }
    },
    "shipping": {
        "address": {
            "line1": "1467",
            "line2": "Harrison Street",
            "line3": "Harrison Street",
            "city": "San Fransico",
            "state": "California",
            "zip": "94122",
            "country": "US",
            "first_name": "PiX"
        }
    },
    "browser_info": {
        "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
        "accept_header": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
        "language": "nl-NL",
        "color_depth": 24,
        "screen_height": 723,
        "screen_width": 1536,
        "time_zone": 0,
        "java_enabled": true,
        "java_script_enabled": true,
        "ip_address": "125.0.0.1"
    },
    "statement_descriptor_name": "joseph",
    "statement_descriptor_suffix": "JS",
    "metadata": {
        "udf1": "value1",
        "new_customer": "true",
        "login_date": "2019-09-10T10:11:12Z"
    }
}'
```
RESPONSE:
```
{
    "payment_id": "pay_BgVVHyaRkDKAoQJVDNPR",
    "merchant_id": "postman_merchant_GHAction_9bd45c1b-7ecb-4ef6-b359-2e0dc1e68085",
    "status": "requires_customer_action",
    "amount": 2121,
    "net_amount": 2121,
    "amount_capturable": 2121,
    "amount_received": null,
    "connector": "adyen",
    "client_secret": "pay_BgVVHyaRkDKAoQJVDNPR_secret_mQHYTu9kWz1eluaPRbIc",
    "created": "2024-03-01T10:59:44.255Z",
    "currency": "CZK",
    "customer_id": "StripeCustomer",
    "description": "Its my first payment request",
    "refunds": null,
    "disputes": null,
    "mandate_id": null,
    "mandate_data": null,
    "setup_future_usage": null,
    "off_session": null,
    "capture_on": null,
    "capture_method": "automatic",
    "payment_method": "card",
    "payment_method_data": {
        "card": {
            "last4": "8431",
            "card_type": null,
            "card_network": null,
            "card_issuer": null,
            "card_issuing_country": null,
            "card_isin": "371449",
            "card_extended_bin": "37144963",
            "card_exp_month": "03",
            "card_exp_year": "2030",
            "card_holder_name": "joseph Doe"
        }
    },
    "payment_token": null,
    "shipping": {
        "address": {
            "city": "San Fransico",
            "country": "US",
            "line1": "1467",
            "line2": "Harrison Street",
            "line3": "Harrison Street",
            "zip": "94122",
            "state": "California",
            "first_name": "PiX",
            "last_name": null
        },
        "phone": {
            "number": null,
            "country_code": null
        },
        "email": null
    },
    "billing": {
        "address": {
            "city": "San Fransico",
            "country": "US",
            "line1": "1467",
            "line2": "Harrison Street",
            "line3": "Harrison Street",
            "zip": "94122",
            "state": "California",
            "first_name": "PiX",
            "last_name": null
        },
        "phone": {
            "number": null,
            "country_code": null
        },
        "email": null
    },
    "order_details": null,
    "email": "guest@example.com",
    "name": "John Doe",
    "phone": "999999999",
    "return_url": "https://duck.com/",
    "authentication_type": "three_ds",
    "statement_descriptor_name": "joseph",
    "statement_descriptor_suffix": "JS",
    "next_action": {
        "type": "redirect_to_url",
        "redirect_to_url": "http://localhost:8080/payments/redirect/pay_BgVVHyaRkDKAoQJVDNPR/postman_merchant_GHAction_9bd45c1b-7ecb-4ef6-b359-2e0dc1e68085/pay_BgVVHyaRkDKAoQJVDNPR_1"
    },
    "cancellation_reason": null,
    "error_code": null,
    "error_message": null,
    "unified_code": null,
    "unified_message": null,
    "payment_experience": null,
    "payment_method_type": "credit",
    "connector_label": null,
    "business_country": null,
    "business_label": "default",
    "business_sub_label": null,
    "allowed_payment_method_types": null,
    "ephemeral_key": {
        "customer_id": "StripeCustomer",
        "created_at": 1709290784,
        "expires": 1709294384,
        "secret": "epk_4ae0f11719b54f94a2170e2ec4fec826"
    },
    "manual_retry_allowed": null,
    "connector_transaction_id": "P27VSB5K9MBX8N82",
    "frm_message": null,
    "metadata": {
        "udf1": "value1",
        "login_date": "2019-09-10T10:11:12Z",
        "new_customer": "true"
    },
    "connector_metadata": null,
    "feature_metadata": null,
    "reference_id": "P27VSB5K9MBX8N82",
    "payment_link": null,
    "profile_id": "pro_9rma6ktlyR6eBcN16AW3",
    "surcharge_details": null,
    "attempt_count": 1,
    "merchant_decision": null,
    "merchant_connector_id": "mca_pXK3IcyuTlLvrUVdT9sC",
    "incremental_authorization_allowed": null,
    "authorization_count": null,
    "incremental_authorizations": null,
    "expires_on": "2024-03-01T11:14:44.255Z",
    "fingerprint": null
}
```
## 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
- [ ] I added a [CHANGELOG](/CHANGELOG.md) entry if applicable
