snaptrade 3.0.8 → 3.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +4 -41
- data/lib/snaptrade/api/account_information_api.rb +4 -107
- data/lib/snaptrade/api/experimental_endpoints_api.rb +4 -4
- data/lib/snaptrade/models/connection_account.rb +5 -3
- data/lib/snaptrade/models/connection_account_sync_status.rb +1 -1
- data/lib/snaptrade/models/deposit_account_net_value.rb +1 -1
- data/lib/snaptrade/models/investment_account_net_value.rb +1 -1
- data/lib/snaptrade/models/line_of_credit_account.rb +356 -0
- data/lib/snaptrade/models/line_of_credit_account_credit_details.rb +218 -0
- data/lib/snaptrade/models/{user_aum_percentile_response.rb → line_of_credit_account_credit_details_minimum_payment_amount.rb} +22 -12
- data/lib/snaptrade/models/{bucket.rb → line_of_credit_account_kind.rb} +5 -10
- data/lib/snaptrade/models/{user_aum_percentile_object.rb → line_of_credit_account_net_value.rb} +13 -67
- data/lib/snaptrade/models/{user_aum_percentile_response_data.rb → line_of_credit_account_sync_status.rb} +19 -79
- data/lib/snaptrade/version.rb +1 -1
- data/lib/snaptrade.rb +6 -4
- data/spec/api/account_information_api_spec.rb +1 -14
- data/spec/api/experimental_endpoints_api_spec.rb +1 -1
- data/spec/models/line_of_credit_account_credit_details_minimum_payment_amount_spec.rb +35 -0
- data/spec/models/line_of_credit_account_credit_details_spec.rb +29 -0
- data/spec/models/line_of_credit_account_kind_spec.rb +23 -0
- data/spec/models/line_of_credit_account_net_value_spec.rb +35 -0
- data/spec/models/line_of_credit_account_spec.rb +95 -0
- data/spec/models/line_of_credit_account_sync_status_spec.rb +35 -0
- metadata +229 -223
- data/spec/models/bucket_spec.rb +0 -23
- data/spec/models/user_aum_percentile_object_spec.rb +0 -53
- data/spec/models/user_aum_percentile_response_data_spec.rb +0 -53
- data/spec/models/user_aum_percentile_response_spec.rb +0 -29
data/lib/snaptrade/models/{user_aum_percentile_object.rb → line_of_credit_account_net_value.rb}
RENAMED
|
@@ -11,30 +11,16 @@ require 'date'
|
|
|
11
11
|
require 'time'
|
|
12
12
|
|
|
13
13
|
module SnapTrade
|
|
14
|
-
#
|
|
15
|
-
class
|
|
16
|
-
|
|
17
|
-
attr_accessor :bucket
|
|
14
|
+
# Net value of the account -- negative, representing money owed. Shared across all account kinds. Null when unknown (e.g. a real-time fetch failed and no cached value exists).
|
|
15
|
+
class LineOfCreditAccountNetValue
|
|
16
|
+
attr_accessor :amount
|
|
18
17
|
|
|
19
|
-
# The percent of the cohort the user's assets are strictly above, 0-100. Integer by design: the distribution is stored as 101 interpolated cutoffs, so a fractional percentile would not mean anything. Prefer `bucket` for anything you display prominently. The distribution is recomputed monthly, so a user's percentile can move a few points on its own as other users' holdings refresh, while their bucket stays put. Users tied on the same total all receive the lowest percentile that total spans.
|
|
20
|
-
attr_accessor :percentile
|
|
21
|
-
|
|
22
|
-
# Number of your users the distribution was computed from.
|
|
23
|
-
attr_accessor :cohort_size
|
|
24
|
-
|
|
25
|
-
# The month whose distribution produced this placement.
|
|
26
|
-
attr_accessor :as_of
|
|
27
|
-
|
|
28
|
-
# The currency the distribution was computed in.
|
|
29
18
|
attr_accessor :currency
|
|
30
19
|
|
|
31
20
|
# Attribute mapping from ruby-style variable name to JSON key.
|
|
32
21
|
def self.attribute_map
|
|
33
22
|
{
|
|
34
|
-
:'
|
|
35
|
-
:'percentile' => :'percentile',
|
|
36
|
-
:'cohort_size' => :'cohort_size',
|
|
37
|
-
:'as_of' => :'as_of',
|
|
23
|
+
:'amount' => :'amount',
|
|
38
24
|
:'currency' => :'currency'
|
|
39
25
|
}
|
|
40
26
|
end
|
|
@@ -47,10 +33,7 @@ module SnapTrade
|
|
|
47
33
|
# Attribute type mapping.
|
|
48
34
|
def self.openapi_types
|
|
49
35
|
{
|
|
50
|
-
:'
|
|
51
|
-
:'percentile' => :'Integer',
|
|
52
|
-
:'cohort_size' => :'Integer',
|
|
53
|
-
:'as_of' => :'Date',
|
|
36
|
+
:'amount' => :'Float',
|
|
54
37
|
:'currency' => :'String'
|
|
55
38
|
}
|
|
56
39
|
end
|
|
@@ -58,6 +41,8 @@ module SnapTrade
|
|
|
58
41
|
# List of attributes with nullable: true
|
|
59
42
|
def self.openapi_nullable
|
|
60
43
|
Set.new([
|
|
44
|
+
:'amount',
|
|
45
|
+
:'currency'
|
|
61
46
|
])
|
|
62
47
|
end
|
|
63
48
|
|
|
@@ -65,31 +50,19 @@ module SnapTrade
|
|
|
65
50
|
# @param [Hash] attributes Model attributes in the form of hash
|
|
66
51
|
def initialize(attributes = {})
|
|
67
52
|
if (!attributes.is_a?(Hash))
|
|
68
|
-
fail ArgumentError, "The input argument (attributes) must be a hash in `SnapTrade::
|
|
53
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `SnapTrade::LineOfCreditAccountNetValue` initialize method"
|
|
69
54
|
end
|
|
70
55
|
|
|
71
56
|
# check to see if the attribute exists and convert string to symbol for hash key
|
|
72
57
|
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
73
58
|
if (!self.class.attribute_map.key?(k.to_sym))
|
|
74
|
-
fail ArgumentError, "`#{k}` is not a valid attribute in `SnapTrade::
|
|
59
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `SnapTrade::LineOfCreditAccountNetValue`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
|
|
75
60
|
end
|
|
76
61
|
h[k.to_sym] = v
|
|
77
62
|
}
|
|
78
63
|
|
|
79
|
-
if attributes.key?(:'
|
|
80
|
-
self.
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
if attributes.key?(:'percentile')
|
|
84
|
-
self.percentile = attributes[:'percentile']
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
if attributes.key?(:'cohort_size')
|
|
88
|
-
self.cohort_size = attributes[:'cohort_size']
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
if attributes.key?(:'as_of')
|
|
92
|
-
self.as_of = attributes[:'as_of']
|
|
64
|
+
if attributes.key?(:'amount')
|
|
65
|
+
self.amount = attributes[:'amount']
|
|
93
66
|
end
|
|
94
67
|
|
|
95
68
|
if attributes.key?(:'currency')
|
|
@@ -101,48 +74,21 @@ module SnapTrade
|
|
|
101
74
|
# @return Array for valid properties with the reasons
|
|
102
75
|
def list_invalid_properties
|
|
103
76
|
invalid_properties = Array.new
|
|
104
|
-
if !@percentile.nil? && @percentile > 100
|
|
105
|
-
invalid_properties.push('invalid value for "percentile", must be smaller than or equal to 100.')
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
if !@percentile.nil? && @percentile < 0
|
|
109
|
-
invalid_properties.push('invalid value for "percentile", must be greater than or equal to 0.')
|
|
110
|
-
end
|
|
111
|
-
|
|
112
77
|
invalid_properties
|
|
113
78
|
end
|
|
114
79
|
|
|
115
80
|
# Check to see if the all the properties in the model are valid
|
|
116
81
|
# @return true if the model is valid
|
|
117
82
|
def valid?
|
|
118
|
-
return false if !@percentile.nil? && @percentile > 100
|
|
119
|
-
return false if !@percentile.nil? && @percentile < 0
|
|
120
83
|
true
|
|
121
84
|
end
|
|
122
85
|
|
|
123
|
-
# Custom attribute writer method with validation
|
|
124
|
-
# @param [Object] percentile Value to be assigned
|
|
125
|
-
def percentile=(percentile)
|
|
126
|
-
if !percentile.nil? && percentile > 100
|
|
127
|
-
fail ArgumentError, 'invalid value for "percentile", must be smaller than or equal to 100.'
|
|
128
|
-
end
|
|
129
|
-
|
|
130
|
-
if !percentile.nil? && percentile < 0
|
|
131
|
-
fail ArgumentError, 'invalid value for "percentile", must be greater than or equal to 0.'
|
|
132
|
-
end
|
|
133
|
-
|
|
134
|
-
@percentile = percentile
|
|
135
|
-
end
|
|
136
|
-
|
|
137
86
|
# Checks equality by comparing each attribute.
|
|
138
87
|
# @param [Object] Object to be compared
|
|
139
88
|
def ==(o)
|
|
140
89
|
return true if self.equal?(o)
|
|
141
90
|
self.class == o.class &&
|
|
142
|
-
|
|
143
|
-
percentile == o.percentile &&
|
|
144
|
-
cohort_size == o.cohort_size &&
|
|
145
|
-
as_of == o.as_of &&
|
|
91
|
+
amount == o.amount &&
|
|
146
92
|
currency == o.currency
|
|
147
93
|
end
|
|
148
94
|
|
|
@@ -155,7 +101,7 @@ module SnapTrade
|
|
|
155
101
|
# Calculates hash code according to all attributes.
|
|
156
102
|
# @return [Integer] Hash code
|
|
157
103
|
def hash
|
|
158
|
-
[
|
|
104
|
+
[amount, currency].hash
|
|
159
105
|
end
|
|
160
106
|
|
|
161
107
|
# Builds the object from hash
|
|
@@ -11,30 +11,18 @@ require 'date'
|
|
|
11
11
|
require 'time'
|
|
12
12
|
|
|
13
13
|
module SnapTrade
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
attr_accessor :
|
|
14
|
+
# Contains status updates for the account sync process between SnapTrade and the institution, used by `LineOfCreditAccount` in `Connections_listConnectionAccounts`. Each property is optional -- an institution may not report sync status for every data type. Line-of-credit accounts don't place orders or hold positions, so like `DepositAccountSyncStatus` this type has no `orders` or `positions` field. `balances` is the timestamp of the last successful sync of that data type (null if never synced).
|
|
15
|
+
class LineOfCreditAccountSyncStatus
|
|
16
|
+
attr_accessor :transactions
|
|
17
17
|
|
|
18
|
-
# The
|
|
19
|
-
attr_accessor :
|
|
20
|
-
|
|
21
|
-
# Number of your users the distribution was computed from.
|
|
22
|
-
attr_accessor :cohort_size
|
|
23
|
-
|
|
24
|
-
# The month whose distribution produced this placement.
|
|
25
|
-
attr_accessor :as_of
|
|
26
|
-
|
|
27
|
-
# The currency the distribution was computed in.
|
|
28
|
-
attr_accessor :currency
|
|
18
|
+
# The last time balances were successfully synced by SnapTrade.
|
|
19
|
+
attr_accessor :balances
|
|
29
20
|
|
|
30
21
|
# Attribute mapping from ruby-style variable name to JSON key.
|
|
31
22
|
def self.attribute_map
|
|
32
23
|
{
|
|
33
|
-
:'
|
|
34
|
-
:'
|
|
35
|
-
:'cohort_size' => :'cohort_size',
|
|
36
|
-
:'as_of' => :'as_of',
|
|
37
|
-
:'currency' => :'currency'
|
|
24
|
+
:'transactions' => :'transactions',
|
|
25
|
+
:'balances' => :'balances'
|
|
38
26
|
}
|
|
39
27
|
end
|
|
40
28
|
|
|
@@ -46,60 +34,39 @@ module SnapTrade
|
|
|
46
34
|
# Attribute type mapping.
|
|
47
35
|
def self.openapi_types
|
|
48
36
|
{
|
|
49
|
-
:'
|
|
50
|
-
:'
|
|
51
|
-
:'cohort_size' => :'Integer',
|
|
52
|
-
:'as_of' => :'Date',
|
|
53
|
-
:'currency' => :'String'
|
|
37
|
+
:'transactions' => :'TransactionsStatus',
|
|
38
|
+
:'balances' => :'Time'
|
|
54
39
|
}
|
|
55
40
|
end
|
|
56
41
|
|
|
57
42
|
# List of attributes with nullable: true
|
|
58
43
|
def self.openapi_nullable
|
|
59
44
|
Set.new([
|
|
45
|
+
:'balances'
|
|
60
46
|
])
|
|
61
47
|
end
|
|
62
48
|
|
|
63
|
-
# List of class defined in allOf (OpenAPI v3)
|
|
64
|
-
def self.openapi_all_of
|
|
65
|
-
[
|
|
66
|
-
:'UserAumPercentileObject'
|
|
67
|
-
]
|
|
68
|
-
end
|
|
69
|
-
|
|
70
49
|
# Initializes the object
|
|
71
50
|
# @param [Hash] attributes Model attributes in the form of hash
|
|
72
51
|
def initialize(attributes = {})
|
|
73
52
|
if (!attributes.is_a?(Hash))
|
|
74
|
-
fail ArgumentError, "The input argument (attributes) must be a hash in `SnapTrade::
|
|
53
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `SnapTrade::LineOfCreditAccountSyncStatus` initialize method"
|
|
75
54
|
end
|
|
76
55
|
|
|
77
56
|
# check to see if the attribute exists and convert string to symbol for hash key
|
|
78
57
|
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
79
58
|
if (!self.class.attribute_map.key?(k.to_sym))
|
|
80
|
-
fail ArgumentError, "`#{k}` is not a valid attribute in `SnapTrade::
|
|
59
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `SnapTrade::LineOfCreditAccountSyncStatus`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
|
|
81
60
|
end
|
|
82
61
|
h[k.to_sym] = v
|
|
83
62
|
}
|
|
84
63
|
|
|
85
|
-
if attributes.key?(:'
|
|
86
|
-
self.
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
if attributes.key?(:'percentile')
|
|
90
|
-
self.percentile = attributes[:'percentile']
|
|
91
|
-
end
|
|
92
|
-
|
|
93
|
-
if attributes.key?(:'cohort_size')
|
|
94
|
-
self.cohort_size = attributes[:'cohort_size']
|
|
95
|
-
end
|
|
96
|
-
|
|
97
|
-
if attributes.key?(:'as_of')
|
|
98
|
-
self.as_of = attributes[:'as_of']
|
|
64
|
+
if attributes.key?(:'transactions')
|
|
65
|
+
self.transactions = attributes[:'transactions']
|
|
99
66
|
end
|
|
100
67
|
|
|
101
|
-
if attributes.key?(:'
|
|
102
|
-
self.
|
|
68
|
+
if attributes.key?(:'balances')
|
|
69
|
+
self.balances = attributes[:'balances']
|
|
103
70
|
end
|
|
104
71
|
end
|
|
105
72
|
|
|
@@ -107,49 +74,22 @@ module SnapTrade
|
|
|
107
74
|
# @return Array for valid properties with the reasons
|
|
108
75
|
def list_invalid_properties
|
|
109
76
|
invalid_properties = Array.new
|
|
110
|
-
if !@percentile.nil? && @percentile > 100
|
|
111
|
-
invalid_properties.push('invalid value for "percentile", must be smaller than or equal to 100.')
|
|
112
|
-
end
|
|
113
|
-
|
|
114
|
-
if !@percentile.nil? && @percentile < 0
|
|
115
|
-
invalid_properties.push('invalid value for "percentile", must be greater than or equal to 0.')
|
|
116
|
-
end
|
|
117
|
-
|
|
118
77
|
invalid_properties
|
|
119
78
|
end
|
|
120
79
|
|
|
121
80
|
# Check to see if the all the properties in the model are valid
|
|
122
81
|
# @return true if the model is valid
|
|
123
82
|
def valid?
|
|
124
|
-
return false if !@percentile.nil? && @percentile > 100
|
|
125
|
-
return false if !@percentile.nil? && @percentile < 0
|
|
126
83
|
true
|
|
127
84
|
end
|
|
128
85
|
|
|
129
|
-
# Custom attribute writer method with validation
|
|
130
|
-
# @param [Object] percentile Value to be assigned
|
|
131
|
-
def percentile=(percentile)
|
|
132
|
-
if !percentile.nil? && percentile > 100
|
|
133
|
-
fail ArgumentError, 'invalid value for "percentile", must be smaller than or equal to 100.'
|
|
134
|
-
end
|
|
135
|
-
|
|
136
|
-
if !percentile.nil? && percentile < 0
|
|
137
|
-
fail ArgumentError, 'invalid value for "percentile", must be greater than or equal to 0.'
|
|
138
|
-
end
|
|
139
|
-
|
|
140
|
-
@percentile = percentile
|
|
141
|
-
end
|
|
142
|
-
|
|
143
86
|
# Checks equality by comparing each attribute.
|
|
144
87
|
# @param [Object] Object to be compared
|
|
145
88
|
def ==(o)
|
|
146
89
|
return true if self.equal?(o)
|
|
147
90
|
self.class == o.class &&
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
cohort_size == o.cohort_size &&
|
|
151
|
-
as_of == o.as_of &&
|
|
152
|
-
currency == o.currency
|
|
91
|
+
transactions == o.transactions &&
|
|
92
|
+
balances == o.balances
|
|
153
93
|
end
|
|
154
94
|
|
|
155
95
|
# @see the `==` method
|
|
@@ -161,7 +101,7 @@ module SnapTrade
|
|
|
161
101
|
# Calculates hash code according to all attributes.
|
|
162
102
|
# @return [Integer] Hash code
|
|
163
103
|
def hash
|
|
164
|
-
[
|
|
104
|
+
[transactions, balances].hash
|
|
165
105
|
end
|
|
166
106
|
|
|
167
107
|
# Builds the object from hash
|
data/lib/snaptrade/version.rb
CHANGED
data/lib/snaptrade.rb
CHANGED
|
@@ -69,7 +69,6 @@ require 'snaptrade/models/brokerage_authorization_type_read_only_type'
|
|
|
69
69
|
require 'snaptrade/models/brokerage_instrument'
|
|
70
70
|
require 'snaptrade/models/brokerage_instruments_response'
|
|
71
71
|
require 'snaptrade/models/brokerage_type'
|
|
72
|
-
require 'snaptrade/models/bucket'
|
|
73
72
|
require 'snaptrade/models/cancel_order_response'
|
|
74
73
|
require 'snaptrade/models/cash_change_direction'
|
|
75
74
|
require 'snaptrade/models/cef_instrument'
|
|
@@ -118,6 +117,12 @@ require 'snaptrade/models/instrument'
|
|
|
118
117
|
require 'snaptrade/models/investment_account'
|
|
119
118
|
require 'snaptrade/models/investment_account_net_value'
|
|
120
119
|
require 'snaptrade/models/kind'
|
|
120
|
+
require 'snaptrade/models/line_of_credit_account'
|
|
121
|
+
require 'snaptrade/models/line_of_credit_account_credit_details'
|
|
122
|
+
require 'snaptrade/models/line_of_credit_account_credit_details_minimum_payment_amount'
|
|
123
|
+
require 'snaptrade/models/line_of_credit_account_kind'
|
|
124
|
+
require 'snaptrade/models/line_of_credit_account_net_value'
|
|
125
|
+
require 'snaptrade/models/line_of_credit_account_sync_status'
|
|
121
126
|
require 'snaptrade/models/login_redirect_uri'
|
|
122
127
|
require 'snaptrade/models/manual_trade'
|
|
123
128
|
require 'snaptrade/models/manual_trade_and_impact'
|
|
@@ -245,9 +250,6 @@ require 'snaptrade/models/underlying_symbol_exchange'
|
|
|
245
250
|
require 'snaptrade/models/underlying_symbol_type'
|
|
246
251
|
require 'snaptrade/models/universal_activity'
|
|
247
252
|
require 'snaptrade/models/universal_symbol'
|
|
248
|
-
require 'snaptrade/models/user_aum_percentile_object'
|
|
249
|
-
require 'snaptrade/models/user_aum_percentile_response'
|
|
250
|
-
require 'snaptrade/models/user_aum_percentile_response_data'
|
|
251
253
|
require 'snaptrade/models/user_i_dand_secret'
|
|
252
254
|
require 'snaptrade/models/validated_trade_body'
|
|
253
255
|
|
|
@@ -48,7 +48,7 @@ describe 'AccountInformationApi' do
|
|
|
48
48
|
|
|
49
49
|
# unit tests for get_account_balance_history
|
|
50
50
|
# List historical account total value
|
|
51
|
-
# An experimental endpoint that returns estimated historical total account value for the specified account. Total account value is the sum of the market value of all positions and cash in the account at a given time. This endpoint is experimental, disabled by default, and has a maximum lookback of 1 year.
|
|
51
|
+
# An experimental endpoint that returns estimated historical total account value for the specified account. Total account value is the sum of the market value of all positions and cash in the account at a given time. This endpoint is experimental, disabled by default, and has a maximum lookback of 1 year. Enable this feature in the Add-on section of the Billing page: https://dashboard.snaptrade.com/settings/billing
|
|
52
52
|
# @param user_id
|
|
53
53
|
# @param user_secret
|
|
54
54
|
# @param account_id
|
|
@@ -163,19 +163,6 @@ describe 'AccountInformationApi' do
|
|
|
163
163
|
end
|
|
164
164
|
end
|
|
165
165
|
|
|
166
|
-
# unit tests for get_user_aum_percentile
|
|
167
|
-
# Get the user's AUM percentile
|
|
168
|
-
# Returns where the user's total assets sit within the distribution of a cohort of comparable users, as a coarse bucket plus an integer percentile. The cohort is scoped to your own book: a user is only ever compared against your other users, never across SnapTrade customers. (Users on personal-use keys are the exception — they are compared against all other personal-use users, since a personal key has a single user and cannot form a distribution of its own.) The distribution is recomputed monthly, and `as_of` reports which month's distribution the placement came from. `data` is `null` — a 200, not an error — when SnapTrade declines to place the user. That happens when the cohort is too small to publish a distribution, or when the user's own holdings are incomplete or stale (for example they hold a disabled connection). A placement computed from a partial view of a user's assets would understate them, so none is returned.
|
|
169
|
-
# @param user_id
|
|
170
|
-
# @param user_secret
|
|
171
|
-
# @param [Hash] opts the optional parameters
|
|
172
|
-
# @return [UserAumPercentileResponse]
|
|
173
|
-
describe 'get_user_aum_percentile test' do
|
|
174
|
-
it 'should work' do
|
|
175
|
-
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
|
176
|
-
end
|
|
177
|
-
end
|
|
178
|
-
|
|
179
166
|
# unit tests for get_user_holdings
|
|
180
167
|
# List account holdings
|
|
181
168
|
# **Deprecated.** Use the finer-grained account data endpoints instead: [balances](/reference/Account%20Information/AccountInformation_getUserAccountBalance), [positions](/reference/Account%20Information/AccountInformation_getAllAccountPositions), and [orders](/reference/Account%20Information/AccountInformation_getUserAccountOrders). This endpoint will return HTTP 410 Gone for all customers that sign up after May 11, 2026. Returns a list of balances, positions, and recent orders for the specified account. Check your API key on the [Customer Dashboard billing page](https://dashboard.snaptrade.com/settings/billing) to see if you have real-time data access: - If you do, this endpoint returns real-time data. - If you don't, Daily data is cached and refreshed once a day. Exact refresh timing may vary by brokerage. If you need real-time, use the [manual refresh](/reference/Connections/Connections_refreshBrokerageAuthorization) endpoint. If the connection has become disabled, it can no longer access the latest data from the brokerage, but will continue to return the last available cached state. Please see [this guide](/docs/fix-broken-connections) on how to fix a disabled connection.
|
|
@@ -101,7 +101,7 @@ describe 'ExperimentalEndpointsApi' do
|
|
|
101
101
|
|
|
102
102
|
# unit tests for list_connection_accounts
|
|
103
103
|
# List accounts for a connection (discriminated union)
|
|
104
|
-
# Experimental and subject to change without notice. Returns the accounts that belong to the specified connection for the authenticated user, using the `kind`-discriminated account shape. Each item in the response carries a `kind` field (
|
|
104
|
+
# Experimental and subject to change without notice. Returns the accounts that belong to the specified connection for the authenticated user, using the `kind`-discriminated account shape. Each item in the response carries a `kind` field (`investment`, `deposit`, and `line_of_credit` are implemented) that determines which additional fields are present -- see the `ConnectionAccount` schema. On Pay as you Go / Real-time, this endpoint refreshes each account's opening date and total net value (`net_value`) live from the institution on each call, along with funding date for `investment` accounts. On Pay as you Go / Daily, this endpoint returns Daily data. Daily data is cached and refreshed once a day. Exact refresh timing may vary by institution. To force a refresh, use the [manual refresh endpoint](/reference/Connections/Connections_refreshBrokerageAuthorization). Check your API key on the [Customer Dashboard billing page](https://dashboard.snaptrade.com/settings/billing) to see whether your plan includes real-time data.
|
|
105
105
|
# @param connection_id
|
|
106
106
|
# @param user_id
|
|
107
107
|
# @param user_secret
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#SnapTrade
|
|
3
|
+
|
|
4
|
+
#Connect brokerage accounts to your app for live positions and trading
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1.0.0
|
|
7
|
+
Contact: api@snaptrade.com
|
|
8
|
+
=end
|
|
9
|
+
|
|
10
|
+
require 'spec_helper'
|
|
11
|
+
require 'json'
|
|
12
|
+
require 'date'
|
|
13
|
+
|
|
14
|
+
# Unit tests for SnapTrade::LineOfCreditAccountCreditDetailsMinimumPaymentAmount
|
|
15
|
+
describe SnapTrade::LineOfCreditAccountCreditDetailsMinimumPaymentAmount do
|
|
16
|
+
let(:instance) { SnapTrade::LineOfCreditAccountCreditDetailsMinimumPaymentAmount.new }
|
|
17
|
+
|
|
18
|
+
describe 'test an instance of LineOfCreditAccountCreditDetailsMinimumPaymentAmount' do
|
|
19
|
+
it 'should create an instance of LineOfCreditAccountCreditDetailsMinimumPaymentAmount' do
|
|
20
|
+
expect(instance).to be_instance_of(SnapTrade::LineOfCreditAccountCreditDetailsMinimumPaymentAmount)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
describe 'test attribute "amount"' do
|
|
24
|
+
it 'should work' do
|
|
25
|
+
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe 'test attribute "currency"' do
|
|
30
|
+
it 'should work' do
|
|
31
|
+
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#SnapTrade
|
|
3
|
+
|
|
4
|
+
#Connect brokerage accounts to your app for live positions and trading
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1.0.0
|
|
7
|
+
Contact: api@snaptrade.com
|
|
8
|
+
=end
|
|
9
|
+
|
|
10
|
+
require 'spec_helper'
|
|
11
|
+
require 'json'
|
|
12
|
+
require 'date'
|
|
13
|
+
|
|
14
|
+
# Unit tests for SnapTrade::LineOfCreditAccountCreditDetails
|
|
15
|
+
describe SnapTrade::LineOfCreditAccountCreditDetails do
|
|
16
|
+
let(:instance) { SnapTrade::LineOfCreditAccountCreditDetails.new }
|
|
17
|
+
|
|
18
|
+
describe 'test an instance of LineOfCreditAccountCreditDetails' do
|
|
19
|
+
it 'should create an instance of LineOfCreditAccountCreditDetails' do
|
|
20
|
+
expect(instance).to be_instance_of(SnapTrade::LineOfCreditAccountCreditDetails)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
describe 'test attribute "minimum_payment_amount"' do
|
|
24
|
+
it 'should work' do
|
|
25
|
+
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#SnapTrade
|
|
3
|
+
|
|
4
|
+
#Connect brokerage accounts to your app for live positions and trading
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1.0.0
|
|
7
|
+
Contact: api@snaptrade.com
|
|
8
|
+
=end
|
|
9
|
+
|
|
10
|
+
require 'spec_helper'
|
|
11
|
+
require 'json'
|
|
12
|
+
require 'date'
|
|
13
|
+
|
|
14
|
+
# Unit tests for SnapTrade::LineOfCreditAccountKind
|
|
15
|
+
describe SnapTrade::LineOfCreditAccountKind do
|
|
16
|
+
let(:instance) { SnapTrade::LineOfCreditAccountKind.new }
|
|
17
|
+
|
|
18
|
+
describe 'test an instance of LineOfCreditAccountKind' do
|
|
19
|
+
it 'should create an instance of LineOfCreditAccountKind' do
|
|
20
|
+
expect(instance).to be_instance_of(SnapTrade::LineOfCreditAccountKind)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#SnapTrade
|
|
3
|
+
|
|
4
|
+
#Connect brokerage accounts to your app for live positions and trading
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1.0.0
|
|
7
|
+
Contact: api@snaptrade.com
|
|
8
|
+
=end
|
|
9
|
+
|
|
10
|
+
require 'spec_helper'
|
|
11
|
+
require 'json'
|
|
12
|
+
require 'date'
|
|
13
|
+
|
|
14
|
+
# Unit tests for SnapTrade::LineOfCreditAccountNetValue
|
|
15
|
+
describe SnapTrade::LineOfCreditAccountNetValue do
|
|
16
|
+
let(:instance) { SnapTrade::LineOfCreditAccountNetValue.new }
|
|
17
|
+
|
|
18
|
+
describe 'test an instance of LineOfCreditAccountNetValue' do
|
|
19
|
+
it 'should create an instance of LineOfCreditAccountNetValue' do
|
|
20
|
+
expect(instance).to be_instance_of(SnapTrade::LineOfCreditAccountNetValue)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
describe 'test attribute "amount"' do
|
|
24
|
+
it 'should work' do
|
|
25
|
+
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe 'test attribute "currency"' do
|
|
30
|
+
it 'should work' do
|
|
31
|
+
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
end
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#SnapTrade
|
|
3
|
+
|
|
4
|
+
#Connect brokerage accounts to your app for live positions and trading
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1.0.0
|
|
7
|
+
Contact: api@snaptrade.com
|
|
8
|
+
=end
|
|
9
|
+
|
|
10
|
+
require 'spec_helper'
|
|
11
|
+
require 'json'
|
|
12
|
+
require 'date'
|
|
13
|
+
|
|
14
|
+
# Unit tests for SnapTrade::LineOfCreditAccount
|
|
15
|
+
describe SnapTrade::LineOfCreditAccount do
|
|
16
|
+
let(:instance) { SnapTrade::LineOfCreditAccount.new }
|
|
17
|
+
|
|
18
|
+
describe 'test an instance of LineOfCreditAccount' do
|
|
19
|
+
it 'should create an instance of LineOfCreditAccount' do
|
|
20
|
+
expect(instance).to be_instance_of(SnapTrade::LineOfCreditAccount)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
describe 'test attribute "kind"' do
|
|
24
|
+
it 'should work' do
|
|
25
|
+
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe 'test attribute "id"' do
|
|
30
|
+
it 'should work' do
|
|
31
|
+
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
describe 'test attribute "connection_id"' do
|
|
36
|
+
it 'should work' do
|
|
37
|
+
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
describe 'test attribute "display_name"' do
|
|
42
|
+
it 'should work' do
|
|
43
|
+
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
describe 'test attribute "number"' do
|
|
48
|
+
it 'should work' do
|
|
49
|
+
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
describe 'test attribute "institution_account_id"' do
|
|
54
|
+
it 'should work' do
|
|
55
|
+
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
describe 'test attribute "institution_id"' do
|
|
60
|
+
it 'should work' do
|
|
61
|
+
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
describe 'test attribute "opening_date"' do
|
|
66
|
+
it 'should work' do
|
|
67
|
+
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
describe 'test attribute "sync_status"' do
|
|
72
|
+
it 'should work' do
|
|
73
|
+
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
describe 'test attribute "raw_type"' do
|
|
78
|
+
it 'should work' do
|
|
79
|
+
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
describe 'test attribute "net_value"' do
|
|
84
|
+
it 'should work' do
|
|
85
|
+
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
describe 'test attribute "credit_details"' do
|
|
90
|
+
it 'should work' do
|
|
91
|
+
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#SnapTrade
|
|
3
|
+
|
|
4
|
+
#Connect brokerage accounts to your app for live positions and trading
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1.0.0
|
|
7
|
+
Contact: api@snaptrade.com
|
|
8
|
+
=end
|
|
9
|
+
|
|
10
|
+
require 'spec_helper'
|
|
11
|
+
require 'json'
|
|
12
|
+
require 'date'
|
|
13
|
+
|
|
14
|
+
# Unit tests for SnapTrade::LineOfCreditAccountSyncStatus
|
|
15
|
+
describe SnapTrade::LineOfCreditAccountSyncStatus do
|
|
16
|
+
let(:instance) { SnapTrade::LineOfCreditAccountSyncStatus.new }
|
|
17
|
+
|
|
18
|
+
describe 'test an instance of LineOfCreditAccountSyncStatus' do
|
|
19
|
+
it 'should create an instance of LineOfCreditAccountSyncStatus' do
|
|
20
|
+
expect(instance).to be_instance_of(SnapTrade::LineOfCreditAccountSyncStatus)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
describe 'test attribute "transactions"' do
|
|
24
|
+
it 'should work' do
|
|
25
|
+
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe 'test attribute "balances"' do
|
|
30
|
+
it 'should work' do
|
|
31
|
+
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
end
|