diff --git a/crates/api_models/src/admin.rs b/crates/api_models/src/admin.rs index e845317b69..3beeb9071a 100644 --- a/crates/api_models/src/admin.rs +++ b/crates/api_models/src/admin.rs @@ -1113,7 +1113,7 @@ pub struct ExtendedCardInfoConfig { #[schema(value_type = String)] pub public_key: Secret, /// TTL for extended card info - #[schema(default = 900, maximum = 3600, value_type = u16)] + #[schema(default = 900, maximum = 7200, value_type = u16)] #[serde(default)] pub ttl_in_secs: TtlForExtendedCardInfo, } @@ -1137,7 +1137,7 @@ impl<'de> Deserialize<'de> for TtlForExtendedCardInfo { // Check if value exceeds the maximum allowed if value > consts::MAX_TTL_FOR_EXTENDED_CARD_INFO { Err(serde::de::Error::custom( - "ttl_in_secs must be less than or equal to 3600 (1hr)", + "ttl_in_secs must be less than or equal to 7200 (2hrs)", )) } else { Ok(Self(value)) diff --git a/crates/api_models/src/payments.rs b/crates/api_models/src/payments.rs index 0e46eb1993..69b4700acb 100644 --- a/crates/api_models/src/payments.rs +++ b/crates/api_models/src/payments.rs @@ -934,6 +934,10 @@ pub struct ExtendedCardInfo { #[schema(value_type = String, example = "John Test")] pub card_holder_name: Option>, + /// The CVC number for the card + #[schema(value_type = String, example = "242")] + pub card_cvc: Secret, + /// The name of the issuer of card #[schema(example = "chase")] pub card_issuer: Option, @@ -959,6 +963,7 @@ impl From for ExtendedCardInfo { card_exp_month: value.card_exp_month, card_exp_year: value.card_exp_year, card_holder_name: value.card_holder_name, + card_cvc: value.card_cvc, card_issuer: value.card_issuer, card_network: value.card_network, card_type: value.card_type, diff --git a/crates/common_utils/src/consts.rs b/crates/common_utils/src/consts.rs index 509056152e..94b53766db 100644 --- a/crates/common_utils/src/consts.rs +++ b/crates/common_utils/src/consts.rs @@ -82,4 +82,4 @@ pub const DEFAULT_ENABLE_SAVED_PAYMENT_METHOD: bool = false; pub const DEFAULT_TTL_FOR_EXTENDED_CARD_INFO: u16 = 15 * 60; /// Max ttl for Extended card info in redis (in seconds) -pub const MAX_TTL_FOR_EXTENDED_CARD_INFO: u16 = 60 * 60; +pub const MAX_TTL_FOR_EXTENDED_CARD_INFO: u16 = 60 * 60 * 2; diff --git a/openapi/openapi_spec.json b/openapi/openapi_spec.json index c45a4aaaa1..ec7d820a13 100644 --- a/openapi/openapi_spec.json +++ b/openapi/openapi_spec.json @@ -8717,7 +8717,8 @@ "card_number", "card_exp_month", "card_exp_year", - "card_holder_name" + "card_holder_name", + "card_cvc" ], "properties": { "card_number": { @@ -8740,6 +8741,11 @@ "description": "The card holder's name", "example": "John Test" }, + "card_cvc": { + "type": "string", + "description": "The CVC number for the card", + "example": "242" + }, "card_issuer": { "type": "string", "description": "The name of the issuer of card", @@ -8786,7 +8792,7 @@ "format": "int32", "description": "TTL for extended card info", "default": 900, - "maximum": 3600, + "maximum": 7200, "minimum": 0 } }