stripe/model/
payment_method.rs

1use serde::{Serialize, Deserialize};
2use super::{
3    BillingDetails, PaymentFlowsPrivatePaymentMethodsAlipay, PaymentMethodAcssDebit,
4    PaymentMethodAffirm, PaymentMethodAfterpayClearpay, PaymentMethodAuBecsDebit,
5    PaymentMethodBacsDebit, PaymentMethodBancontact, PaymentMethodBlik,
6    PaymentMethodBoleto, PaymentMethodCard, PaymentMethodCardPresent,
7    PaymentMethodCashapp, PaymentMethodCustomerBalance, PaymentMethodEps,
8    PaymentMethodFpx, PaymentMethodGiropay, PaymentMethodGrabpay, PaymentMethodIdeal,
9    PaymentMethodInteracPresent, PaymentMethodKlarna, PaymentMethodKonbini,
10    PaymentMethodLink, PaymentMethodOxxo, PaymentMethodP24, PaymentMethodPaynow,
11    PaymentMethodPaypal, PaymentMethodPix, PaymentMethodPromptpay,
12    PaymentMethodRevolutPay, PaymentMethodSepaDebit, PaymentMethodSofort,
13    PaymentMethodUsBankAccount, PaymentMethodWechatPay, PaymentMethodZip,
14    RadarRadarOptions,
15};
16/**PaymentMethod objects represent your customer's payment instruments.
17You can use them with [PaymentIntents](https://stripe.com/docs/payments/payment-intents) to collect payments or save them to
18Customer objects to store instrument details for future payments.
19
20Related guides: [Payment Methods](https://stripe.com/docs/payments/payment-methods) and [More Payment Scenarios](https://stripe.com/docs/payments/more-payment-scenarios).*/
21#[derive(Debug, Clone, Serialize, Deserialize, Default)]
22pub struct PaymentMethod {
23    ///
24    #[serde(skip_serializing_if = "Option::is_none")]
25    pub acss_debit: Option<PaymentMethodAcssDebit>,
26    ///
27    #[serde(skip_serializing_if = "Option::is_none")]
28    pub affirm: Option<PaymentMethodAffirm>,
29    ///
30    #[serde(skip_serializing_if = "Option::is_none")]
31    pub afterpay_clearpay: Option<PaymentMethodAfterpayClearpay>,
32    ///
33    #[serde(skip_serializing_if = "Option::is_none")]
34    pub alipay: Option<PaymentFlowsPrivatePaymentMethodsAlipay>,
35    ///
36    #[serde(skip_serializing_if = "Option::is_none")]
37    pub au_becs_debit: Option<PaymentMethodAuBecsDebit>,
38    ///
39    #[serde(skip_serializing_if = "Option::is_none")]
40    pub bacs_debit: Option<PaymentMethodBacsDebit>,
41    ///
42    #[serde(skip_serializing_if = "Option::is_none")]
43    pub bancontact: Option<PaymentMethodBancontact>,
44    ///
45    pub billing_details: BillingDetails,
46    ///
47    #[serde(skip_serializing_if = "Option::is_none")]
48    pub blik: Option<PaymentMethodBlik>,
49    ///
50    #[serde(skip_serializing_if = "Option::is_none")]
51    pub boleto: Option<PaymentMethodBoleto>,
52    ///
53    #[serde(skip_serializing_if = "Option::is_none")]
54    pub card: Option<PaymentMethodCard>,
55    ///
56    #[serde(skip_serializing_if = "Option::is_none")]
57    pub card_present: Option<PaymentMethodCardPresent>,
58    ///
59    #[serde(skip_serializing_if = "Option::is_none")]
60    pub cashapp: Option<PaymentMethodCashapp>,
61    ///Time at which the object was created. Measured in seconds since the Unix epoch.
62    pub created: i64,
63    ///The ID of the Customer to which this PaymentMethod is saved. This will not be set when the PaymentMethod has not been saved to a Customer.
64    #[serde(skip_serializing_if = "Option::is_none")]
65    pub customer: Option<serde_json::Value>,
66    ///
67    #[serde(skip_serializing_if = "Option::is_none")]
68    pub customer_balance: Option<PaymentMethodCustomerBalance>,
69    ///
70    #[serde(skip_serializing_if = "Option::is_none")]
71    pub eps: Option<PaymentMethodEps>,
72    ///
73    #[serde(skip_serializing_if = "Option::is_none")]
74    pub fpx: Option<PaymentMethodFpx>,
75    ///
76    #[serde(skip_serializing_if = "Option::is_none")]
77    pub giropay: Option<PaymentMethodGiropay>,
78    ///
79    #[serde(skip_serializing_if = "Option::is_none")]
80    pub grabpay: Option<PaymentMethodGrabpay>,
81    ///Unique identifier for the object.
82    pub id: String,
83    ///
84    #[serde(skip_serializing_if = "Option::is_none")]
85    pub ideal: Option<PaymentMethodIdeal>,
86    ///
87    #[serde(skip_serializing_if = "Option::is_none")]
88    pub interac_present: Option<PaymentMethodInteracPresent>,
89    ///
90    #[serde(skip_serializing_if = "Option::is_none")]
91    pub klarna: Option<PaymentMethodKlarna>,
92    ///
93    #[serde(skip_serializing_if = "Option::is_none")]
94    pub konbini: Option<PaymentMethodKonbini>,
95    ///
96    #[serde(skip_serializing_if = "Option::is_none")]
97    pub link: Option<PaymentMethodLink>,
98    ///Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
99    pub livemode: bool,
100    ///Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
101    #[serde(skip_serializing_if = "Option::is_none")]
102    pub metadata: Option<serde_json::Value>,
103    ///String representing the object's type. Objects of the same type share the same value.
104    pub object: String,
105    ///
106    #[serde(skip_serializing_if = "Option::is_none")]
107    pub oxxo: Option<PaymentMethodOxxo>,
108    ///
109    #[serde(skip_serializing_if = "Option::is_none")]
110    pub p24: Option<PaymentMethodP24>,
111    ///
112    #[serde(skip_serializing_if = "Option::is_none")]
113    pub paynow: Option<PaymentMethodPaynow>,
114    ///
115    #[serde(skip_serializing_if = "Option::is_none")]
116    pub paypal: Option<PaymentMethodPaypal>,
117    ///
118    #[serde(skip_serializing_if = "Option::is_none")]
119    pub pix: Option<PaymentMethodPix>,
120    ///
121    #[serde(skip_serializing_if = "Option::is_none")]
122    pub promptpay: Option<PaymentMethodPromptpay>,
123    ///Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information.
124    #[serde(skip_serializing_if = "Option::is_none")]
125    pub radar_options: Option<RadarRadarOptions>,
126    ///
127    #[serde(skip_serializing_if = "Option::is_none")]
128    pub revolut_pay: Option<PaymentMethodRevolutPay>,
129    ///
130    #[serde(skip_serializing_if = "Option::is_none")]
131    pub sepa_debit: Option<PaymentMethodSepaDebit>,
132    ///
133    #[serde(skip_serializing_if = "Option::is_none")]
134    pub sofort: Option<PaymentMethodSofort>,
135    ///The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type.
136    #[serde(rename = "type")]
137    pub type_: String,
138    ///
139    #[serde(skip_serializing_if = "Option::is_none")]
140    pub us_bank_account: Option<PaymentMethodUsBankAccount>,
141    ///
142    #[serde(skip_serializing_if = "Option::is_none")]
143    pub wechat_pay: Option<PaymentMethodWechatPay>,
144    ///
145    #[serde(skip_serializing_if = "Option::is_none")]
146    pub zip: Option<PaymentMethodZip>,
147}
148impl std::fmt::Display for PaymentMethod {
149    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
150        write!(f, "{}", serde_json::to_string(self).unwrap())
151    }
152}