lithic 0.2.0 → 0.4.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 (135) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +78 -0
  3. data/README.md +1 -1
  4. data/lib/lithic/client.rb +5 -10
  5. data/lib/lithic/internal/transport/pooled_net_requester.rb +12 -10
  6. data/lib/lithic/internal/util.rb +7 -2
  7. data/lib/lithic/models/auth_rules/conditional_tokenization_action_parameters.rb +5 -0
  8. data/lib/lithic/models/auth_rules/velocity_limit_params.rb +21 -21
  9. data/lib/lithic/models/book_transfer_retry_params.rb +26 -0
  10. data/lib/lithic/models/{asa_request_webhook_event.rb → card_authorization_approval_request_webhook_event.rb} +151 -129
  11. data/lib/lithic/models/card_create_params.rb +12 -5
  12. data/lib/lithic/models/card_updated_webhook_event.rb +40 -0
  13. data/lib/lithic/models/card_web_provision_response.rb +5 -5
  14. data/lib/lithic/models/event.rb +3 -0
  15. data/lib/lithic/models/event_list_params.rb +2 -0
  16. data/lib/lithic/models/event_subscription.rb +2 -0
  17. data/lib/lithic/models/events/subscription_create_params.rb +2 -0
  18. data/lib/lithic/models/events/subscription_send_simulated_example_params.rb +1 -0
  19. data/lib/lithic/models/events/subscription_update_params.rb +2 -0
  20. data/lib/lithic/models/external_payment_create_params.rb +15 -1
  21. data/lib/lithic/models/financial_account.rb +33 -25
  22. data/lib/lithic/models/financial_account_update_status_params.rb +9 -1
  23. data/lib/lithic/models/financial_accounts/loan_tape.rb +52 -3
  24. data/lib/lithic/models/financial_transaction.rb +4 -2
  25. data/lib/lithic/models/management_operation_create_params.rb +6 -1
  26. data/lib/lithic/models/non_pci_card.rb +8 -10
  27. data/lib/lithic/models/parsed_webhook_event.rb +5 -4
  28. data/lib/lithic/models/payment.rb +10 -1
  29. data/lib/lithic/models/payment_create_params.rb +1 -1
  30. data/lib/lithic/models/three_ds_authentication_approval_request_webhook_event.rb +17 -0
  31. data/lib/lithic/models/transaction.rb +12 -1
  32. data/lib/lithic/models/transaction_simulate_authorization_params.rb +25 -1
  33. data/lib/lithic/models/transaction_simulate_credit_authorization_advice_params.rb +25 -1
  34. data/lib/lithic/models/transfer_limit_list_params.rb +22 -0
  35. data/lib/lithic/models/transfer_limits_response.rb +274 -0
  36. data/lib/lithic/models.rb +14 -6
  37. data/lib/lithic/resources/book_transfers.rb +27 -0
  38. data/lib/lithic/resources/cards.rb +33 -27
  39. data/lib/lithic/resources/external_payments.rb +13 -1
  40. data/lib/lithic/resources/financial_accounts.rb +8 -6
  41. data/lib/lithic/resources/management_operations.rb +4 -1
  42. data/lib/lithic/resources/transactions.rb +14 -2
  43. data/lib/lithic/resources/transfer_limits.rb +37 -0
  44. data/lib/lithic/resources/webhooks.rb +3 -2
  45. data/lib/lithic/version.rb +1 -1
  46. data/lib/lithic.rb +7 -7
  47. data/rbi/lithic/client.rbi +3 -3
  48. data/rbi/lithic/models/auth_rules/conditional_tokenization_action_parameters.rbi +11 -0
  49. data/rbi/lithic/models/auth_rules/velocity_limit_params.rbi +47 -45
  50. data/rbi/lithic/models/book_transfer_retry_params.rbi +42 -0
  51. data/rbi/lithic/models/{asa_request_webhook_event.rbi → card_authorization_approval_request_webhook_event.rbi} +394 -256
  52. data/rbi/lithic/models/card_create_params.rbi +15 -6
  53. data/rbi/lithic/models/card_updated_webhook_event.rbi +61 -0
  54. data/rbi/lithic/models/card_web_provision_response.rbi +5 -10
  55. data/rbi/lithic/models/event.rbi +5 -0
  56. data/rbi/lithic/models/event_list_params.rbi +6 -0
  57. data/rbi/lithic/models/event_subscription.rbi +6 -0
  58. data/rbi/lithic/models/events/subscription_create_params.rbi +6 -0
  59. data/rbi/lithic/models/events/subscription_send_simulated_example_params.rbi +5 -0
  60. data/rbi/lithic/models/events/subscription_update_params.rbi +6 -0
  61. data/rbi/lithic/models/external_payment_create_params.rbi +4 -0
  62. data/rbi/lithic/models/financial_account.rbi +62 -54
  63. data/rbi/lithic/models/financial_account_update_status_params.rbi +11 -0
  64. data/rbi/lithic/models/financial_accounts/loan_tape.rbi +93 -4
  65. data/rbi/lithic/models/financial_transaction.rbi +8 -4
  66. data/rbi/lithic/models/management_operation_create_params.rbi +4 -0
  67. data/rbi/lithic/models/non_pci_card.rbi +12 -15
  68. data/rbi/lithic/models/parsed_webhook_event.rbi +3 -2
  69. data/rbi/lithic/models/payment.rbi +16 -3
  70. data/rbi/lithic/models/three_ds_authentication_approval_request_webhook_event.rbi +27 -0
  71. data/rbi/lithic/models/transaction.rbi +20 -0
  72. data/rbi/lithic/models/transaction_simulate_authorization_params.rbi +33 -0
  73. data/rbi/lithic/models/transaction_simulate_credit_authorization_advice_params.rbi +33 -0
  74. data/rbi/lithic/models/transfer_limit_list_params.rbi +43 -0
  75. data/rbi/lithic/models/transfer_limits_response.rbi +604 -0
  76. data/rbi/lithic/models.rbi +14 -6
  77. data/rbi/lithic/resources/book_transfers.rbi +18 -0
  78. data/rbi/lithic/resources/cards.rbi +52 -49
  79. data/rbi/lithic/resources/external_payments.rbi +2 -0
  80. data/rbi/lithic/resources/financial_accounts.rbi +8 -5
  81. data/rbi/lithic/resources/management_operations.rbi +2 -0
  82. data/rbi/lithic/resources/transactions.rbi +18 -0
  83. data/rbi/lithic/resources/transfer_limits.rbi +28 -0
  84. data/rbi/lithic/resources/webhooks.rbi +4 -65
  85. data/sig/lithic/client.rbs +2 -2
  86. data/sig/lithic/models/auth_rules/conditional_tokenization_action_parameters.rbs +2 -0
  87. data/sig/lithic/models/auth_rules/velocity_limit_params.rbs +20 -16
  88. data/sig/lithic/models/book_transfer_retry_params.rbs +23 -0
  89. data/sig/lithic/models/{asa_request_webhook_event.rbs → card_authorization_approval_request_webhook_event.rbs} +161 -156
  90. data/sig/lithic/models/card_create_params.rbs +8 -1
  91. data/sig/lithic/models/card_updated_webhook_event.rbs +35 -0
  92. data/sig/lithic/models/card_web_provision_response.rbs +4 -10
  93. data/sig/lithic/models/event.rbs +2 -0
  94. data/sig/lithic/models/event_list_params.rbs +2 -0
  95. data/sig/lithic/models/event_subscription.rbs +2 -0
  96. data/sig/lithic/models/events/subscription_create_params.rbs +2 -0
  97. data/sig/lithic/models/events/subscription_send_simulated_example_params.rbs +2 -0
  98. data/sig/lithic/models/events/subscription_update_params.rbs +2 -0
  99. data/sig/lithic/models/financial_account.rbs +32 -27
  100. data/sig/lithic/models/financial_account_update_status_params.rbs +8 -1
  101. data/sig/lithic/models/financial_accounts/loan_tape.rbs +46 -4
  102. data/sig/lithic/models/parsed_webhook_event.rbs +3 -2
  103. data/sig/lithic/models/payment.rbs +10 -3
  104. data/sig/lithic/models/three_ds_authentication_approval_request_webhook_event.rbs +22 -0
  105. data/sig/lithic/models/transaction.rbs +9 -0
  106. data/sig/lithic/models/transaction_simulate_authorization_params.rbs +21 -0
  107. data/sig/lithic/models/transaction_simulate_credit_authorization_advice_params.rbs +22 -1
  108. data/sig/lithic/models/transfer_limit_list_params.rbs +22 -0
  109. data/sig/lithic/models/transfer_limits_response.rbs +232 -0
  110. data/sig/lithic/models.rbs +12 -6
  111. data/sig/lithic/resources/book_transfers.rbs +6 -0
  112. data/sig/lithic/resources/cards.rbs +1 -2
  113. data/sig/lithic/resources/financial_accounts.rbs +1 -0
  114. data/sig/lithic/resources/transactions.rbs +6 -0
  115. data/sig/lithic/resources/transfer_limits.rbs +12 -0
  116. data/sig/lithic/resources/webhooks.rbs +4 -61
  117. metadata +37 -23
  118. data/lib/lithic/models/aggregate_balance.rb +0 -113
  119. data/lib/lithic/models/aggregate_balance_list_params.rb +0 -35
  120. data/lib/lithic/models/cards/aggregate_balance_list_params.rb +0 -32
  121. data/lib/lithic/models/cards/aggregate_balance_list_response.rb +0 -92
  122. data/lib/lithic/resources/aggregate_balances.rb +0 -38
  123. data/lib/lithic/resources/cards/aggregate_balances.rb +0 -41
  124. data/rbi/lithic/models/aggregate_balance.rbi +0 -164
  125. data/rbi/lithic/models/aggregate_balance_list_params.rbi +0 -104
  126. data/rbi/lithic/models/cards/aggregate_balance_list_params.rbi +0 -62
  127. data/rbi/lithic/models/cards/aggregate_balance_list_response.rbi +0 -115
  128. data/rbi/lithic/resources/aggregate_balances.rbi +0 -28
  129. data/rbi/lithic/resources/cards/aggregate_balances.rbi +0 -35
  130. data/sig/lithic/models/aggregate_balance.rbs +0 -78
  131. data/sig/lithic/models/aggregate_balance_list_params.rbs +0 -43
  132. data/sig/lithic/models/cards/aggregate_balance_list_params.rbs +0 -34
  133. data/sig/lithic/models/cards/aggregate_balance_list_response.rbs +0 -62
  134. data/sig/lithic/resources/aggregate_balances.rbs +0 -12
  135. data/sig/lithic/resources/cards/aggregate_balances.rbs +0 -15
