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#[derive(Debug, Clone, Serialize, Deserialize, Default)]
22pub struct PaymentMethod {
23 #[serde(skip_serializing_if = "Option::is_none")]
25 pub acss_debit: Option<PaymentMethodAcssDebit>,
26 #[serde(skip_serializing_if = "Option::is_none")]
28 pub affirm: Option<PaymentMethodAffirm>,
29 #[serde(skip_serializing_if = "Option::is_none")]
31 pub afterpay_clearpay: Option<PaymentMethodAfterpayClearpay>,
32 #[serde(skip_serializing_if = "Option::is_none")]
34 pub alipay: Option<PaymentFlowsPrivatePaymentMethodsAlipay>,
35 #[serde(skip_serializing_if = "Option::is_none")]
37 pub au_becs_debit: Option<PaymentMethodAuBecsDebit>,
38 #[serde(skip_serializing_if = "Option::is_none")]
40 pub bacs_debit: Option<PaymentMethodBacsDebit>,
41 #[serde(skip_serializing_if = "Option::is_none")]
43 pub bancontact: Option<PaymentMethodBancontact>,
44 pub billing_details: BillingDetails,
46 #[serde(skip_serializing_if = "Option::is_none")]
48 pub blik: Option<PaymentMethodBlik>,
49 #[serde(skip_serializing_if = "Option::is_none")]
51 pub boleto: Option<PaymentMethodBoleto>,
52 #[serde(skip_serializing_if = "Option::is_none")]
54 pub card: Option<PaymentMethodCard>,
55 #[serde(skip_serializing_if = "Option::is_none")]
57 pub card_present: Option<PaymentMethodCardPresent>,
58 #[serde(skip_serializing_if = "Option::is_none")]
60 pub cashapp: Option<PaymentMethodCashapp>,
61 pub created: i64,
63 #[serde(skip_serializing_if = "Option::is_none")]
65 pub customer: Option<serde_json::Value>,
66 #[serde(skip_serializing_if = "Option::is_none")]
68 pub customer_balance: Option<PaymentMethodCustomerBalance>,
69 #[serde(skip_serializing_if = "Option::is_none")]
71 pub eps: Option<PaymentMethodEps>,
72 #[serde(skip_serializing_if = "Option::is_none")]
74 pub fpx: Option<PaymentMethodFpx>,
75 #[serde(skip_serializing_if = "Option::is_none")]
77 pub giropay: Option<PaymentMethodGiropay>,
78 #[serde(skip_serializing_if = "Option::is_none")]
80 pub grabpay: Option<PaymentMethodGrabpay>,
81 pub id: String,
83 #[serde(skip_serializing_if = "Option::is_none")]
85 pub ideal: Option<PaymentMethodIdeal>,
86 #[serde(skip_serializing_if = "Option::is_none")]
88 pub interac_present: Option<PaymentMethodInteracPresent>,
89 #[serde(skip_serializing_if = "Option::is_none")]
91 pub klarna: Option<PaymentMethodKlarna>,
92 #[serde(skip_serializing_if = "Option::is_none")]
94 pub konbini: Option<PaymentMethodKonbini>,
95 #[serde(skip_serializing_if = "Option::is_none")]
97 pub link: Option<PaymentMethodLink>,
98 pub livemode: bool,
100 #[serde(skip_serializing_if = "Option::is_none")]
102 pub metadata: Option<serde_json::Value>,
103 pub object: String,
105 #[serde(skip_serializing_if = "Option::is_none")]
107 pub oxxo: Option<PaymentMethodOxxo>,
108 #[serde(skip_serializing_if = "Option::is_none")]
110 pub p24: Option<PaymentMethodP24>,
111 #[serde(skip_serializing_if = "Option::is_none")]
113 pub paynow: Option<PaymentMethodPaynow>,
114 #[serde(skip_serializing_if = "Option::is_none")]
116 pub paypal: Option<PaymentMethodPaypal>,
117 #[serde(skip_serializing_if = "Option::is_none")]
119 pub pix: Option<PaymentMethodPix>,
120 #[serde(skip_serializing_if = "Option::is_none")]
122 pub promptpay: Option<PaymentMethodPromptpay>,
123 #[serde(skip_serializing_if = "Option::is_none")]
125 pub radar_options: Option<RadarRadarOptions>,
126 #[serde(skip_serializing_if = "Option::is_none")]
128 pub revolut_pay: Option<PaymentMethodRevolutPay>,
129 #[serde(skip_serializing_if = "Option::is_none")]
131 pub sepa_debit: Option<PaymentMethodSepaDebit>,
132 #[serde(skip_serializing_if = "Option::is_none")]
134 pub sofort: Option<PaymentMethodSofort>,
135 #[serde(rename = "type")]
137 pub type_: String,
138 #[serde(skip_serializing_if = "Option::is_none")]
140 pub us_bank_account: Option<PaymentMethodUsBankAccount>,
141 #[serde(skip_serializing_if = "Option::is_none")]
143 pub wechat_pay: Option<PaymentMethodWechatPay>,
144 #[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}