lithic 0.21.0 → 0.23.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 (235) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +50 -0
  3. data/README.md +1 -10
  4. data/lib/lithic/client.rb +4 -0
  5. data/lib/lithic/internal/type/union.rb +21 -7
  6. data/lib/lithic/models/account_activity_list_params.rb +1 -0
  7. data/lib/lithic/models/account_activity_list_response.rb +2 -24
  8. data/lib/lithic/models/account_activity_retrieve_transaction_response.rb +2 -24
  9. data/lib/lithic/models/account_holder_create_params.rb +4 -2
  10. data/lib/lithic/models/account_holder_simulate_enrollment_review_response.rb +120 -66
  11. data/lib/lithic/models/account_holder_update_params.rb +6 -3
  12. data/lib/lithic/models/account_holder_update_response.rb +156 -86
  13. data/lib/lithic/models/account_holder_updated_webhook_event.rb +120 -66
  14. data/lib/lithic/models/account_holders/account_holder_entity.rb +35 -19
  15. data/lib/lithic/models/account_holders/entity_create_params.rb +39 -21
  16. data/lib/lithic/models/address.rb +33 -19
  17. data/lib/lithic/models/address_update.rb +27 -11
  18. data/lib/lithic/models/auth_rules/auth_rule.rb +55 -27
  19. data/lib/lithic/models/auth_rules/auth_rule_condition.rb +189 -6
  20. data/lib/lithic/models/auth_rules/auth_rule_entities.rb +47 -0
  21. data/lib/lithic/models/auth_rules/auth_rule_entities_response.rb +31 -0
  22. data/lib/lithic/models/auth_rules/auth_rule_entity.rb +150 -0
  23. data/lib/lithic/models/auth_rules/auth_rule_version.rb +3 -6
  24. data/lib/lithic/models/auth_rules/conditional_3ds_action_parameters.rb +33 -6
  25. data/lib/lithic/models/auth_rules/conditional_attribute.rb +101 -5
  26. data/lib/lithic/models/auth_rules/conditional_authorization_action_parameters.rb +3 -439
  27. data/lib/lithic/models/auth_rules/conditional_authorization_adjustment_parameters.rb +7 -0
  28. data/lib/lithic/models/auth_rules/merchant_lock_parameters.rb +11 -1
  29. data/lib/lithic/models/auth_rules/v2_create_params.rb +203 -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_update_entities_params.rb +39 -0
  33. data/lib/lithic/models/auth_rules/v2_update_params.rb +133 -12
  34. data/lib/lithic/models/book_transfer_create_params.rb +1 -0
  35. data/lib/lithic/models/book_transfer_response.rb +1 -0
  36. data/lib/lithic/models/card_authorization.rb +12 -1
  37. data/lib/lithic/models/card_create_params.rb +11 -1
  38. data/lib/lithic/models/card_update_params.rb +12 -1
  39. data/lib/lithic/models/cards/financial_transaction_list_params.rb +9 -1
  40. data/lib/lithic/models/claim_created_webhook_event.rb +15 -1
  41. data/lib/lithic/models/claim_updated_webhook_event.rb +15 -1
  42. data/lib/lithic/models/financial_account_balance.rb +6 -6
  43. data/lib/lithic/models/financial_accounts/credit_configuration_update_params.rb +9 -2
  44. data/lib/lithic/models/financial_accounts/financial_transaction_list_params.rb +9 -1
  45. data/lib/lithic/models/financial_accounts/installment_plans/installment_plan_statement.rb +279 -0
  46. data/lib/lithic/models/financial_accounts/installment_plans/statement_list_params.rb +106 -0
  47. data/lib/lithic/models/financial_accounts/installment_plans/statement_retrieve_params.rb +42 -0
  48. data/lib/lithic/models/financial_accounts/interest_tier_schedule.rb +6 -6
  49. data/lib/lithic/models/financial_accounts/interest_tier_schedule_update_params.rb +6 -6
  50. data/lib/lithic/models/financial_accounts/loan_tape.rb +71 -2
  51. data/lib/lithic/models/financial_accounts/statements/statement_line_items.rb +5 -0
  52. data/lib/lithic/models/financial_event.rb +4 -0
  53. data/lib/lithic/models/funding_event_list_params.rb +28 -1
  54. data/lib/lithic/models/hold.rb +24 -28
  55. data/lib/lithic/models/ip_range_retrieve_params.rb +14 -0
  56. data/lib/lithic/models/ip_range_retrieve_response.rb +25 -0
  57. data/lib/lithic/models/kyb.rb +4 -2
  58. data/lib/lithic/models/kyb_business_entity.rb +35 -19
  59. data/lib/lithic/models/kyc.rb +2 -1
  60. data/lib/lithic/models/non_pci_card.rb +11 -1
  61. data/lib/lithic/models/parsed_webhook_event.rb +120 -66
  62. data/lib/lithic/models/payment.rb +3 -1
  63. data/lib/lithic/models/transaction.rb +11 -4
  64. data/lib/lithic/models/transaction_simulate_authorization_params.rb +28 -4
  65. data/lib/lithic/models/transaction_simulate_credit_authorization_advice_params.rb +11 -1
  66. data/lib/lithic/models/transaction_simulate_return_params.rb +24 -1
  67. data/lib/lithic/models/transactions/events/enhanced_data.rb +27 -3
  68. data/lib/lithic/models/transfer_limits_response.rb +9 -1
  69. data/lib/lithic/models.rb +2 -0
  70. data/lib/lithic/resources/auth_rules/v2/backtests.rb +8 -8
  71. data/lib/lithic/resources/auth_rules/v2.rb +44 -8
  72. data/lib/lithic/resources/cards/financial_transactions.rb +5 -3
  73. data/lib/lithic/resources/cards.rb +6 -2
  74. data/lib/lithic/resources/financial_accounts/credit_configuration.rb +9 -2
  75. data/lib/lithic/resources/financial_accounts/financial_transactions.rb +5 -3
  76. data/lib/lithic/resources/financial_accounts/installment_plans/statements.rb +107 -0
  77. data/lib/lithic/resources/financial_accounts/installment_plans.rb +4 -0
  78. data/lib/lithic/resources/financial_accounts/interest_tier_schedule.rb +6 -6
  79. data/lib/lithic/resources/funding_events.rb +8 -2
  80. data/lib/lithic/resources/ip_ranges.rb +36 -0
  81. data/lib/lithic/resources/transactions.rb +17 -4
  82. data/lib/lithic/resources/webhooks.rb +20 -0
  83. data/lib/lithic/version.rb +1 -1
  84. data/lib/lithic.rb +11 -1
  85. data/rbi/lithic/client.rbi +3 -0
  86. data/rbi/lithic/models/account_activity_list_params.rbi +5 -0
  87. data/rbi/lithic/models/account_activity_list_response.rbi +6 -75
  88. data/rbi/lithic/models/account_activity_retrieve_transaction_response.rbi +6 -75
  89. data/rbi/lithic/models/account_holder_create_params.rbi +8 -4
  90. data/rbi/lithic/models/account_holder_simulate_enrollment_review_response.rbi +195 -90
  91. data/rbi/lithic/models/account_holder_update_params.rbi +12 -6
  92. data/rbi/lithic/models/account_holder_update_response.rbi +254 -117
  93. data/rbi/lithic/models/account_holder_updated_webhook_event.rbi +195 -90
  94. data/rbi/lithic/models/account_holders/account_holder_entity.rbi +59 -27
  95. data/rbi/lithic/models/account_holders/entity_create_params.rbi +65 -30
  96. data/rbi/lithic/models/address.rbi +57 -29
  97. data/rbi/lithic/models/address_update.rbi +50 -24
  98. data/rbi/lithic/models/auth_rules/auth_rule.rbi +53 -19
  99. data/rbi/lithic/models/auth_rules/auth_rule_condition.rbi +442 -13
  100. data/rbi/lithic/models/auth_rules/auth_rule_entities.rbi +163 -0
  101. data/rbi/lithic/models/auth_rules/auth_rule_entities_response.rbi +72 -0
  102. data/rbi/lithic/models/auth_rules/auth_rule_entity.rbi +199 -0
  103. data/rbi/lithic/models/auth_rules/auth_rule_version.rbi +0 -2
  104. data/rbi/lithic/models/auth_rules/conditional_3ds_action_parameters.rbi +67 -9
  105. data/rbi/lithic/models/auth_rules/conditional_attribute.rbi +193 -5
  106. data/rbi/lithic/models/auth_rules/conditional_authorization_action_parameters.rbi +3 -939
  107. data/rbi/lithic/models/auth_rules/conditional_authorization_adjustment_parameters.rbi +14 -0
  108. data/rbi/lithic/models/auth_rules/merchant_lock_parameters.rbi +14 -3
  109. data/rbi/lithic/models/auth_rules/v2_create_params.rbi +325 -50
  110. data/rbi/lithic/models/auth_rules/v2_draft_params.rbi +0 -4
  111. data/rbi/lithic/models/auth_rules/v2_list_params.rbi +6 -3
  112. data/rbi/lithic/models/auth_rules/v2_update_entities_params.rbi +68 -0
  113. data/rbi/lithic/models/auth_rules/v2_update_params.rbi +198 -5
  114. data/rbi/lithic/models/book_transfer_create_params.rbi +5 -0
  115. data/rbi/lithic/models/book_transfer_response.rbi +5 -0
  116. data/rbi/lithic/models/card_authorization.rbi +14 -0
  117. data/rbi/lithic/models/card_create_params.rbi +15 -0
  118. data/rbi/lithic/models/card_update_params.rbi +17 -0
  119. data/rbi/lithic/models/cards/financial_transaction_list_params.rbi +11 -0
  120. data/rbi/lithic/models/claim_created_webhook_event.rbi +14 -0
  121. data/rbi/lithic/models/claim_updated_webhook_event.rbi +14 -0
  122. data/rbi/lithic/models/financial_account_balance.rbi +6 -6
  123. data/rbi/lithic/models/financial_accounts/credit_configuration_update_params.rbi +8 -2
  124. data/rbi/lithic/models/financial_accounts/financial_transaction_list_params.rbi +11 -0
  125. data/rbi/lithic/models/financial_accounts/installment_plans/installment_plan_statement.rbi +452 -0
  126. data/rbi/lithic/models/financial_accounts/installment_plans/statement_list_params.rbi +191 -0
  127. data/rbi/lithic/models/financial_accounts/installment_plans/statement_retrieve_params.rbi +66 -0
  128. data/rbi/lithic/models/financial_accounts/interest_tier_schedule.rbi +9 -18
  129. data/rbi/lithic/models/financial_accounts/interest_tier_schedule_update_params.rbi +9 -18
  130. data/rbi/lithic/models/financial_accounts/loan_tape.rbi +143 -3
  131. data/rbi/lithic/models/financial_accounts/statements/statement_line_items.rbi +25 -0
  132. data/rbi/lithic/models/financial_event.rbi +17 -0
  133. data/rbi/lithic/models/funding_event_list_params.rbi +39 -0
  134. data/rbi/lithic/models/hold.rbi +28 -29
  135. data/rbi/lithic/models/ip_range_retrieve_params.rbi +27 -0
  136. data/rbi/lithic/models/ip_range_retrieve_response.rbi +40 -0
  137. data/rbi/lithic/models/kyb.rbi +8 -4
  138. data/rbi/lithic/models/kyb_business_entity.rbi +59 -27
  139. data/rbi/lithic/models/kyc.rbi +4 -2
  140. data/rbi/lithic/models/non_pci_card.rbi +12 -0
  141. data/rbi/lithic/models/parsed_webhook_event.rbi +195 -90
  142. data/rbi/lithic/models/payment.rbi +5 -2
  143. data/rbi/lithic/models/transaction.rbi +15 -6
  144. data/rbi/lithic/models/transaction_simulate_authorization_params.rbi +42 -4
  145. data/rbi/lithic/models/transaction_simulate_credit_authorization_advice_params.rbi +15 -0
  146. data/rbi/lithic/models/transaction_simulate_return_params.rbi +30 -0
  147. data/rbi/lithic/models/transactions/events/enhanced_data.rbi +25 -5
  148. data/rbi/lithic/models/transfer_limits_response.rbi +8 -0
  149. data/rbi/lithic/models.rbi +2 -0
  150. data/rbi/lithic/resources/account_holders/entities.rbi +2 -1
  151. data/rbi/lithic/resources/auth_rules/v2/backtests.rbi +8 -8
  152. data/rbi/lithic/resources/auth_rules/v2.rbi +43 -8
  153. data/rbi/lithic/resources/cards/financial_transactions.rbi +4 -1
  154. data/rbi/lithic/resources/cards.rbi +11 -0
  155. data/rbi/lithic/resources/financial_accounts/credit_configuration.rbi +8 -2
  156. data/rbi/lithic/resources/financial_accounts/financial_transactions.rbi +4 -1
  157. data/rbi/lithic/resources/financial_accounts/installment_plans/statements.rbi +86 -0
  158. data/rbi/lithic/resources/financial_accounts/installment_plans.rbi +7 -0
  159. data/rbi/lithic/resources/financial_accounts/interest_tier_schedule.rbi +6 -6
  160. data/rbi/lithic/resources/funding_events.rbi +12 -0
  161. data/rbi/lithic/resources/ip_ranges.rbi +25 -0
  162. data/rbi/lithic/resources/transactions.rbi +31 -2
  163. data/sig/lithic/client.rbs +2 -0
  164. data/sig/lithic/models/account_activity_list_params.rbs +2 -0
  165. data/sig/lithic/models/account_activity_list_response.rbs +3 -32
  166. data/sig/lithic/models/account_activity_retrieve_transaction_response.rbs +3 -32
  167. data/sig/lithic/models/account_holder_simulate_enrollment_review_response.rbs +39 -39
  168. data/sig/lithic/models/account_holder_update_response.rbs +52 -52
  169. data/sig/lithic/models/account_holder_updated_webhook_event.rbs +39 -39
  170. data/sig/lithic/models/account_holders/account_holder_entity.rbs +13 -13
  171. data/sig/lithic/models/account_holders/entity_create_params.rbs +13 -13
  172. data/sig/lithic/models/address.rbs +13 -13
  173. data/sig/lithic/models/address_update.rbs +8 -12
  174. data/sig/lithic/models/auth_rules/auth_rule.rbs +8 -7
  175. data/sig/lithic/models/auth_rules/auth_rule_condition.rbs +89 -3
  176. data/sig/lithic/models/auth_rules/auth_rule_entities.rbs +37 -0
  177. data/sig/lithic/models/auth_rules/auth_rule_entities_response.rbs +29 -0
  178. data/sig/lithic/models/auth_rules/auth_rule_entity.rbs +80 -0
  179. data/sig/lithic/models/auth_rules/auth_rule_version.rbs +1 -2
  180. data/sig/lithic/models/auth_rules/conditional_3ds_action_parameters.rbs +10 -0
  181. data/sig/lithic/models/auth_rules/conditional_attribute.rbs +46 -0
  182. data/sig/lithic/models/auth_rules/conditional_authorization_action_parameters.rbs +4 -204
  183. data/sig/lithic/models/auth_rules/conditional_authorization_adjustment_parameters.rbs +2 -0
  184. data/sig/lithic/models/auth_rules/merchant_lock_parameters.rbs +10 -3
  185. data/sig/lithic/models/auth_rules/v2_create_params.rbs +86 -16
  186. data/sig/lithic/models/auth_rules/v2_draft_params.rbs +1 -2
  187. data/sig/lithic/models/auth_rules/v2_update_entities_params.rbs +46 -0
  188. data/sig/lithic/models/auth_rules/v2_update_params.rbs +47 -1
  189. data/sig/lithic/models/book_transfer_create_params.rbs +2 -0
  190. data/sig/lithic/models/book_transfer_response.rbs +2 -0
  191. data/sig/lithic/models/card_authorization.rbs +13 -1
  192. data/sig/lithic/models/card_create_params.rbs +7 -0
  193. data/sig/lithic/models/card_update_params.rbs +8 -1
  194. data/sig/lithic/models/cards/financial_transaction_list_params.rbs +7 -0
  195. data/sig/lithic/models/claim_created_webhook_event.rbs +5 -0
  196. data/sig/lithic/models/claim_updated_webhook_event.rbs +5 -0
  197. data/sig/lithic/models/financial_account_balance.rbs +8 -8
  198. data/sig/lithic/models/financial_accounts/financial_transaction_list_params.rbs +7 -0
  199. data/sig/lithic/models/financial_accounts/installment_plans/installment_plan_statement.rbs +191 -0
  200. data/sig/lithic/models/financial_accounts/installment_plans/statement_list_params.rbs +90 -0
  201. data/sig/lithic/models/financial_accounts/installment_plans/statement_retrieve_params.rbs +40 -0
  202. data/sig/lithic/models/financial_accounts/interest_tier_schedule.rbs +12 -18
  203. data/sig/lithic/models/financial_accounts/interest_tier_schedule_update_params.rbs +12 -18
  204. data/sig/lithic/models/financial_accounts/loan_tape.rbs +55 -3
  205. data/sig/lithic/models/financial_accounts/statements/statement_line_items.rbs +10 -0
  206. data/sig/lithic/models/financial_event.rbs +8 -0
  207. data/sig/lithic/models/funding_event_list_params.rbs +26 -1
  208. data/sig/lithic/models/hold.rbs +22 -30
  209. data/sig/lithic/models/ip_range_retrieve_params.rbs +15 -0
  210. data/sig/lithic/models/ip_range_retrieve_response.rbs +16 -0
  211. data/sig/lithic/models/kyb_business_entity.rbs +13 -13
  212. data/sig/lithic/models/non_pci_card.rbs +5 -0
  213. data/sig/lithic/models/parsed_webhook_event.rbs +39 -39
  214. data/sig/lithic/models/payment.rbs +2 -0
  215. data/sig/lithic/models/transaction.rbs +12 -5
  216. data/sig/lithic/models/transaction_simulate_authorization_params.rbs +14 -0
  217. data/sig/lithic/models/transaction_simulate_credit_authorization_advice_params.rbs +7 -0
  218. data/sig/lithic/models/transaction_simulate_return_params.rbs +19 -1
  219. data/sig/lithic/models/transactions/events/enhanced_data.rbs +13 -3
  220. data/sig/lithic/models/transfer_limits_response.rbs +5 -0
  221. data/sig/lithic/models.rbs +2 -0
  222. data/sig/lithic/resources/auth_rules/v2.rbs +7 -0
  223. data/sig/lithic/resources/cards/financial_transactions.rbs +2 -1
  224. data/sig/lithic/resources/cards.rbs +2 -0
  225. data/sig/lithic/resources/financial_accounts/financial_transactions.rbs +2 -1
  226. data/sig/lithic/resources/financial_accounts/installment_plans/statements.rbs +30 -0
  227. data/sig/lithic/resources/financial_accounts/installment_plans.rbs +2 -0
  228. data/sig/lithic/resources/financial_accounts/interest_tier_schedule.rbs +6 -6
  229. data/sig/lithic/resources/funding_events.rbs +3 -0
  230. data/sig/lithic/resources/ip_ranges.rbs +11 -0
  231. data/sig/lithic/resources/transactions.rbs +5 -0
  232. metadata +36 -10
  233. data/lib/lithic/models/auth_rules/conditional_block_parameters.rb +0 -20
  234. data/rbi/lithic/models/auth_rules/conditional_block_parameters.rbi +0 -37
  235. data/sig/lithic/models/auth_rules/conditional_block_parameters.rbs +0 -20