@@ -21,8 +21,8 @@ module Lithic
21
21
  # Reach out at [lithic.com/contact](https://lithic.com/contact) for more
22
22
  # information.
23
23
  # - `SINGLE_USE` - Card is closed upon first successful authorization.
24
- # - `MERCHANT_LOCKED` - _[Deprecated]_ Card is locked to the first merchant that
25
- # successfully authorizes the card.
24
+ # - `MERCHANT_LOCKED` - Card is locked to the first merchant that successfully
25
+ # authorizes the card.
26
26
  # - `UNLOCKED` - _[Deprecated]_ Similar behavior to VIRTUAL cards, please use
27
27
  # VIRTUAL instead.
28
28
  # - `DIGITAL_WALLET` - _[Deprecated]_ Similar behavior to VIRTUAL cards, please
@@ -264,6 +264,12 @@ module Lithic
264
264
  sig { params(state: Lithic::CardCreateParams::State::OrSymbol).void }
265
265
  attr_writer :state
266
266
 
267
+ sig { returns(T.nilable(String)) }
268
+ attr_reader :idempotency_key
269
+
270
+ sig { params(idempotency_key: String).void }
271
+ attr_writer :idempotency_key
272
+
267
273
  sig do
268
274
  params(
269
275
  type: Lithic::CardCreateParams::Type::OrSymbol,
@@ -287,6 +293,7 @@ module Lithic
287
293
  spend_limit: Integer,
288
294
  spend_limit_duration: Lithic::SpendLimitDuration::OrSymbol,
289
295
  state: Lithic::CardCreateParams::State::OrSymbol,
296
+ idempotency_key: String,
290
297
  request_options: Lithic::RequestOptions::OrHash
291
298
  ).returns(T.attached_class)
