Bug: [FEATURE] add payment method filter in v2



### Feature Description

List all the available currencies and countries for the given connector and payment method type.

### Possible Implementation

Add the filter route to the V2 PaymentMethods implementation.

### 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/router/src/routes/app.rs b/crates/router/src/routes/app.rs
index 01455e9e17b..be17d98ff47 100644
--- a/crates/router/src/routes/app.rs
+++ b/crates/router/src/routes/app.rs
@@ -1344,38 +1344,52 @@ impl Payouts {
     }
 }
 
-#[cfg(all(feature = "oltp", feature = "v2"))]
+#[cfg(all(feature = "v2", any(feature = "olap", feature = "oltp")))]
 impl PaymentMethods {
     pub fn server(state: AppState) -> Scope {
         let mut route = web::scope("/v2/payment-methods").app_data(web::Data::new(state));
-        route = route
-            .service(
-                web::resource("").route(web::post().to(payment_methods::create_payment_method_api)),
-            )
-            .service(
-                web::resource("/create-intent")
-                    .route(web::post().to(payment_methods::create_payment_method_intent_api)),
-            );
 
-        route = route.service(
-            web::scope("/{id}")
+        #[cfg(feature = "olap")]
+        {
+            route =
+                route.service(web::resource("/filter").route(
+                    web::get().to(
+                        payment_methods::list_countries_currencies_for_connector_payment_method,
+                    ),
+                ));
+        }
+        #[cfg(feature = "oltp")]
+        {
+            route = route
                 .service(
                     web::resource("")
-                        .route(web::get().to(payment_methods::payment_method_retrieve_api))
-                        .route(web::delete().to(payment_methods::payment_method_delete_api)),
-                )
-                .service(web::resource("/list-enabled-payment-methods").route(
-                    web::get().to(payment_methods::payment_method_session_list_payment_methods),
-                ))
-                .service(
-                    web::resource("/update-saved-payment-method")
-                        .route(web::put().to(payment_methods::payment_method_update_api)),
+                        .route(web::post().to(payment_methods::create_payment_method_api)),
                 )
                 .service(
-                    web::resource("/get-token")
-                        .route(web::get().to(payment_methods::get_payment_method_token_data)),
-                ),
-        );
+                    web::resource("/create-intent")
+                        .route(web::post().to(payment_methods::create_payment_method_intent_api)),
+                );
+
+            route = route.service(
+                web::scope("/{id}")
+                    .service(
+                        web::resource("")
+                            .route(web::get().to(payment_methods::payment_method_retrieve_api))
+                            .route(web::delete().to(payment_methods::payment_method_delete_api)),
+                    )
+                    .service(web::resource("/list-enabled-payment-methods").route(
+                        web::get().to(payment_methods::payment_method_session_list_payment_methods),
+                    ))
+                    .service(
+                        web::resource("/update-saved-payment-method")
+                            .route(web::put().to(payment_methods::payment_method_update_api)),
+                    )
+                    .service(
+                        web::resource("/get-token")
+                            .route(web::get().to(payment_methods::get_payment_method_token_data)),
+                    ),
+            );
+        }
 
         route
     }
diff --git a/crates/router/src/routes/payment_methods.rs b/crates/router/src/routes/payment_methods.rs
index 367ece308c3..08b84e40977 100644
--- a/crates/router/src/routes/payment_methods.rs
+++ b/crates/router/src/routes/payment_methods.rs
@@ -913,6 +913,47 @@ pub async fn list_countries_currencies_for_connector_payment_method(
     .await
 }
 