@@ -52,6 +52,13 @@ module Lithic
52
52
  sig { returns(Lithic::ClaimCreatedWebhookEvent::Reason::TaggedSymbol) }
53
53
  attr_accessor :reason
54
54
 
55
+ # Identifier for the claim as displayed in the Lithic dashboard. Populated
56
+ # depending on your program's setup, null otherwise. Use it to match claims
57
+ # received through the API and webhooks to the dashboard. This is not the claim
58
+ # `token`, which is the identifier to use in API requests
59
+ sig { returns(T.nilable(String)) }
60
+ attr_accessor :reference_id
61
+
55
62
  # Current lifecycle status of the claim
56
63
  sig { returns(Lithic::ClaimCreatedWebhookEvent::Status::TaggedSymbol) }
57
64
  attr_accessor :status
@@ -80,6 +87,7 @@ module Lithic
80
87
  Lithic::ClaimCreatedWebhookEvent::OutstandingRequirement::OrSymbol
81
88
  ],
82
89
  reason: Lithic::ClaimCreatedWebhookEvent::Reason::OrSymbol,
90
+ reference_id: T.nilable(String),
83
91
  status: Lithic::ClaimCreatedWebhookEvent::Status::OrSymbol,
84
92
  submitted: T.nilable(Time),
85
93
  updated: Time,