292
299
  end
@@ -301,8 +308,8 @@ module Lithic
301
308
  # Reach out at [lithic.com/contact](https://lithic.com/contact) for more
302
309
  # information.
303
310
  # - `SINGLE_USE` - Card is closed upon first successful authorization.
304
- # - `MERCHANT_LOCKED` - _[Deprecated]_ Card is locked to the first merchant that
305
- # successfully authorizes the card.
311
+ # - `MERCHANT_LOCKED` - Card is locked to the first merchant that successfully
312
+ # authorizes the card.
306
313
  # - `UNLOCKED` - _[Deprecated]_ Similar behavior to VIRTUAL cards, please use
307
314
  # VIRTUAL instead.
308
315
  # - `DIGITAL_WALLET` - _[Deprecated]_ Similar behavior to VIRTUAL cards, please
@@ -430,6 +437,7 @@ module Lithic
430
437
  # - `PAUSED` - Card will decline authorizations, but can be resumed at a later
431
438
  # time.
432
439
  state: nil,
440
+ idempotency_key: nil,
433
441
  request_options: {}
434
442
  )
435
443
  end
@@ -458,6 +466,7 @@ module Lithic
458
466
  spend_limit: Integer,
459
467
  spend_limit_duration: Lithic::SpendLimitDuration::OrSymbol,
460
468
  state: Lithic::CardCreateParams::State::OrSymbol,
469
+ idempotency_key: String,
461
470
  request_options: Lithic::RequestOptions
462
471
  }
463
472
  )
@@ -475,8 +484,8 @@ module Lithic
475
484
  # Reach out at [lithic.com/contact](https://lithic.com/contact) for more
476
485
  # information.
477
486
  # - `SINGLE_USE` - Card is closed upon first successful authorization.
478
- # - `MERCHANT_LOCKED` - _[Deprecated]_ Card is locked to the first merchant that
479
- # successfully authorizes the card.
487
+ # - `MERCHANT_LOCKED` - Card is locked to the first merchant that successfully
488
+ # authorizes the card.
480
489
  # - `UNLOCKED` - _[Deprecated]_ Similar behavior to VIRTUAL cards, please use
481
490
  # VIRTUAL instead.
482
491
  # - `DIGITAL_WALLET` - _[Deprecated]_ Similar behavior to VIRTUAL cards, please
