plaid/model/
beacon_account_risk_evaluate_account_attributes.rs

1use serde::{Serialize, Deserialize};
2/**The attributes object contains data that can be used to assess account risk. Examples of data include:
3`days_since_first_plaid_connection`: The number of days since the first time the Item was connected to an application via Plaid
4`plaid_connections_count_7d`: The number of times the Item has been connected to applications via Plaid over the past 7 days
5`plaid_connections_count_30d`: The number of times the Item has been connected to applications via Plaid over the past 30 days
6`total_plaid_connections_count`: The number of times the Item has been connected to applications via Plaid
7For the full list and detailed documentation of core attributes available, or to request that core attributes not be returned, contact Sales or your Plaid account manager*/
8#[derive(Debug, Clone, Serialize, Deserialize, Default)]
9pub struct BeaconAccountRiskEvaluateAccountAttributes {
10    ///The number of times the account's addresses on file have changed over the past 28 days
11    #[serde(rename = "address_change_count_28d")]
12    #[serde(default, skip_serializing_if = "Option::is_none")]
13    pub address_change_count28_d: Option<i64>,
14    ///The number of times the account's addresses on file have changed over the past 90 days
15    #[serde(rename = "address_change_count_90d")]
16    #[serde(default, skip_serializing_if = "Option::is_none")]
17    pub address_change_count90_d: Option<i64>,
18    ///The number of days since the bank account was opened, as reported by the financial institution
19    #[serde(default, skip_serializing_if = "Option::is_none")]
20    pub days_since_account_opening: Option<i64>,
21    ///The number of days since the oldest transaction available to Plaid for this account. This measure, combined with Plaid connection history, can be used to infer the age of the account
22    #[serde(default, skip_serializing_if = "Option::is_none")]
23    pub days_since_first_observed_transaction: Option<i64>,
24    ///The number of days since the first time the Item was connected to an application via Plaid
25    #[serde(default, skip_serializing_if = "Option::is_none")]
26    pub days_since_first_plaid_connection: Option<i64>,
27    ///The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 30 days
28    #[serde(rename = "distinct_ip_addresses_count_30d")]
29    #[serde(default, skip_serializing_if = "Option::is_none")]
30    pub distinct_ip_addresses_count30_d: Option<i64>,
31    ///The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 3 days
32    #[serde(rename = "distinct_ip_addresses_count_3d")]
33    #[serde(default, skip_serializing_if = "Option::is_none")]
34    pub distinct_ip_addresses_count3_d: Option<i64>,
35    ///The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 7 days
36    #[serde(rename = "distinct_ip_addresses_count_7d")]
37    #[serde(default, skip_serializing_if = "Option::is_none")]
38    pub distinct_ip_addresses_count7_d: Option<i64>,
39    ///The number of distinct IP addresses linked to the same bank account during Plaid authentication in the last 90 days
40    #[serde(rename = "distinct_ip_addresses_count_90d")]
41    #[serde(default, skip_serializing_if = "Option::is_none")]
42    pub distinct_ip_addresses_count90_d: Option<i64>,
43    ///The number of distinct user agents linked to the same bank account during Plaid authentication in the last 30 days
44    #[serde(rename = "distinct_user_agents_count_30d")]
45    #[serde(default, skip_serializing_if = "Option::is_none")]
46    pub distinct_user_agents_count30_d: Option<i64>,
47    ///The number of distinct user agents linked to the same bank account during Plaid authentication in the last 3 days
48    #[serde(rename = "distinct_user_agents_count_3d")]
49    #[serde(default, skip_serializing_if = "Option::is_none")]
50    pub distinct_user_agents_count3_d: Option<i64>,
51    ///The number of distinct user agents linked to the same bank account during Plaid authentication in the last 7 days
52    #[serde(rename = "distinct_user_agents_count_7d")]
53    #[serde(default, skip_serializing_if = "Option::is_none")]
54    pub distinct_user_agents_count7_d: Option<i64>,
55    ///The number of distinct user agents linked to the same bank account during Plaid authentication in the last 90 days
56    #[serde(rename = "distinct_user_agents_count_90d")]
57    #[serde(default, skip_serializing_if = "Option::is_none")]
58    pub distinct_user_agents_count90_d: Option<i64>,
59    ///The number of times the account's email addresses on file have changed over the past 28 days
60    #[serde(rename = "email_change_count_28d")]
61    #[serde(default, skip_serializing_if = "Option::is_none")]
62    pub email_change_count28_d: Option<i64>,
63    ///The number of times the account's email addresses on file have changed over the past 90 days
64    #[serde(rename = "email_change_count_90d")]
65    #[serde(default, skip_serializing_if = "Option::is_none")]
66    pub email_change_count90_d: Option<i64>,
67    ///The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 30 days
68    #[serde(rename = "failed_plaid_non_oauth_authentication_attempts_count_30d")]
69    #[serde(default, skip_serializing_if = "Option::is_none")]
70    pub failed_plaid_non_oauth_authentication_attempts_count30_d: Option<i64>,
71    ///The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 3 days
72    #[serde(rename = "failed_plaid_non_oauth_authentication_attempts_count_3d")]
73    #[serde(default, skip_serializing_if = "Option::is_none")]
74    pub failed_plaid_non_oauth_authentication_attempts_count3_d: Option<i64>,
75    ///The number of failed non-OAuth authentication attempts via Plaid for this bank account over the past 7 days
76    #[serde(rename = "failed_plaid_non_oauth_authentication_attempts_count_7d")]
77    #[serde(default, skip_serializing_if = "Option::is_none")]
78    pub failed_plaid_non_oauth_authentication_attempts_count7_d: Option<i64>,
79    ///Indicates if the account has been closed by the financial institution or the consumer, or is at risk of being closed
80    #[serde(default, skip_serializing_if = "Option::is_none")]
81    pub is_account_closed: Option<bool>,
82    ///Indicates whether the account has withdrawals and transfers disabled or if access to the account is restricted. This could be due to a freeze by the credit issuer, legal restrictions (e.g., sanctions), or regulatory requirements limiting monthly withdrawals, among other reasons
83    #[serde(default, skip_serializing_if = "Option::is_none")]
84    pub is_account_frozen_or_restricted: Option<bool>,
85    ///The number of times the account's phone numbers on file have changed over the past 28 days
86    #[serde(rename = "phone_change_count_28d")]
87    #[serde(default, skip_serializing_if = "Option::is_none")]
88    pub phone_change_count28_d: Option<i64>,
89    ///The number of times the account's phone numbers on file have changed over the past 90 days
90    #[serde(rename = "phone_change_count_90d")]
91    #[serde(default, skip_serializing_if = "Option::is_none")]
92    pub phone_change_count90_d: Option<i64>,
93    ///The number of times the Item has been connected to applications via Plaid over the past 30 days
94    #[serde(rename = "plaid_connections_count_30d")]
95    #[serde(default, skip_serializing_if = "Option::is_none")]
96    pub plaid_connections_count30_d: Option<i64>,
97    ///The number of times the Item has been connected to applications via Plaid over the past 7 days
98    #[serde(rename = "plaid_connections_count_7d")]
99    #[serde(default, skip_serializing_if = "Option::is_none")]
100    pub plaid_connections_count7_d: Option<i64>,
101    ///The number of non-OAuth authentication attempts via Plaid for this bank account over the past 30 days
102    #[serde(rename = "plaid_non_oauth_authentication_attempts_count_30d")]
103    #[serde(default, skip_serializing_if = "Option::is_none")]
104    pub plaid_non_oauth_authentication_attempts_count30_d: Option<i64>,
105    ///The number of non-OAuth authentication attempts via Plaid for this bank account over the past 3 days
106    #[serde(rename = "plaid_non_oauth_authentication_attempts_count_3d")]
107    #[serde(default, skip_serializing_if = "Option::is_none")]
108    pub plaid_non_oauth_authentication_attempts_count3_d: Option<i64>,
109    ///The number of non-OAuth authentication attempts via Plaid for this bank account over the past 7 days
110    #[serde(rename = "plaid_non_oauth_authentication_attempts_count_7d")]
111    #[serde(default, skip_serializing_if = "Option::is_none")]
112    pub plaid_non_oauth_authentication_attempts_count7_d: Option<i64>,
113    ///The total number of times the item has been connected to applications via Plaid
114    #[serde(default, skip_serializing_if = "Option::is_none")]
115    pub total_plaid_connections_count: Option<i64>,
116}
117impl std::fmt::Display for BeaconAccountRiskEvaluateAccountAttributes {
118    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
119        write!(f, "{}", serde_json::to_string(self).unwrap())
120    }
121}