lithic 0.5.0 → 0.6.0
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/CHANGELOG.md +26 -0
- data/README.md +1 -1
- data/lib/lithic/models/account_holders/account_holder_entity.rb +183 -0
- data/lib/lithic/models/account_holders/entity_create_params.rb +159 -0
- data/lib/lithic/models/account_holders/entity_create_response.rb +113 -0
- data/lib/lithic/models/account_holders/entity_delete_params.rb +22 -0
- data/lib/lithic/models/auth_rules/auth_rule.rb +6 -2
- data/lib/lithic/models/auth_rules/conditional_block_parameters.rb +3 -0
- data/lib/lithic/models/auth_rules/v2_create_params.rb +5 -2
- data/lib/lithic/models/auth_rules/v2_draft_params.rb +1 -0
- data/lib/lithic/models/digital_wallet_tokenization_approval_request_webhook_event.rb +9 -9
- data/lib/lithic/models/financial_account.rb +1 -0
- data/lib/lithic/models/financial_account_update_status_params.rb +1 -0
- data/lib/lithic/models/financial_accounts/category_tier.rb +28 -0
- data/lib/lithic/models/financial_accounts/interest_tier_schedule.rb +50 -0
- data/lib/lithic/models/financial_accounts/interest_tier_schedule_create_params.rb +16 -0
- data/lib/lithic/models/financial_accounts/interest_tier_schedule_delete_params.rb +22 -0
- data/lib/lithic/models/financial_accounts/interest_tier_schedule_list_params.rb +40 -0
- data/lib/lithic/models/financial_accounts/interest_tier_schedule_retrieve_params.rb +22 -0
- data/lib/lithic/models/financial_accounts/interest_tier_schedule_update_params.rb +44 -0
- data/lib/lithic/models/financial_accounts/loan_tape.rb +1 -0
- data/lib/lithic/models/financial_accounts/loan_tape_configuration.rb +63 -0
- data/lib/lithic/models/financial_accounts/loan_tape_configuration_retrieve_params.rb +16 -0
- data/lib/lithic/models/financial_accounts/loan_tape_rebuild_configuration.rb +36 -0
- data/lib/lithic/models/financial_accounts/statement.rb +1 -0
- data/lib/lithic/models/{digital_wallet_token_metadata.rb → token_metadata.rb} +18 -19
- data/lib/lithic/models/tokenization_approval_request_webhook_event.rb +9 -9
- data/lib/lithic/models/tokenization_decisioning_request_webhook_event.rb +9 -9
- data/lib/lithic/models.rb +4 -2
- data/lib/lithic/resources/account_holders/entities.rb +89 -0
- data/lib/lithic/resources/account_holders.rb +4 -0
- data/lib/lithic/resources/financial_accounts/interest_tier_schedule.rb +205 -0
- data/lib/lithic/resources/financial_accounts/loan_tape_configuration.rb +36 -0
- data/lib/lithic/resources/financial_accounts.rb +9 -0
- data/lib/lithic/version.rb +1 -1
- data/lib/lithic.rb +18 -1
- data/rbi/lithic/models/account_holders/account_holder_entity.rbi +296 -0
- data/rbi/lithic/models/account_holders/entity_create_params.rbi +242 -0
- data/rbi/lithic/models/account_holders/entity_create_response.rbi +292 -0
- data/rbi/lithic/models/account_holders/entity_delete_params.rbi +43 -0
- data/rbi/lithic/models/auth_rules/auth_rule.rbi +6 -3
- data/rbi/lithic/models/auth_rules/conditional_block_parameters.rbi +1 -0
- data/rbi/lithic/models/auth_rules/v2_create_params.rbi +6 -3
- data/rbi/lithic/models/digital_wallet_tokenization_approval_request_webhook_event.rbi +15 -17
- data/rbi/lithic/models/financial_account.rbi +5 -0
- data/rbi/lithic/models/financial_account_update_status_params.rbi +5 -0
- data/rbi/lithic/models/financial_accounts/category_tier.rbi +45 -0
- data/rbi/lithic/models/financial_accounts/interest_tier_schedule.rbi +75 -0
- data/rbi/lithic/models/financial_accounts/interest_tier_schedule_create_params.rbi +32 -0
- data/rbi/lithic/models/financial_accounts/interest_tier_schedule_delete_params.rbi +43 -0
- data/rbi/lithic/models/financial_accounts/interest_tier_schedule_list_params.rbi +73 -0
- data/rbi/lithic/models/financial_accounts/interest_tier_schedule_retrieve_params.rbi +43 -0
- data/rbi/lithic/models/financial_accounts/interest_tier_schedule_update_params.rbi +70 -0
- data/rbi/lithic/models/financial_accounts/loan_tape.rbi +5 -0
- data/rbi/lithic/models/financial_accounts/loan_tape_configuration.rbi +99 -0
- data/rbi/lithic/models/financial_accounts/loan_tape_configuration_retrieve_params.rbi +32 -0
- data/rbi/lithic/models/financial_accounts/loan_tape_rebuild_configuration.rbi +65 -0
- data/rbi/lithic/models/financial_accounts/statement.rbi +5 -0
- data/rbi/lithic/models/{digital_wallet_token_metadata.rbi → token_metadata.rbi} +34 -41
- data/rbi/lithic/models/tokenization_approval_request_webhook_event.rbi +11 -17
- data/rbi/lithic/models/tokenization_decisioning_request_webhook_event.rbi +15 -17
- data/rbi/lithic/models.rbi +4 -2
- data/rbi/lithic/resources/account_holders/entities.rbi +80 -0
- data/rbi/lithic/resources/account_holders.rbi +3 -0
- data/rbi/lithic/resources/auth_rules/v2.rbi +2 -1
- data/rbi/lithic/resources/financial_accounts/interest_tier_schedule.rbi +156 -0
- data/rbi/lithic/resources/financial_accounts/loan_tape_configuration.rbi +30 -0
- data/rbi/lithic/resources/financial_accounts.rbi +10 -0
- data/sig/lithic/models/account_holders/account_holder_entity.rbs +137 -0
- data/sig/lithic/models/account_holders/entity_create_params.rbs +118 -0
- data/sig/lithic/models/account_holders/entity_create_response.rbs +117 -0
- data/sig/lithic/models/account_holders/entity_delete_params.rbs +26 -0
- data/sig/lithic/models/digital_wallet_tokenization_approval_request_webhook_event.rbs +5 -9
- data/sig/lithic/models/financial_account.rbs +2 -0
- data/sig/lithic/models/financial_account_update_status_params.rbs +2 -0
- data/sig/lithic/models/financial_accounts/category_tier.rbs +21 -0
- data/sig/lithic/models/financial_accounts/interest_tier_schedule.rbs +41 -0
- data/sig/lithic/models/financial_accounts/interest_tier_schedule_create_params.rbs +17 -0
- data/sig/lithic/models/financial_accounts/interest_tier_schedule_delete_params.rbs +26 -0
- data/sig/lithic/models/financial_accounts/interest_tier_schedule_list_params.rbs +40 -0
- data/sig/lithic/models/financial_accounts/interest_tier_schedule_retrieve_params.rbs +26 -0
- data/sig/lithic/models/financial_accounts/interest_tier_schedule_update_params.rbs +38 -0
- data/sig/lithic/models/financial_accounts/loan_tape.rbs +2 -0
- data/sig/lithic/models/financial_accounts/loan_tape_configuration.rbs +60 -0
- data/sig/lithic/models/financial_accounts/loan_tape_configuration_retrieve_params.rbs +17 -0
- data/sig/lithic/models/financial_accounts/loan_tape_rebuild_configuration.rbs +32 -0
- data/sig/lithic/models/financial_accounts/statement.rbs +2 -0
- data/sig/lithic/models/{digital_wallet_token_metadata.rbs → token_metadata.rbs} +19 -17
- data/sig/lithic/models/tokenization_approval_request_webhook_event.rbs +5 -9
- data/sig/lithic/models/tokenization_decisioning_request_webhook_event.rbs +5 -9
- data/sig/lithic/models.rbs +4 -2
- data/sig/lithic/resources/account_holders/entities.rbs +28 -0
- data/sig/lithic/resources/account_holders.rbs +2 -0
- data/sig/lithic/resources/financial_accounts/interest_tier_schedule.rbs +46 -0
- data/sig/lithic/resources/financial_accounts/loan_tape_configuration.rbs +14 -0
- data/sig/lithic/resources/financial_accounts.rbs +4 -0
- metadata +56 -5
|
@@ -60,6 +60,13 @@ module Lithic
|
|
|
60
60
|
end
|
|
61
61
|
attr_accessor :issuer_decision
|
|
62
62
|
|
|
63
|
+
# Contains the metadata for the digital wallet being tokenized.
|
|
64
|
+
sig { returns(Lithic::TokenMetadata) }
|
|
65
|
+
attr_reader :token_metadata
|
|
66
|
+
|
|
67
|
+
sig { params(token_metadata: Lithic::TokenMetadata::OrHash).void }
|
|
68
|
+
attr_writer :token_metadata
|
|
69
|
+
|
|
63
70
|
# The channel through which the tokenization was made.
|
|
64
71
|
sig do
|
|
65
72
|
returns(
|
|
@@ -88,18 +95,6 @@ module Lithic
|
|
|
88
95
|
sig { params(device: Lithic::Device::OrHash).void }
|
|
89
96
|
attr_writer :device
|
|
90
97
|
|
|
91
|
-
# Contains the metadata for the digital wallet being tokenized.
|
|
92
|
-
sig { returns(T.nilable(Lithic::DigitalWalletTokenMetadata)) }
|
|
93
|
-
attr_reader :digital_wallet_token_metadata
|
|
94
|
-
|
|
95
|
-
sig do
|
|
96
|
-
params(
|
|
97
|
-
digital_wallet_token_metadata:
|
|
98
|
-
Lithic::DigitalWalletTokenMetadata::OrHash
|
|
99
|
-
).void
|
|
100
|
-
end
|
|
101
|
-
attr_writer :digital_wallet_token_metadata
|
|
102
|
-
|
|
103
98
|
# Results from rules that were evaluated for this tokenization
|
|
104
99
|
sig { returns(T.nilable(T::Array[Lithic::TokenizationRuleResult])) }
|
|
105
100
|
attr_reader :rule_results
|
|
@@ -174,13 +169,12 @@ module Lithic
|
|
|
174
169
|
Lithic::TokenizationApprovalRequestWebhookEvent::EventType::OrSymbol,
|
|
175
170
|
issuer_decision:
|
|
176
171
|
Lithic::TokenizationApprovalRequestWebhookEvent::IssuerDecision::OrSymbol,
|
|
172
|
+
token_metadata: Lithic::TokenMetadata::OrHash,
|
|
177
173
|
tokenization_channel:
|
|
178
174
|
Lithic::TokenizationApprovalRequestWebhookEvent::TokenizationChannel::OrSymbol,
|
|
179
175
|
tokenization_token: String,
|
|
180
176
|
wallet_decisioning_info: Lithic::WalletDecisioningInfo::OrHash,
|
|
181
177
|
device: Lithic::Device::OrHash,
|
|
182
|
-
digital_wallet_token_metadata:
|
|
183
|
-
Lithic::DigitalWalletTokenMetadata::OrHash,
|
|
184
178
|
rule_results: T::Array[Lithic::TokenizationRuleResult::OrHash],
|
|
185
179
|
tokenization_decline_reasons:
|
|
186
180
|
T::Array[Lithic::TokenizationDeclineReason::OrSymbol],
|
|
@@ -204,14 +198,14 @@ module Lithic
|
|
|
204
198
|
# Whether Lithic decisioned on the token, and if so, what the decision was.
|
|
205
199
|
# APPROVED/VERIFICATION_REQUIRED/DENIED.
|
|
206
200
|
issuer_decision:,
|
|
201
|
+
# Contains the metadata for the digital wallet being tokenized.
|
|
202
|
+
token_metadata:,
|
|
207
203
|
# The channel through which the tokenization was made.
|
|
208
204
|
tokenization_channel:,
|
|
209
205
|
# Unique identifier for the digital wallet token attempt
|
|
210
206
|
tokenization_token:,
|
|
211
207
|
wallet_decisioning_info:,
|
|
212
208
|
device: nil,
|
|
213
|
-
# Contains the metadata for the digital wallet being tokenized.
|
|
214
|
-
digital_wallet_token_metadata: nil,
|
|
215
209
|
# Results from rules that were evaluated for this tokenization
|
|
216
210
|
rule_results: nil,
|
|
217
211
|
# List of reasons why the tokenization was declined
|
|
@@ -237,12 +231,12 @@ module Lithic
|
|
|
237
231
|
Lithic::TokenizationApprovalRequestWebhookEvent::EventType::TaggedSymbol,
|
|
238
232
|
issuer_decision:
|
|
239
233
|
Lithic::TokenizationApprovalRequestWebhookEvent::IssuerDecision::TaggedSymbol,
|
|
234
|
+
token_metadata: Lithic::TokenMetadata,
|
|
240
235
|
tokenization_channel:
|
|
241
236
|
Lithic::TokenizationApprovalRequestWebhookEvent::TokenizationChannel::TaggedSymbol,
|
|
242
237
|
tokenization_token: String,
|
|
243
238
|
wallet_decisioning_info: Lithic::WalletDecisioningInfo,
|
|
244
239
|
device: Lithic::Device,
|
|
245
|
-
digital_wallet_token_metadata: Lithic::DigitalWalletTokenMetadata,
|
|
246
240
|
rule_results: T::Array[Lithic::TokenizationRuleResult],
|
|
247
241
|
tokenization_decline_reasons:
|
|
248
242
|
T::Array[Lithic::TokenizationDeclineReason::TaggedSymbol],
|
|
@@ -23,6 +23,17 @@ module Lithic
|
|
|
23
23
|
sig { returns(Time) }
|
|
24
24
|
attr_accessor :created
|
|
25
25
|
|
|
26
|
+
# Contains the metadata for the digital wallet being tokenized.
|
|
27
|
+
sig { returns(Lithic::TokenMetadata) }
|
|
28
|
+
attr_reader :digital_wallet_token_metadata
|
|
29
|
+
|
|
30
|
+
sig do
|
|
31
|
+
params(
|
|
32
|
+
digital_wallet_token_metadata: Lithic::TokenMetadata::OrHash
|
|
33
|
+
).void
|
|
34
|
+
end
|
|
35
|
+
attr_writer :digital_wallet_token_metadata
|
|
36
|
+
|
|
26
37
|
# The name of this event
|
|
27
38
|
sig do
|
|
28
39
|
returns(
|
|
@@ -68,18 +79,6 @@ module Lithic
|
|
|
68
79
|
sig { params(device: Lithic::Device::OrHash).void }
|
|
69
80
|
attr_writer :device
|
|
70
81
|
|
|
71
|
-
# Contains the metadata for the digital wallet being tokenized.
|
|
72
|
-
sig { returns(T.nilable(Lithic::DigitalWalletTokenMetadata)) }
|
|
73
|
-
attr_reader :digital_wallet_token_metadata
|
|
74
|
-
|
|
75
|
-
sig do
|
|
76
|
-
params(
|
|
77
|
-
digital_wallet_token_metadata:
|
|
78
|
-
Lithic::DigitalWalletTokenMetadata::OrHash
|
|
79
|
-
).void
|
|
80
|
-
end
|
|
81
|
-
attr_writer :digital_wallet_token_metadata
|
|
82
|
-
|
|
83
82
|
# The source of the tokenization.
|
|
84
83
|
sig do
|
|
85
84
|
returns(
|
|
@@ -104,6 +103,7 @@ module Lithic
|
|
|
104
103
|
account_token: String,
|
|
105
104
|
card_token: String,
|
|
106
105
|
created: Time,
|
|
106
|
+
digital_wallet_token_metadata: Lithic::TokenMetadata::OrHash,
|
|
107
107
|
event_type:
|
|
108
108
|
Lithic::TokenizationDecisioningRequestWebhookEvent::EventType::OrSymbol,
|
|
109
109
|
issuer_decision:
|
|
@@ -113,8 +113,6 @@ module Lithic
|
|
|
113
113
|
tokenization_token: String,
|
|
114
114
|
wallet_decisioning_info: Lithic::WalletDecisioningInfo::OrHash,
|
|
115
115
|
device: Lithic::Device::OrHash,
|
|
116
|
-
digital_wallet_token_metadata:
|
|
117
|
-
Lithic::DigitalWalletTokenMetadata::OrHash,
|
|
118
116
|
tokenization_source:
|
|
119
117
|
Lithic::TokenizationDecisioningRequestWebhookEvent::TokenizationSource::OrSymbol
|
|
120
118
|
).returns(T.attached_class)
|
|
@@ -126,6 +124,8 @@ module Lithic
|
|
|
126
124
|
card_token:,
|
|
127
125
|
# Indicate when the request was received from Mastercard or Visa
|
|
128
126
|
created:,
|
|
127
|
+
# Contains the metadata for the digital wallet being tokenized.
|
|
128
|
+
digital_wallet_token_metadata:,
|
|
129
129
|
# The name of this event
|
|
130
130
|
event_type:,
|
|
131
131
|
# Whether Lithic decisioned on the token, and if so, what the decision was.
|
|
@@ -137,8 +137,6 @@ module Lithic
|
|
|
137
137
|
tokenization_token:,
|
|
138
138
|
wallet_decisioning_info:,
|
|
139
139
|
device: nil,
|
|
140
|
-
# Contains the metadata for the digital wallet being tokenized.
|
|
141
|
-
digital_wallet_token_metadata: nil,
|
|
142
140
|
# The source of the tokenization.
|
|
143
141
|
tokenization_source: nil
|
|
144
142
|
)
|
|
@@ -150,6 +148,7 @@ module Lithic
|
|
|
150
148
|
account_token: String,
|
|
151
149
|
card_token: String,
|
|
152
150
|
created: Time,
|
|
151
|
+
digital_wallet_token_metadata: Lithic::TokenMetadata,
|
|
153
152
|
event_type:
|
|
154
153
|
Lithic::TokenizationDecisioningRequestWebhookEvent::EventType::TaggedSymbol,
|
|
155
154
|
issuer_decision:
|
|
@@ -159,7 +158,6 @@ module Lithic
|
|
|
159
158
|
tokenization_token: String,
|
|
160
159
|
wallet_decisioning_info: Lithic::WalletDecisioningInfo,
|
|
161
160
|
device: Lithic::Device,
|
|
162
|
-
digital_wallet_token_metadata: Lithic::DigitalWalletTokenMetadata,
|
|
163
161
|
tokenization_source:
|
|
164
162
|
Lithic::TokenizationDecisioningRequestWebhookEvent::TokenizationSource::TaggedSymbol
|
|
165
163
|
}
|
data/rbi/lithic/models.rbi
CHANGED
|
@@ -30,6 +30,8 @@ module Lithic
|
|
|
30
30
|
|
|
31
31
|
AccountHolderRetrieveParams = Lithic::Models::AccountHolderRetrieveParams
|
|
32
32
|
|
|
33
|
+
AccountHolders = Lithic::Models::AccountHolders
|
|
34
|
+
|
|
33
35
|
AccountHolderSimulateEnrollmentDocumentReviewParams =
|
|
34
36
|
Lithic::Models::AccountHolderSimulateEnrollmentDocumentReviewParams
|
|
35
37
|
|
|
@@ -206,8 +208,6 @@ module Lithic
|
|
|
206
208
|
DigitalWalletTokenizationUpdatedWebhookEvent =
|
|
207
209
|
Lithic::Models::DigitalWalletTokenizationUpdatedWebhookEvent
|
|
208
210
|
|
|
209
|
-
DigitalWalletTokenMetadata = Lithic::Models::DigitalWalletTokenMetadata
|
|
210
|
-
|
|
211
211
|
Dispute = Lithic::Models::Dispute
|
|
212
212
|
|
|
213
213
|
DisputeCreateParams = Lithic::Models::DisputeCreateParams
|
|
@@ -561,6 +561,8 @@ module Lithic
|
|
|
561
561
|
TokenizationUpdatedWebhookEvent =
|
|
562
562
|
Lithic::Models::TokenizationUpdatedWebhookEvent
|
|
563
563
|
|
|
564
|
+
TokenMetadata = Lithic::Models::TokenMetadata
|
|
565
|
+
|
|
564
566
|
Transaction = Lithic::Models::Transaction
|
|
565
567
|
|
|
566
568
|
TransactionExpireAuthorizationParams =
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Lithic
|
|
4
|
+
module Resources
|
|
5
|
+
class AccountHolders
|
|
6
|
+
class Entities
|
|
7
|
+
# Create a new beneficial owner or replace the control person entity on an
|
|
8
|
+
# existing KYB account holder. This endpoint is only applicable for account
|
|
9
|
+
# holders enrolled through a KYB workflow with the Persona KYB provider. A new
|
|
10
|
+
# control person can only replace the existing one. A maximum of 4 beneficial
|
|
11
|
+
# owners can be associated with an account holder.
|
|
12
|
+
sig do
|
|
13
|
+
params(
|
|
14
|
+
account_holder_token: String,
|
|
15
|
+
address:
|
|
16
|
+
Lithic::AccountHolders::EntityCreateParams::Address::OrHash,
|
|
17
|
+
dob: String,
|
|
18
|
+
email: String,
|
|
19
|
+
first_name: String,
|
|
20
|
+
government_id: String,
|
|
21
|
+
last_name: String,
|
|
22
|
+
phone_number: String,
|
|
23
|
+
type: Lithic::AccountHolders::EntityCreateParams::Type::OrSymbol,
|
|
24
|
+
request_options: Lithic::RequestOptions::OrHash
|
|
25
|
+
).returns(Lithic::Models::AccountHolders::EntityCreateResponse)
|
|
26
|
+
end
|
|
27
|
+
def create(
|
|
28
|
+
# Globally unique identifier for the account holder.
|
|
29
|
+
account_holder_token,
|
|
30
|
+
# Individual's current address - PO boxes, UPS drops, and FedEx drops are not
|
|
31
|
+
# acceptable; APO/FPO are acceptable. Only USA addresses are currently supported.
|
|
32
|
+
address:,
|
|
33
|
+
# Individual's date of birth, as an RFC 3339 date.
|
|
34
|
+
dob:,
|
|
35
|
+
# Individual's email address. If utilizing Lithic for chargeback processing, this
|
|
36
|
+
# customer email address may be used to communicate dispute status and resolution.
|
|
37
|
+
email:,
|
|
38
|
+
# Individual's first name, as it appears on government-issued identity documents.
|
|
39
|
+
first_name:,
|
|
40
|
+
# Government-issued identification number (required for identity verification and
|
|
41
|
+
# compliance with banking regulations). Social Security Numbers (SSN) and
|
|
42
|
+
# Individual Taxpayer Identification Numbers (ITIN) are currently supported,
|
|
43
|
+
# entered as full nine-digits, with or without hyphens
|
|
44
|
+
government_id:,
|
|
45
|
+
# Individual's last name, as it appears on government-issued identity documents.
|
|
46
|
+
last_name:,
|
|
47
|
+
# Individual's phone number, entered in E.164 format.
|
|
48
|
+
phone_number:,
|
|
49
|
+
# The type of entity to create on the account holder
|
|
50
|
+
type:,
|
|
51
|
+
request_options: {}
|
|
52
|
+
)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# Deactivate a beneficial owner entity on an existing KYB account holder. Only
|
|
56
|
+
# beneficial owner entities can be deactivated.
|
|
57
|
+
sig do
|
|
58
|
+
params(
|
|
59
|
+
entity_token: String,
|
|
60
|
+
account_holder_token: String,
|
|
61
|
+
request_options: Lithic::RequestOptions::OrHash
|
|
62
|
+
).returns(Lithic::AccountHolders::AccountHolderEntity)
|
|
63
|
+
end
|
|
64
|
+
def delete(
|
|
65
|
+
# Globally unique identifier for the entity.
|
|
66
|
+
entity_token,
|
|
67
|
+
# Globally unique identifier for the account holder.
|
|
68
|
+
account_holder_token:,
|
|
69
|
+
request_options: {}
|
|
70
|
+
)
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# @api private
|
|
74
|
+
sig { params(client: Lithic::Client).returns(T.attached_class) }
|
|
75
|
+
def self.new(client:)
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
@@ -3,6 +3,9 @@
|
|
|
3
3
|
module Lithic
|
|
4
4
|
module Resources
|
|
5
5
|
class AccountHolders
|
|
6
|
+
sig { returns(Lithic::Resources::AccountHolders::Entities) }
|
|
7
|
+
attr_reader :entities
|
|
8
|
+
|
|
6
9
|
# Create an account holder and initiate the appropriate onboarding workflow.
|
|
7
10
|
# Account holders and accounts have a 1:1 relationship. When an account holder is
|
|
8
11
|
# successfully created an associated account is also created. All calls to this
|
|
@@ -39,7 +39,8 @@ module Lithic
|
|
|
39
39
|
# several event streams, the effective one is defined by the separate
|
|
40
40
|
# `event_stream` field.
|
|
41
41
|
#
|
|
42
|
-
# - `CONDITIONAL_BLOCK`:
|
|
42
|
+
# - `CONDITIONAL_BLOCK`: Deprecated. Use `CONDITIONAL_ACTION` instead.
|
|
43
|
+
# AUTHORIZATION event stream.
|
|
43
44
|
# - `VELOCITY_LIMIT`: AUTHORIZATION event stream.
|
|
44
45
|
# - `MERCHANT_LOCK`: AUTHORIZATION event stream.
|
|
45
46
|
# - `CONDITIONAL_ACTION`: AUTHORIZATION, THREE_DS_AUTHENTICATION, TOKENIZATION,
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Lithic
|
|
4
|
+
module Resources
|
|
5
|
+
class FinancialAccounts
|
|
6
|
+
class InterestTierSchedule
|
|
7
|
+
# Create a new interest tier schedule entry for a supported financial account
|
|
8
|
+
sig do
|
|
9
|
+
params(
|
|
10
|
+
financial_account_token: String,
|
|
11
|
+
credit_product_token: String,
|
|
12
|
+
effective_date: Date,
|
|
13
|
+
tier_name: String,
|
|
14
|
+
tier_rates: T.anything,
|
|
15
|
+
request_options: Lithic::RequestOptions::OrHash
|
|
16
|
+
).returns(
|
|
17
|
+
Lithic::FinancialAccounts::FinancialAccountsInterestTierSchedule
|
|
18
|
+
)
|
|
19
|
+
end
|
|
20
|
+
def create(
|
|
21
|
+
# Globally unique identifier for financial account
|
|
22
|
+
financial_account_token,
|
|
23
|
+
# Globally unique identifier for a credit product
|
|
24
|
+
credit_product_token:,
|
|
25
|
+
# Date the tier should be effective in YYYY-MM-DD format
|
|
26
|
+
effective_date:,
|
|
27
|
+
# Name of a tier contained in the credit product. Mutually exclusive with
|
|
28
|
+
# tier_rates
|
|
29
|
+
tier_name: nil,
|
|
30
|
+
# Custom rates per category. Mutually exclusive with tier_name
|
|
31
|
+
tier_rates: nil,
|
|
32
|
+
request_options: {}
|
|
33
|
+
)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Get a specific interest tier schedule by effective date
|
|
37
|
+
sig do
|
|
38
|
+
params(
|
|
39
|
+
effective_date: Date,
|
|
40
|
+
financial_account_token: String,
|
|
41
|
+
request_options: Lithic::RequestOptions::OrHash
|
|
42
|
+
).returns(
|
|
43
|
+
Lithic::FinancialAccounts::FinancialAccountsInterestTierSchedule
|
|
44
|
+
)
|
|
45
|
+
end
|
|
46
|
+
def retrieve(
|
|
47
|
+
# Effective date in ISO format (YYYY-MM-DD)
|
|
48
|
+
effective_date,
|
|
49
|
+
# Globally unique identifier for financial account
|
|
50
|
+
financial_account_token:,
|
|
51
|
+
request_options: {}
|
|
52
|
+
)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# Update an existing interest tier schedule
|
|
56
|
+
sig do
|
|
57
|
+
params(
|
|
58
|
+
effective_date: Date,
|
|
59
|
+
financial_account_token: String,
|
|
60
|
+
tier_name: String,
|
|
61
|
+
tier_rates: T.anything,
|
|
62
|
+
request_options: Lithic::RequestOptions::OrHash
|
|
63
|
+
).returns(
|
|
64
|
+
Lithic::FinancialAccounts::FinancialAccountsInterestTierSchedule
|
|
65
|
+
)
|
|
66
|
+
end
|
|
67
|
+
def update(
|
|
68
|
+
# Path param: Effective date in ISO format (YYYY-MM-DD)
|
|
69
|
+
effective_date,
|
|
70
|
+
# Path param: Globally unique identifier for financial account
|
|
71
|
+
financial_account_token:,
|
|
72
|
+
# Body param: Name of a tier contained in the credit product. Mutually exclusive
|
|
73
|
+
# with tier_rates
|
|
74
|
+
tier_name: nil,
|
|
75
|
+
# Body param: Custom rates per category. Mutually exclusive with tier_name
|
|
76
|
+
tier_rates: nil,
|
|
77
|
+
request_options: {}
|
|
78
|
+
)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# List interest tier schedules for a financial account with optional date
|
|
82
|
+
# filtering.
|
|
83
|
+
#
|
|
84
|
+
# If no date parameters are provided, returns all tier schedules. If date
|
|
85
|
+
# parameters are provided, uses filtering to return matching schedules (max 100).
|
|
86
|
+
#
|
|
87
|
+
# - for_date: Returns exact match (takes precedence over other dates)
|
|
88
|
+
# - before_date: Returns schedules with effective_date <= before_date
|
|
89
|
+
# - after_date: Returns schedules with effective_date >= after_date
|
|
90
|
+
# - Both before_date and after_date: Returns schedules in range
|
|
91
|
+
sig do
|
|
92
|
+
params(
|
|
93
|
+
financial_account_token: String,
|
|
94
|
+
after_date: Date,
|
|
95
|
+
before_date: Date,
|
|
96
|
+
for_date: Date,
|
|
97
|
+
request_options: Lithic::RequestOptions::OrHash
|
|
98
|
+
).returns(
|
|
99
|
+
Lithic::Internal::SinglePage[
|
|
100
|
+
Lithic::FinancialAccounts::FinancialAccountsInterestTierSchedule
|
|
101
|
+
]
|
|
102
|
+
)
|
|
103
|
+
end
|
|
104
|
+
def list(
|
|
105
|
+
# Globally unique identifier for financial account
|
|
106
|
+
financial_account_token,
|
|
107
|
+
# Return schedules with effective_date >= after_date (ISO format YYYY-MM-DD)
|
|
108
|
+
after_date: nil,
|
|
109
|
+
# Return schedules with effective_date <= before_date (ISO format YYYY-MM-DD)
|
|
110
|
+
before_date: nil,
|
|
111
|
+
# Return schedule with effective_date == for_date (ISO format YYYY-MM-DD)
|
|
112
|
+
for_date: nil,
|
|
113
|
+
request_options: {}
|
|
114
|
+
)
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
# Delete an interest tier schedule entry.
|
|
118
|
+
#
|
|
119
|
+
# Returns:
|
|
120
|
+
#
|
|
121
|
+
# - 400 Bad Request: Invalid effective_date format OR attempting to delete the
|
|
122
|
+
# earliest tier schedule entry for a non-PENDING account
|
|
123
|
+
# - 404 Not Found: Tier schedule entry not found for the given effective_date OR
|
|
124
|
+
# ledger account not found
|
|
125
|
+
#
|
|
126
|
+
# Note: PENDING accounts can delete the earliest tier schedule entry (account
|
|
127
|
+
# hasn't opened yet). Active/non-PENDING accounts cannot delete the earliest entry
|
|
128
|
+
# to prevent orphaning the account.
|
|
129
|
+
#
|
|
130
|
+
# If the deleted tier schedule has a past effective_date and the account is
|
|
131
|
+
# ACTIVE, the loan tape rebuild configuration will be updated to trigger rebuilds
|
|
132
|
+
# from that date.
|
|
133
|
+
sig do
|
|
134
|
+
params(
|
|
135
|
+
effective_date: Date,
|
|
136
|
+
financial_account_token: String,
|
|
137
|
+
request_options: Lithic::RequestOptions::OrHash
|
|
138
|
+
).void
|
|
139
|
+
end
|
|
140
|
+
def delete(
|
|
141
|
+
# Effective date in ISO format (YYYY-MM-DD)
|
|
142
|
+
effective_date,
|
|
143
|
+
# Globally unique identifier for financial account
|
|
144
|
+
financial_account_token:,
|
|
145
|
+
request_options: {}
|
|
146
|
+
)
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
# @api private
|
|
150
|
+
sig { params(client: Lithic::Client).returns(T.attached_class) }
|
|
151
|
+
def self.new(client:)
|
|
152
|
+
end
|
|
153
|
+
end
|
|
154
|
+
end
|
|
155
|
+
end
|
|
156
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Lithic
|
|
4
|
+
module Resources
|
|
5
|
+
class FinancialAccounts
|
|
6
|
+
class LoanTapeConfiguration
|
|
7
|
+
# Get the loan tape configuration for a given financial account.
|
|
8
|
+
sig do
|
|
9
|
+
params(
|
|
10
|
+
financial_account_token: String,
|
|
11
|
+
request_options: Lithic::RequestOptions::OrHash
|
|
12
|
+
).returns(
|
|
13
|
+
Lithic::FinancialAccounts::FinancialAccountsLoanTapeConfiguration
|
|
14
|
+
)
|
|
15
|
+
end
|
|
16
|
+
def retrieve(
|
|
17
|
+
# Globally unique identifier for financial account.
|
|
18
|
+
financial_account_token,
|
|
19
|
+
request_options: {}
|
|
20
|
+
)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# @api private
|
|
24
|
+
sig { params(client: Lithic::Client).returns(T.attached_class) }
|
|
25
|
+
def self.new(client:)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -20,6 +20,16 @@ module Lithic
|
|
|
20
20
|
sig { returns(Lithic::Resources::FinancialAccounts::LoanTapes) }
|
|
21
21
|
attr_reader :loan_tapes
|
|
22
22
|
|
|
23
|
+
sig do
|
|
24
|
+
returns(Lithic::Resources::FinancialAccounts::LoanTapeConfiguration)
|
|
25
|
+
end
|
|
26
|
+
attr_reader :loan_tape_configuration
|
|
27
|
+
|
|
28
|
+
sig do
|
|
29
|
+
returns(Lithic::Resources::FinancialAccounts::InterestTierSchedule)
|
|
30
|
+
end
|
|
31
|
+
attr_reader :interest_tier_schedule
|
|
32
|
+
|
|
23
33
|
# Create a new financial account
|
|
24
34
|
sig do
|
|
25
35
|
params(
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
module Lithic
|
|
2
|
+
module Models
|
|
3
|
+
class AccountHolderEntity = AccountHolders::AccountHolderEntity
|
|
4
|
+
|
|
5
|
+
module AccountHolders
|
|
6
|
+
type account_holder_entity =
|
|
7
|
+
{
|
|
8
|
+
token: String,
|
|
9
|
+
account_holder_token: String,
|
|
10
|
+
address: Lithic::AccountHolders::AccountHolderEntity::Address,
|
|
11
|
+
dob: String?,
|
|
12
|
+
email: String?,
|
|
13
|
+
first_name: String?,
|
|
14
|
+
last_name: String?,
|
|
15
|
+
phone_number: String?,
|
|
16
|
+
status: Lithic::Models::AccountHolders::AccountHolderEntity::status,
|
|
17
|
+
type: Lithic::Models::AccountHolders::AccountHolderEntity::type_
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
class AccountHolderEntity < Lithic::Internal::Type::BaseModel
|
|
21
|
+
attr_accessor token: String
|
|
22
|
+
|
|
23
|
+
attr_accessor account_holder_token: String
|
|
24
|
+
|
|
25
|
+
attr_accessor address: Lithic::AccountHolders::AccountHolderEntity::Address
|
|
26
|
+
|
|
27
|
+
attr_accessor dob: String?
|
|
28
|
+
|
|
29
|
+
attr_accessor email: String?
|
|
30
|
+
|
|
31
|
+
attr_accessor first_name: String?
|
|
32
|
+
|
|
33
|
+
attr_accessor last_name: String?
|
|
34
|
+
|
|
35
|
+
attr_accessor phone_number: String?
|
|
36
|
+
|
|
37
|
+
attr_accessor status: Lithic::Models::AccountHolders::AccountHolderEntity::status
|
|
38
|
+
|
|
39
|
+
attr_accessor type: Lithic::Models::AccountHolders::AccountHolderEntity::type_
|
|
40
|
+
|
|
41
|
+
def initialize: (
|
|
42
|
+
token: String,
|
|
43
|
+
account_holder_token: String,
|
|
44
|
+
address: Lithic::AccountHolders::AccountHolderEntity::Address,
|
|
45
|
+
dob: String?,
|
|
46
|
+
email: String?,
|
|
47
|
+
first_name: String?,
|
|
48
|
+
last_name: String?,
|
|
49
|
+
phone_number: String?,
|
|
50
|
+
status: Lithic::Models::AccountHolders::AccountHolderEntity::status,
|
|
51
|
+
type: Lithic::Models::AccountHolders::AccountHolderEntity::type_
|
|
52
|
+
) -> void
|
|
53
|
+
|
|
54
|
+
def to_hash: -> {
|
|
55
|
+
token: String,
|
|
56
|
+
account_holder_token: String,
|
|
57
|
+
address: Lithic::AccountHolders::AccountHolderEntity::Address,
|
|
58
|
+
dob: String?,
|
|
59
|
+
email: String?,
|
|
60
|
+
first_name: String?,
|
|
61
|
+
last_name: String?,
|
|
62
|
+
phone_number: String?,
|
|
63
|
+
status: Lithic::Models::AccountHolders::AccountHolderEntity::status,
|
|
64
|
+
type: Lithic::Models::AccountHolders::AccountHolderEntity::type_
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
type address =
|
|
68
|
+
{
|
|
69
|
+
:address1 => String,
|
|
70
|
+
city: String,
|
|
71
|
+
country: String,
|
|
72
|
+
postal_code: String,
|
|
73
|
+
state: String,
|
|
74
|
+
:address2 => String
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
class Address < Lithic::Internal::Type::BaseModel
|
|
78
|
+
attr_accessor address1: String
|
|
79
|
+
|
|
80
|
+
attr_accessor city: String
|
|
81
|
+
|
|
82
|
+
attr_accessor country: String
|
|
83
|
+
|
|
84
|
+
attr_accessor postal_code: String
|
|
85
|
+
|
|
86
|
+
attr_accessor state: String
|
|
87
|
+
|
|
88
|
+
attr_reader address2: String?
|
|
89
|
+
|
|
90
|
+
def address2=: (String) -> String
|
|
91
|
+
|
|
92
|
+
def initialize: (
|
|
93
|
+
address1: String,
|
|
94
|
+
city: String,
|
|
95
|
+
country: String,
|
|
96
|
+
postal_code: String,
|
|
97
|
+
state: String,
|
|
98
|
+
?address2: String
|
|
99
|
+
) -> void
|
|
100
|
+
|
|
101
|
+
def to_hash: -> {
|
|
102
|
+
:address1 => String,
|
|
103
|
+
city: String,
|
|
104
|
+
country: String,
|
|
105
|
+
postal_code: String,
|
|
106
|
+
state: String,
|
|
107
|
+
:address2 => String
|
|
108
|
+
}
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
type status = :ACCEPTED | :INACTIVE | :PENDING_REVIEW | :REJECTED
|
|
112
|
+
|
|
113
|
+
module Status
|
|
114
|
+
extend Lithic::Internal::Type::Enum
|
|
115
|
+
|
|
116
|
+
ACCEPTED: :ACCEPTED
|
|
117
|
+
INACTIVE: :INACTIVE
|
|
118
|
+
PENDING_REVIEW: :PENDING_REVIEW
|
|
119
|
+
REJECTED: :REJECTED
|
|
120
|
+
|
|
121
|
+
def self?.values: -> ::Array[Lithic::Models::AccountHolders::AccountHolderEntity::status]
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
type type_ = :BENEFICIAL_OWNER_INDIVIDUAL | :CONTROL_PERSON
|
|
125
|
+
|
|
126
|
+
module Type
|
|
127
|
+
extend Lithic::Internal::Type::Enum
|
|
128
|
+
|
|
129
|
+
BENEFICIAL_OWNER_INDIVIDUAL: :BENEFICIAL_OWNER_INDIVIDUAL
|
|
130
|
+
CONTROL_PERSON: :CONTROL_PERSON
|
|
131
|
+
|
|
132
|
+
def self?.values: -> ::Array[Lithic::Models::AccountHolders::AccountHolderEntity::type_]
|
|
133
|
+
end
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
end
|