@@ -0,0 +1,61 @@
1
+ # typed: strong
2
+
3
+ module Lithic
4
+ module Models
5
+ class CardUpdatedWebhookEvent < Lithic::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Lithic::CardUpdatedWebhookEvent, Lithic::Internal::AnyHash)
9
+ end
10
+
11
+ # The token of the card that was updated.
12
+ sig { returns(String) }
13
+ attr_accessor :card_token
14
+
15
+ # The type of event that occurred.
16
+ sig { returns(Symbol) }
17
+ attr_accessor :event_type
18
+
19
+ # The previous values of the fields that were updated.
20
+ sig { returns(T.anything) }
21
+ attr_accessor :previous_fields
22
+
23
+ # The current state of the card.
24
+ sig { returns(String) }
25
+ attr_accessor :state
26
+
27
+ sig do
28
+ params(
29
+ card_token: String,
30
+ previous_fields: T.anything,
31
+ state: String,
32
+ event_type: Symbol
33
+ ).returns(T.attached_class)
34
+ end
35
+ def self.new(
36
+ # The token of the card that was updated.
37
+ card_token:,
38
+ # The previous values of the fields that were updated.
39
+ previous_fields:,
40
+ # The current state of the card.
41
+ state:,
42
+ # The type of event that occurred.
43
+ event_type: :"card.updated"
44
+ )
45
+ end
46
+
47
+ sig do
48
+ override.returns(
49
+ {
50
+ card_token: String,
51
+ event_type: Symbol,
52
+ previous_fields: T.anything,
53
+ state: String
54
+ }
55
+ )
56
+ end
57
+ def to_hash
58
+ end
59
+ end
60
+ end
61
+ end
@@ -25,9 +25,7 @@ module Lithic
25
25
  # JWS object required for handoff to Apple's script.
26
26
  sig do
27
27
  returns(
28
- T.nilable(
29
- Lithic::Models::CardWebProvisionResponse::AppleWebPushProvisioningResponse::Jws
30
- )
28
+ Lithic::Models::CardWebProvisionResponse::AppleWebPushProvisioningResponse::Jws
31
29
  )
32
30
  end
33
31
  attr_reader :jws
@@ -41,11 +39,8 @@ module Lithic
41
39
  attr_writer :jws
42
40
 
43
41
  # A unique identifier for the JWS object.
44
- sig { returns(T.nilable(String)) }
45
- attr_reader :state
46
-
47
- sig { params(state: String).void }
48
- attr_writer :state
42
+ sig { returns(String) }
43
+ attr_accessor :state
49
44
 
50
45
  sig do
