lithic 0.20.0 → 0.22.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.
Files changed (266) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +44 -0
  3. data/README.md +1 -10
  4. data/lib/lithic/internal/type/union.rb +21 -7
  5. data/lib/lithic/models/account_activity_list_params.rb +1 -0
  6. data/lib/lithic/models/account_activity_list_response.rb +1 -0
  7. data/lib/lithic/models/account_activity_retrieve_transaction_response.rb +1 -0
  8. data/lib/lithic/models/account_holder_create_params.rb +4 -2
  9. data/lib/lithic/models/account_holder_simulate_enrollment_review_response.rb +120 -66
  10. data/lib/lithic/models/account_holder_update_params.rb +6 -3
  11. data/lib/lithic/models/account_holder_update_response.rb +156 -86
  12. data/lib/lithic/models/account_holder_updated_webhook_event.rb +120 -66
  13. data/lib/lithic/models/account_holders/account_holder_entity.rb +35 -19
  14. data/lib/lithic/models/account_holders/entity_create_params.rb +39 -21
  15. data/lib/lithic/models/address.rb +33 -19
  16. data/lib/lithic/models/address_update.rb +27 -11
  17. data/lib/lithic/models/auth_rules/auth_rule.rb +60 -27
  18. data/lib/lithic/models/auth_rules/auth_rule_condition.rb +189 -6
  19. data/lib/lithic/models/auth_rules/auth_rule_entities.rb +47 -0
  20. data/lib/lithic/models/auth_rules/auth_rule_entities_response.rb +31 -0
  21. data/lib/lithic/models/auth_rules/auth_rule_entity.rb +150 -0
  22. data/lib/lithic/models/auth_rules/auth_rule_version.rb +3 -6
  23. data/lib/lithic/models/auth_rules/conditional_3ds_action_parameters.rb +33 -6
  24. data/lib/lithic/models/auth_rules/conditional_attribute.rb +101 -5
  25. data/lib/lithic/models/auth_rules/conditional_authorization_action_parameters.rb +3 -439
  26. data/lib/lithic/models/auth_rules/conditional_authorization_adjustment_parameters.rb +7 -0
  27. data/lib/lithic/models/auth_rules/merchant_lock_parameters.rb +11 -1
  28. data/lib/lithic/models/auth_rules/report_stats.rb +1 -0
  29. data/lib/lithic/models/auth_rules/v2_create_params.rb +218 -45
  30. data/lib/lithic/models/auth_rules/v2_draft_params.rb +3 -6
  31. data/lib/lithic/models/auth_rules/v2_list_params.rb +5 -3
  32. data/lib/lithic/models/auth_rules/v2_list_results_response.rb +1 -0
  33. data/lib/lithic/models/auth_rules/v2_update_entities_params.rb +39 -0
  34. data/lib/lithic/models/auth_rules/v2_update_params.rb +133 -12
  35. data/lib/lithic/models/blockchain_recipient_retrieve_params.rb +20 -0
  36. data/lib/lithic/models/card_authorization.rb +11 -1
  37. data/lib/lithic/models/card_create_params.rb +11 -1
  38. data/lib/lithic/models/card_pin_updated_webhook_event.rb +87 -0
  39. data/lib/lithic/models/card_update_params.rb +12 -1
  40. data/lib/lithic/models/event.rb +5 -0
  41. data/lib/lithic/models/event_list_params.rb +3 -0
  42. data/lib/lithic/models/event_subscription.rb +3 -0
  43. data/lib/lithic/models/events/subscription_create_params.rb +3 -0
  44. data/lib/lithic/models/events/subscription_send_simulated_example_params.rb +1 -0
  45. data/lib/lithic/models/events/subscription_update_params.rb +3 -0
  46. data/lib/lithic/models/external_payment.rb +6 -0
  47. data/lib/lithic/models/external_payment_create_params.rb +1 -0
  48. data/lib/lithic/models/external_payment_list_params.rb +1 -0
  49. data/lib/lithic/models/financial_accounts/installment_plan.rb +311 -0
  50. data/lib/lithic/models/financial_accounts/installment_plan_list_params.rb +75 -0
  51. data/lib/lithic/models/financial_accounts/installment_plan_retrieve_params.rb +32 -0
  52. data/lib/lithic/models/financial_accounts/installment_plans/installment_plan_statement.rb +279 -0
  53. data/lib/lithic/models/financial_accounts/installment_plans/statement_list_params.rb +106 -0
  54. data/lib/lithic/models/financial_accounts/installment_plans/statement_retrieve_params.rb +42 -0
  55. data/lib/lithic/models/financial_accounts/loan_tape.rb +62 -1
  56. data/lib/lithic/models/financial_accounts/open_to_buy.rb +36 -0
  57. data/lib/lithic/models/financial_accounts/open_to_buy_retrieve_params.rb +22 -0
  58. data/lib/lithic/models/financial_accounts/open_to_buy_summary.rb +46 -0
  59. data/lib/lithic/models/financial_accounts/statements/statement_line_items.rb +10 -0
  60. data/lib/lithic/models/financial_accounts/transaction_category_balances.rb +34 -0
  61. data/lib/lithic/models/financial_event.rb +9 -0
  62. data/lib/lithic/models/kyb.rb +4 -2
  63. data/lib/lithic/models/kyb_business_entity.rb +35 -19
  64. data/lib/lithic/models/kyc.rb +2 -1
  65. data/lib/lithic/models/management_operation_create_params.rb +4 -0
  66. data/lib/lithic/models/management_operation_transaction.rb +4 -0
  67. data/lib/lithic/models/non_pci_card.rb +11 -1
  68. data/lib/lithic/models/parsed_webhook_event.rb +123 -67
  69. data/lib/lithic/models/payment.rb +3 -1
  70. data/lib/lithic/models/payment_create_stablecoin_params.rb +99 -0
  71. data/lib/lithic/models/payment_create_stablecoin_response.rb +19 -0
  72. data/lib/lithic/models/payment_list_params.rb +1 -0
  73. data/lib/lithic/models/payment_retry_params.rb +28 -1
  74. data/lib/lithic/models/payment_simulate_action_params.rb +1 -0
  75. data/lib/lithic/models/three_ds_authentication.rb +126 -1
  76. data/lib/lithic/models/transaction.rb +4 -1
  77. data/lib/lithic/models/transaction_simulate_authorization_params.rb +28 -4
  78. data/lib/lithic/models/transaction_simulate_credit_authorization_advice_params.rb +11 -1
  79. data/lib/lithic/models/transaction_simulate_return_params.rb +24 -1
  80. data/lib/lithic/models.rb +6 -0
  81. data/lib/lithic/resources/auth_rules/v2/backtests.rb +8 -8
  82. data/lib/lithic/resources/auth_rules/v2.rb +44 -8
  83. data/lib/lithic/resources/blockchain_recipients.rb +23 -0
  84. data/lib/lithic/resources/cards.rb +10 -4
  85. data/lib/lithic/resources/financial_accounts/installment_plans/statements.rb +107 -0
  86. data/lib/lithic/resources/financial_accounts/installment_plans.rb +86 -0
  87. data/lib/lithic/resources/financial_accounts/open_to_buy.rb +48 -0
  88. data/lib/lithic/resources/financial_accounts.rb +8 -0
  89. data/lib/lithic/resources/payments.rb +71 -3
  90. data/lib/lithic/resources/transactions.rb +17 -4
  91. data/lib/lithic/resources/webhooks.rb +18 -0
  92. data/lib/lithic/version.rb +1 -1
  93. data/lib/lithic.rb +21 -1
  94. data/rbi/lithic/models/account_activity_list_params.rbi +5 -0
  95. data/rbi/lithic/models/account_activity_list_response.rbi +5 -0
  96. data/rbi/lithic/models/account_activity_retrieve_transaction_response.rbi +5 -0
  97. data/rbi/lithic/models/account_holder_create_params.rbi +8 -4
  98. data/rbi/lithic/models/account_holder_simulate_enrollment_review_response.rbi +195 -90
  99. data/rbi/lithic/models/account_holder_update_params.rbi +12 -6
  100. data/rbi/lithic/models/account_holder_update_response.rbi +254 -117
  101. data/rbi/lithic/models/account_holder_updated_webhook_event.rbi +195 -90
  102. data/rbi/lithic/models/account_holders/account_holder_entity.rbi +59 -27
  103. data/rbi/lithic/models/account_holders/entity_create_params.rbi +65 -30
  104. data/rbi/lithic/models/address.rbi +57 -29
  105. data/rbi/lithic/models/address_update.rbi +50 -24
  106. data/rbi/lithic/models/auth_rules/auth_rule.rbi +60 -19
  107. data/rbi/lithic/models/auth_rules/auth_rule_condition.rbi +442 -13
  108. data/rbi/lithic/models/auth_rules/auth_rule_entities.rbi +163 -0
  109. data/rbi/lithic/models/auth_rules/auth_rule_entities_response.rbi +72 -0
  110. data/rbi/lithic/models/auth_rules/auth_rule_entity.rbi +199 -0
  111. data/rbi/lithic/models/auth_rules/auth_rule_version.rbi +0 -2
  112. data/rbi/lithic/models/auth_rules/conditional_3ds_action_parameters.rbi +67 -9
  113. data/rbi/lithic/models/auth_rules/conditional_attribute.rbi +193 -5
  114. data/rbi/lithic/models/auth_rules/conditional_authorization_action_parameters.rbi +3 -939
  115. data/rbi/lithic/models/auth_rules/conditional_authorization_adjustment_parameters.rbi +14 -0
  116. data/rbi/lithic/models/auth_rules/merchant_lock_parameters.rbi +14 -3
  117. data/rbi/lithic/models/auth_rules/report_stats.rbi +5 -0
  118. data/rbi/lithic/models/auth_rules/v2_create_params.rbi +358 -50
  119. data/rbi/lithic/models/auth_rules/v2_draft_params.rbi +0 -4
  120. data/rbi/lithic/models/auth_rules/v2_list_params.rbi +6 -3
  121. data/rbi/lithic/models/auth_rules/v2_list_results_response.rbi +5 -0
  122. data/rbi/lithic/models/auth_rules/v2_update_entities_params.rbi +68 -0
  123. data/rbi/lithic/models/auth_rules/v2_update_params.rbi +198 -5
  124. data/rbi/lithic/models/blockchain_recipient_retrieve_params.rbi +41 -0
  125. data/rbi/lithic/models/card_authorization.rbi +12 -0
  126. data/rbi/lithic/models/card_create_params.rbi +15 -0
  127. data/rbi/lithic/models/card_pin_updated_webhook_event.rbi +166 -0
  128. data/rbi/lithic/models/card_update_params.rbi +17 -0
  129. data/rbi/lithic/models/event.rbi +8 -0
  130. data/rbi/lithic/models/event_list_params.rbi +7 -0
  131. data/rbi/lithic/models/event_subscription.rbi +7 -0
  132. data/rbi/lithic/models/events/subscription_create_params.rbi +7 -0
  133. data/rbi/lithic/models/events/subscription_send_simulated_example_params.rbi +5 -0
  134. data/rbi/lithic/models/events/subscription_update_params.rbi +7 -0
  135. data/rbi/lithic/models/external_payment.rbi +30 -0
  136. data/rbi/lithic/models/external_payment_create_params.rbi +5 -0
  137. data/rbi/lithic/models/external_payment_list_params.rbi +5 -0
  138. data/rbi/lithic/models/financial_accounts/installment_plan.rbi +528 -0
  139. data/rbi/lithic/models/financial_accounts/installment_plan_list_params.rbi +155 -0
  140. data/rbi/lithic/models/financial_accounts/installment_plan_retrieve_params.rbi +56 -0
  141. data/rbi/lithic/models/financial_accounts/installment_plans/installment_plan_statement.rbi +452 -0
  142. data/rbi/lithic/models/financial_accounts/installment_plans/statement_list_params.rbi +191 -0
  143. data/rbi/lithic/models/financial_accounts/installment_plans/statement_retrieve_params.rbi +66 -0
  144. data/rbi/lithic/models/financial_accounts/loan_tape.rbi +119 -0
  145. data/rbi/lithic/models/financial_accounts/open_to_buy.rbi +64 -0
  146. data/rbi/lithic/models/financial_accounts/open_to_buy_retrieve_params.rbi +43 -0
  147. data/rbi/lithic/models/financial_accounts/open_to_buy_summary.rbi +73 -0
  148. data/rbi/lithic/models/financial_accounts/statements/statement_line_items.rbi +50 -0
  149. data/rbi/lithic/models/financial_accounts/transaction_category_balances.rbi +81 -0
  150. data/rbi/lithic/models/financial_event.rbi +35 -0
  151. data/rbi/lithic/models/kyb.rbi +8 -4
  152. data/rbi/lithic/models/kyb_business_entity.rbi +59 -27
  153. data/rbi/lithic/models/kyc.rbi +4 -2
  154. data/rbi/lithic/models/management_operation_create_params.rbi +20 -0
  155. data/rbi/lithic/models/management_operation_transaction.rbi +20 -0
  156. data/rbi/lithic/models/non_pci_card.rbi +12 -0
  157. data/rbi/lithic/models/parsed_webhook_event.rbi +196 -90
  158. data/rbi/lithic/models/payment.rbi +6 -2
  159. data/rbi/lithic/models/payment_create_stablecoin_params.rbi +162 -0
  160. data/rbi/lithic/models/payment_create_stablecoin_response.rbi +34 -0
  161. data/rbi/lithic/models/payment_list_params.rbi +2 -0
  162. data/rbi/lithic/models/payment_retry_params.rbi +47 -2
  163. data/rbi/lithic/models/payment_simulate_action_params.rbi +5 -0
  164. data/rbi/lithic/models/three_ds_authentication.rbi +292 -0
  165. data/rbi/lithic/models/transaction.rbi +14 -2
  166. data/rbi/lithic/models/transaction_simulate_authorization_params.rbi +42 -4
  167. data/rbi/lithic/models/transaction_simulate_credit_authorization_advice_params.rbi +15 -0
  168. data/rbi/lithic/models/transaction_simulate_return_params.rbi +30 -0
  169. data/rbi/lithic/models.rbi +7 -0
  170. data/rbi/lithic/resources/account_holders/entities.rbi +2 -1
  171. data/rbi/lithic/resources/auth_rules/v2/backtests.rbi +8 -8
  172. data/rbi/lithic/resources/auth_rules/v2.rbi +43 -8
  173. data/rbi/lithic/resources/blockchain_recipients.rbi +14 -0
  174. data/rbi/lithic/resources/cards.rbi +15 -2
  175. data/rbi/lithic/resources/financial_accounts/installment_plans/statements.rbi +86 -0
  176. data/rbi/lithic/resources/financial_accounts/installment_plans.rbi +73 -0
  177. data/rbi/lithic/resources/financial_accounts/open_to_buy.rbi +40 -0
  178. data/rbi/lithic/resources/financial_accounts.rbi +6 -0
  179. data/rbi/lithic/resources/payments.rbi +68 -2
  180. data/rbi/lithic/resources/transactions.rbi +31 -2
  181. data/rbi/lithic/resources/webhooks.rbi +1 -0
  182. data/sig/lithic/models/account_activity_list_params.rbs +2 -0
  183. data/sig/lithic/models/account_activity_list_response.rbs +2 -0
  184. data/sig/lithic/models/account_activity_retrieve_transaction_response.rbs +2 -0
  185. data/sig/lithic/models/account_holder_simulate_enrollment_review_response.rbs +39 -39
  186. data/sig/lithic/models/account_holder_update_response.rbs +52 -52
  187. data/sig/lithic/models/account_holder_updated_webhook_event.rbs +39 -39
  188. data/sig/lithic/models/account_holders/account_holder_entity.rbs +13 -13
  189. data/sig/lithic/models/account_holders/entity_create_params.rbs +13 -13
  190. data/sig/lithic/models/address.rbs +13 -13
  191. data/sig/lithic/models/address_update.rbs +8 -12
  192. data/sig/lithic/models/auth_rules/auth_rule.rbs +10 -7
  193. data/sig/lithic/models/auth_rules/auth_rule_condition.rbs +89 -3
  194. data/sig/lithic/models/auth_rules/auth_rule_entities.rbs +37 -0
  195. data/sig/lithic/models/auth_rules/auth_rule_entities_response.rbs +29 -0
  196. data/sig/lithic/models/auth_rules/auth_rule_entity.rbs +80 -0
  197. data/sig/lithic/models/auth_rules/auth_rule_version.rbs +1 -2
  198. data/sig/lithic/models/auth_rules/conditional_3ds_action_parameters.rbs +10 -0
  199. data/sig/lithic/models/auth_rules/conditional_attribute.rbs +46 -0
  200. data/sig/lithic/models/auth_rules/conditional_authorization_action_parameters.rbs +4 -204
  201. data/sig/lithic/models/auth_rules/conditional_authorization_adjustment_parameters.rbs +2 -0
  202. data/sig/lithic/models/auth_rules/merchant_lock_parameters.rbs +10 -3
  203. data/sig/lithic/models/auth_rules/report_stats.rbs +2 -0
  204. data/sig/lithic/models/auth_rules/v2_create_params.rbs +92 -16
  205. data/sig/lithic/models/auth_rules/v2_draft_params.rbs +1 -2
  206. data/sig/lithic/models/auth_rules/v2_list_results_response.rbs +2 -0
  207. data/sig/lithic/models/auth_rules/v2_update_entities_params.rbs +46 -0
  208. data/sig/lithic/models/auth_rules/v2_update_params.rbs +47 -1
  209. data/sig/lithic/models/blockchain_recipient_retrieve_params.rbs +24 -0
  210. data/sig/lithic/models/card_authorization.rbs +5 -0
  211. data/sig/lithic/models/card_create_params.rbs +7 -0
  212. data/sig/lithic/models/card_pin_updated_webhook_event.rbs +60 -0
  213. data/sig/lithic/models/card_update_params.rbs +8 -1
  214. data/sig/lithic/models/event.rbs +2 -0
  215. data/sig/lithic/models/event_list_params.rbs +2 -0
  216. data/sig/lithic/models/event_subscription.rbs +2 -0
  217. data/sig/lithic/models/events/subscription_create_params.rbs +2 -0
  218. data/sig/lithic/models/events/subscription_send_simulated_example_params.rbs +2 -0
  219. data/sig/lithic/models/events/subscription_update_params.rbs +2 -0
  220. data/sig/lithic/models/external_payment.rbs +12 -0
  221. data/sig/lithic/models/external_payment_create_params.rbs +2 -0
  222. data/sig/lithic/models/external_payment_list_params.rbs +2 -0
  223. data/sig/lithic/models/financial_accounts/installment_plan.rbs +227 -0
  224. data/sig/lithic/models/financial_accounts/installment_plan_list_params.rbs +69 -0
  225. data/sig/lithic/models/financial_accounts/installment_plan_retrieve_params.rbs +30 -0
  226. data/sig/lithic/models/financial_accounts/installment_plans/installment_plan_statement.rbs +191 -0
  227. data/sig/lithic/models/financial_accounts/installment_plans/statement_list_params.rbs +90 -0
  228. data/sig/lithic/models/financial_accounts/installment_plans/statement_retrieve_params.rbs +40 -0
  229. data/sig/lithic/models/financial_accounts/loan_tape.rbs +47 -0
  230. data/sig/lithic/models/financial_accounts/open_to_buy.rbs +27 -0
  231. data/sig/lithic/models/financial_accounts/open_to_buy_retrieve_params.rbs +26 -0
  232. data/sig/lithic/models/financial_accounts/open_to_buy_summary.rbs +32 -0
  233. data/sig/lithic/models/financial_accounts/statements/statement_line_items.rbs +20 -0
  234. data/sig/lithic/models/financial_accounts/transaction_category_balances.rbs +32 -0
  235. data/sig/lithic/models/financial_event.rbs +18 -0
  236. data/sig/lithic/models/kyb_business_entity.rbs +13 -13
  237. data/sig/lithic/models/management_operation_create_params.rbs +8 -0
  238. data/sig/lithic/models/management_operation_transaction.rbs +8 -0
  239. data/sig/lithic/models/non_pci_card.rbs +5 -0
  240. data/sig/lithic/models/parsed_webhook_event.rbs +40 -39
  241. data/sig/lithic/models/payment.rbs +2 -0
  242. data/sig/lithic/models/payment_create_stablecoin_params.rbs +84 -0
  243. data/sig/lithic/models/payment_create_stablecoin_response.rbs +15 -0
  244. data/sig/lithic/models/payment_list_params.rbs +2 -1
  245. data/sig/lithic/models/payment_retry_params.rbs +24 -1
  246. data/sig/lithic/models/payment_simulate_action_params.rbs +2 -0
  247. data/sig/lithic/models/three_ds_authentication.rbs +77 -0
  248. data/sig/lithic/models/transaction.rbs +4 -0
  249. data/sig/lithic/models/transaction_simulate_authorization_params.rbs +14 -0
  250. data/sig/lithic/models/transaction_simulate_credit_authorization_advice_params.rbs +7 -0
  251. data/sig/lithic/models/transaction_simulate_return_params.rbs +19 -1
  252. data/sig/lithic/models.rbs +6 -0
  253. data/sig/lithic/resources/auth_rules/v2.rbs +7 -0
  254. data/sig/lithic/resources/blockchain_recipients.rbs +5 -0
  255. data/sig/lithic/resources/cards.rbs +2 -0
  256. data/sig/lithic/resources/financial_accounts/installment_plans/statements.rbs +30 -0
  257. data/sig/lithic/resources/financial_accounts/installment_plans.rbs +26 -0
  258. data/sig/lithic/resources/financial_accounts/open_to_buy.rbs +14 -0
  259. data/sig/lithic/resources/financial_accounts.rbs +4 -0
  260. data/sig/lithic/resources/payments.rbs +12 -0
  261. data/sig/lithic/resources/transactions.rbs +5 -0
  262. data/sig/lithic/resources/webhooks.rbs +1 -0
  263. metadata +65 -5
  264. data/lib/lithic/models/auth_rules/conditional_block_parameters.rb +0 -20
  265. data/rbi/lithic/models/auth_rules/conditional_block_parameters.rbi +0 -37
  266. data/sig/lithic/models/auth_rules/conditional_block_parameters.rbs +0 -20