@@ -103,6 +111,11 @@ module Lithic
103
111
  outstanding_requirements:,
104
112
  # Dispute reason code provided when creating the claim
105
113
  reason:,
114
+ # Identifier for the claim as displayed in the Lithic dashboard. Populated
115
+ # depending on your program's setup, null otherwise. Use it to match claims
116
+ # received through the API and webhooks to the dashboard. This is not the claim
117
+ # `token`, which is the identifier to use in API requests
118
+ reference_id:,
106
119
  # Current lifecycle status of the claim
107
120
  status:,
108
121
  # When the claim was submitted. Null until the claim reaches `SUBMITTED` status
@@ -130,6 +143,7 @@ module Lithic
130
143
  Lithic::ClaimCreatedWebhookEvent::OutstandingRequirement::TaggedSymbol
131
144
  ],
132
145
  reason: Lithic::ClaimCreatedWebhookEvent::Reason::TaggedSymbol,
146
+ reference_id: T.nilable(String),
133
147
  status: Lithic::ClaimCreatedWebhookEvent::Status::TaggedSymbol,
134
148
  submitted: T.nilable(Time),
135
149
  updated: Time
@@ -52,6 +52,13 @@ module Lithic
52
52
  sig { returns(Lithic::ClaimUpdatedWebhookEvent::Reason::TaggedSymbol) }
