diff --git a/crates/router/src/core/payments/operations/payment_confirm.rs b/crates/router/src/core/payments/operations/payment_confirm.rs index e92bd7cafe..3de10cc9ad 100644 --- a/crates/router/src/core/payments/operations/payment_confirm.rs +++ b/crates/router/src/core/payments/operations/payment_confirm.rs @@ -211,7 +211,7 @@ impl Domain for PaymentConfirm { Option, Option, )> { - let (op, payment_method, payment_token) = helpers::make_pm_data( + let (op, payment_method_data, payment_token) = helpers::make_pm_data( Box::new(self), state, payment_method, @@ -223,11 +223,13 @@ impl Domain for PaymentConfirm { ) .await?; - utils::when(payment_method.is_none(), || { - Err(errors::ApiErrorResponse::PaymentMethodNotFound) - })?; + if payment_method != Some(enums::PaymentMethodType::Paypal) { + utils::when(payment_method_data.is_none(), || { + Err(errors::ApiErrorResponse::PaymentMethodNotFound) + })?; + } - Ok((op, payment_method, payment_token)) + Ok((op, payment_method_data, payment_token)) } #[instrument(skip_all)] diff --git a/crates/router/src/core/payments/operations/payment_create.rs b/crates/router/src/core/payments/operations/payment_create.rs index 357416fe2b..068cb5ac29 100644 --- a/crates/router/src/core/payments/operations/payment_create.rs +++ b/crates/router/src/core/payments/operations/payment_create.rs @@ -407,7 +407,9 @@ impl ValidateRequest for PaymentCreate None => None, }; - if let Some(true) = request.confirm { + if request.confirm == Some(true) + && request.payment_method != Some(api_models::enums::PaymentMethodType::Paypal) + { helpers::validate_pm_or_token_given( &request.payment_token, &request.payment_method_data,