+#[cfg(feature = "v2")]
+#[instrument(skip_all, fields(flow = ?Flow::ListCountriesCurrencies))]
+pub async fn list_countries_currencies_for_connector_payment_method(
+    state: web::Data<AppState>,
+    req: HttpRequest,
+    query_payload: web::Query<payment_methods::ListCountriesCurrenciesRequest>,
+) -> HttpResponse {
+    let flow = Flow::ListCountriesCurrencies;
+    let payload = query_payload.into_inner();
+    Box::pin(api::server_wrap(
+        flow,
+        state,
+        &req,
+        payload,
+        |state, auth: auth::AuthenticationData, req, _| {
+            cards::list_countries_currencies_for_connector_payment_method(
+                state,
+                req,
+                Some(auth.profile.get_id().clone()),
+            )
+        },
+        #[cfg(not(feature = "release"))]
+        auth::auth_type(
+            &auth::V2ApiKeyAuth {
+                is_connected_allowed: false,
+                is_platform_allowed: false,
+            },
+            &auth::JWTAuth {
+                permission: Permission::ProfileConnectorRead,
+            },
+            req.headers(),
+        ),
+        #[cfg(feature = "release")]
+        &auth::JWTAuth {
+            permission: Permission::ProfileConnectorRead,
+        },
+        api_locking::LockAction::NotApplicable,
+    ))
+    .await
+}
+
 #[cfg(feature = "v1")]
 #[instrument(skip_all, fields(flow = ?Flow::DefaultPaymentMethodsSet))]
 pub async fn default_payment_method_set_api(

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

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

## Description
<!-- Describe your changes in detail -->
Add the payment method filter route to the V2 PaymentMethods implementation which list all available countries and currencies based on connector and payment method type.


### Additional Changes

- [X] 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)?
-->
Request:
```
curl --location 'http://localhost:8080/v2/payment-methods/filter?connector=stripe&paymentMethodType=debit' \
--header 'Authorization: api-key=dev_4DIYNBJfJIQ2Tr1wLavfp48BJvXLtHmBWdkkALwWj6U91DAjP7h2RfQmhnDMATmB' \
--header 'x-profile-id: pro_9dDVfbJRfEb7o7qxBatP' \
--header 'api-key: dev_4DIYNBJfJIQ2Tr1wLavfp48BJvXLtHmBWdkkALwWj6U91DAjP7h2RfQmhnDMATmB' \
--data ''
```
Response:
```
{
    "currencies": [
        "QAR",
        "BMD",
        "ERN",
        "ETB",
        "ILS",
        "MOP",
        "STN",
        "TND",
        "SRD",
        "TOP",
        "JMD",
        "BHD",
        "SSP",
        "BRL",
        "COP",
        "KMF",
        "PEN",
        "SLE",
        "TZS",
        "KZT",
        "CUP",
        "MDL",
        "XCD",
        "BGN",
        "NIO",
        "BTN",
        "MXN",
        "FKP",
        "CLF",
        "OMR",
        "GHS",
        "DZD",
        "BSD",
        "SEK",
        "VND",
        "ZAR",
        "VES",
        "DOP",
        "RON",
        "BND",
        "PGK",
        "SVC",
        "HTG",
        "KWD",
        "TMT",
        "SBD",
        "AED",
        "HKD",
        "CRC",
        "DKK",
        "TTD",
        "TWD",
        "UGX",
        "SLL",
        "FJD",
        "ZWL",
        "ANG",
        "JPY",
        "CNY",
        "DJF",
        "PLN",
        "BBD",
        "WST",
        "PHP",
        "PKR",
        "MVR",
        "LSL",
        "HRK",
        "UZS",
        "NAD",
        "KRW",
        "RUB",
        "TJS",
        "TRY",
        "BWP",
        "KHR",
        "BZD",
        "YER",
        "CDF",
        "NOK",
        "IDR",
        "MAD",
        "MMK",
        "MZN",
        "BAM",
        "JOD",
        "XOF",
        "NZD",
        "KES",
        "BIF",
        "MUR",
        "IRR",
        "UAH",
        "XPF",
        "THB",
        "AWG",
        "GBP",
        "GMD",
        "INR",
        "MYR",
        "PAB",
        "BDT",
        "HNL",
        "PYG",
        "CZK",
        "GEL",
        "ISK",
        "GTQ",
        "CAD",
        "KPW",
        "MWK",
        "NGN",
        "SYP",
        "LAK",
        "RWF",
        "KGS",
        "MKD",
        "MNT",
        "HUF",
        "LYD",
        "SCR",
        "XAF",
        "AOA",
        "NPR",
        "CLP",
        "MRU",
        "SDG",
        "STD",
        "ARS",
        "SAR",
        "AUD",
        "SZL",
        "VUV",
        "CVE",
        "ALL",
        "RSD",
        "AFN",
        "ZMW",
        "AMD",
        "MGA",
        "LRD",
        "BOB",
        "AZN",
        "CUC",
        "KYD",
        "BYN",
        "USD",
        "EUR",
        "SGD",
        "SHP",
        "SOS",
        "GYD",
        "GIP",
        "GNF",
        "EGP",
        "CHF",
        "LBP",
        "UYU",
        "LKR",
        "IQD"
    ],
    "countries": [
        {
            "code": "GU",
            "name": "Guam"
        },
        {
            "code": "AW",
            "name": "Aruba"
        },
        {
            "code": "HR",
            "name": "Croatia"
        },
        {
            "code": "TD",
            "name": "Chad"
        },
        {
            "code": "TM",
            "name": "Turkmenistan"
        },
        {
            "code": "GB",
            "name": "UnitedKingdomOfGreatBritainAndNorthernIreland"
        },
        {
            "code": "CL",
            "name": "Chile"
        },
        {
            "code": "LK",
            "name": "SriLanka"
        },
        {
            "code": "SI",
            "name": "Slovenia"
        },
        {
            "code": "PA",
            "name": "Panama"
        },
        {
            "code": "NE",
            "name": "Niger"
        },
        {
            "code": "AZ",
            "name": "Azerbaijan"
        },
        {
            "code": "MQ",
            "name": "Martinique"
        },
        {
            "code": "BY",
            "name": "Belarus"
        },
        {
            "code": "FJ",
            "name": "Fiji"
        },
        {
            "code": "PY",
            "name": "Paraguay"
        },
        {
            "code": "HK",
            "name": "HongKong"
        },
        {
            "code": "UZ",
            "name": "Uzbekistan"
        },
        {
            "code": "DE",
            "name": "Germany"
        },
        {
            "code": "CX",
            "name": "ChristmasIsland"
        },
        {
            "code": "BB",
            "name": "Barbados"
        },
        {
            "code": "DJ",
            "name": "Djibouti"
        },
        {
            "code": "GP",
            "name": "Guadeloupe"
        },
        {
            "code": "CR",
            "name": "CostaRica"
        },
        {
            "code": "ZM",
            "name": "Zambia"
        },
        {
            "code": "ST",
            "name": "SaoTomeAndPrincipe"
        },
        {
            "code": "BA",
            "name": "BosniaAndHerzegovina"
        },
        {
            "code": "NI",
            "name": "Nicaragua"
        },
        {
            "code": "SO",
            "name": "Somalia"
        },
        {
            "code": "PR",
            "name": "PuertoRico"
        },
        {
            "code": "SC",
            "name": "Seychelles"
        },
        {
            "code": "KR",
            "name": "KoreaRepublic"
        },
        {
            "code": "FM",
            "name": "MicronesiaFederatedStates"
        },
        {
            "code": "DO",
            "name": "DominicanRepublic"
        },
        {
            "code": "MO",
            "name": "Macao"
        },
        {
            "code": "JP",
            "name": "Japan"
        },
        {
            "code": "MH",
            "name": "MarshallIslands"
        },
        {
            "code": "AQ",
            "name": "Antarctica"
        },
        {
            "code": "CD",
            "name": "CongoDemocraticRepublic"
        },
        {
            "code": "NA",
            "name": "Namibia"
        },
        {
            "code": "TV",
            "name": "Tuvalu"
        },
        {
            "code": "EE",
            "name": "Estonia"
        },
        {
            "code": "ML",
            "name": "Mali"
        },
        {
            "code": "IS",
            "name": "Iceland"
        },
        {
            "code": "SR",
            "name": "Suriname"
        },
        {
            "code": "UM",
            "name": "UnitedStatesMinorOutlyingIslands"
        },
        {
            "code": "SB",
            "name": "SolomonIslands"
        },
        {
            "code": "RO",
            "name": "Romania"
        },
        {
            "code": "CI",
            "name": "CotedIvoire"
        },
        {
            "code": "MD",
            "name": "MoldovaRepublic"
        },
        {
            "code": "GS",
            "name": "SouthGeorgiaAndTheSouthSandwichIslands"
        },
        {
            "code": "PF",
            "name": "FrenchPolynesia"
        },
        {
            "code": "GE",
            "name": "Georgia"
        },
        {
            "code": "JE",
            "name": "Jersey"
        },
        {
            "code": "SK",
            "name": "Slovakia"
        },
        {
            "code": "ID",
            "name": "Indonesia"
        },
        {
            "code": "NR",
            "name": "Nauru"
        },
        {
            "code": "CO",
            "name": "Colombia"
        },
        {
            "code": "GR",
            "name": "Greece"
        },
        {
            "code": "KW",
            "name": "Kuwait"
        },
        {
            "code": "TH",
            "name": "Thailand"
        },
        {
            "code": "KI",
            "name": "Kiribati"
        },
        {
            "code": "BN",
            "name": "BruneiDarussalam"
        },
        {
            "code": "WS",
            "name": "Samoa"
        },
        {
            "code": "AI",
            "name": "Anguilla"
        },
        {
            "code": "TC",
            "name": "TurksAndCaicosIslands"
        },
        {
            "code": "BG",
            "name": "Bulgaria"
        },
        {
            "code": "RS",
            "name": "Serbia"
        },
        {
            "code": "BW",
            "name": "Botswana"
        },
        {
            "code": "KM",
            "name": "Comoros"
        },
        {
            "code": "SN",
            "name": "Senegal"
        },
        {
            "code": "TR",
            "name": "Turkey"
        },
        {
            "code": "SL",
            "name": "SierraLeone"
        },
        {
            "code": "MC",
            "name": "Monaco"
        },
        {
            "code": "BL",
            "name": "SaintBarthelemy"
        },
        {
            "code": "GL",
            "name": "Greenland"
        },
        {
            "code": "KG",
            "name": "Kyrgyzstan"
        },
        {
            "code": "MT",
            "name": "Malta"
        },
        {
            "code": "VA",
            "name": "HolySee"
        },
        {
            "code": "AS",
            "name": "AmericanSamoa"
        },
        {
            "code": "TJ",
            "name": "Tajikistan"
        },
        {
            "code": "TN",
            "name": "Tunisia"
        },
        {
            "code": "IT",
            "name": "Italy"
        },
        {
            "code": "CV",
            "name": "CaboVerde"
        },
        {
            "code": "IN",
            "name": "India"
        },
        {
            "code": "ME",
            "name": "Montenegro"
        },
        {
            "code": "LR",
            "name": "Liberia"
        },
        {
            "code": "AE",
            "name": "UnitedArabEmirates"
        },
        {
            "code": "TK",
            "name": "Tokelau"
        },
        {
            "code": "IQ",
            "name": "Iraq"
        },
        {
            "code": "FO",
            "name": "FaroeIslands"
        },
        {
            "code": "MW",
            "name": "Malawi"
        },
        {
            "code": "SY",
            "name": "SyrianArabRepublic"
        },
        {
            "code": "CA",
            "name": "Canada"
        },
        {
            "code": "GF",
            "name": "FrenchGuiana"
        },
        {
            "code": "ER",
            "name": "Eritrea"
        },
        {
            "code": "MY",
            "name": "Malaysia"
        },
        {
            "code": "VG",
            "name": "VirginIslandsBritish"
        },
        {
            "code": "RE",
            "name": "Reunion"
        },
        {
            "code": "JM",
            "name": "Jamaica"
        },
        {
            "code": "AF",
            "name": "Afghanistan"
        },
        {
            "code": "MN",
            "name": "Mongolia"
        },
        {
            "code": "CW",
            "name": "Curacao"
        },
        {
            "code": "IE",
            "name": "Ireland"
        },
        {
            "code": "CG",
            "name": "Congo"
        },
        {
            "code": "NG",
            "name": "Nigeria"
        },
        {
            "code": "VC",
            "name": "SaintVincentAndTheGrenadines"
        },
        {
            "code": "TO",
            "name": "Tonga"
        },
        {
            "code": "LU",
            "name": "Luxembourg"
        },
        {
            "code": "TL",
            "name": "TimorLeste"
        },
        {
            "code": "MF",
            "name": "SaintMartinFrenchpart"
        },
        {
            "code": "AT",
            "name": "Austria"
        },
        {
            "code": "ET",
            "name": "Ethiopia"
        },
        {
            "code": "SX",
            "name": "SintMaartenDutchpart"
        },
        {
            "code": "GT",
            "name": "Guatemala"
        },
        {
            "code": "TF",
            "name": "FrenchSouthernTerritories"
        },
        {
            "code": "KP",
            "name": "KoreaDemocraticPeoplesRepublic"
        },
        {
            "code": "LC",
            "name": "SaintLucia"
        },
        {
            "code": "BT",
            "name": "Bhutan"
        },
        {
            "code": "SM",
            "name": "SanMarino"
        },
        {
            "code": "QA",
            "name": "Qatar"
        },
        {
            "code": "DM",
            "name": "Dominica"
        },
        {
            "code": "BJ",
            "name": "Benin"
        },
        {
            "code": "GA",
            "name": "Gabon"
        },
        {
            "code": "YT",
            "name": "Mayotte"
        },
        {
            "code": "KZ",
            "name": "Kazakhstan"
        },
        {
            "code": "LV",
            "name": "Latvia"
        },
        {
            "code": "GG",
            "name": "Guernsey"
        },
        {
            "code": "CH",
            "name": "Switzerland"
        },
        {
            "code": "HM",
            "name": "HeardIslandAndMcDonaldIslands"
        },
        {
            "code": "AG",
            "name": "AntiguaAndBarbuda"
        },
        {
            "code": "WF",
            "name": "WallisAndFutuna"
        },
        {
            "code": "CC",
            "name": "CocosKeelingIslands"
        },
        {
            "code": "ZW",
            "name": "Zimbabwe"
        },
        {
            "code": "IL",
            "name": "Israel"
        },
        {
            "code": "TG",
            "name": "Togo"
        },
        {
            "code": "MG",
            "name": "Madagascar"
        },
        {
            "code": "NP",
            "name": "Nepal"
        },
        {
            "code": "GW",
            "name": "GuineaBissau"
        },
        {
            "code": "PW",
            "name": "Palau"
        },
        {
            "code": "LY",
            "name": "Libya"
        },
        {
            "code": "FI",
            "name": "Finland"
        },
        {
            "code": "AR",
            "name": "Argentina"
        },
        {
            "code": "TT",
            "name": "TrinidadAndTobago"
        },
        {
            "code": "FR",
            "name": "France"
        },
        {
            "code": "MS",
            "name": "Montserrat"
        },
        {
            "code": "IO",
            "name": "BritishIndianOceanTerritory"
        },
        {
            "code": "TW",
            "name": "TaiwanProvinceOfChina"
        },
        {
            "code": "EC",
            "name": "Ecuador"
        },
        {
            "code": "NO",
            "name": "Norway"
        },
        {
            "code": "MZ",
            "name": "Mozambique"
        },
        {
            "code": "GH",
            "name": "Ghana"
        },
        {
            "code": "HU",
            "name": "Hungary"
        },
        {
            "code": "CU",
            "name": "Cuba"
        },
        {
            "code": "LI",
            "name": "Liechtenstein"
        },
        {
            "code": "MU",
            "name": "Mauritius"
        },
        {
            "code": "EG",
            "name": "Egypt"
        },
        {
            "code": "MX",
            "name": "Mexico"
        },
        {
            "code": "MV",
            "name": "Maldives"
        },
        {
            "code": "BE",
            "name": "Belgium"
        },
        {
            "code": "VN",
            "name": "Vietnam"
        },
        {
            "code": "NU",
            "name": "Niue"
        },
        {
            "code": "CY",
            "name": "Cyprus"
        },
        {
            "code": "GQ",
            "name": "EquatorialGuinea"
        },
        {
            "code": "SD",
            "name": "Sudan"
        },
        {
            "code": "LT",
            "name": "Lithuania"
        },
        {
            "code": "BD",
            "name": "Bangladesh"
        },
        {
            "code": "NL",
            "name": "Netherlands"
        },
        {
            "code": "BH",
            "name": "Bahrain"
        },
        {
            "code": "AX",
            "name": "AlandIslands"
        },
        {
            "code": "BR",
            "name": "Brazil"
        },
        {
            "code": "AM",
            "name": "Armenia"
        },
        {
            "code": "UY",
            "name": "Uruguay"
        },
        {
            "code": "MP",
            "name": "NorthernMarianaIslands"
        },
        {
            "code": "NZ",
            "name": "NewZealand"
        },
        {
            "code": "GY",
            "name": "Guyana"
        },
        {
            "code": "CZ",
            "name": "Czechia"
        },
        {
            "code": "AU",
            "name": "Australia"
        },
        {
            "code": "SH",
            "name": "SaintHelenaAscensionAndTristandaCunha"
        },
        {
            "code": "HT",
            "name": "Haiti"
        },
        {
            "code": "SA",
            "name": "SaudiArabia"
        },
        {
            "code": "CM",
            "name": "Cameroon"
        },
        {
            "code": "JO",
            "name": "Jordan"
        },
        {
            "code": "UA",
            "name": "Ukraine"
        },
        {
            "code": "BV",
            "name": "BouvetIsland"
        },
        {
            "code": "GI",
            "name": "Gibraltar"
        },
        {
            "code": "GD",
            "name": "Grenada"
        },
        {
            "code": "UG",
            "name": "Uganda"
        },
        {
            "code": "TZ",
            "name": "TanzaniaUnitedRepublic"
        },
        {
            "code": "DZ",
            "name": "Algeria"
        },
        {
            "code": "PM",
            "name": "SaintPierreAndMiquelon"
        },
        {
            "code": "ZA",
            "name": "SouthAfrica"
        },
        {
            "code": "OM",
            "name": "Oman"
        },
        {
            "code": "KY",
            "name": "CaymanIslands"
        },
        {
            "code": "LS",
            "name": "Lesotho"
        },
        {
            "code": "ES",
            "name": "Spain"
        },
        {
            "code": "MM",
            "name": "Myanmar"
        },
        {
            "code": "AO",
            "name": "Angola"
        },
        {
            "code": "EH",
            "name": "WesternSahara"
        },
        {
            "code": "IR",
            "name": "IranIslamicRepublic"
        },
        {
            "code": "HN",
            "name": "Honduras"
        },
        {
            "code": "KH",
            "name": "Cambodia"
        },
        {
            "code": "KE",
            "name": "Kenya"
        },
        {
            "code": "MK",
            "name": "MacedoniaTheFormerYugoslavRepublic"
        },
        {
            "code": "AL",
            "name": "Albania"
        },
        {
            "code": "US",
            "name": "UnitedStatesOfAmerica"
        },
        {
            "code": "YE",
            "name": "Yemen"
        },
        {
            "code": "DK",
            "name": "Denmark"
        },
        {
            "code": "MR",
            "name": "Mauritania"
        },
        {
            "code": "SG",
            "name": "Singapore"
        },
        {
            "code": "CN",
            "name": "China"
        },
        {
            "code": "IM",
            "name": "IsleOfMan"
        },
        {
            "code": "PH",
            "name": "Philippines"
        },
        {
            "code": "SZ",
            "name": "Swaziland"
        },
        {
            "code": "BO",
            "name": "BoliviaPlurinationalState"
        },
        {
            "code": "CF",
            "name": "CentralAfricanRepublic"
        },
        {
            "code": "PE",
            "name": "Peru"
        },
        {
            "code": "BQ",
            "name": "BonaireSintEustatiusAndSaba"
        },
        {
            "code": "SV",
            "name": "ElSalvador"
        },
        {
            "code": "NC",
            "name": "NewCaledonia"
        },
        {
            "code": "VU",
            "name": "Vanuatu"
        },
        {
            "code": "MA",
            "name": "Morocco"
        },
        {
            "code": "SS",
            "name": "SouthSudan"
        },
        {
            "code": "BZ",
            "name": "Belize"
        },
        {
            "code": "PS",
            "name": "PalestineState"
        },
        {
            "code": "CK",
            "name": "CookIslands"
        },
        {
            "code": "BF",
            "name": "BurkinaFaso"
        },
        {
            "code": "FK",
            "name": "FalklandIslandsMalvinas"
        },
        {
            "code": "SJ",
            "name": "SvalbardAndJanMayen"
        },
        {
            "code": "VE",
            "name": "VenezuelaBolivarianRepublic"
        },
        {
            "code": "BI",
            "name": "Burundi"
        },
        {
            "code": "PT",
            "name": "Portugal"
        },
        {
            "code": "VI",
            "name": "VirginIslandsUS"
        },
        {
            "code": "PG",
            "name": "PapuaNewGuinea"
        },
        {
            "code": "RU",
            "name": "RussianFederation"
        },
        {
            "code": "AD",
            "name": "Andorra"
        },
        {
            "code": "NF",
            "name": "NorfolkIsland"
        },
        {
            "code": "LB",
            "name": "Lebanon"
        },
        {
            "code": "GM",
            "name": "Gambia"
        },
        {
            "code": "BM",
            "name": "Bermuda"
        },
        {
            "code": "BS",
            "name": "Bahamas"
        },
        {
            "code": "KN",
            "name": "SaintKittsAndNevis"
        },
        {
            "code": "PN",
            "name": "Pitcairn"
        },
        {
            "code": "PL",
            "name": "Poland"
        },
        {
            "code": "SE",
            "name": "Sweden"
        },
        {
            "code": "RW",
            "name": "Rwanda"
        },
        {
            "code": "PK",
            "name": "Pakistan"
        },
        {
            "code": "GN",
            "name": "Guinea"
        },
        {
            "code": "LA",
            "name": "LaoPeoplesDemocraticRepublic"
        }
    ]
}
```
Request with JWT Authentication:
```
curl --location 'http://localhost:8081/v2/payment-methods/filter?connector=stripe&paymentMethodType=debit' \
--header 'x-profile-id: pro_vJRG8ITXZXHXQuoHA59p' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiNjIwY2E1NzAtY2I1Ni00YTUwLTk4MTctODEzYzEyNjljOWUwIiwibWVyY2hhbnRfaWQiOiJtZXJjaGFudF8xNzU1NTkyMzYyIiwicm9sZV9pZCI6InByb2ZpbGVfdmlld19vbmx5IiwiZXhwIjoxNzU1NzY1NjI3LCJvcmdfaWQiOiJvcmdfelFiZUprcUlPWWhMUTNmeDVMOHQiLCJwcm9maWxlX2lkIjoicHJvX3ZKUkc4SVRYWlhIWFF1b0hBNTlwIiwidGVuYW50X2lkIjoicHVibGljIn0.9DafPc6vkoO8K-JLHxetMmmDYQDek35-HV8zrVe5QTg' \
--data ''
```
Respone:
```
{
    "currencies": [
        "ERN",
        "LSL",
        "MMK",
        "LKR",
        "THB",
        "SHP",
        "FKP",
        "XCD",
        "NIO",
        "GIP",
        "RWF",
        "CUP",
        "OMR",
        "UYU",
        "GTQ",
        "GNF",
        "FJD",
        "GBP",
        "KMF",
        "ILS",
        "ETB",
        "SYP",
        "GHS",
        "GMD",
        "MUR",
        "BSD",
        "KRW",
        "MZN",
        "TMT",
        "TOP",
        "SBD",
        "KGS",
        "UGX",
        "UZS",
        "YER",
        "RUB",
        "TZS",
        "COP",
        "PYG",
        "NAD",
        "SSP",
        "GYD",
        "CHF",
        "KWD",
        "MYR",
        "PKR",
        "SAR",
        "WST",
        "EGP",
        "BAM",
        "QAR",
        "XOF",
        "DZD",
        "SZL",
        "CZK",
        "VND",
        "SCR",
        "IDR",
        "ANG",
        "LAK",
        "DJF",
        "TTD",
        "HUF",
        "PLN",
        "VES",
        "ALL",
        "MRU",
        "ZMW",
        "STN",
        "ZWL",
        "AFN",
        "NOK",
        "ISK",
        "AED",
        "EUR",
        "MVR",
        "CRC",
        "GEL",
        "TND",
        "XAF",
        "KHR",
        "IRR",
        "JOD",
        "CNY",
        "CVE",
        "AWG",
        "CUC",
        "NGN",
        "STD",
        "MXN",
        "LYD",
        "SRD",
        "BWP",
        "CDF",
        "KPW",
        "SEK",
        "PGK",
        "AMD",
        "NZD",
        "BOB",
        "CAD",
        "NPR",
        "PEN",
        "SDG",
        "MNT",
        "AZN",
        "MOP",
        "BDT",
        "CLF",
        "BMD",
        "BTN",
        "PAB",
        "USD",
        "BGN",
        "HNL",
        "DKK",
        "ZAR",
        "AOA",
        "TJS",
        "VUV",
        "BHD",
        "BZD",
        "TRY",
        "HKD",
        "ARS",
        "BND",
        "HTG",
        "LRD",
        "MGA",
        "SVC",
        "SLL",
        "KES",
        "HRK",
        "SLE",
        "RON",
        "MKD",
        "MDL",
        "UAH",
        "BIF",
        "KYD",
        "BBD",
        "BRL",
        "CLP",
        "SOS",
        "JPY",
        "RSD",
        "INR",
        "MWK",
        "AUD",
        "PHP",
        "IQD",
        "LBP",
        "MAD",
        "XPF",
        "JMD",
        "DOP",
        "TWD",
        "KZT",
        "SGD",
        "BYN"
    ],
    "countries": [
        {
            "code": "VU",
            "name": "Vanuatu"
        },
        {
            "code": "AI",
            "name": "Anguilla"
        },
        {
            "code": "UA",
            "name": "Ukraine"
        },
        {
            "code": "PW",
            "name": "Palau"
        },
        {
            "code": "FR",
            "name": "France"
        },
        {
            "code": "TO",
            "name": "Tonga"
        },
        {
            "code": "JO",
            "name": "Jordan"
        },
        {
            "code": "ZW",
            "name": "Zimbabwe"
        },
        {
            "code": "KZ",
            "name": "Kazakhstan"
        },
        {
            "code": "AW",
            "name": "Aruba"
        },
        {
            "code": "GY",
            "name": "Guyana"
        },
        {
            "code": "KE",
            "name": "Kenya"
        },
        {
            "code": "LS",
            "name": "Lesotho"
        },
        {
            "code": "NP",
            "name": "Nepal"
        },
        {
            "code": "US",
            "name": "UnitedStatesOfAmerica"
        },
        {
            "code": "ER",
            "name": "Eritrea"
        },
        {
            "code": "LY",
            "name": "Libya"
        },
        {
            "code": "GW",
            "name": "GuineaBissau"
        },
        {
            "code": "GP",
            "name": "Guadeloupe"
        },
        {
            "code": "NO",
            "name": "Norway"
        },
        {
            "code": "TM",
            "name": "Turkmenistan"
        },
        {
            "code": "BY",
            "name": "Belarus"
        },
        {
            "code": "KH",
            "name": "Cambodia"
        },
        {
            "code": "KW",
            "name": "Kuwait"
        },
        {
            "code": "JM",
            "name": "Jamaica"
        },
        {
            "code": "MQ",
            "name": "Martinique"
        },
        {
            "code": "CY",
            "name": "Cyprus"
        },
        {
            "code": "TH",
            "name": "Thailand"
        },
        {
            "code": "CF",
            "name": "CentralAfricanRepublic"
        },
        {
            "code": "PH",
            "name": "Philippines"
        },
        {
            "code": "IO",
            "name": "BritishIndianOceanTerritory"
        },
        {
            "code": "FK",
            "name": "FalklandIslandsMalvinas"
        },
        {
            "code": "EH",
            "name": "WesternSahara"
        },
        {
            "code": "TC",
            "name": "TurksAndCaicosIslands"
        },
        {
            "code": "KN",
            "name": "SaintKittsAndNevis"
        },
        {
            "code": "MW",
            "name": "Malawi"
        },
        {
            "code": "UY",
            "name": "Uruguay"
        },
        {
            "code": "SI",
            "name": "Slovenia"
        },
        {
            "code": "HN",
            "name": "Honduras"
        },
        {
            "code": "PT",
            "name": "Portugal"
        },
        {
            "code": "RO",
            "name": "Romania"
        },
        {
            "code": "BF",
            "name": "BurkinaFaso"
        },
        {
            "code": "GH",
            "name": "Ghana"
        },
        {
            "code": "KP",
            "name": "KoreaDemocraticPeoplesRepublic"
        },
        {
            "code": "CC",
            "name": "CocosKeelingIslands"
        },
        {
            "code": "BE",
            "name": "Belgium"
        },
        {
            "code": "BT",
            "name": "Bhutan"
        },
        {
            "code": "CG",
            "name": "Congo"
        },
        {
            "code": "SX",
            "name": "SintMaartenDutchpart"
        },
        {
            "code": "CL",
            "name": "Chile"
        },
        {
            "code": "DM",
            "name": "Dominica"
        },
        {
            "code": "TF",
            "name": "FrenchSouthernTerritories"
        },
        {
            "code": "MZ",
            "name": "Mozambique"
        },
        {
            "code": "PL",
            "name": "Poland"
        },
        {
            "code": "YE",
            "name": "Yemen"
        },
        {
            "code": "MX",
            "name": "Mexico"
        },
        {
            "code": "AS",
            "name": "AmericanSamoa"
        },
        {
            "code": "TG",
            "name": "Togo"
        },
        {
            "code": "OM",
            "name": "Oman"
        },
        {
            "code": "CH",
            "name": "Switzerland"
        },
        {
            "code": "AD",
            "name": "Andorra"
        },
        {
            "code": "WS",
            "name": "Samoa"
        },
        {
            "code": "TN",
            "name": "Tunisia"
        },
        {
            "code": "GG",
            "name": "Guernsey"
        },
        {
            "code": "SD",
            "name": "Sudan"
        },
        {
            "code": "CD",
            "name": "CongoDemocraticRepublic"
        },
        {
            "code": "CM",
            "name": "Cameroon"
        },
        {
            "code": "CU",
            "name": "Cuba"
        },
        {
            "code": "SY",
            "name": "SyrianArabRepublic"
        },
        {
            "code": "BM",
            "name": "Bermuda"
        },
        {
            "code": "PR",
            "name": "PuertoRico"
        },
        {
            "code": "PK",
            "name": "Pakistan"
        },
        {
            "code": "BI",
            "name": "Burundi"
        },
        {
            "code": "ET",
            "name": "Ethiopia"
        },
        {
            "code": "BJ",
            "name": "Benin"
        },
        {
            "code": "AQ",
            "name": "Antarctica"
        },
        {
            "code": "CX",
            "name": "ChristmasIsland"
        },
        {
            "code": "IE",
            "name": "Ireland"
        },
        {
            "code": "VI",
            "name": "VirginIslandsUS"
        },
        {
            "code": "PM",
            "name": "SaintPierreAndMiquelon"
        },
        {
            "code": "GQ",
            "name": "EquatorialGuinea"
        },
        {
            "code": "IM",
            "name": "IsleOfMan"
        },
        {
            "code": "SA",
            "name": "SaudiArabia"
        },
        {
            "code": "BZ",
            "name": "Belize"
        },
        {
            "code": "CO",
            "name": "Colombia"
        },
        {
            "code": "MT",
            "name": "Malta"
        },
        {
            "code": "AU",
            "name": "Australia"
        },
        {
            "code": "EE",
            "name": "Estonia"
        },
        {
            "code": "NR",
            "name": "Nauru"
        },
        {
            "code": "KR",
            "name": "KoreaRepublic"
        },
        {
            "code": "AZ",
            "name": "Azerbaijan"
        },
        {
            "code": "NG",
            "name": "Nigeria"
        },
        {
            "code": "TW",
            "name": "TaiwanProvinceOfChina"
        },
        {
            "code": "UZ",
            "name": "Uzbekistan"
        },
        {
            "code": "IS",
            "name": "Iceland"
        },
        {
            "code": "BQ",
            "name": "BonaireSintEustatiusAndSaba"
        },
        {
            "code": "MG",
            "name": "Madagascar"
        },
        {
            "code": "MC",
            "name": "Monaco"
        },
        {
            "code": "LK",
            "name": "SriLanka"
        },
        {
            "code": "NF",
            "name": "NorfolkIsland"
        },
        {
            "code": "MM",
            "name": "Myanmar"
        },
        {
            "code": "GS",
            "name": "SouthGeorgiaAndTheSouthSandwichIslands"
        },
        {
            "code": "LI",
            "name": "Liechtenstein"
        },
        {
            "code": "CZ",
            "name": "Czechia"
        },
        {
            "code": "TK",
            "name": "Tokelau"
        },
        {
            "code": "GI",
            "name": "Gibraltar"
        },
        {
            "code": "PS",
            "name": "PalestineState"
        },
        {
            "code": "SG",
            "name": "Singapore"
        },
        {
            "code": "SM",
            "name": "SanMarino"
        },
        {
            "code": "AG",
            "name": "AntiguaAndBarbuda"
        },
        {
            "code": "ZA",
            "name": "SouthAfrica"
        },
        {
            "code": "YT",
            "name": "Mayotte"
        },
        {
            "code": "MP",
            "name": "NorthernMarianaIslands"
        },
        {
            "code": "RW",
            "name": "Rwanda"
        },
        {
            "code": "HK",
            "name": "HongKong"
        },
        {
            "code": "HT",
            "name": "Haiti"
        },
        {
            "code": "PA",
            "name": "Panama"
        },
        {
            "code": "PN",
            "name": "Pitcairn"
        },
        {
            "code": "LT",
            "name": "Lithuania"
        },
        {
            "code": "VA",
            "name": "HolySee"
        },
        {
            "code": "MF",
            "name": "SaintMartinFrenchpart"
        },
        {
            "code": "LC",
            "name": "SaintLucia"
        },
        {
            "code": "GE",
            "name": "Georgia"
        },
        {
            "code": "BB",
            "name": "Barbados"
        },
        {
            "code": "BD",
            "name": "Bangladesh"
        },
        {
            "code": "VN",
            "name": "Vietnam"
        },
        {
            "code": "AX",
            "name": "AlandIslands"
        },
        {
            "code": "TJ",
            "name": "Tajikistan"
        },
        {
            "code": "GU",
            "name": "Guam"
        },
        {
            "code": "FJ",
            "name": "Fiji"
        },
        {
            "code": "BS",
            "name": "Bahamas"
        },
        {
            "code": "PG",
            "name": "PapuaNewGuinea"
        },
        {
            "code": "IQ",
            "name": "Iraq"
        },
        {
            "code": "UG",
            "name": "Uganda"
        },
        {
            "code": "MN",
            "name": "Mongolia"
        },
        {
            "code": "GM",
            "name": "Gambia"
        },
        {
            "code": "UM",
            "name": "UnitedStatesMinorOutlyingIslands"
        },
        {
            "code": "NZ",
            "name": "NewZealand"
        },
        {
            "code": "JE",
            "name": "Jersey"
        },
        {
            "code": "SC",
            "name": "Seychelles"
        },
        {
            "code": "IT",
            "name": "Italy"
        },
        {
            "code": "RE",
            "name": "Reunion"
        },
        {
            "code": "GF",
            "name": "FrenchGuiana"
        },
        {
            "code": "TD",
            "name": "Chad"
        },
        {
            "code": "NC",
            "name": "NewCaledonia"
        },
        {
            "code": "CV",
            "name": "CaboVerde"
        },
        {
            "code": "SL",
            "name": "SierraLeone"
        },
        {
            "code": "GT",
            "name": "Guatemala"
        },
        {
            "code": "KY",
            "name": "CaymanIslands"
        },
        {
            "code": "ID",
            "name": "Indonesia"
        },
        {
            "code": "SR",
            "name": "Suriname"
        },
        {
            "code": "WF",
            "name": "WallisAndFutuna"
        },
        {
            "code": "LA",
            "name": "LaoPeoplesDemocraticRepublic"
        },
        {
            "code": "TT",
            "name": "TrinidadAndTobago"
        },
        {
            "code": "NA",
            "name": "Namibia"
        },
        {
            "code": "ZM",
            "name": "Zambia"
        },
        {
            "code": "SN",
            "name": "Senegal"
        },
        {
            "code": "MA",
            "name": "Morocco"
        },
        {
            "code": "NL",
            "name": "Netherlands"
        },
        {
            "code": "NI",
            "name": "Nicaragua"
        },
        {
            "code": "KG",
            "name": "Kyrgyzstan"
        },
        {
            "code": "MY",
            "name": "Malaysia"
        },
        {
            "code": "TR",
            "name": "Turkey"
        },
        {
            "code": "NE",
            "name": "Niger"
        },
        {
            "code": "MH",
            "name": "MarshallIslands"
        },
        {
            "code": "LR",
            "name": "Liberia"
        },
        {
            "code": "FI",
            "name": "Finland"
        },
        {
            "code": "MD",
            "name": "MoldovaRepublic"
        },
        {
            "code": "ME",
            "name": "Montenegro"
        },
        {
            "code": "AL",
            "name": "Albania"
        },
        {
            "code": "HM",
            "name": "HeardIslandAndMcDonaldIslands"
        },
        {
            "code": "FM",
            "name": "MicronesiaFederatedStates"
        },
        {
            "code": "CR",
            "name": "CostaRica"
        },
        {
            "code": "CW",
            "name": "Curacao"
        },
        {
            "code": "SO",
            "name": "Somalia"
        },
        {
            "code": "MK",
            "name": "MacedoniaTheFormerYugoslavRepublic"
        },
        {
            "code": "TZ",
            "name": "TanzaniaUnitedRepublic"
        },
        {
            "code": "RS",
            "name": "Serbia"
        },
        {
            "code": "KM",
            "name": "Comoros"
        },
        {
            "code": "VG",
            "name": "VirginIslandsBritish"
        },
        {
            "code": "AM",
            "name": "Armenia"
        },
        {
            "code": "BH",
            "name": "Bahrain"
        },
        {
            "code": "BL",
            "name": "SaintBarthelemy"
        },
        {
            "code": "NU",
            "name": "Niue"
        },
        {
            "code": "LU",
            "name": "Luxembourg"
        },
        {
            "code": "MO",
            "name": "Macao"
        },
        {
            "code": "BA",
            "name": "BosniaAndHerzegovina"
        },
        {
            "code": "AF",
            "name": "Afghanistan"
        },
        {
            "code": "EG",
            "name": "Egypt"
        },
        {
            "code": "CK",
            "name": "CookIslands"
        },
        {
            "code": "CA",
            "name": "Canada"
        },
        {
            "code": "SZ",
            "name": "Swaziland"
        },
        {
            "code": "ML",
            "name": "Mali"
        },
        {
            "code": "BR",
            "name": "Brazil"
        },
        {
            "code": "LV",
            "name": "Latvia"
        },
        {
            "code": "TL",
            "name": "TimorLeste"
        },
        {
            "code": "BG",
            "name": "Bulgaria"
        },
        {
            "code": "AT",
            "name": "Austria"
        },
        {
            "code": "KI",
            "name": "Kiribati"
        },
        {
            "code": "IR",
            "name": "IranIslamicRepublic"
        },
        {
            "code": "MV",
            "name": "Maldives"
        },
        {
            "code": "RU",
            "name": "RussianFederation"
        },
        {
            "code": "VE",
            "name": "VenezuelaBolivarianRepublic"
        },
        {
            "code": "AE",
            "name": "UnitedArabEmirates"
        },
        {
            "code": "VC",
            "name": "SaintVincentAndTheGrenadines"
        },
        {
            "code": "MS",
            "name": "Montserrat"
        },
        {
            "code": "AO",
            "name": "Angola"
        },
        {
            "code": "PY",
            "name": "Paraguay"
        },
        {
            "code": "BV",
            "name": "BouvetIsland"
        },
        {
            "code": "DO",
            "name": "DominicanRepublic"
        },
        {
            "code": "SH",
            "name": "SaintHelenaAscensionAndTristandaCunha"
        },
        {
            "code": "ES",
            "name": "Spain"
        },
        {
            "code": "AR",
            "name": "Argentina"
        },
        {
            "code": "LB",
            "name": "Lebanon"
        },
        {
            "code": "PF",
            "name": "FrenchPolynesia"
        },
        {
            "code": "IL",
            "name": "Israel"
        },
        {
            "code": "DJ",
            "name": "Djibouti"
        },
        {
            "code": "DZ",
            "name": "Algeria"
        },
        {
            "code": "TV",
            "name": "Tuvalu"
        },
        {
            "code": "MU",
            "name": "Mauritius"
        },
        {
            "code": "JP",
            "name": "Japan"
        },
        {
            "code": "DK",
            "name": "Denmark"
        },
        {
            "code": "SE",
            "name": "Sweden"
        },
        {
            "code": "CN",
            "name": "China"
        },
        {
            "code": "PE",
            "name": "Peru"
        },
        {
            "code": "BW",
            "name": "Botswana"
        },
        {
            "code": "SV",
            "name": "ElSalvador"
        },
        {
            "code": "CI",
            "name": "CotedIvoire"
        },
        {
            "code": "HR",
            "name": "Croatia"
        },
        {
            "code": "SK",
            "name": "Slovakia"
        },
        {
            "code": "GD",
            "name": "Grenada"
        },
        {
            "code": "SS",
            "name": "SouthSudan"
        },
        {
            "code": "BO",
            "name": "BoliviaPlurinationalState"
        },
        {
            "code": "QA",
            "name": "Qatar"
        },
        {
            "code": "HU",
            "name": "Hungary"
        },
        {
            "code": "SB",
            "name": "SolomonIslands"
        },
        {
            "code": "BN",
            "name": "BruneiDarussalam"
        },
        {
            "code": "GB",
            "name": "UnitedKingdomOfGreatBritainAndNorthernIreland"
        },
        {
            "code": "GL",
            "name": "Greenland"
        },
        {
            "code": "ST",
            "name": "SaoTomeAndPrincipe"
        },
        {
            "code": "GR",
            "name": "Greece"
        },
        {
            "code": "FO",
            "name": "FaroeIslands"
        },
        {
            "code": "SJ",
            "name": "SvalbardAndJanMayen"
        },
        {
            "code": "IN",
            "name": "India"
        },
        {
            "code": "EC",
            "name": "Ecuador"
        },
        {
            "code": "MR",
            "name": "Mauritania"
        },
        {
            "code": "GA",
            "name": "Gabon"
        },
        {
            "code": "DE",
            "name": "Germany"
        },
        {
            "code": "GN",
            "name": "Guinea"
        }
    ]
}
```
Closes #8977 

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