51
46
  params(
@@ -56,9 +51,9 @@ module Lithic
56
51
  end
57
52
  def self.new(
58
53
  # JWS object required for handoff to Apple's script.
59
- jws: nil,
54
+ jws:,
60
55
  # A unique identifier for the JWS object.
61
- state: nil
56
+ state:
62
57
  )
63
58
  end
64
59
 
@@ -40,6 +40,7 @@ module Lithic
40
40
  # - card.reissued: Occurs when a card is reissued.
41
41
  # - card.renewed: Occurs when a card is renewed.
42
42
  # - card.shipped: Occurs when a card is shipped.
43
+ # - card.updated: Occurs when a card is updated.
43
44
  # - digital_wallet.tokenization_approval_request: Occurs when a tokenization
44
45
  # approval request is made. This event will be deprecated in the future. We
45
46
  # recommend using `tokenization.approval_request` instead.
@@ -162,6 +163,7 @@ module Lithic
162
163
  # - card.reissued: Occurs when a card is reissued.
163
164
  # - card.renewed: Occurs when a card is renewed.
164
165
  # - card.shipped: Occurs when a card is shipped.
166
+ # - card.updated: Occurs when a card is updated.
165
167
  # - digital_wallet.tokenization_approval_request: Occurs when a tokenization
166
168
  # approval request is made. This event will be deprecated in the future. We
167
169
  # recommend using `tokenization.approval_request` instead.
@@ -280,6 +282,7 @@ module Lithic
280
282
  # - card.reissued: Occurs when a card is reissued.
281
283
  # - card.renewed: Occurs when a card is renewed.
282
284
  # - card.shipped: Occurs when a card is shipped.
285
+ # - card.updated: Occurs when a card is updated.
283
286
  # - digital_wallet.tokenization_approval_request: Occurs when a tokenization
284
287
  # approval request is made. This event will be deprecated in the future. We
285
288
  # recommend using `tokenization.approval_request` instead.
@@ -423,6 +426,8 @@ module Lithic
423
426
  T.let(:"card.renewed", Lithic::Event::EventType::TaggedSymbol)
424
427
  CARD_SHIPPED =
425
428
  T.let(:"card.shipped", Lithic::Event::EventType::TaggedSymbol)
429
+ CARD_UPDATED =
430
+ T.let(:"card.updated", Lithic::Event::EventType::TaggedSymbol)
426
431
  DIGITAL_WALLET_TOKENIZATION_APPROVAL_REQUEST =
427
432
  T.let(
428
433
  :"digital_wallet.tokenization_approval_request",
@@ -149,6 +149,7 @@ module Lithic
149
149
  # - card.reissued: Occurs when a card is reissued.
150
150
  # - card.renewed: Occurs when a card is renewed.
151
151
  # - card.shipped: Occurs when a card is shipped.
152
+ # - card.updated: Occurs when a card is updated.
152
153
  # - digital_wallet.tokenization_approval_request: Occurs when a tokenization
153
154
  # approval request is made. This event will be deprecated in the future. We
154
155
  # recommend using `tokenization.approval_request` instead.
@@ -311,6 +312,11 @@ module Lithic
311
312
  :"card.shipped",
312
313
  Lithic::EventListParams::EventType::TaggedSymbol
313
314
  )
315
+ CARD_UPDATED =
316
+ T.let(
317
+ :"card.updated",
318
+ Lithic::EventListParams::EventType::TaggedSymbol
319
+ )
314
320
  DIGITAL_WALLET_TOKENIZATION_APPROVAL_REQUEST =
315
321
  T.let(
316
322
  :"digital_wallet.tokenization_approval_request",
@@ -97,6 +97,7 @@ module Lithic
97
97
  # - card.reissued: Occurs when a card is reissued.
98
98
  # - card.renewed: Occurs when a card is renewed.
99
99
  # - card.shipped: Occurs when a card is shipped.
100
+ # - card.updated: Occurs when a card is updated.
100
101
  # - digital_wallet.tokenization_approval_request: Occurs when a tokenization
101
102
  # approval request is made. This event will be deprecated in the future. We
102
103
  # recommend using `tokenization.approval_request` instead.
@@ -259,6 +260,11 @@ module Lithic
259
260
  :"card.shipped",
260
261
  Lithic::EventSubscription::EventType::TaggedSymbol
261
262
  )
263
+ CARD_UPDATED =
264
+ T.let(
265
+ :"card.updated",
266
+ Lithic::EventSubscription::EventType::TaggedSymbol
267
+ )
262
268
  DIGITAL_WALLET_TOKENIZATION_APPROVAL_REQUEST =
263
269
  T.let(
264
270
  :"digital_wallet.tokenization_approval_request",
@@ -124,6 +124,7 @@ module Lithic
124
124
  # - card.reissued: Occurs when a card is reissued.
125
125
  # - card.renewed: Occurs when a card is renewed.
126
126
  # - card.shipped: Occurs when a card is shipped.
127
+ # - card.updated: Occurs when a card is updated.
127
128
  # - digital_wallet.tokenization_approval_request: Occurs when a tokenization
128
129
  # approval request is made. This event will be deprecated in the future. We
129
130
  # recommend using `tokenization.approval_request` instead.
@@ -288,6 +289,11 @@ module Lithic
288
289
  :"card.shipped",
289
290
  Lithic::Events::SubscriptionCreateParams::EventType::TaggedSymbol
290
291
  )
292
+ CARD_UPDATED =
293
+ T.let(
294
+ :"card.updated",
295
+ Lithic::Events::SubscriptionCreateParams::EventType::TaggedSymbol
296
+ )
291
297
  DIGITAL_WALLET_TOKENIZATION_APPROVAL_REQUEST =
292
298
  T.let(
293
299
  :"digital_wallet.tokenization_approval_request",
@@ -152,6 +152,11 @@ module Lithic
152
152
  :"card.shipped",
153
153
  Lithic::Events::SubscriptionSendSimulatedExampleParams::EventType::TaggedSymbol
154
154
  )
155
+ CARD_UPDATED =
156
+ T.let(
157
+ :"card.updated",
158
+ Lithic::Events::SubscriptionSendSimulatedExampleParams::EventType::TaggedSymbol
159
+ )
155
160
  DIGITAL_WALLET_TOKENIZATION_APPROVAL_REQUEST =
156
161
  T.let(
157
162
  :"digital_wallet.tokenization_approval_request",
@@ -124,6 +124,7 @@ module Lithic
124
124
  # - card.reissued: Occurs when a card is reissued.
125
125
  # - card.renewed: Occurs when a card is renewed.
126
126
  # - card.shipped: Occurs when a card is shipped.
127
+ # - card.updated: Occurs when a card is updated.
127
128
  # - digital_wallet.tokenization_approval_request: Occurs when a tokenization
128
129
  # approval request is made. This event will be deprecated in the future. We
129
130
  # recommend using `tokenization.approval_request` instead.
@@ -288,6 +289,11 @@ module Lithic
288
289
  :"card.shipped",
289
290
  Lithic::Events::SubscriptionUpdateParams::EventType::TaggedSymbol
290
291
  )
292
+ CARD_UPDATED =
293
+ T.let(
294
+ :"card.updated",
295
+ Lithic::Events::SubscriptionUpdateParams::EventType::TaggedSymbol
296
+ )
291
297
  DIGITAL_WALLET_TOKENIZATION_APPROVAL_REQUEST =
292
298
  T.let(
293
299
  :"digital_wallet.tokenization_approval_request",
@@ -28,6 +28,8 @@ module Lithic
28
28
  end
29
29
  attr_accessor :payment_type
30
30
 
31
+ # Customer-provided token that will serve as an idempotency token. This token will
32
+ # become the transaction token.
31
33
  sig { returns(T.nilable(String)) }
32
34
  attr_reader :token
33
35
 
@@ -82,6 +84,8 @@ module Lithic
82
84
  effective_date:,
83
85
  financial_account_token:,
84
86
  payment_type:,
87
+ # Customer-provided token that will serve as an idempotency token. This token will
88
+ # become the transaction token.
85
89
  token: nil,
86
90
  memo: nil,
87
91
  progress_to: nil,
@@ -40,24 +40,28 @@ module Lithic
40
40
  sig { returns(Lithic::FinancialAccount::Status::TaggedSymbol) }
41
41
  attr_accessor :status
42
42
 
43
+ # Substatus for the financial account
44
+ sig do
45
+ returns(T.nilable(Lithic::FinancialAccount::Substatus::TaggedSymbol))
46
+ end
47
+ attr_accessor :substatus
48
+
43
49
  sig { returns(Lithic::FinancialAccount::Type::TaggedSymbol) }
44
50
  attr_accessor :type
45
51
 
46
52
  sig { returns(Time) }
47
53
  attr_accessor :updated
48
54
 
55
+ # User-defined status for the financial account
56
+ sig { returns(T.nilable(String)) }
57
+ attr_accessor :user_defined_status
58
+
49
59
  sig { returns(T.nilable(String)) }
50
60
  attr_accessor :account_number
51
61
 
52
62
  sig { returns(T.nilable(String)) }
53
63
  attr_accessor :routing_number
54
64
 
55
- # Substatus for the financial account
56
- sig do
57
- returns(T.nilable(Lithic::FinancialAccount::Substatus::TaggedSymbol))
58
- end
59
- attr_accessor :substatus
60
-
61
65
  sig do
62
66
  params(
63
67
  token: String,
@@ -68,11 +72,12 @@ module Lithic
68
72
  is_for_benefit_of: T::Boolean,
69
73
  nickname: T.nilable(String),
70
74
  status: Lithic::FinancialAccount::Status::OrSymbol,
75
+ substatus: T.nilable(Lithic::FinancialAccount::Substatus::OrSymbol),
71
76
  type: Lithic::FinancialAccount::Type::OrSymbol,
72
77
  updated: Time,
78
+ user_defined_status: T.nilable(String),
73
79
  account_number: T.nilable(String),
74
- routing_number: T.nilable(String),
75
- substatus: T.nilable(Lithic::FinancialAccount::Substatus::OrSymbol)
80
+ routing_number: T.nilable(String)
76
81
  ).returns(T.attached_class)
77
82
  end
78
83
  def self.new(
@@ -86,12 +91,14 @@ module Lithic
86
91
  nickname:,
87
92
  # Status of the financial account
88
93
  status:,
94
+ # Substatus for the financial account
95
+ substatus:,
89
96
  type:,
90
97
  updated:,
98
+ # User-defined status for the financial account
99
+ user_defined_status:,
91
100
  account_number: nil,
92
- routing_number: nil,
93
- # Substatus for the financial account
94
- substatus: nil
101
+ routing_number: nil
95
102
  )
96
103
  end
97
104
 
@@ -106,12 +113,13 @@ module Lithic
106
113
  is_for_benefit_of: T::Boolean,
107
114
  nickname: T.nilable(String),
108
115
  status: Lithic::FinancialAccount::Status::TaggedSymbol,
116
+ substatus:
117
+ T.nilable(Lithic::FinancialAccount::Substatus::TaggedSymbol),
109
118
  type: Lithic::FinancialAccount::Type::TaggedSymbol,
110
119
  updated: Time,
120
+ user_defined_status: T.nilable(String),
111
121
  account_number: T.nilable(String),
112
- routing_number: T.nilable(String),
113
- substatus:
114
- T.nilable(Lithic::FinancialAccount::Substatus::TaggedSymbol)
122
+ routing_number: T.nilable(String)
115
123
  }
116
124
  )
