fireblocks_sdk/models/
pix_payment_info.rs

1// Fireblocks API
2//
3// Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain.  - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
4//
5// The version of the OpenAPI document: 1.8.0
6// Contact: developers@fireblocks.com
7// Generated by: https://openapi-generator.tech
8
9use {
10    crate::models,
11    serde::{Deserialize, Serialize},
12};
13
14/// PixPaymentInfo : PIX payment information for Brazilian instant payments
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct PixPaymentInfo {
17    /// The payment rail type for PIX transfers
18    #[serde(rename = "rail")]
19    pub rail: Rail,
20    /// The addressing system used for PIX transfers
21    #[serde(rename = "addressingSystem")]
22    pub addressing_system: AddressingSystem,
23    /// The given name (first name) of the account holder
24    #[serde(rename = "accountHolderGivenName")]
25    pub account_holder_given_name: String,
26    /// The surname (last name) of the account holder
27    #[serde(rename = "accountHolderSurname")]
28    pub account_holder_surname: String,
29    /// The country for the transfer (ISO 3166-1 alpha-2 code)
30    #[serde(rename = "country")]
31    pub country: String,
32    /// The PIX key used for the transfer
33    #[serde(rename = "pixKey")]
34    pub pix_key: String,
35    /// The name of the bank
36    #[serde(rename = "bankName", skip_serializing_if = "Option::is_none")]
37    pub bank_name: Option<String>,
38    /// The bank code (ISPB - Identificador do Sistema de Pagamentos
39    /// Brasileiros)
40    #[serde(rename = "bankCode", skip_serializing_if = "Option::is_none")]
41    pub bank_code: Option<String>,
42    /// The type of PIX key being used
43    #[serde(rename = "keyType")]
44    pub key_type: KeyType,
45}
46
47impl PixPaymentInfo {
48    /// PIX payment information for Brazilian instant payments
49    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/// The payment rail type for PIX transfers
72#[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/// The addressing system used for PIX transfers
84#[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/// The type of PIX key being used
96#[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}