mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-29 00:49:42 +08:00
feat(business_profile): introduce business profile v2 update endpoint (#5641)
This commit is contained in:
@ -1920,11 +1920,11 @@ pub struct BusinessProfileCreate {
|
||||
/// Whether to use the billing details passed when creating the intent as payment method billing
|
||||
pub use_billing_as_payment_method_billing: Option<bool>,
|
||||
|
||||
/// A boolean value to indicate if customer shipping details needs to be collected from wallet connector (Eg. Apple pay, Google pay etc)
|
||||
/// A boolean value to indicate if customer shipping details needs to be collected from wallet connector (Eg. Apple Pay, Google Pay, etc.)
|
||||
#[schema(default = false, example = false)]
|
||||
pub collect_shipping_details_from_wallet_connector: Option<bool>,
|
||||
|
||||
/// A boolean value to indicate if customer billing details needs to be collected from wallet connector (Eg. Apple pay, Google pay etc)
|
||||
/// A boolean value to indicate if customer billing details needs to be collected from wallet connector (Eg. Apple Pay, Google Pay, etc.)
|
||||
#[schema(default = false, example = false)]
|
||||
pub collect_billing_details_from_wallet_connector: Option<bool>,
|
||||
|
||||
@ -1945,7 +1945,7 @@ pub struct BusinessProfileCreate {
|
||||
|
||||
#[nutype::nutype(
|
||||
validate(greater_or_equal = MIN_ORDER_FULFILLMENT_EXPIRY, less_or_equal = MAX_ORDER_FULFILLMENT_EXPIRY),
|
||||
derive(Clone, Debug, Deserialize,Serialize)
|
||||
derive(Clone, Copy, Debug, Deserialize, Serialize)
|
||||
)]
|
||||
pub struct OrderFulfillmentTime(i64);
|
||||
|
||||
@ -1980,7 +1980,7 @@ pub struct BusinessProfileCreate {
|
||||
pub metadata: Option<pii::SecretSerdeValue>,
|
||||
|
||||
/// Will be used to determine the time till which your payment will be active once the payment session starts
|
||||
#[schema(value_type = u32, example = 900)]
|
||||
#[schema(value_type = Option<u32>, example = 900)]
|
||||
pub order_fulfillment_time: Option<OrderFulfillmentTime>,
|
||||
|
||||
/// Whether the order fulfillment time is calculated from the origin or the time of creating the payment, or confirming the payment
|
||||
@ -2003,11 +2003,11 @@ pub struct BusinessProfileCreate {
|
||||
/// Whether to use the billing details passed when creating the intent as payment method billing
|
||||
pub use_billing_as_payment_method_billing: Option<bool>,
|
||||
|
||||
/// A boolean value to indicate if customer shipping details needs to be collected from wallet connector (Eg. Apple pay, Google pay etc)
|
||||
/// A boolean value to indicate if customer shipping details needs to be collected from wallet connector (Eg. Apple Pay, Google Pay, etc.)
|
||||
#[schema(default = false, example = false)]
|
||||
pub collect_shipping_details_from_wallet_connector: Option<bool>,
|
||||
|
||||
/// A boolean value to indicate if customer billing details needs to be collected from wallet connector (Eg. Apple pay, Google pay etc)
|
||||
/// A boolean value to indicate if customer billing details needs to be collected from wallet connector (Eg. Apple Pay, Google Pay, etc.)
|
||||
#[schema(default = false, example = false)]
|
||||
pub collect_billing_details_from_wallet_connector: Option<bool>,
|
||||
|
||||
@ -2052,7 +2052,7 @@ pub struct BusinessProfileResponse {
|
||||
#[schema(default = true, example = true)]
|
||||
pub enable_payment_response_hash: bool,
|
||||
|
||||
/// Refers to the hash key used for calculating the signature for webhooks and redirect response.
|
||||
/// Refers to the hash key used for calculating the signature for webhooks and redirect response. If the value is not provided, a value is automatically generated.
|
||||
pub payment_response_hash_key: Option<String>,
|
||||
|
||||
/// A boolean value to indicate if redirect to merchant with http post needs to be enabled
|
||||
@ -2103,11 +2103,11 @@ pub struct BusinessProfileResponse {
|
||||
/// Merchant's config to support extended card info feature
|
||||
pub extended_card_info_config: Option<ExtendedCardInfoConfig>,
|
||||
|
||||
/// A boolean value to indicate if customer shipping details needs to be collected from wallet connector (Eg. Apple pay, Google pay etc)
|
||||
/// A boolean value to indicate if customer shipping details needs to be collected from wallet connector (Eg. Apple Pay, Google Pay, etc.)
|
||||
#[schema(default = false, example = false)]
|
||||
pub collect_shipping_details_from_wallet_connector: Option<bool>,
|
||||
|
||||
/// A boolean value to indicate if customer billing details needs to be collected from wallet connector (Eg. Apple pay, Google pay etc)
|
||||
/// A boolean value to indicate if customer billing details needs to be collected from wallet connector (Eg. Apple Pay, Google Pay, etc.)
|
||||
#[schema(default = false, example = false)]
|
||||
pub collect_billing_details_from_wallet_connector: Option<bool>,
|
||||
|
||||
@ -2149,7 +2149,7 @@ pub struct BusinessProfileResponse {
|
||||
#[schema(default = true, example = true)]
|
||||
pub enable_payment_response_hash: bool,
|
||||
|
||||
/// Refers to the hash key used for calculating the signature for webhooks and redirect response.
|
||||
/// Refers to the hash key used for calculating the signature for webhooks and redirect response. If the value is not provided, a value is automatically generated.
|
||||
pub payment_response_hash_key: Option<String>,
|
||||
|
||||
/// A boolean value to indicate if redirect to merchant with http post needs to be enabled
|
||||
@ -2183,11 +2183,11 @@ pub struct BusinessProfileResponse {
|
||||
/// Merchant's config to support extended card info feature
|
||||
pub extended_card_info_config: Option<ExtendedCardInfoConfig>,
|
||||
|
||||
/// A boolean value to indicate if customer shipping details needs to be collected from wallet connector (Eg. Apple pay, Google pay etc)
|
||||
/// A boolean value to indicate if customer shipping details needs to be collected from wallet connector (Eg. Apple Pay, Google Pay, etc.)
|
||||
#[schema(default = false, example = false)]
|
||||
pub collect_shipping_details_from_wallet_connector: Option<bool>,
|
||||
|
||||
/// A boolean value to indicate if customer billing details needs to be collected from wallet connector (Eg. Apple pay, Google pay etc)
|
||||
/// A boolean value to indicate if customer billing details needs to be collected from wallet connector (Eg. Apple Pay, Google Pay, etc.)
|
||||
#[schema(default = false, example = false)]
|
||||
pub collect_billing_details_from_wallet_connector: Option<bool>,
|
||||
|
||||
@ -2206,7 +2206,7 @@ pub struct BusinessProfileResponse {
|
||||
pub outgoing_webhook_custom_http_headers: Option<HashMap<String, Secret<String>>>,
|
||||
|
||||
/// Will be used to determine the time till which your payment will be active once the payment session starts
|
||||
#[schema(value_type = u32, example = 900)]
|
||||
#[schema(value_type = Option<u32>, example = 900)]
|
||||
pub order_fulfillment_time: Option<OrderFulfillmentTime>,
|
||||
|
||||
/// Whether the order fulfillment time is calculated from the origin or the time of creating the payment, or confirming the payment
|
||||
@ -2214,6 +2214,10 @@ pub struct BusinessProfileResponse {
|
||||
pub order_fulfillment_time_origin: Option<api_enums::OrderFulfillmentTimeOrigin>,
|
||||
}
|
||||
|
||||
#[cfg(all(
|
||||
any(feature = "v1", feature = "v2"),
|
||||
not(feature = "business_profile_v2")
|
||||
))]
|
||||
#[derive(Clone, Debug, Deserialize, ToSchema, Serialize)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
pub struct BusinessProfileUpdate {
|
||||
@ -2301,6 +2305,87 @@ pub struct BusinessProfileUpdate {
|
||||
#[schema(value_type = Option<Object>, example = r#"{ "key1": "value-1", "key2": "value-2" }"#)]
|
||||
pub outgoing_webhook_custom_http_headers: Option<HashMap<String, String>>,
|
||||
}
|
||||
|
||||
#[cfg(all(feature = "v2", feature = "business_profile_v2"))]
|
||||
#[derive(Clone, Debug, Deserialize, ToSchema, Serialize)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
pub struct BusinessProfileUpdate {
|
||||
/// The name of business profile
|
||||
#[schema(max_length = 64)]
|
||||
pub profile_name: Option<String>,
|
||||
|
||||
/// The URL to redirect after the completion of the operation
|
||||
#[schema(value_type = Option<String>, max_length = 255, example = "https://www.example.com/success")]
|
||||
pub return_url: Option<url::Url>,
|
||||
|
||||
/// A boolean value to indicate if payment response hash needs to be enabled
|
||||
#[schema(default = true, example = true)]
|
||||
pub enable_payment_response_hash: Option<bool>,
|
||||
|
||||
/// Refers to the hash key used for calculating the signature for webhooks and redirect response. If the value is not provided, a value is automatically generated.
|
||||
pub payment_response_hash_key: Option<String>,
|
||||
|
||||
/// A boolean value to indicate if redirect to merchant with http post needs to be enabled
|
||||
#[schema(default = false, example = true)]
|
||||
pub redirect_to_merchant_with_http_post: Option<bool>,
|
||||
|
||||
/// Webhook related details
|
||||
pub webhook_details: Option<WebhookDetails>,
|
||||
|
||||
/// Metadata is useful for storing additional, unstructured information on an object.
|
||||
#[schema(value_type = Option<Object>, example = r#"{ "city": "NY", "unit": "245" }"#)]
|
||||
pub metadata: Option<pii::SecretSerdeValue>,
|
||||
|
||||
/// Will be used to determine the time till which your payment will be active once the payment session starts
|
||||
#[schema(value_type = Option<u32>, example = 900)]
|
||||
pub order_fulfillment_time: Option<OrderFulfillmentTime>,
|
||||
|
||||
/// Whether the order fulfillment time is calculated from the origin or the time of creating the payment, or confirming the payment
|
||||
#[schema(value_type = Option<OrderFulfillmentTimeOrigin>, example = "create")]
|
||||
pub order_fulfillment_time_origin: Option<api_enums::OrderFulfillmentTimeOrigin>,
|
||||
|
||||
/// Verified Apple Pay domains for a particular profile
|
||||
pub applepay_verified_domains: Option<Vec<String>>,
|
||||
|
||||
/// Client Secret Default expiry for all payments created under this business profile
|
||||
#[schema(example = 900)]
|
||||
pub session_expiry: Option<u32>,
|
||||
|
||||
/// Default Payment Link config for all payment links created under this business profile
|
||||
pub payment_link_config: Option<BusinessPaymentLinkConfig>,
|
||||
|
||||
/// External 3DS authentication details
|
||||
pub authentication_connector_details: Option<AuthenticationConnectorDetails>,
|
||||
|
||||
/// Merchant's config to support extended card info feature
|
||||
pub extended_card_info_config: Option<ExtendedCardInfoConfig>,
|
||||
|
||||
// Whether to use the billing details passed when creating the intent as payment method billing
|
||||
pub use_billing_as_payment_method_billing: Option<bool>,
|
||||
|
||||
/// A boolean value to indicate if customer shipping details needs to be collected from wallet connector (Eg. Apple Pay, Google Pay, etc.)
|
||||
#[schema(default = false, example = false)]
|
||||
pub collect_shipping_details_from_wallet_connector: Option<bool>,
|
||||
|
||||
/// A boolean value to indicate if customer billing details needs to be collected from wallet connector (Eg. Apple Pay, Google Pay, etc.)
|
||||
#[schema(default = false, example = false)]
|
||||
pub collect_billing_details_from_wallet_connector: Option<bool>,
|
||||
|
||||
/// Indicates if the MIT (merchant initiated transaction) payments can be made connector
|
||||
/// agnostic, i.e., MITs may be processed through different connector than CIT (customer
|
||||
/// initiated transaction) based on the routing rules.
|
||||
/// If set to `false`, MIT will go through the same connector as the CIT.
|
||||
pub is_connector_agnostic_mit_enabled: Option<bool>,
|
||||
|
||||
/// Default payout link config
|
||||
#[schema(value_type = Option<BusinessPayoutLinkConfig>)]
|
||||
pub payout_link_config: Option<BusinessPayoutLinkConfig>,
|
||||
|
||||
/// These key-value pairs are sent as additional custom headers in the outgoing webhook request. It is recommended not to use more than four key-value pairs.
|
||||
#[schema(value_type = Option<Object>, example = r#"{ "key1": "value-1", "key2": "value-2" }"#)]
|
||||
pub outgoing_webhook_custom_http_headers: Option<HashMap<String, String>>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize, ToSchema)]
|
||||
pub struct BusinessCollectLinkConfig {
|
||||
#[serde(flatten)]
|
||||
|
||||
Reference in New Issue
Block a user