diff --git a/crates/router/src/connector/shift4.rs b/crates/router/src/connector/shift4.rs index 3f76f0aef6..64c715c226 100644 --- a/crates/router/src/connector/shift4.rs +++ b/crates/router/src/connector/shift4.rs @@ -21,7 +21,7 @@ use crate::{ api::{self, ConnectorCommon, ConnectorCommonExt}, ErrorResponse, Response, }, - utils::{self, BytesExt}, + utils::{self, BytesExt, OptionExt}, }; #[derive(Debug, Clone)] @@ -433,10 +433,21 @@ impl ConnectorIntegration CustomResult { - Ok(format!("{}refunds", self.base_url(connectors),)) + let refund_id = req + .response + .clone() + .ok() + .get_required_value("response") + .change_context(errors::ConnectorError::ResponseDeserializationFailed)? + .connector_refund_id; + Ok(format!( + "{}refunds/{}", + self.base_url(connectors), + refund_id + )) } fn build_request(