stripe/model/
payment_method_configuration.rs

1use serde::{Serialize, Deserialize};
2use super::PaymentMethodConfigResourcePaymentMethodProperties;
3/**PaymentMethodConfigurations control which payment methods are displayed to your customers when you don't explicitly specify payment method types. You can have multiple configurations with different sets of payment methods for different scenarios.
4
5There are two types of PaymentMethodConfigurations. Which is used depends on the [charge type](https://stripe.com/docs/connect/charges):
6
7**Direct** configurations apply to payments created on your account, including Connect destination charges, Connect separate charges and transfers, and payments not involving Connect.
8
9**Child** configurations apply to payments created on your connected accounts using direct charges, and charges with the on_behalf_of parameter.
10
11Child configurations have a `parent` that sets default values and controls which settings connected accounts may override. You can specify a parent ID at payment time, and Stripe will automatically resolve the connected account’s associated child configuration. Parent configurations are [managed in the dashboard](https://dashboard.stripe.com/settings/payment_methods/connected_accounts) and are not available in this API.
12
13Related guides:
14- [Payment Method Configurations API](https://stripe.com/docs/connect/payment-method-configurations)
15- [Multiple configurations on dynamic payment methods](https://stripe.com/docs/payments/multiple-payment-method-configs)
16- [Multiple configurations for your Connect accounts](https://stripe.com/docs/connect/multiple-payment-method-configurations)*/
17#[derive(Debug, Clone, Serialize, Deserialize, Default)]
18pub struct PaymentMethodConfiguration {
19    ///
20    #[serde(skip_serializing_if = "Option::is_none")]
21    pub acss_debit: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
22    ///Whether the configuration can be used for new payments.
23    pub active: bool,
24    ///
25    #[serde(skip_serializing_if = "Option::is_none")]
26    pub affirm: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
27    ///
28    #[serde(skip_serializing_if = "Option::is_none")]
29    pub afterpay_clearpay: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
30    ///
31    #[serde(skip_serializing_if = "Option::is_none")]
32    pub alipay: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
33    ///
34    #[serde(skip_serializing_if = "Option::is_none")]
35    pub apple_pay: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
36    ///For child configs, the Connect application associated with the configuration.
37    #[serde(skip_serializing_if = "Option::is_none")]
38    pub application: Option<String>,
39    ///
40    #[serde(skip_serializing_if = "Option::is_none")]
41    pub au_becs_debit: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
42    ///
43    #[serde(skip_serializing_if = "Option::is_none")]
44    pub bacs_debit: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
45    ///
46    #[serde(skip_serializing_if = "Option::is_none")]
47    pub bancontact: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
48    ///
49    #[serde(skip_serializing_if = "Option::is_none")]
50    pub blik: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
51    ///
52    #[serde(skip_serializing_if = "Option::is_none")]
53    pub boleto: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
54    ///
55    #[serde(skip_serializing_if = "Option::is_none")]
56    pub card: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
57    ///
58    #[serde(skip_serializing_if = "Option::is_none")]
59    pub cartes_bancaires: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
60    ///
61    #[serde(skip_serializing_if = "Option::is_none")]
62    pub cashapp: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
63    ///
64    #[serde(skip_serializing_if = "Option::is_none")]
65    pub eps: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
66    ///
67    #[serde(skip_serializing_if = "Option::is_none")]
68    pub fpx: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
69    ///
70    #[serde(skip_serializing_if = "Option::is_none")]
71    pub giropay: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
72    ///
73    #[serde(skip_serializing_if = "Option::is_none")]
74    pub google_pay: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
75    ///
76    #[serde(skip_serializing_if = "Option::is_none")]
77    pub grabpay: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
78    ///Unique identifier for the object.
79    pub id: String,
80    ///
81    #[serde(skip_serializing_if = "Option::is_none")]
82    pub ideal: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
83    ///The default configuration is used whenever a payment method configuration is not specified.
84    pub is_default: bool,
85    ///
86    #[serde(skip_serializing_if = "Option::is_none")]
87    pub jcb: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
88    ///
89    #[serde(skip_serializing_if = "Option::is_none")]
90    pub klarna: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
91    ///
92    #[serde(skip_serializing_if = "Option::is_none")]
93    pub konbini: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
94    ///
95    #[serde(skip_serializing_if = "Option::is_none")]
96    pub link: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
97    ///Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
98    pub livemode: bool,
99    ///The configuration's name.
100    pub name: String,
101    ///String representing the object's type. Objects of the same type share the same value.
102    pub object: String,
103    ///
104    #[serde(skip_serializing_if = "Option::is_none")]
105    pub oxxo: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
106    ///
107    #[serde(skip_serializing_if = "Option::is_none")]
108    pub p24: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
109    ///For child configs, the configuration's parent configuration.
110    #[serde(skip_serializing_if = "Option::is_none")]
111    pub parent: Option<String>,
112    ///
113    #[serde(skip_serializing_if = "Option::is_none")]
114    pub paynow: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
115    ///
116    #[serde(skip_serializing_if = "Option::is_none")]
117    pub paypal: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
118    ///
119    #[serde(skip_serializing_if = "Option::is_none")]
120    pub promptpay: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
121    ///
122    #[serde(skip_serializing_if = "Option::is_none")]
123    pub revolut_pay: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
124    ///
125    #[serde(skip_serializing_if = "Option::is_none")]
126    pub sepa_debit: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
127    ///
128    #[serde(skip_serializing_if = "Option::is_none")]
129    pub sofort: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
130    ///
131    #[serde(skip_serializing_if = "Option::is_none")]
132    pub us_bank_account: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
133    ///
134    #[serde(skip_serializing_if = "Option::is_none")]
135    pub wechat_pay: Option<PaymentMethodConfigResourcePaymentMethodProperties>,
136}
137impl std::fmt::Display for PaymentMethodConfiguration {
138    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
139        write!(f, "{}", serde_json::to_string(self).unwrap())
140    }
141}