@@ -0,0 +1,56 @@
1
+ # typed: strong
2
+
3
+ module Lithic
4
+ module Models
5
+ module FinancialAccounts
6
+ class InstallmentPlanRetrieveParams < Lithic::Internal::Type::BaseModel
7
+ extend Lithic::Internal::Type::RequestParameters::Converter
8
+ include Lithic::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Lithic::FinancialAccounts::InstallmentPlanRetrieveParams,
14
+ Lithic::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ # Globally unique identifier for financial account.
19
+ sig { returns(String) }
20
+ attr_accessor :financial_account_token
21
+
22
+ # Globally unique identifier for installment plan.
23
+ sig { returns(String) }
24
+ attr_accessor :installment_plan_token
25
+
26
+ sig do
27
+ params(
28
+ financial_account_token: String,
29
+ installment_plan_token: String,
30
+ request_options: Lithic::RequestOptions::OrHash
31
+ ).returns(T.attached_class)
32
+ end
33
+ def self.new(
34
+ # Globally unique identifier for financial account.
35
+ financial_account_token:,
36
+ # Globally unique identifier for installment plan.
37
+ installment_plan_token:,
38
+ request_options: {}
39
+ )
40
+ end
41
+
42
+ sig do
43
+ override.returns(
44
+ {
45
+ financial_account_token: String,
46
+ installment_plan_token: String,
47
+ request_options: Lithic::RequestOptions
48
+ }
49
+ )
50
+ end
51
+ def to_hash
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,452 @@
1
+ # typed: strong
2
+
3
+ module Lithic
4
+ module Models
5
+ module FinancialAccounts
6
+ InstallmentPlanStatement = InstallmentPlans::InstallmentPlanStatement
7
+
8
+ module InstallmentPlans
9
+ class InstallmentPlanStatement < Lithic::Internal::Type::BaseModel
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Lithic::FinancialAccounts::InstallmentPlans::InstallmentPlanStatement,
14
+ Lithic::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ # Globally unique identifier for this snapshot, which is the token of the
19
+ # statement it is attached to. A plan is snapshotted at most once per statement,
20
+ # so the statement identifies the snapshot within the plan. Pass it as a
21
+ # pagination cursor
22
+ sig { returns(String) }
23
+ attr_accessor :token
24
+
25
+ # Enrollment fee charged when the plan was created in cents
26
+ sig { returns(Integer) }
27
+ attr_accessor :fee_amount
28
+
29
+ # Globally unique identifier for the installment plan this snapshot is of
30
+ sig { returns(String) }
31
+ attr_accessor :installment_plan_token
32
+
33
+ # Total owed on the plan in cents, the principal amount plus the enrollment fee
34
+ sig { returns(Integer) }
35
+ attr_accessor :installment_plan_total
36
+
37
+ # Installments that make up the plan, oldest first
38
+ sig do
39
+ returns(
40
+ T::Array[
41
+ Lithic::FinancialAccounts::InstallmentPlans::InstallmentPlanStatement::Installment
42
+ ]
43
+ )
44
+ end
45
+ attr_accessor :installments
46
+
47
+ # Number of installments that still carried a balance as of this statement
48
+ sig { returns(Integer) }
49
+ attr_accessor :installments_outstanding
50
+
51
+ # Number of installments that had been paid off as of this statement
52
+ sig { returns(Integer) }
53
+ attr_accessor :installments_paid
54
+
55
+ # Number of installments the plan is broken into
56
+ sig { returns(Integer) }
57
+ attr_accessor :num_installments
58
+
59
+ # Balance the plan was opened on in cents, excluding the enrollment fee
60
+ sig { returns(Integer) }
61
+ attr_accessor :principal_amount
62
+
63
+ sig do
64
+ returns(
65
+ Lithic::FinancialAccounts::InstallmentPlans::InstallmentPlanStatement::SourceType::TaggedSymbol
66
+ )
67
+ end
68
+ attr_accessor :source_type
69
+
70
+ # Date the plan was created
71
+ sig { returns(Date) }
72
+ attr_accessor :start_date
73
+
74
+ # State of the installment plan. A plan is REBUILD_IN_PROGRESS while its loan
75
+ # tapes are being rebuilt, during which its payment totals are being recomputed
76
+ # and should not be treated as final
77
+ sig do
78
+ returns(
79
+ Lithic::FinancialAccounts::InstallmentPlans::InstallmentPlanStatement::State::TaggedSymbol
80
+ )
81
+ end
82
+ attr_accessor :state
83
+
84
+ # Amount paid towards the plan as of this statement in cents
85
+ sig { returns(Integer) }
86
+ attr_accessor :total_paid
87
+
88
+ # An immutable snapshot of an installment plan as of the statement it is attached
89
+ # to. Lithic cuts one per open plan when a statement is generated and never
90
+ # reissues it
91
+ sig do
92
+ params(
93
+ token: String,
94
+ fee_amount: Integer,
95
+ installment_plan_token: String,
96
+ installment_plan_total: Integer,
97
+ installments:
98
+ T::Array[
99
+ Lithic::FinancialAccounts::InstallmentPlans::InstallmentPlanStatement::Installment::OrHash
100
+ ],
101
+ installments_outstanding: Integer,
102
+ installments_paid: Integer,
103
+ num_installments: Integer,
104
+ principal_amount: Integer,
105
+ source_type:
106
+ Lithic::FinancialAccounts::InstallmentPlans::InstallmentPlanStatement::SourceType::OrSymbol,
107
+ start_date: Date,
108
+ state:
109
+ Lithic::FinancialAccounts::InstallmentPlans::InstallmentPlanStatement::State::OrSymbol,
110
+ total_paid: Integer
111
+ ).returns(T.attached_class)
112
+ end
113
+ def self.new(
114
+ # Globally unique identifier for this snapshot, which is the token of the
115
+ # statement it is attached to. A plan is snapshotted at most once per statement,
116
+ # so the statement identifies the snapshot within the plan. Pass it as a
117
+ # pagination cursor
118
+ token:,
119
+ # Enrollment fee charged when the plan was created in cents
120
+ fee_amount:,
121
+ # Globally unique identifier for the installment plan this snapshot is of
122
+ installment_plan_token:,
123
+ # Total owed on the plan in cents, the principal amount plus the enrollment fee
124
+ installment_plan_total:,
125
+ # Installments that make up the plan, oldest first
126
+ installments:,
127
+ # Number of installments that still carried a balance as of this statement
128
+ installments_outstanding:,
129
+ # Number of installments that had been paid off as of this statement
130
+ installments_paid:,
131
+ # Number of installments the plan is broken into
132
+ num_installments:,
133
+ # Balance the plan was opened on in cents, excluding the enrollment fee
134
+ principal_amount:,
135
+ source_type:,
136
+ # Date the plan was created
137
+ start_date:,
138
+ # State of the installment plan. A plan is REBUILD_IN_PROGRESS while its loan
139
+ # tapes are being rebuilt, during which its payment totals are being recomputed
140
+ # and should not be treated as final
141
+ state:,
142
+ # Amount paid towards the plan as of this statement in cents
143
+ total_paid:
144
+ )
145
+ end
146
+
147
+ sig do
148
+ override.returns(
149
+ {
150
+ token: String,
151
+ fee_amount: Integer,
152
+ installment_plan_token: String,
153
+ installment_plan_total: Integer,
154
+ installments:
155
+ T::Array[
156
+ Lithic::FinancialAccounts::InstallmentPlans::InstallmentPlanStatement::Installment
157
+ ],
158
+ installments_outstanding: Integer,
159
+ installments_paid: Integer,
160
+ num_installments: Integer,
161
+ principal_amount: Integer,
162
+ source_type:
163
+ Lithic::FinancialAccounts::InstallmentPlans::InstallmentPlanStatement::SourceType::TaggedSymbol,
164
+ start_date: Date,
165
+ state:
166
+ Lithic::FinancialAccounts::InstallmentPlans::InstallmentPlanStatement::State::TaggedSymbol,
167
+ total_paid: Integer
168
+ }
169
+ )
170
+ end
171
+ def to_hash
172
+ end
173
+
174
+ class Installment < Lithic::Internal::Type::BaseModel
175
+ OrHash =
176
+ T.type_alias do
177
+ T.any(
178
+ Lithic::FinancialAccounts::InstallmentPlans::InstallmentPlanStatement::Installment,
179
+ Lithic::Internal::AnyHash
180
+ )
181
+ end
182
+
183
+ # Amount the installment was opened for in cents
184
+ sig { returns(Integer) }
185
+ attr_accessor :amount_due
186
+
187
+ sig { returns(Lithic::FinancialAccounts::CategoryBalances) }
188
+ attr_reader :amount_due_details
189
+
190
+ sig do
191
+ params(
192
+ amount_due_details:
193
+ Lithic::FinancialAccounts::CategoryBalances::OrHash
194
+ ).void
195
+ end
196
+ attr_writer :amount_due_details
197
+
198
+ # Amount still owed on the installment in cents
199
+ sig { returns(Integer) }
200
+ attr_accessor :amount_outstanding
201
+
202
+ sig { returns(Lithic::FinancialAccounts::CategoryBalances) }
203
+ attr_reader :amount_outstanding_details
204
+
205
+ sig do
206
+ params(
207
+ amount_outstanding_details:
208
+ Lithic::FinancialAccounts::CategoryBalances::OrHash
209
+ ).void
210
+ end
211
+ attr_writer :amount_outstanding_details
212
+
213
+ # Amount paid towards the installment in cents
214
+ sig { returns(Integer) }
215
+ attr_accessor :amount_paid
216
+
217
+ sig { returns(Lithic::FinancialAccounts::CategoryBalances) }
218
+ attr_reader :amount_paid_details
219
+
220
+ sig do
221
+ params(
222
+ amount_paid_details:
223
+ Lithic::FinancialAccounts::CategoryBalances::OrHash
224
+ ).void
225
+ end
226
+ attr_writer :amount_paid_details
227
+
228
+ # Date the installment was actually assessed onto the account, or null if it had
229
+ # not been assessed as of this statement
230
+ sig { returns(T.nilable(Date)) }
231
+ attr_accessor :date_assessed
232
+
233
+ # Date the installment is scheduled to be assessed onto the account
234
+ sig { returns(Date) }
235
+ attr_accessor :due_date
236
+
237
+ # Position of this installment within the plan, starting at 0
238
+ sig { returns(Integer) }
239
+ attr_accessor :installment_num
240
+
241
+ # Date the installment must be paid by before it is considered past due
242
+ sig { returns(Date) }
243
+ attr_accessor :payment_due_date
244
+
245
+ # Payments applied to this installment, oldest first
246
+ sig do
247
+ returns(
248
+ T::Array[
249
+ Lithic::FinancialAccounts::InstallmentPlans::InstallmentPlanStatement::Installment::Payment
250
+ ]
251
+ )
252
+ end
253
+ attr_accessor :payments
254
+
255
+ # One installment of a plan as of the statement. Amounts are totalled across
256
+ # transaction categories rather than broken out by them, which the installment
257
+ # plan endpoint does
258
+ sig do
259
+ params(
260
+ amount_due: Integer,
261
+ amount_due_details:
262
+ Lithic::FinancialAccounts::CategoryBalances::OrHash,
263
+ amount_outstanding: Integer,
264
+ amount_outstanding_details:
265
+ Lithic::FinancialAccounts::CategoryBalances::OrHash,
266
+ amount_paid: Integer,
267
+ amount_paid_details:
268
+ Lithic::FinancialAccounts::CategoryBalances::OrHash,
269
+ date_assessed: T.nilable(Date),
270
+ due_date: Date,
271
+ installment_num: Integer,
272
+ payment_due_date: Date,
273
+ payments:
274
+ T::Array[
275
+ Lithic::FinancialAccounts::InstallmentPlans::InstallmentPlanStatement::Installment::Payment::OrHash
276
+ ]
277
+ ).returns(T.attached_class)
278
+ end
279
+ def self.new(
280
+ # Amount the installment was opened for in cents
281
+ amount_due:,
282
+ amount_due_details:,
283
+ # Amount still owed on the installment in cents
284
+ amount_outstanding:,
285
+ amount_outstanding_details:,
286
+ # Amount paid towards the installment in cents
287
+ amount_paid:,
288
+ amount_paid_details:,
289
+ # Date the installment was actually assessed onto the account, or null if it had
290
+ # not been assessed as of this statement
291
+ date_assessed:,
292
+ # Date the installment is scheduled to be assessed onto the account
293
+ due_date:,
294
+ # Position of this installment within the plan, starting at 0
295
+ installment_num:,
296
+ # Date the installment must be paid by before it is considered past due
297
+ payment_due_date:,
298
+ # Payments applied to this installment, oldest first
299
+ payments:
300
+ )
301
+ end
302
+
303
+ sig do
304
+ override.returns(
305
+ {
306
+ amount_due: Integer,
307
+ amount_due_details:
308
+ Lithic::FinancialAccounts::CategoryBalances,
309
+ amount_outstanding: Integer,
310
+ amount_outstanding_details:
311
+ Lithic::FinancialAccounts::CategoryBalances,
312
+ amount_paid: Integer,
313
+ amount_paid_details:
314
+ Lithic::FinancialAccounts::CategoryBalances,
315
+ date_assessed: T.nilable(Date),
316
+ due_date: Date,
317
+ installment_num: Integer,
318
+ payment_due_date: Date,
319
+ payments:
320
+ T::Array[
321
+ Lithic::FinancialAccounts::InstallmentPlans::InstallmentPlanStatement::Installment::Payment
322
+ ]
323
+ }
324
+ )
325
+ end
326
+ def to_hash
327
+ end
328
+
329
+ class Payment < Lithic::Internal::Type::BaseModel
330
+ OrHash =
331
+ T.type_alias do
332
+ T.any(
333
+ Lithic::FinancialAccounts::InstallmentPlans::InstallmentPlanStatement::Installment::Payment,
334
+ Lithic::Internal::AnyHash
335
+ )
336
+ end
337
+
338
+ # Amount applied to the installment in cents
339
+ sig { returns(Integer) }
340
+ attr_accessor :amount
341
+
342
+ # Date the payment was applied to the installment
343
+ sig { returns(Date) }
344
+ attr_accessor :date
345
+
346
+ sig do
347
+ params(amount: Integer, date: Date).returns(T.attached_class)
348
+ end
349
+ def self.new(
350
+ # Amount applied to the installment in cents
351
+ amount:,
352
+ # Date the payment was applied to the installment
353
+ date:
354
+ )
355
+ end
356
+
357
+ sig { override.returns({ amount: Integer, date: Date }) }
358
+ def to_hash
359
+ end
360
+ end
361
+ end
362
+
363
+ module SourceType
364
+ extend Lithic::Internal::Type::Enum
365
+
366
+ TaggedSymbol =
367
+ T.type_alias do
368
+ T.all(
369
+ Symbol,
370
+ Lithic::FinancialAccounts::InstallmentPlans::InstallmentPlanStatement::SourceType
371
+ )
372
+ end
373
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
374
+
375
+ UNPAID_BALANCE =
376
+ T.let(
377
+ :UNPAID_BALANCE,
378
+ Lithic::FinancialAccounts::InstallmentPlans::InstallmentPlanStatement::SourceType::TaggedSymbol
379
+ )
380
+ TRANSACTION =
381
+ T.let(
382
+ :TRANSACTION,
383
+ Lithic::FinancialAccounts::InstallmentPlans::InstallmentPlanStatement::SourceType::TaggedSymbol
384
+ )
385
+
386
+ sig do
387
+ override.returns(
388
+ T::Array[
389
+ Lithic::FinancialAccounts::InstallmentPlans::InstallmentPlanStatement::SourceType::TaggedSymbol
390
+ ]
391
+ )
392
+ end
393
+ def self.values
394
+ end
395
+ end
396
+
397
+ # State of the installment plan. A plan is REBUILD_IN_PROGRESS while its loan
398
+ # tapes are being rebuilt, during which its payment totals are being recomputed
399
+ # and should not be treated as final
400
+ module State
401
+ extend Lithic::Internal::Type::Enum
402
+
403
+ TaggedSymbol =
404
+ T.type_alias do
405
+ T.all(
406
+ Symbol,
407
+ Lithic::FinancialAccounts::InstallmentPlans::InstallmentPlanStatement::State
408
+ )
409
+ end
410
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
411
+
412
+ PENDING =
413
+ T.let(
414
+ :PENDING,
415
+ Lithic::FinancialAccounts::InstallmentPlans::InstallmentPlanStatement::State::TaggedSymbol
416
+ )
417
+ ACTIVE =
418
+ T.let(
419
+ :ACTIVE,
420
+ Lithic::FinancialAccounts::InstallmentPlans::InstallmentPlanStatement::State::TaggedSymbol
421
+ )
422
+ REBUILD_IN_PROGRESS =
423
+ T.let(
424
+ :REBUILD_IN_PROGRESS,
425
+ Lithic::FinancialAccounts::InstallmentPlans::InstallmentPlanStatement::State::TaggedSymbol
426
+ )
427
+ FULLY_PAID =
428
+ T.let(
429
+ :FULLY_PAID,
430
+ Lithic::FinancialAccounts::InstallmentPlans::InstallmentPlanStatement::State::TaggedSymbol
431
+ )
432
+ CANCELLED =
433
+ T.let(
434
+ :CANCELLED,
435
+ Lithic::FinancialAccounts::InstallmentPlans::InstallmentPlanStatement::State::TaggedSymbol
436
+ )
437
+
438
+ sig do
439
+ override.returns(
440
+ T::Array[
441
+ Lithic::FinancialAccounts::InstallmentPlans::InstallmentPlanStatement::State::TaggedSymbol
442
+ ]
443
+ )
444
+ end
445
+ def self.values
446
+ end
447
+ end
448
+ end
449
+ end
450
+ end
451
+ end
452
+ end
@@ -0,0 +1,191 @@
1
+ # typed: strong
2
+
3
+ module Lithic
4
+ module Models
5
+ module FinancialAccounts
6
+ module InstallmentPlans
7
+ class StatementListParams < Lithic::Internal::Type::BaseModel
8
+ extend Lithic::Internal::Type::RequestParameters::Converter
9
+ include Lithic::Internal::Type::RequestParameters
10
+
11
+ OrHash =
12
+ T.type_alias do
13
+ T.any(
14
+ Lithic::FinancialAccounts::InstallmentPlans::StatementListParams,
15
+ Lithic::Internal::AnyHash
16
+ )
17
+ end
18
+
19
+ # Globally unique identifier for financial account.
20
+ sig { returns(String) }
21
+ attr_accessor :financial_account_token
22
+
23
+ # Globally unique identifier for installment plan.
24
+ sig { returns(String) }
25
+ attr_accessor :installment_plan_token
26
+
27
+ # Date string in RFC 3339 format. Only entries created after the specified date
28
+ # will be included.
29
+ sig { returns(T.nilable(Date)) }
30
+ attr_reader :begin_
31
+
32
+ sig { params(begin_: Date).void }
33
+ attr_writer :begin_
34
+
35
+ # Date string in RFC 3339 format. Only entries created before the specified date
36
+ # will be included.
37
+ sig { returns(T.nilable(Date)) }
38
+ attr_reader :end_
39
+
40
+ sig { params(end_: Date).void }
41
+ attr_writer :end_
42
+
43
+ # A cursor representing an item's token before which a page of results should end.
44
+ # Used to retrieve the previous page of results before this item.
45
+ sig { returns(T.nilable(String)) }
46
+ attr_reader :ending_before
47
+
48
+ sig { params(ending_before: String).void }
49
+ attr_writer :ending_before
50
+
51
+ # Page size (for pagination).
52
+ sig { returns(T.nilable(Integer)) }
53
+ attr_reader :page_size
54
+
55
+ sig { params(page_size: Integer).void }
56
+ attr_writer :page_size
57
+
58
+ # A cursor representing an item's token after which a page of results should
59
+ # begin. Used to retrieve the next page of results after this item.
60
+ sig { returns(T.nilable(String)) }
61
+ attr_reader :starting_after
62
+
63
+ sig { params(starting_after: String).void }
64
+ attr_writer :starting_after
65
+
66
+ # Only snapshots in which the plan was in this state will be included.
67
+ sig do
68
+ returns(
69
+ T.nilable(
70
+ Lithic::FinancialAccounts::InstallmentPlans::StatementListParams::State::OrSymbol
71
+ )
72
+ )
73
+ end
74
+ attr_accessor :state
75
+
76
+ sig do
77
+ params(
78
+ financial_account_token: String,
79
+ installment_plan_token: String,
80
+ begin_: Date,
81
+ end_: Date,
82
+ ending_before: String,
83
+ page_size: Integer,
84
+ starting_after: String,
85
+ state:
86
+ T.nilable(
87
+ Lithic::FinancialAccounts::InstallmentPlans::StatementListParams::State::OrSymbol
88
+ ),
89
+ request_options: Lithic::RequestOptions::OrHash
90
+ ).returns(T.attached_class)
91
+ end
92
+ def self.new(
93
+ # Globally unique identifier for financial account.
94
+ financial_account_token:,
95
+ # Globally unique identifier for installment plan.
96
+ installment_plan_token:,
97
+ # Date string in RFC 3339 format. Only entries created after the specified date
98
+ # will be included.
99
+ begin_: nil,
100
+ # Date string in RFC 3339 format. Only entries created before the specified date
101
+ # will be included.
102
+ end_: nil,
103
+ # A cursor representing an item's token before which a page of results should end.
104
+ # Used to retrieve the previous page of results before this item.
105
+ ending_before: nil,
106
+ # Page size (for pagination).
107
+ page_size: nil,
108
+ # A cursor representing an item's token after which a page of results should
109
+ # begin. Used to retrieve the next page of results after this item.
110
+ starting_after: nil,
111
+ # Only snapshots in which the plan was in this state will be included.
112
+ state: nil,
113
+ request_options: {}
114
+ )
115
+ end
116
+
117
+ sig do
118
+ override.returns(
119
+ {
120
+ financial_account_token: String,
121
+ installment_plan_token: String,
122
+ begin_: Date,
123
+ end_: Date,
124
+ ending_before: String,
125
+ page_size: Integer,
126
+ starting_after: String,
127
+ state:
128
+ T.nilable(
129
+ Lithic::FinancialAccounts::InstallmentPlans::StatementListParams::State::OrSymbol
130
+ ),
131
+ request_options: Lithic::RequestOptions
132
+ }
133
+ )
134
+ end
135
+ def to_hash
136
+ end
137
+
138
+ # Only snapshots in which the plan was in this state will be included.
139
+ module State
140
+ extend Lithic::Internal::Type::Enum
141
+
142
+ TaggedSymbol =
143
+ T.type_alias do
144
+ T.all(
145
+ Symbol,
146
+ Lithic::FinancialAccounts::InstallmentPlans::StatementListParams::State
147
+ )
148
+ end
149
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
150
+
151
+ PENDING =
152
+ T.let(
153
+ :PENDING,
154
+ Lithic::FinancialAccounts::InstallmentPlans::StatementListParams::State::TaggedSymbol
155
+ )
156
+ ACTIVE =
157
+ T.let(
158
+ :ACTIVE,
159
+ Lithic::FinancialAccounts::InstallmentPlans::StatementListParams::State::TaggedSymbol
160
+ )
161
+ REBUILD_IN_PROGRESS =
162
+ T.let(
163
+ :REBUILD_IN_PROGRESS,
164
+ Lithic::FinancialAccounts::InstallmentPlans::StatementListParams::State::TaggedSymbol
165
+ )
166
+ FULLY_PAID =
167
+ T.let(
168
+ :FULLY_PAID,
169
+ Lithic::FinancialAccounts::InstallmentPlans::StatementListParams::State::TaggedSymbol
170
+ )
171
+ CANCELLED =
172
+ T.let(
173
+ :CANCELLED,
174
+ Lithic::FinancialAccounts::InstallmentPlans::StatementListParams::State::TaggedSymbol
175
+ )
176
+
177
+ sig do
178
+ override.returns(
179
+ T::Array[
180
+ Lithic::FinancialAccounts::InstallmentPlans::StatementListParams::State::TaggedSymbol
181
+ ]
182
+ )
183
+ end
184
+ def self.values
185
+ end
186
+ end
187
+ end
188
+ end
189
+ end
190
+ end
191
+ end