53
53
  attr_accessor :reason
54
54
 
55
+ # Identifier for the claim as displayed in the Lithic dashboard. Populated
56
+ # depending on your program's setup, null otherwise. Use it to match claims
57
+ # received through the API and webhooks to the dashboard. This is not the claim
58
+ # `token`, which is the identifier to use in API requests
59
+ sig { returns(T.nilable(String)) }
60
+ attr_accessor :reference_id
61
+
55
62
  # Current lifecycle status of the claim
56
63
  sig { returns(Lithic::ClaimUpdatedWebhookEvent::Status::TaggedSymbol) }
57
64
  attr_accessor :status
@@ -80,6 +87,7 @@ module Lithic
80
87
  Lithic::ClaimUpdatedWebhookEvent::OutstandingRequirement::OrSymbol
81
88
  ],
82
89
  reason: Lithic::ClaimUpdatedWebhookEvent::Reason::OrSymbol,
90
+ reference_id: T.nilable(String),
83
91
  status: Lithic::ClaimUpdatedWebhookEvent::Status::OrSymbol,
84
92
  submitted: T.nilable(Time),
85
93
  updated: Time,
@@ -103,6 +111,11 @@ module Lithic
103
111
  outstanding_requirements:,
104
112
  # Dispute reason code provided when creating the claim
