Issue:
Bug: [FEATURE] Add Refund Sync route in Stripe compatibility



### Feature Description

There is a refund sync route https://github.com/juspay/hyperswitch/blob/573a4d384ee6a9d72648ab537804799a3993e1e8/crates/router/src/routes/app.rs#L184 

A similar route needs to be added in the compatibility layer in this file - https://github.com/juspay/hyperswitch/blob/main/crates/router/src/compatibility/stripe/refunds.rs 


### Possible Implementation


refer similar route of payments as an example. - https://github.com/juspay/hyperswitch/blob/573a4d384ee6a9d72648ab537804799a3993e1e8/crates/router/src/compatibility/stripe/app.rs#L12 

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

- [X] I checked and didn't find 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?

None

Pull request description:
## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [ ] Bugfix
- [ ] New feature
- [x] Enhancement
- [ ] Refactoring
- [ ] Dependency updates
- [ ] Documentation
- [ ] CI/CD

## Description
<!-- Describe your changes in detail -->
This PR is based on the issue #920 to add refund sync with gateway creds in stripe compatibility.  
Adds a new service  refund_retrieve_with_gateway_creds which parses the JSON to type RefundsRetrieveRequest which already has an optional field merchant_connector_details to accept gateway credentials and then calls the normal refund retrieve API

### 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


## How did you test it?

## Checklist
<!-- Put an `x` in the boxes that apply -->

- [ ] I formatted the code `cargo +nightly fmt --all`
- [x] I addressed lints thrown by `cargo clippy`
- [ ] I reviewed submitted code
- [ ] I added unit tests for my changes where possible
- [ ] I added a [CHANGELOG](/CHANGELOG.md) entry if applicable


Testing:

Patch:
diff --git a/Cargo.lock b/Cargo.lock
index 40c8891825e..99a37d53a60 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -3846,7 +3846,7 @@ checksum = "bcec881020c684085e55a25f7fd888954d56609ef363479dc5a1305eb0d40cab"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.11",
+ "syn 2.0.15",
 ]
 
 [[package]]
diff --git a/crates/router/src/compatibility/stripe/app.rs b/crates/router/src/compatibility/stripe/app.rs
index d40b1155412..898ffc0aee2 100644
--- a/crates/router/src/compatibility/stripe/app.rs
+++ b/crates/router/src/compatibility/stripe/app.rs
@@ -40,6 +40,7 @@ impl Refunds {
             .service(refund_create)
             .service(refund_retrieve)
             .service(refund_update)
+            .service(refund_retrieve_with_gateway_creds)
     }
 }
 
diff --git a/crates/router/src/compatibility/stripe/refunds.rs b/crates/router/src/compatibility/stripe/refunds.rs
index 1db2b5b760c..0e8bf6af83b 100644
--- a/crates/router/src/compatibility/stripe/refunds.rs
+++ b/crates/router/src/compatibility/stripe/refunds.rs
@@ -49,6 +49,47 @@ pub async fn refund_create(
     .await
 }
 
+#[instrument(skip_all)]
+#[post("/sync")]
+pub async fn refund_retrieve_with_gateway_creds(
+    state: web::Data<routes::AppState>,
+    qs_config: web::Data<serde_qs::Config>,
+    req: HttpRequest,
+    form_payload: web::Bytes,
+) -> HttpResponse {
+    let refund_request = match qs_config
+        .deserialize_bytes(&form_payload)
+        .map_err(|err| report!(errors::StripeErrorCode::from(err)))
+    {
+        Ok(payload) => payload,
+        Err(err) => return api::log_and_return_error_response(err),
+    };
+    wrap::compatibility_api_wrap::<
+        _,
+        _,
+        _,
+        _,
+        _,
+        _,
+        types::StripeRefundResponse,
+        errors::StripeErrorCode,
+    >(
+        state.get_ref(),
+        &req,
+        refund_request,
+        |state, merchant_account, refund_request| {
+            refunds::refund_response_wrapper(
+                state,
+                merchant_account,
+                refund_request,
+                refunds::refund_retrieve_core,
+            )
+        },
+        &auth::ApiKeyAuth,
+    )
+    .await
+}
+
 #[instrument(skip_all)]
 #[get("/{refund_id}")]
 pub async fn refund_retrieve(