117
125
  end
@@ -254,6 +262,46 @@ module Lithic
254
262
  end
255
263
  end
256
264
 
265
+ # Substatus for the financial account
266
+ module Substatus
267
+ extend Lithic::Internal::Type::Enum
268
+
269
+ TaggedSymbol =
270
+ T.type_alias { T.all(Symbol, Lithic::FinancialAccount::Substatus) }
271
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
272
+
273
+ CHARGED_OFF_DELINQUENT =
274
+ T.let(
275
+ :CHARGED_OFF_DELINQUENT,
276
+ Lithic::FinancialAccount::Substatus::TaggedSymbol
277
+ )
278
+ CHARGED_OFF_FRAUD =
279
+ T.let(
280
+ :CHARGED_OFF_FRAUD,
281
+ Lithic::FinancialAccount::Substatus::TaggedSymbol
282
+ )
283
+ END_USER_REQUEST =
284
+ T.let(
285
+ :END_USER_REQUEST,
286
+ Lithic::FinancialAccount::Substatus::TaggedSymbol
287
+ )
288
+ BANK_REQUEST =
289
+ T.let(
290
+ :BANK_REQUEST,
291
+ Lithic::FinancialAccount::Substatus::TaggedSymbol
292
+ )
293
+ DELINQUENT =
294
+ T.let(:DELINQUENT, Lithic::FinancialAccount::Substatus::TaggedSymbol)
295
+
296
+ sig do
297
+ override.returns(
298
+ T::Array[Lithic::FinancialAccount::Substatus::TaggedSymbol]
299
+ )
300
+ end
301
+ def self.values
302
+ end
303
+ end
304
+
257
305
  module Type