105
113
  reason:,
114
+ # Identifier for the claim as displayed in the Lithic dashboard. Populated
115
+ # depending on your program's setup, null otherwise. Use it to match claims
116
+ # received through the API and webhooks to the dashboard. This is not the claim
117
+ # `token`, which is the identifier to use in API requests
118
+ reference_id:,
106
119
  # Current lifecycle status of the claim
107
120
  status:,
108
121
  # When the claim was submitted. Null until the claim reaches `SUBMITTED` status
@@ -130,6 +143,7 @@ module Lithic
130
143
  Lithic::ClaimUpdatedWebhookEvent::OutstandingRequirement::TaggedSymbol
131
144
  ],
132
145
  reason: Lithic::ClaimUpdatedWebhookEvent::Reason::TaggedSymbol,
146
+ reference_id: T.nilable(String),
133
147
  status: Lithic::ClaimUpdatedWebhookEvent::Status::TaggedSymbol,
134
148
  submitted: T.nilable(Time),
135
149
  updated: Time
@@ -26,12 +26,12 @@ module Lithic
26
26
 
27
27
  # Globally unique identifier for the last financial transaction event that
28
28
  # impacted this balance.
29
- sig { returns(String) }
29
+ sig { returns(T.nilable(String)) }
30
30
  attr_accessor :last_transaction_event_token
