fireblocks_sdk/models/
pix_payment_info.rs1use {
10 crate::models,
11 serde::{Deserialize, Serialize},
12};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct PixPaymentInfo {
17 #[serde(rename = "rail")]
19 pub rail: Rail,
20 #[serde(rename = "addressingSystem")]
22 pub addressing_system: AddressingSystem,
23 #[serde(rename = "accountHolderGivenName")]
25 pub account_holder_given_name: String,
26 #[serde(rename = "accountHolderSurname")]
28 pub account_holder_surname: String,
29 #[serde(rename = "country")]
31 pub country: String,
32 #[serde(rename = "pixKey")]
34 pub pix_key: String,
35 #[serde(rename = "bankName", skip_serializing_if = "Option::is_none")]
37 pub bank_name: Option<String>,
38 #[serde(rename = "bankCode", skip_serializing_if = "Option::is_none")]
41 pub bank_code: Option<String>,
42 #[serde(rename = "keyType")]
44 pub key_type: KeyType,
45}
46
47impl PixPaymentInfo {
48 pub fn new(
50 rail: Rail,
51 addressing_system: AddressingSystem,
52 account_holder_given_name: String,
53 account_holder_surname: String,
54 country: String,
55 pix_key: String,
56 key_type: KeyType,
57 ) -> PixPaymentInfo {
58 PixPaymentInfo {
59 rail,
60 addressing_system,
61 account_holder_given_name,
62 account_holder_surname,
63 country,
64 pix_key,
65 bank_name: None,
66 bank_code: None,
67 key_type,
68 }
69 }
70}
71#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
73pub enum Rail {
74 #[serde(rename = "PIX")]
75 Pix,
76}
77
78impl Default for Rail {
79 fn default() -> Rail {
80 Self::Pix
81 }
82}
83#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
85pub enum AddressingSystem {
86 #[serde(rename = "PIX")]
87 Pix,
88}
89
90impl Default for AddressingSystem {
91 fn default() -> AddressingSystem {
92 Self::Pix
93 }
94}
95#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
97pub enum KeyType {
98 #[serde(rename = "CPF")]
99 Cpf,
100 #[serde(rename = "CNPJ")]
101 Cnpj,
102 #[serde(rename = "EMAIL")]
103 Email,
104 #[serde(rename = "PHONE")]
105 Phone,
106 #[serde(rename = "RANDOM")]
107 Random,
108}
109
110impl Default for KeyType {
111 fn default() -> KeyType {
112 Self::Cpf
113 }
114}