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
// Generated automatically by schema_generator.rs - DO NOT EDIT.
// Source: ./deriv-api-docs/config/v3/partner_account_creation/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::tnc_acceptance::TncAcceptance;
use crate::provider::Provider;
use crate::fatca_declaration::FatcaDeclaration;
use crate::landing_company_short::LandingCompanyShort;
use crate::partner_type::PartnerType;
/// This call initiates the state machine for account creation process
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub struct PartnerAccountCreationRequest {
/// [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. Don't include the `+` sign. Up to 4 digits.\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] 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>,
/// Email address\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub email: 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>,
/// [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>,
/// Must be `1`\n
// Correct serde attribute construction - Use helper
pub partner_account_creation: i64,
/// Defines whether this partner is an individual or a company. Only applicable for partners\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub partner_type: Option<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] The phone's national format, don't include the `+` sign nor the calling country code. Up to 15 digits are allowed.\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>,
/// Accept any value in enum list.\n
// Correct serde attribute construction - Use helper
pub salutation: String,
/// The tnc acceptance status of the user.\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub tnc_acceptance: Option<TncAcceptance>,
/// Partner's Website URI/Promotional Platform\n
// Correct serde attribute construction - Use helper
#[serde(skip_serializing_if = "Option::is_none")]
pub website: Option<String>,
}