noah_sdk/models/
payment_methods.rs1use crate::models::common::*;
4use serde::{Deserialize, Serialize};
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
8#[serde(tag = "Type")]
9pub enum PaymentMethodDisplayDetails {
10 #[serde(rename = "FiatPaymentMethodBankDisplay")]
12 Bank(FiatPaymentMethodBankDisplay),
13 #[serde(rename = "FiatPaymentMethodCardDisplay")]
15 Card(FiatPaymentMethodCardDisplay),
16 #[serde(rename = "FiatPaymentMethodIdentifierDisplay")]
18 Identifier(FiatPaymentMethodIdentifierDisplay),
19}
20
21#[derive(Debug, Clone, Serialize, Deserialize)]
23pub struct FiatPaymentMethodBankDisplay {
24 #[serde(rename = "AccountNumber")]
26 pub account_number: Option<String>,
27 #[serde(rename = "BankCode")]
29 pub bank_code: Option<String>,
30}
31
32#[derive(Debug, Clone, Serialize, Deserialize)]
34pub struct FiatPaymentMethodCardDisplay {
35 #[serde(rename = "Last4")]
37 pub last4: String,
38 #[serde(rename = "Scheme")]
40 pub scheme: FiatPaymentCardScheme,
41}
42
43#[derive(Debug, Clone, Serialize, Deserialize)]
45pub struct FiatPaymentMethodIdentifierDisplay {
46 #[serde(rename = "IdentifierType")]
48 pub identifier_type: PaymentMethodIdentifierType,
49 #[serde(rename = "Identifier")]
51 pub identifier: String,
52}
53
54#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
56#[serde(rename_all = "PascalCase")]
57pub enum FiatPaymentCardScheme {
58 Mastercard,
60 Visa,
62}
63
64#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
66#[serde(rename_all = "PascalCase")]
67pub enum PaymentMethodIdentifierType {
68 PhoneNumber,
70 Email,
72 TaxId,
74}
75
76#[derive(Debug, Clone, Serialize, Deserialize)]
78pub struct PaymentMethodDisplay {
79 #[serde(rename = "ID")]
81 pub id: PaymentMethodID,
82 #[serde(rename = "PaymentMethodType")]
84 pub payment_method_type: PaymentMethodType,
85 #[serde(rename = "Details")]
87 pub details: PaymentMethodDisplayDetails,
88}
89
90#[derive(Debug, Clone, Serialize, Deserialize)]
92pub struct PaymentMethod {
93 #[serde(rename = "ID")]
95 pub id: PaymentMethodID,
96 #[serde(rename = "CustomerID")]
98 pub customer_id: Option<CustomerID>,
99 #[serde(rename = "Country")]
101 pub country: CountryCode,
102 #[serde(rename = "PaymentMethodCategory")]
104 pub payment_method_category: PaymentMethodCategory,
105 #[serde(rename = "DisplayDetails")]
107 pub display_details: PaymentMethodDisplayDetails,
108}
109
110#[derive(Debug, Clone, Serialize, Deserialize)]
112pub struct GetPaymentMethodsResponse {
113 #[serde(rename = "Items")]
115 pub items: Vec<PaymentMethod>,
116 #[serde(rename = "PageToken")]
118 pub page_token: Option<String>,
119}