258
306
  extend Lithic::Internal::Type::Enum
259
307
 
@@ -300,46 +348,6 @@ module Lithic
300
348
  def self.values
301
349
  end
302
350
  end
303
-
304
- # Substatus for the financial account
305
- module Substatus
306
- extend Lithic::Internal::Type::Enum
307
-
308
- TaggedSymbol =
309
- T.type_alias { T.all(Symbol, Lithic::FinancialAccount::Substatus) }
310
- OrSymbol = T.type_alias { T.any(Symbol, String) }
311
-
312
- CHARGED_OFF_DELINQUENT =
313
- T.let(
314
- :CHARGED_OFF_DELINQUENT,
315
- Lithic::FinancialAccount::Substatus::TaggedSymbol
316
- )
317
- CHARGED_OFF_FRAUD =
318
- T.let(
319
- :CHARGED_OFF_FRAUD,
320
- Lithic::FinancialAccount::Substatus::TaggedSymbol
321
- )
322
- END_USER_REQUEST =
323
- T.let(
324
- :END_USER_REQUEST,
325
- Lithic::FinancialAccount::Substatus::TaggedSymbol
326
- )
327
- BANK_REQUEST =
328
- T.let(
329
- :BANK_REQUEST,
330
- Lithic::FinancialAccount::Substatus::TaggedSymbol
331
- )
332
- DELINQUENT =
333
- T.let(:DELINQUENT, Lithic::FinancialAccount::Substatus::TaggedSymbol)
334
-
335
- sig do
336
- override.returns(
337
- T::Array[Lithic::FinancialAccount::Substatus::TaggedSymbol]
338
- )
339
- end
340
- def self.values
341
- end
342
- end
343
351
  end
344
352
  end
345
353
  end
@@ -30,6 +30,13 @@ module Lithic
30
30
  end
31
31
  attr_accessor :substatus
32
32
 
33
+ # User-defined status for the financial account
34
+ sig { returns(T.nilable(String)) }
35
+ attr_reader :user_defined_status
36
+
37
+ sig { params(user_defined_status: String).void }
38
+ attr_writer :user_defined_status
39
+
33
40
  sig do
34
41
  params(
35
42
  status: Lithic::FinancialAccountUpdateStatusParams::Status::OrSymbol,
@@ -37,6 +44,7 @@ module Lithic
37
44
  T.nilable(
38
45
  Lithic::FinancialAccountUpdateStatusParams::Substatus::OrSymbol
39
46
  ),
47
+ user_defined_status: String,
40
48
  request_options: Lithic::RequestOptions::OrHash
41
49
  ).returns(T.attached_class)
42
50
  end
@@ -45,6 +53,8 @@ module Lithic
45
53
  status:,
46
54
  # Substatus for the financial account
47
55
  substatus:,
56
+ # User-defined status for the financial account
57
+ user_defined_status: nil,
48
58
  request_options: {}
49
59
  )
50
60
  end
@@ -58,6 +68,7 @@ module Lithic
58
68
  T.nilable(
59
69
  Lithic::FinancialAccountUpdateStatusParams::Substatus::OrSymbol
60
70
  ),
71
+ user_defined_status: String,
61
72
  request_options: Lithic::RequestOptions
62
73
  }
63
74
  )
@@ -109,13 +109,13 @@ module Lithic
109
109
  end
110
110
  attr_writer :minimum_payment_balance
111
111
 
112
- sig { returns(Lithic::FinancialAccounts::CategoryBalances) }
112
+ sig { returns(Lithic::FinancialAccounts::LoanTape::PaymentAllocation) }
113
113
  attr_reader :payment_allocation
114
114
 
115
115
  sig do
116
116
  params(
117
117
  payment_allocation:
118
- Lithic::FinancialAccounts::CategoryBalances::OrHash
118
+ Lithic::FinancialAccounts::LoanTape::PaymentAllocation::OrHash
119
119
  ).void
120
120
  end
121
121
  attr_writer :payment_allocation
@@ -183,7 +183,7 @@ module Lithic
183
183
  minimum_payment_balance:
184
184
  Lithic::FinancialAccounts::LoanTape::MinimumPaymentBalance::OrHash,
185
185
  payment_allocation:
186
- Lithic::FinancialAccounts::CategoryBalances::OrHash,
186
+ Lithic::FinancialAccounts::LoanTape::PaymentAllocation::OrHash,
187
187
  period_totals: Lithic::StatementTotals::OrHash,
188
188
  previous_statement_balance:
189
189
  Lithic::FinancialAccounts::LoanTape::PreviousStatementBalance::OrHash,
