diff --git a/crates/api_models/src/payments.rs b/crates/api_models/src/payments.rs index c7415c5d5457..095e30f38219 100644 --- a/crates/api_models/src/payments.rs +++ b/crates/api_models/src/payments.rs @@ -301,8 +301,7 @@ pub struct PaymentsRequest { /// The type of the payment that differentiates between normal and various types of mandate payments #[schema(value_type = Option)] - #[serde(default)] - pub payment_type: api_enums::PaymentType, + pub payment_type: Option, } #[derive(Default, Debug, Clone, Copy)] diff --git a/crates/router/src/routes/payments.rs b/crates/router/src/routes/payments.rs index db27929be3a7..9d7cf220a3a6 100644 --- a/crates/router/src/routes/payments.rs +++ b/crates/router/src/routes/payments.rs @@ -871,7 +871,7 @@ where // the operation are flow agnostic, and the flow is only required in the post_update_tracker // Thus the flow can be generated just before calling the connector instead of explicitly passing it here. - match req.payment_type { + match req.payment_type.unwrap_or_default() { api_models::enums::PaymentType::Normal | api_models::enums::PaymentType::RecurringMandate | api_models::enums::PaymentType::NewMandate => payments::payments_core::<