fireblocks_sdk/models/
sepa_payment_info.rs1use {
10 crate::models,
11 serde::{Deserialize, Serialize},
12};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
17pub struct SepaPaymentInfo {
18 #[serde(rename = "rail")]
20 pub rail: Rail,
21 #[serde(rename = "addressingSystem")]
23 pub addressing_system: AddressingSystem,
24 #[serde(rename = "accountHolderGivenName")]
26 pub account_holder_given_name: String,
27 #[serde(rename = "accountHolderSurname")]
29 pub account_holder_surname: String,
30 #[serde(
32 rename = "accountHolderCountry",
33 skip_serializing_if = "Option::is_none"
34 )]
35 pub account_holder_country: Option<String>,
36 #[serde(
38 rename = "accountHolderAddress",
39 skip_serializing_if = "Option::is_none"
40 )]
41 pub account_holder_address: Option<String>,
42 #[serde(rename = "iban")]
44 pub iban: String,
45 #[serde(rename = "country")]
47 pub country: String,
48 #[serde(rename = "bic", skip_serializing_if = "Option::is_none")]
50 pub bic: Option<String>,
51 #[serde(rename = "bankName", skip_serializing_if = "Option::is_none")]
53 pub bank_name: Option<String>,
54 #[serde(rename = "bankBranch", skip_serializing_if = "Option::is_none")]
56 pub bank_branch: Option<String>,
57 #[serde(rename = "bankAddress", skip_serializing_if = "Option::is_none")]
59 pub bank_address: Option<String>,
60 #[serde(rename = "purposeCode", skip_serializing_if = "Option::is_none")]
62 pub purpose_code: Option<String>,
63 #[serde(rename = "taxId", skip_serializing_if = "Option::is_none")]
65 pub tax_id: Option<String>,
66}
67
68impl SepaPaymentInfo {
69 pub fn new(
72 rail: Rail,
73 addressing_system: AddressingSystem,
74 account_holder_given_name: String,
75 account_holder_surname: String,
76 iban: String,
77 country: String,
78 ) -> SepaPaymentInfo {
79 SepaPaymentInfo {
80 rail,
81 addressing_system,
82 account_holder_given_name,
83 account_holder_surname,
84 account_holder_country: None,
85 account_holder_address: None,
86 iban,
87 country,
88 bic: None,
89 bank_name: None,
90 bank_branch: None,
91 bank_address: None,
92 purpose_code: None,
93 tax_id: None,
94 }
95 }
96}
97#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
99pub enum Rail {
100 #[serde(rename = "SEPA")]
101 Sepa,
102}
103
104impl Default for Rail {
105 fn default() -> Rail {
106 Self::Sepa
107 }
108}
109#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
111pub enum AddressingSystem {
112 #[serde(rename = "IBAN")]
113 Iban,
114}
115
116impl Default for AddressingSystem {
117 fn default() -> AddressingSystem {
118 Self::Iban
119 }
120}