Bug: Get Plan prices



**Request to Subscription Povider to get plans prices**
api/v2/item_prices?item_id[is]=cbdemo_enterprise-suite'

**Response from Subscription Provider**
```
{
    "list": [
        {
            "item_price": {
                "id": "cbdemo_enterprise-suite-INR-Daily",
                "name": "Enterprise Suite INR Daily",
                "item_family_id": "cbdemo_omnisupport-solutions",
                "item_id": "cbdemo_enterprise-suite",
                "status": "active",
                "external_name": "Enterprise Suite",
                "pricing_model": "flat_fee",
                "price": 10000,
                "period": 1,
                "currency_code": "INR",
                "period_unit": "day",
                "free_quantity": 0,
                "channel": "web",
                "resource_version": 1755510951486,
                "updated_at": 1755510951,
                "created_at": 1755510951,
                "is_taxable": true,
                "item_type": "plan",
                "show_description_in_invoices": false,
                "show_description_in_quotes": false,
                "deleted": false,
                "object": "item_price"
            }
        },
        {
            "item_price": {
                "id": "cbdemo_enterprise-suite-monthly",
                "name": "Enterprise Suite Monthly",
                "item_family_id": "cbdemo_omnisupport-solutions",
                "item_id": "cbdemo_enterprise-suite",
                "description": "Enterprise Suite billed monthly",
                "status": "active",
                "external_name": "Enterprise Suite Monthly",
                "pricing_model": "flat_fee",
                "price": 14100,
                "period": 1,
                "currency_code": "INR",
                "period_unit": "month",
                "free_quantity": 0,
                "channel": "web",
                "resource_version": 1754897341938,
                "updated_at": 1754897341,
                "created_at": 1754897341,
                "is_taxable": true,
                "item_type": "plan",
                "show_description_in_invoices": false,
                "show_description_in_quotes": false,
                "deleted": false,
                "object": "item_price"
            }
        },
        {
            "item_price": {
                "id": "cbdemo_enterprise-suite-annual",
                "name": "Enterprise Suite Annual",
                "item_family_id": "cbdemo_omnisupport-solutions",
                "item_id": "cbdemo_enterprise-suite",
                "description": "Enterprise Suite billed annually",
                "status": "active",
                "external_name": "Enterprise Suite Annual",
                "pricing_model": "flat_fee",
                "price": 169000,
                "period": 1,
                "currency_code": "INR",
                "period_unit": "year",
                "free_quantity": 0,
                "channel": "web",
                "resource_version": 1754897341789,
                "updated_at": 1754897341,
                "created_at": 1754897341,
                "is_taxable": true,
                "item_type": "plan",
                "show_description_in_invoices": false,
                "show_description_in_quotes": false,
                "deleted": false,
                "object": "item_price"
            }
        }
    ]
}
```
diff --git a/crates/hyperswitch_connectors/src/connectors/chargebee.rs b/crates/hyperswitch_connectors/src/connectors/chargebee.rs
index 1a021ef4961..b7ea2d591f5 100644
--- a/crates/hyperswitch_connectors/src/connectors/chargebee.rs
+++ b/crates/hyperswitch_connectors/src/connectors/chargebee.rs
@@ -25,21 +25,22 @@ use hyperswitch_domain_models::{
         access_token_auth::AccessTokenAuth,
         payments::{Authorize, Capture, PSync, PaymentMethodToken, Session, SetupMandate, Void},
         refunds::{Execute, RSync},
-        subscriptions::GetSubscriptionPlans,
+        subscriptions::{GetSubscriptionPlanPrices, GetSubscriptionPlans},
     },
     router_request_types::{
-        subscriptions::GetSubscriptionPlansRequest, AccessTokenRequestData,
-        PaymentMethodTokenizationData, PaymentsAuthorizeData, PaymentsCancelData,
-        PaymentsCaptureData, PaymentsSessionData, PaymentsSyncData, RefundsData,
-        SetupMandateRequestData,
+        subscriptions::{GetSubscriptionPlanPricesRequest, GetSubscriptionPlansRequest},
+        AccessTokenRequestData, PaymentMethodTokenizationData, PaymentsAuthorizeData,
+        PaymentsCancelData, PaymentsCaptureData, PaymentsSessionData, PaymentsSyncData,
+        RefundsData, SetupMandateRequestData,
     },
     router_response_types::{
-        subscriptions::GetSubscriptionPlansResponse, ConnectorInfo, PaymentsResponseData,
-        RefundsResponseData,
+        subscriptions::{GetSubscriptionPlanPricesResponse, GetSubscriptionPlansResponse},
+        ConnectorInfo, PaymentsResponseData, RefundsResponseData,
     },
     types::{
-        GetSubscriptionPlansRouterData, PaymentsAuthorizeRouterData, PaymentsCaptureRouterData,
-        PaymentsSyncRouterData, RefundSyncRouterData, RefundsRouterData,
+        GetSubscriptionPlanPricesRouterData, GetSubscriptionPlansRouterData,
+        PaymentsAuthorizeRouterData, PaymentsCaptureRouterData, PaymentsSyncRouterData,
+        RefundSyncRouterData, RefundsRouterData,
     },
 };
 use hyperswitch_interfaces::{
@@ -57,8 +58,12 @@ use masking::{Mask, PeekInterface, Secret};
 use transformers as chargebee;
 
 use crate::{
-    connectors::chargebee::transformers::ChargebeeListPlansResponse, constants::headers,
-    types::ResponseRouterData, utils,
+    connectors::chargebee::transformers::{
+        ChargebeeGetPlanPricesResponse, ChargebeeListPlansResponse,
+    },
+    constants::headers,
+    types::ResponseRouterData,
+    utils,
 };
 
 #[derive(Clone)]
@@ -673,11 +678,7 @@ impl
 }
 
 fn get_chargebee_plans_query_params(
-    _req: &RouterData<
-        GetSubscriptionPlans,
-        GetSubscriptionPlansRequest,
-        GetSubscriptionPlansResponse,
-    >,
+    _req: &GetSubscriptionPlansRouterData,
 ) -> CustomResult<String, errors::ConnectorError> {
     let limit = 10; // hardcoded limit param
     let item_type = "plan"; // hardcoded filter param
@@ -766,6 +767,90 @@ impl
     }
 }
 