31
31
 
32
32
  # Globally unique identifier for the last financial transaction that impacted this
33
33
  # balance.
34
- sig { returns(String) }
34
+ sig { returns(T.nilable(String)) }
35
35
  attr_accessor :last_transaction_token
36
36
 
37
37
  # Funds not available for spend due to card authorizations or pending ACH release.
@@ -59,8 +59,8 @@ module Lithic
59
59
  available_amount: Integer,
60
60
  created: Time,
61
61
  currency: String,
62
- last_transaction_event_token: String,
63
- last_transaction_token: String,
62
+ last_transaction_event_token: T.nilable(String),
63
+ last_transaction_token: T.nilable(String),
64
64
  pending_amount: Integer,
65
65
  total_amount: Integer,
66
66
  type: Lithic::FinancialAccountBalance::Type::OrSymbol,
@@ -102,8 +102,8 @@ module Lithic
102
102
  available_amount: Integer,
103
103
  created: Time,
104
104
  currency: String,
105
- last_transaction_event_token: String,
106
- last_transaction_token: String,
105
+ last_transaction_event_token: T.nilable(String),
106
+ last_transaction_token: T.nilable(String),
107
107
  pending_amount: Integer,
108
108
  total_amount: Integer,
109
109
  type: Lithic::FinancialAccountBalance::Type::TaggedSymbol,
