1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
// Generated automatically by schema_generator.rs - DO NOT EDIT.
// Source: ./deriv-api-docs/config/v3/new_partner_account/send.json
// Use direct crate names for imports
use serde::{Deserialize, Serialize};
use serde_json::Value;
// Import required types from the *same* crate
use crate::fatca_declaration::FatcaDeclaration;
use crate::landing_company_short::LandingCompanyShort;
use crate::partner_type::PartnerType;
use crate::provider::Provider;
use crate::account_turnover::AccountTurnover;
use crate::client_type::ClientType;
/// This call opens a new Real-Partner Account
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub struct NewPartnerAccountRequest {
/// [Optional] The anticipated account turnover.\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub account_turnover: Option<AccountTurnover>,
/// [Optional] Within 100 characters.\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub address_city: Option<String>,
/// Within 70 characters, with no leading whitespaces and may contain letters/numbers and/or any of following characters '.,:;()@#/-\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub address_line_1: Option<String>,
/// Field 'address_line_2' mapped to Value due to complexity/potential issues.\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub address_line_2: Option<Value>,
/// [Optional] Within 20 characters and may not contain '+'.\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub address_postcode: Option<String>,
/// [Optional] Possible value receive from `states_list` call.\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub address_state: Option<String>,
/// [Optional] The phone's calling country code.\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub calling_country_code: Option<Value>,
/// [Optional] Country of legal citizenship, 2-letter country code.\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub citizen: Option<Value>,
/// [Optional] Indicates whether this is for a client requesting an account with professional status.\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub client_type: Option<ClientType>,
/// [Optional] Company name. Only applicable for partners of type company.\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub company_name: Option<String>,
/// [Optional] Company registration number. Only applicable for partners of type company.\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub company_registration_no: Option<String>,
/// [Optional] To set currency of the account. List of supported currencies can be acquired with `payout_currencies` call.\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub currency: Option<String>,
/// Date of birth format: `yyyy-mm-dd`.\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub date_of_birth: Option<String>,
/// [Optional] Indicates client's self-declaration of FATCA.\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub fatca_declaration: Option<FatcaDeclaration>,
/// Within 1-50 characters, use only letters, spaces, hyphens, full-stops or apostrophes.\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub first_name: Option<String>,
/// [Optional] If specified, will return only the underlyings for the specified landing company.\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub landing_company_short: Option<LandingCompanyShort>,
/// Within 1-50 characters, use only letters, spaces, hyphens, full-stops or apostrophes.\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub last_name: Option<String>,
/// [Optional] The login id of the user. If left unspecified, it defaults to the initial authorized token's login id.\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub loginid: Option<String>,
/// Must be `1`\n
// Correct serde attribute construction - Use helper
pub new_partner_account: i64,
/// [Optional] Indicates client's self-declaration of not being a PEP/RCA (Politically Exposed Person/Relatives and Close Associates).\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub non_pep_declaration: Option<i64>,
/// Defines whether this partner is an individual or a company. Only applicable for partners\n
// Correct serde attribute construction - Use helper
pub partner_type: PartnerType,
/// [Optional] Used to pass data through the websocket, which may be retrieved via the `echo_req` output field.\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub passthrough: Option<Value>,
/// [Optional] Starting with `+` followed by 8-35 digits, allowing hyphens or space.\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub phone: Option<String>,
/// [Optional] Name of the provider platform.\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub provider: Option<Provider>,
/// [Optional] Used to map request to response.\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub req_id: Option<i64>,
/// 2-letter country code, possible value receive from `residence_list` call.\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub residence: Option<String>,
/// [Optional] Accept any value in enum list.\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub salutation: Option<String>,
/// [Optional] Answer to secret question, within 4-50 characters. Required for new account and existing client details will be used if client open another account.\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub secret_answer: Option<String>,
/// [Optional] Accept any value in enum list. Required for new account and existing client details will be used if client open another account.\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub secret_question: Option<String>,
/// Partner's Website URI/Promotional Platform\n
// Correct serde attribute construction - Use helper
pub website: String,
}