@@ -257,7 +257,8 @@ module Lithic
257
257
  T.nilable(Lithic::FinancialAccounts::LoanTape::InterestDetails),
258
258
  minimum_payment_balance:
259
259
  Lithic::FinancialAccounts::LoanTape::MinimumPaymentBalance,
260
- payment_allocation: Lithic::FinancialAccounts::CategoryBalances,
260
+ payment_allocation:
261
+ Lithic::FinancialAccounts::LoanTape::PaymentAllocation,
261
262
  period_totals: Lithic::StatementTotals,
262
263
  previous_statement_balance:
263
264
  Lithic::FinancialAccounts::LoanTape::PreviousStatementBalance,
@@ -824,6 +825,94 @@ module Lithic
824
825
  end
825
826
  end
826
827
 
828
+ class PaymentAllocation < Lithic::Internal::Type::BaseModel
829
+ OrHash =
830
+ T.type_alias do
831
+ T.any(
832
+ Lithic::FinancialAccounts::LoanTape::PaymentAllocation,
833
+ Lithic::Internal::AnyHash
834
+ )
835
+ end
836
+
837
+ sig { returns(T.nilable(Lithic::CategoryDetails)) }
838
+ attr_reader :fee_details
839
+
840
+ sig do
841
+ params(fee_details: T.nilable(Lithic::CategoryDetails::OrHash)).void
842
+ end
843
+ attr_writer :fee_details
844
+
845
+ # Amount allocated to fees in cents
846
+ sig { returns(Integer) }
847
+ attr_accessor :fees
848
+
849
+ # Amount allocated to interest in cents
850
+ sig { returns(Integer) }
851
+ attr_accessor :interest
852
+
853
+ sig { returns(T.nilable(Lithic::CategoryDetails)) }
854
+ attr_reader :interest_details
855
+
856
+ sig do
857
+ params(
858
+ interest_details: T.nilable(Lithic::CategoryDetails::OrHash)
859
+ ).void
860
+ end
861
+ attr_writer :interest_details
862
+
863
+ # Amount allocated to principal in cents
864
+ sig { returns(Integer) }
865
+ attr_accessor :principal
866
+
867
+ sig { returns(T.nilable(Lithic::CategoryDetails)) }
868
+ attr_reader :principal_details
869
+
870
+ sig do
871
+ params(
872
+ principal_details: T.nilable(Lithic::CategoryDetails::OrHash)
873
+ ).void
874
+ end
875
+ attr_writer :principal_details
876
+
877
+ sig do
878
+ params(
879
+ fee_details: T.nilable(Lithic::CategoryDetails::OrHash),
880
+ fees: Integer,
881
+ interest: Integer,
882
+ interest_details: T.nilable(Lithic::CategoryDetails::OrHash),
883
+ principal: Integer,
884
+ principal_details: T.nilable(Lithic::CategoryDetails::OrHash)
885
+ ).returns(T.attached_class)
886
+ end
887
+ def self.new(
888
+ fee_details:,
889
+ # Amount allocated to fees in cents
890
+ fees:,
891
+ # Amount allocated to interest in cents
892
+ interest:,
893
+ interest_details:,
894
+ # Amount allocated to principal in cents
895
+ principal:,
896
+ principal_details:
897
+ )
898
+ end
899
+
900
+ sig do
901
+ override.returns(
902
+ {
903
+ fee_details: T.nilable(Lithic::CategoryDetails),
904
+ fees: Integer,
905
+ interest: Integer,
906
+ interest_details: T.nilable(Lithic::CategoryDetails),
907
+ principal: Integer,
908
+ principal_details: T.nilable(Lithic::CategoryDetails)
909
+ }
910
+ )
911
+ end
912
+ def to_hash
913
+ end
914
+ end
915
+
827
916
  class PreviousStatementBalance < Lithic::Internal::Type::BaseModel
828
917
  OrHash =
829
918
  T.type_alias do
@@ -41,8 +41,10 @@ module Lithic
41
41
  attr_accessor :events
42
42
 
43
43
  # Pending amount of the transaction in the currency's smallest unit (e.g., cents),
44
- # including any acquirer fees. The value of this field will go to zero over time
45
- # once the financial transaction is settled.
44
+ # including any acquirer fees.
45
+ #
46
+ # The value of this field will go to zero over time once the financial transaction
47
+ # is settled.
46
48
  sig { returns(Integer) }
47
49
  attr_accessor :pending_amount
48
50
 
@@ -109,8 +111,10 @@ module Lithic
109
111
  # A list of all financial events that have modified this financial transaction.
110
112
  events:,
111
113
  # Pending amount of the transaction in the currency's smallest unit (e.g., cents),
112
- # including any acquirer fees. The value of this field will go to zero over time
113
- # once the financial transaction is settled.
114
+ # including any acquirer fees.
115
+ #
116
+ # The value of this field will go to zero over time once the financial transaction
117
+ # is settled.
114
118
  pending_amount:,
115
119
  # APPROVED transactions were successful while DECLINED transactions were declined
116
120
  # by user, Lithic, or the network.