@@ -41,7 +41,10 @@ module Lithic
41
41
  sig { params(credit_limit: Integer).void }
42
42
  attr_writer :credit_limit
43
43
 
44
- # Globally unique identifier for the credit product
44
+ # Globally unique identifier for the credit product. This can only be set while
45
+ # the financial account is in the `PENDING` state. Because assigning a credit
46
+ # product transitions the account to `OPEN`, a credit product can be attached only
47
+ # once; updating it on an account in any other state returns a `403`
45
48
  sig { returns(T.nilable(String)) }
46
49
  attr_reader :credit_product_token
47
50
 
@@ -77,7 +80,10 @@ module Lithic
77
80
  financial_account_token:,
78
81
  auto_collection_configuration: nil,
79
82
  credit_limit: nil,
80
- # Globally unique identifier for the credit product
83
+ # Globally unique identifier for the credit product. This can only be set while
84
+ # the financial account is in the `PENDING` state. Because assigning a credit
85
+ # product transitions the account to `OPEN`, a credit product can be attached only
86
+ # once; updating it on an account in any other state returns a `403`
81
87
  credit_product_token: nil,
82
88
  external_bank_account_token: nil,
83
89
  # Tier to assign to a financial account
@@ -60,6 +60,13 @@ module Lithic
60
60
  sig { params(ending_before: String).void }
61
61
  attr_writer :ending_before
62
62
 
63
+ # Page size (for pagination).
64
+ sig { returns(T.nilable(Integer)) }
65
+ attr_reader :page_size
66
+
67
+ sig { params(page_size: Integer).void }
68
+ attr_writer :page_size
69
+
63
70
  # Financial Transaction result to be returned.
64
71
  sig do
65
72
  returns(
@@ -112,6 +119,7 @@ module Lithic
112
119
  Lithic::FinancialAccounts::FinancialTransactionListParams::Category::OrSymbol,
113
120
  end_: Time,
114
121
  ending_before: String,
122
+ page_size: Integer,
115
123
  result:
116
124
  Lithic::FinancialAccounts::FinancialTransactionListParams::Result::OrSymbol,
117
125
  starting_after: String,
@@ -133,6 +141,8 @@ module Lithic
133
141
  # A cursor representing an item's token before which a page of results should end.
134
142
  # Used to retrieve the previous page of results before this item.
135
143
  ending_before: nil,
144
+ # Page size (for pagination).
145
+ page_size: nil,
136
146
  # Financial Transaction result to be returned.
137
147
  result: nil,
138
148
  # A cursor representing an item's token after which a page of results should
@@ -153,6 +163,7 @@ module Lithic
153
163
  Lithic::FinancialAccounts::FinancialTransactionListParams::Category::OrSymbol,
154
164
  end_: Time,
155
165
  ending_before: String,
166
+ page_size: Integer,
156
167
  result:
157
168
  Lithic::FinancialAccounts::FinancialTransactionListParams::Result::OrSymbol,
158
169
  starting_after: String,
@@ -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