+fn get_chargebee_plan_prices_query_params(
+    req: &GetSubscriptionPlanPricesRouterData,
+) -> CustomResult<String, errors::ConnectorError> {
+    let item_id = req.request.item_id.to_string();
+    let params = format!("?item_id[is]={item_id}");
+    Ok(params)
+}
+impl
+    ConnectorIntegration<
+        GetSubscriptionPlanPrices,
+        GetSubscriptionPlanPricesRequest,
+        GetSubscriptionPlanPricesResponse,
+    > for Chargebee
+{
+    fn get_headers(
+        &self,
+        req: &GetSubscriptionPlanPricesRouterData,
+        connectors: &Connectors,
+    ) -> CustomResult<Vec<(String, masking::Maskable<String>)>, errors::ConnectorError> {
+        self.build_headers(req, connectors)
+    }
+
+    fn get_url(
+        &self,
+        req: &GetSubscriptionPlanPricesRouterData,
+        connectors: &Connectors,
+    ) -> CustomResult<String, errors::ConnectorError> {
+        let query_params = get_chargebee_plan_prices_query_params(req)?;
+        let metadata: chargebee::ChargebeeMetadata =
+            utils::to_connector_meta_from_secret(req.connector_meta_data.clone())?;
+        let url = self
+            .base_url(connectors)
+            .to_string()
+            .replace("{{merchant_endpoint_prefix}}", metadata.site.peek());
+        Ok(format!("{url}v2/item_prices{query_params}"))
+    }
+    // check if get_content_type is required
+    fn build_request(
+        &self,
+        req: &GetSubscriptionPlanPricesRouterData,
+        connectors: &Connectors,
+    ) -> CustomResult<Option<Request>, errors::ConnectorError> {
+        Ok(Some(
+            RequestBuilder::new()
+                .method(Method::Get)
+                .url(&types::GetSubscriptionPlanPricesType::get_url(
+                    self, req, connectors,
+                )?)
+                .attach_default_headers()
+                .headers(types::GetSubscriptionPlanPricesType::get_headers(
+                    self, req, connectors,
+                )?)
+                .build(),
+        ))
+    }
+
+    fn handle_response(
+        &self,
+        data: &GetSubscriptionPlanPricesRouterData,
+        event_builder: Option<&mut ConnectorEvent>,
+        res: Response,
+    ) -> CustomResult<GetSubscriptionPlanPricesRouterData, errors::ConnectorError> {
+        let response: ChargebeeGetPlanPricesResponse = res
+            .response
+            .parse_struct("chargebee ChargebeeGetPlanPricesResponse")
+            .change_context(errors::ConnectorError::ResponseDeserializationFailed)?;
+        event_builder.map(|i| i.set_response_body(&response));
+        router_env::logger::info!(connector_response=?response);
+        RouterData::try_from(ResponseRouterData {
+            response,
+            data: data.clone(),
+            http_code: res.status_code,
+        })
+    }
+
+    fn get_error_response(
+        &self,
+        res: Response,
+        event_builder: Option<&mut ConnectorEvent>,
+    ) -> CustomResult<ErrorResponse, errors::ConnectorError> {
+        self.build_error_response(res, event_builder)
+    }
+}
+
 #[async_trait::async_trait]
 impl webhooks::IncomingWebhook for Chargebee {
     fn get_webhook_source_verification_signature(
diff --git a/crates/hyperswitch_connectors/src/connectors/chargebee/transformers.rs b/crates/hyperswitch_connectors/src/connectors/chargebee/transformers.rs
index 8f4a3f2756b..adeb7ce21dd 100644
--- a/crates/hyperswitch_connectors/src/connectors/chargebee/transformers.rs
+++ b/crates/hyperswitch_connectors/src/connectors/chargebee/transformers.rs
@@ -16,7 +16,8 @@ use hyperswitch_domain_models::{
     router_request_types::{revenue_recovery::RevenueRecoveryRecordBackRequest, ResponseId},
     router_response_types::{
         revenue_recovery::RevenueRecoveryRecordBackResponse,
-        subscriptions::GetSubscriptionPlansResponse, PaymentsResponseData, RefundsResponseData,
+        subscriptions::{GetSubscriptionPlanPricesResponse, GetSubscriptionPlansResponse},
+        PaymentsResponseData, RefundsResponseData,
     },
     types::{PaymentsAuthorizeRouterData, RefundsRouterData, RevenueRecoveryRecordBackRouterData},
 };
@@ -789,7 +790,7 @@ pub struct ChargebeeItem {
     pub id: String,
     pub name: String,
     #[serde(rename = "type")]
-    pub plan_type: String, // to check if new enum is required for this
+    pub plan_type: String,
     pub is_giftable: bool,
     pub enabled_for_checkout: bool,
     pub enabled_in_portal: bool,
@@ -812,7 +813,7 @@ impl<F, T>
             .into_iter()
             .map(|wrapper| {
                 hyperswitch_domain_models::router_response_types::subscriptions::SubscriptionPlans {
-                    subscription_provider_plan_id: wrapper.item.id,
+                    plan_id: wrapper.item.id,
                     name: wrapper.item.name,
                     description: wrapper.item.description,
                 }
@@ -824,3 +825,100 @@ impl<F, T>
         })
     }
 }
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct ChargebeeGetPlanPricesResponse {
+    pub list: Vec<ChargebeePlanPriceWrapper>,
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct ChargebeePlanPriceWrapper {
+    pub item_price: ChargebeePlanPrice,
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct ChargebeePlanPrice {
+    pub id: String,
+    pub name: String,
+    pub currency_code: String,
+    pub free_quantity: i64,
+    #[serde(default, with = "common_utils::custom_serde::timestamp::option")]
+    pub created_at: Option<PrimitiveDateTime>,
+    pub deleted: bool,
+    pub item_id: Option<String>,
+    pub period: i64,
+    pub period_unit: ChargebeePeriodUnit,
+    pub trial_period: Option<i64>,
+    pub trial_period_unit: ChargebeeTrialPeriodUnit,
+    pub price: MinorUnit,
+    pub pricing_model: ChargebeePricingModel,
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub enum ChargebeePricingModel {
+    FlatFee,
+    PerUnit,
+    Tiered,
+    Volume,
+    Stairstep,
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub enum ChargebeePeriodUnit {
+    Day,
+    Week,
+    Month,
+    Year,
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub enum ChargebeeTrialPeriodUnit {
+    Day,
+    Month,
+}
+
+impl<F, T>
+    TryFrom<
+        ResponseRouterData<F, ChargebeeGetPlanPricesResponse, T, GetSubscriptionPlanPricesResponse>,
+    > for RouterData<F, T, GetSubscriptionPlanPricesResponse>
+{
+    type Error = error_stack::Report<errors::ConnectorError>;
+    fn try_from(
+        item: ResponseRouterData<
+            F,
+            ChargebeeGetPlanPricesResponse,
+            T,
+            GetSubscriptionPlanPricesResponse,
+        >,
+    ) -> Result<Self, Self::Error> {
+        let plan_prices = item
+            .response
+            .list
+            .into_iter()
+            .map(|wrapper| {
+                hyperswitch_domain_models::router_response_types::subscriptions::SubscriptionPlanPrices {
+                    price_id: wrapper.item_price.id,
+                    plan_id: wrapper.item_price.item_id,
+                    amount: wrapper.item_price.price,
+                    currency: <common_enums::Currency as std::str::FromStr>::from_str(&wrapper.item_price.currency_code).unwrap_or(common_enums::Currency::USD), // defaulting to USD if parsing fails
+                    interval: match wrapper.item_price.period_unit {
+                        ChargebeePeriodUnit::Day => hyperswitch_domain_models::router_response_types::subscriptions::PeriodUnit::Day,
+                        ChargebeePeriodUnit::Week => hyperswitch_domain_models::router_response_types::subscriptions::PeriodUnit::Week,
+                        ChargebeePeriodUnit::Month => hyperswitch_domain_models::router_response_types::subscriptions::PeriodUnit::Month,
+                        ChargebeePeriodUnit::Year => hyperswitch_domain_models::router_response_types::subscriptions::PeriodUnit::Year,
+                    },
+                    interval_count: wrapper.item_price.period,
+                    trial_period: wrapper.item_price.trial_period,
+                    trial_period_unit: match wrapper.item_price.trial_period_unit {
+                        ChargebeeTrialPeriodUnit::Day => Some(hyperswitch_domain_models::router_response_types::subscriptions::PeriodUnit::Day),
+                        ChargebeeTrialPeriodUnit::Month => Some(hyperswitch_domain_models::router_response_types::subscriptions::PeriodUnit::Month),
+                    },
+                }
+            })
+            .collect();
+        Ok(Self {
+            response: Ok(GetSubscriptionPlanPricesResponse { list: plan_prices }),
+            ..item.data
+        })
+    }
+}
diff --git a/crates/hyperswitch_domain_models/src/router_flow_types/subscriptions.rs b/crates/hyperswitch_domain_models/src/router_flow_types/subscriptions.rs
index a71b81e7d3e..4f277c07678 100644
--- a/crates/hyperswitch_domain_models/src/router_flow_types/subscriptions.rs
+++ b/crates/hyperswitch_domain_models/src/router_flow_types/subscriptions.rs
@@ -1,2 +1,5 @@
 #[derive(Debug, Clone)]
 pub struct GetSubscriptionPlans;
+
+#[derive(Debug, Clone)]
+pub struct GetSubscriptionPlanPrices;
diff --git a/crates/hyperswitch_domain_models/src/router_request_types/subscriptions.rs b/crates/hyperswitch_domain_models/src/router_request_types/subscriptions.rs
index f6441e737a3..3a93433a693 100644
--- a/crates/hyperswitch_domain_models/src/router_request_types/subscriptions.rs
+++ b/crates/hyperswitch_domain_models/src/router_request_types/subscriptions.rs
@@ -1,2 +1,7 @@
 #[derive(Debug, Clone)]
 pub struct GetSubscriptionPlansRequest;
+
+#[derive(Debug, Clone)]
+pub struct GetSubscriptionPlanPricesRequest {
+    pub item_id: String,
+}
diff --git a/crates/hyperswitch_domain_models/src/router_response_types/subscriptions.rs b/crates/hyperswitch_domain_models/src/router_response_types/subscriptions.rs
index fd6fd7965b1..967907a947a 100644
--- a/crates/hyperswitch_domain_models/src/router_response_types/subscriptions.rs
+++ b/crates/hyperswitch_domain_models/src/router_response_types/subscriptions.rs
@@ -1,3 +1,5 @@
+use common_enums::Currency;
+
 #[derive(Debug, Clone)]
 pub struct GetSubscriptionPlansResponse {
     pub list: Vec<SubscriptionPlans>,
@@ -5,7 +7,32 @@ pub struct GetSubscriptionPlansResponse {
 
 #[derive(Debug, Clone)]
 pub struct SubscriptionPlans {
-    pub subscription_provider_plan_id: String,
+    pub plan_id: String,
     pub name: String,
     pub description: Option<String>,
 }
+
+#[derive(Debug, Clone)]
+pub struct GetSubscriptionPlanPricesResponse {
+    pub list: Vec<SubscriptionPlanPrices>,
+}
+
+#[derive(Debug, Clone)]
+pub struct SubscriptionPlanPrices {
+    pub price_id: String,
+    pub plan_id: Option<String>,
+    pub amount: common_utils::types::MinorUnit,
+    pub currency: Currency,
+    pub interval: PeriodUnit,
+    pub interval_count: i64,
+    pub trial_period: Option<i64>,
+    pub trial_period_unit: Option<PeriodUnit>,
+}
+
+#[derive(Debug, Clone)]
+pub enum PeriodUnit {
+    Day,
+    Week,
+    Month,
+    Year,
+}
diff --git a/crates/hyperswitch_domain_models/src/types.rs b/crates/hyperswitch_domain_models/src/types.rs
index 65958b60b0c..9d5094118db 100644
--- a/crates/hyperswitch_domain_models/src/types.rs
+++ b/crates/hyperswitch_domain_models/src/types.rs
@@ -4,11 +4,13 @@ use crate::{
     router_data::{AccessToken, AccessTokenAuthenticationResponse, RouterData},
     router_data_v2::{self, RouterDataV2},
     router_flow_types::{
-        mandate_revoke::MandateRevoke, revenue_recovery::RecoveryRecordBack,
-        subscriptions::GetSubscriptionPlans, AccessTokenAuth, AccessTokenAuthentication,
-        Authenticate, AuthenticationConfirmation, Authorize, AuthorizeSessionToken,
-        BillingConnectorInvoiceSync, BillingConnectorPaymentsSync, CalculateTax, Capture,
-        CompleteAuthorize, CreateConnectorCustomer, CreateOrder, Execute, ExternalVaultProxy,
+        mandate_revoke::MandateRevoke,
+        revenue_recovery::RecoveryRecordBack,
+        subscriptions::{GetSubscriptionPlanPrices, GetSubscriptionPlans},
+        AccessTokenAuth, AccessTokenAuthentication, Authenticate, AuthenticationConfirmation,
+        Authorize, AuthorizeSessionToken, BillingConnectorInvoiceSync,
+        BillingConnectorPaymentsSync, CalculateTax, Capture, CompleteAuthorize,
+        CreateConnectorCustomer, CreateOrder, Execute, ExternalVaultProxy,
         IncrementalAuthorization, PSync, PaymentMethodToken, PostAuthenticate, PostCaptureVoid,
         PostSessionTokens, PreAuthenticate, PreProcessing, RSync, SdkSessionUpdate, Session,
         SetupMandate, UpdateMetadata, VerifyWebhookSource, Void,
@@ -18,7 +20,7 @@ use crate::{
             BillingConnectorInvoiceSyncRequest, BillingConnectorPaymentsSyncRequest,
             RevenueRecoveryRecordBackRequest,
         },
-        subscriptions::GetSubscriptionPlansRequest,
+        subscriptions::{GetSubscriptionPlanPricesRequest, GetSubscriptionPlansRequest},
         unified_authentication_service::{
             UasAuthenticationRequestData, UasAuthenticationResponseData,
             UasConfirmationRequestData, UasPostAuthenticationRequestData,
@@ -39,7 +41,7 @@ use crate::{
             BillingConnectorInvoiceSyncResponse, BillingConnectorPaymentsSyncResponse,
             RevenueRecoveryRecordBackResponse,
         },
-        subscriptions::GetSubscriptionPlansResponse,
+        subscriptions::{GetSubscriptionPlanPricesResponse, GetSubscriptionPlansResponse},
         MandateRevokeResponseData, PaymentsResponseData, RefundsResponseData,
         TaxCalculationResponseData, VaultResponseData, VerifyWebhookSourceResponseData,
     },
@@ -126,6 +128,12 @@ pub type RevenueRecoveryRecordBackRouterData = RouterData<
 pub type GetSubscriptionPlansRouterData =
     RouterData<GetSubscriptionPlans, GetSubscriptionPlansRequest, GetSubscriptionPlansResponse>;
 
+pub type GetSubscriptionPlanPricesRouterData = RouterData<
+    GetSubscriptionPlanPrices,
+    GetSubscriptionPlanPricesRequest,
+    GetSubscriptionPlanPricesResponse,
+>;
+
 pub type UasAuthenticationRouterData =
     RouterData<Authenticate, UasAuthenticationRequestData, UasAuthenticationResponseData>;
 
diff --git a/crates/hyperswitch_interfaces/src/types.rs b/crates/hyperswitch_interfaces/src/types.rs
index 0da67f321dd..a97f31c8578 100644
--- a/crates/hyperswitch_interfaces/src/types.rs
+++ b/crates/hyperswitch_interfaces/src/types.rs
@@ -16,7 +16,7 @@ use hyperswitch_domain_models::{
         },
         refunds::{Execute, RSync},
         revenue_recovery::{BillingConnectorPaymentsSync, RecoveryRecordBack},
-        subscriptions::GetSubscriptionPlans,
+        subscriptions::{GetSubscriptionPlanPrices, GetSubscriptionPlans},
         unified_authentication_service::{
             Authenticate, AuthenticationConfirmation, PostAuthenticate, PreAuthenticate,
         },
@@ -32,7 +32,7 @@ use hyperswitch_domain_models::{
             BillingConnectorInvoiceSyncRequest, BillingConnectorPaymentsSyncRequest,
             RevenueRecoveryRecordBackRequest,
         },
-        subscriptions::GetSubscriptionPlansRequest,
+        subscriptions::{GetSubscriptionPlanPricesRequest, GetSubscriptionPlansRequest},
         unified_authentication_service::{
             UasAuthenticationRequestData, UasAuthenticationResponseData,
             UasConfirmationRequestData, UasPostAuthenticationRequestData,
@@ -55,7 +55,7 @@ use hyperswitch_domain_models::{
             BillingConnectorInvoiceSyncResponse, BillingConnectorPaymentsSyncResponse,
             RevenueRecoveryRecordBackResponse,
         },
-        subscriptions::GetSubscriptionPlansResponse,
+        subscriptions::{GetSubscriptionPlanPricesResponse, GetSubscriptionPlansResponse},
         AcceptDisputeResponse, DefendDisputeResponse, DisputeSyncResponse, FetchDisputesResponse,
         MandateRevokeResponseData, PaymentsResponseData, RefundsResponseData, RetrieveFileResponse,
         SubmitEvidenceResponse, TaxCalculationResponseData, UploadFileResponse, VaultResponseData,
@@ -319,6 +319,13 @@ pub type GetSubscriptionPlansType = dyn ConnectorIntegration<
     GetSubscriptionPlansResponse,
 >;
 
+/// Type alias for `ConnectorIntegration<GetSubscriptionPlanPrices, GetSubscriptionPlanPricesRequest, GetSubscriptionPlanPricesResponse>`
+pub type GetSubscriptionPlanPricesType = dyn ConnectorIntegration<
+    GetSubscriptionPlanPrices,
+    GetSubscriptionPlanPricesRequest,
+    GetSubscriptionPlanPricesResponse,
+>;
+
 /// Type alias for `ConnectorIntegration<ExternalVaultInsertFlow, VaultRequestData, VaultResponseData>`
 pub type ExternalVaultInsertType =
     dyn ConnectorIntegration<ExternalVaultInsertFlow, VaultRequestData, VaultResponseData>;

## 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 -->
This PR adds support for the get plan prices endpoint for Chargebee

### 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).
-->
Closes #9054 

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


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