lithic 0.18.1 → 0.20.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 (174) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +66 -0
  3. data/README.md +1 -1
  4. data/lib/lithic/client.rb +4 -0
  5. data/lib/lithic/models/account_activity_list_params.rb +2 -0
  6. data/lib/lithic/models/account_activity_list_response.rb +2 -0
  7. data/lib/lithic/models/account_activity_retrieve_transaction_response.rb +2 -0
  8. data/lib/lithic/models/auth_rules/ach_payment_update_action.rb +1 -0
  9. data/lib/lithic/models/auth_rules/card_transaction_update_action.rb +1 -0
  10. data/lib/lithic/models/auth_rules/conditional_ach_action_parameters.rb +3 -0
  11. data/lib/lithic/models/auth_rules/v2_list_results_response.rb +2 -0
  12. data/lib/lithic/models/auth_rules/velocity_limit_params.rb +24 -1
  13. data/lib/lithic/models/auth_rules/velocity_limit_period.rb +1 -1
  14. data/lib/lithic/models/blockchain_recipient.rb +148 -0
  15. data/lib/lithic/models/blockchain_recipient_create_params.rb +74 -0
  16. data/lib/lithic/models/book_transfer_create_params.rb +4 -0
  17. data/lib/lithic/models/book_transfer_list_params.rb +1 -0
  18. data/lib/lithic/models/book_transfer_response.rb +4 -0
  19. data/lib/lithic/models/card.rb +2 -2
  20. data/lib/lithic/models/card_provision_params.rb +10 -8
  21. data/lib/lithic/models/card_reassign_account_params.rb +29 -0
  22. data/lib/lithic/models/dispute_v2.rb +178 -130
  23. data/lib/lithic/models/disputes_v2_list_params.rb +10 -1
  24. data/lib/lithic/models/embed_session_generated_webhook_event.rb +83 -0
  25. data/lib/lithic/models/embed_viewed_webhook_event.rb +85 -0
  26. data/lib/lithic/models/event.rb +44 -12
  27. data/lib/lithic/models/event_list_params.rb +23 -6
  28. data/lib/lithic/models/event_subscription.rb +23 -6
  29. data/lib/lithic/models/events/subscription_create_params.rb +23 -6
  30. data/lib/lithic/models/events/subscription_send_simulated_example_params.rb +2 -0
  31. data/lib/lithic/models/events/subscription_update_params.rb +23 -6
  32. data/lib/lithic/models/external_payment_list_params.rb +3 -3
  33. data/lib/lithic/models/financial_account.rb +14 -1
  34. data/lib/lithic/models/financial_accounts/balance_list_params.rb +4 -3
  35. data/lib/lithic/models/financial_accounts/statements/statement_line_items.rb +10 -0
  36. data/lib/lithic/models/financial_event.rb +8 -0
  37. data/lib/lithic/models/fraud/transaction_report_response.rb +8 -8
  38. data/lib/lithic/models/fraud/transaction_retrieve_response.rb +10 -8
  39. data/lib/lithic/models/parsed_webhook_event.rb +5 -1
  40. data/lib/lithic/models/payment.rb +91 -6
  41. data/lib/lithic/models/payment_list_params.rb +1 -0
  42. data/lib/lithic/models/tokenization_simulate_params.rb +2 -2
  43. data/lib/lithic/models/transaction_monitoring/case_entity.rb +13 -4
  44. data/lib/lithic/models/transaction_monitoring/case_list_params.rb +4 -2
  45. data/lib/lithic/models/transaction_monitoring/case_update_params.rb +5 -11
  46. data/lib/lithic/models/transaction_monitoring/monitoring_case.rb +5 -11
  47. data/lib/lithic/models/transaction_monitoring/queue.rb +10 -1
  48. data/lib/lithic/models/transaction_monitoring/queue_create_params.rb +14 -1
  49. data/lib/lithic/models/transaction_monitoring/queue_update_params.rb +15 -1
  50. data/lib/lithic/models/transaction_simulate_clearing_params.rb +4 -3
  51. data/lib/lithic/models.rb +10 -0
  52. data/lib/lithic/resources/blockchain_recipients.rb +57 -0
  53. data/lib/lithic/resources/card_authorizations.rb +1 -1
  54. data/lib/lithic/resources/cards.rb +34 -2
  55. data/lib/lithic/resources/disputes_v2.rb +3 -1
  56. data/lib/lithic/resources/external_payments.rb +1 -1
  57. data/lib/lithic/resources/three_ds/decisioning.rb +1 -1
  58. data/lib/lithic/resources/tokenizations.rb +1 -1
  59. data/lib/lithic/resources/transaction_monitoring/cases.rb +2 -2
  60. data/lib/lithic/resources/transaction_monitoring/queues.rb +12 -2
  61. data/lib/lithic/resources/transactions.rb +4 -3
  62. data/lib/lithic/resources/webhooks.rb +1 -1
  63. data/lib/lithic/version.rb +1 -1
  64. data/lib/lithic.rb +6 -1
  65. data/rbi/lithic/client.rbi +3 -0
  66. data/rbi/lithic/models/account_activity_list_params.rbi +10 -0
  67. data/rbi/lithic/models/account_activity_list_response.rbi +10 -0
  68. data/rbi/lithic/models/account_activity_retrieve_transaction_response.rbi +10 -0
  69. data/rbi/lithic/models/auth_rules/ach_payment_update_action.rbi +5 -0
  70. data/rbi/lithic/models/auth_rules/card_transaction_update_action.rbi +5 -0
  71. data/rbi/lithic/models/auth_rules/conditional_ach_action_parameters.rbi +8 -0
  72. data/rbi/lithic/models/auth_rules/v2_list_results_response.rbi +10 -0
  73. data/rbi/lithic/models/auth_rules/velocity_limit_params.rbi +30 -0
  74. data/rbi/lithic/models/auth_rules/velocity_limit_period.rbi +2 -2
  75. data/rbi/lithic/models/blockchain_recipient.rbi +209 -0
  76. data/rbi/lithic/models/blockchain_recipient_create_params.rbi +102 -0
  77. data/rbi/lithic/models/book_transfer_create_params.rbi +20 -0
  78. data/rbi/lithic/models/book_transfer_list_params.rbi +5 -0
  79. data/rbi/lithic/models/book_transfer_response.rbi +20 -0
  80. data/rbi/lithic/models/card.rbi +2 -2
  81. data/rbi/lithic/models/card_provision_params.rbi +16 -12
  82. data/rbi/lithic/models/card_reassign_account_params.rbi +49 -0
  83. data/rbi/lithic/models/dispute_v2.rbi +285 -181
  84. data/rbi/lithic/models/disputes_v2_list_params.rbi +13 -0
  85. data/rbi/lithic/models/embed_session_generated_webhook_event.rbi +157 -0
  86. data/rbi/lithic/models/embed_viewed_webhook_event.rbi +146 -0
  87. data/rbi/lithic/models/event.rbi +70 -18
  88. data/rbi/lithic/models/event_list_params.rbi +31 -6
  89. data/rbi/lithic/models/event_subscription.rbi +31 -6
  90. data/rbi/lithic/models/events/subscription_create_params.rbi +31 -6
  91. data/rbi/lithic/models/events/subscription_send_simulated_example_params.rbi +10 -0
  92. data/rbi/lithic/models/events/subscription_update_params.rbi +31 -6
  93. data/rbi/lithic/models/external_payment_list_params.rbi +3 -3
  94. data/rbi/lithic/models/financial_account.rbi +12 -0
  95. data/rbi/lithic/models/financial_accounts/balance_list_params.rbi +8 -6
  96. data/rbi/lithic/models/financial_accounts/statements/statement_line_items.rbi +50 -0
  97. data/rbi/lithic/models/financial_event.rbi +34 -0
  98. data/rbi/lithic/models/fraud/transaction_report_response.rbi +16 -29
  99. data/rbi/lithic/models/fraud/transaction_retrieve_response.rbi +16 -29
  100. data/rbi/lithic/models/parsed_webhook_event.rbi +2 -0
  101. data/rbi/lithic/models/payment.rbi +147 -4
  102. data/rbi/lithic/models/payment_list_params.rbi +2 -0
  103. data/rbi/lithic/models/tokenization_simulate_params.rbi +2 -2
  104. data/rbi/lithic/models/transaction_monitoring/case_entity.rbi +27 -5
  105. data/rbi/lithic/models/transaction_monitoring/case_list_params.rbi +6 -2
  106. data/rbi/lithic/models/transaction_monitoring/case_update_params.rbi +8 -33
  107. data/rbi/lithic/models/transaction_monitoring/monitoring_case.rbi +7 -31
  108. data/rbi/lithic/models/transaction_monitoring/queue.rbi +10 -0
  109. data/rbi/lithic/models/transaction_monitoring/queue_create_params.rbi +12 -0
  110. data/rbi/lithic/models/transaction_monitoring/queue_update_params.rbi +14 -0
  111. data/rbi/lithic/models/transaction_simulate_clearing_params.rbi +8 -6
  112. data/rbi/lithic/models.rbi +12 -0
  113. data/rbi/lithic/resources/blockchain_recipients.rbi +51 -0
  114. data/rbi/lithic/resources/card_authorizations.rbi +1 -1
  115. data/rbi/lithic/resources/cards.rbi +30 -6
  116. data/rbi/lithic/resources/disputes_v2.rbi +4 -0
  117. data/rbi/lithic/resources/external_payments.rbi +1 -1
  118. data/rbi/lithic/resources/financial_accounts/balances.rbi +4 -3
  119. data/rbi/lithic/resources/three_ds/decisioning.rbi +1 -1
  120. data/rbi/lithic/resources/tokenizations.rbi +1 -1
  121. data/rbi/lithic/resources/transaction_monitoring/cases.rbi +6 -11
  122. data/rbi/lithic/resources/transaction_monitoring/queues.rbi +11 -0
  123. data/rbi/lithic/resources/transactions.rbi +8 -6
  124. data/rbi/lithic/resources/webhooks.rbi +2 -0
  125. data/sig/lithic/client.rbs +2 -0
  126. data/sig/lithic/models/account_activity_list_params.rbs +4 -0
  127. data/sig/lithic/models/account_activity_list_response.rbs +4 -0
  128. data/sig/lithic/models/account_activity_retrieve_transaction_response.rbs +4 -0
  129. data/sig/lithic/models/auth_rules/ach_payment_update_action.rbs +2 -1
  130. data/sig/lithic/models/auth_rules/card_transaction_update_action.rbs +2 -1
  131. data/sig/lithic/models/auth_rules/conditional_ach_action_parameters.rbs +2 -0
  132. data/sig/lithic/models/auth_rules/v2_list_results_response.rbs +4 -2
  133. data/sig/lithic/models/auth_rules/velocity_limit_params.rbs +10 -0
  134. data/sig/lithic/models/blockchain_recipient.rbs +106 -0
  135. data/sig/lithic/models/blockchain_recipient_create_params.rbs +60 -0
  136. data/sig/lithic/models/book_transfer_create_params.rbs +8 -0
  137. data/sig/lithic/models/book_transfer_list_params.rbs +2 -0
  138. data/sig/lithic/models/book_transfer_response.rbs +8 -0
  139. data/sig/lithic/models/card_reassign_account_params.rbs +28 -0
  140. data/sig/lithic/models/dispute_v2.rbs +145 -101
  141. data/sig/lithic/models/disputes_v2_list_params.rbs +7 -0
  142. data/sig/lithic/models/embed_session_generated_webhook_event.rbs +66 -0
  143. data/sig/lithic/models/embed_viewed_webhook_event.rbs +68 -0
  144. data/sig/lithic/models/event.rbs +4 -0
  145. data/sig/lithic/models/event_list_params.rbs +4 -0
  146. data/sig/lithic/models/event_subscription.rbs +4 -0
  147. data/sig/lithic/models/events/subscription_create_params.rbs +4 -0
  148. data/sig/lithic/models/events/subscription_send_simulated_example_params.rbs +4 -0
  149. data/sig/lithic/models/events/subscription_update_params.rbs +4 -0
  150. data/sig/lithic/models/financial_account.rbs +5 -0
  151. data/sig/lithic/models/financial_accounts/statements/statement_line_items.rbs +20 -0
  152. data/sig/lithic/models/financial_event.rbs +16 -0
  153. data/sig/lithic/models/fraud/transaction_report_response.rbs +16 -26
  154. data/sig/lithic/models/fraud/transaction_retrieve_response.rbs +16 -26
  155. data/sig/lithic/models/parsed_webhook_event.rbs +2 -0
  156. data/sig/lithic/models/payment.rbs +46 -1
  157. data/sig/lithic/models/payment_list_params.rbs +2 -1
  158. data/sig/lithic/models/transaction_monitoring/case_entity.rbs +7 -5
  159. data/sig/lithic/models/transaction_monitoring/case_update_params.rbs +5 -7
  160. data/sig/lithic/models/transaction_monitoring/monitoring_case.rbs +4 -4
  161. data/sig/lithic/models/transaction_monitoring/queue.rbs +5 -0
  162. data/sig/lithic/models/transaction_monitoring/queue_create_params.rbs +9 -1
  163. data/sig/lithic/models/transaction_monitoring/queue_update_params.rbs +10 -1
  164. data/sig/lithic/models.rbs +10 -0
  165. data/sig/lithic/resources/blockchain_recipients.rbs +18 -0
  166. data/sig/lithic/resources/cards.rbs +6 -0
  167. data/sig/lithic/resources/disputes_v2.rbs +1 -0
  168. data/sig/lithic/resources/transaction_monitoring/cases.rbs +1 -1
  169. data/sig/lithic/resources/transaction_monitoring/queues.rbs +2 -0
  170. data/sig/lithic/resources/webhooks.rbs +2 -0
  171. metadata +20 -5
  172. data/lib/lithic/models/transaction_monitoring/resolution_outcome.rb +0 -28
  173. data/rbi/lithic/models/transaction_monitoring/resolution_outcome.rbi +0 -61
  174. data/sig/lithic/models/transaction_monitoring/resolution_outcome.rbs +0 -24
@@ -82,6 +82,10 @@ module Lithic
82
82
  sig { returns(Time) }
83
83
  attr_accessor :updated
84
84
 
85
+ # Token of the blockchain recipient the payout is sent to
86
+ sig { returns(T.nilable(String)) }
87
+ attr_accessor :blockchain_recipient_token
88
+
85
89
  # Currency of the transaction in ISO 4217 format
86
90
  sig { returns(T.nilable(String)) }
87
91
  attr_reader :currency
@@ -129,7 +133,8 @@ module Lithic
129
133
  method_attributes:
130
134
  T.any(
131
135
  Lithic::Payment::MethodAttributes::ACHMethodAttributes::OrHash,
132
- Lithic::Payment::MethodAttributes::WireMethodAttributes::OrHash
136
+ Lithic::Payment::MethodAttributes::WireMethodAttributes::OrHash,
137
+ Lithic::Payment::MethodAttributes::StablecoinMethodAttributes::OrHash
133
138
  ),
134
139
  pending_amount: Integer,
135
140
  related_account_tokens:
@@ -139,6 +144,7 @@ module Lithic
139
144
  source: Lithic::Payment::Source::OrSymbol,
140
145
  status: Lithic::Payment::Status::OrSymbol,
141
146
  updated: Time,
147
+ blockchain_recipient_token: T.nilable(String),
142
148
  currency: String,
143
149
  expected_release_date: T.nilable(Date),
144
150
  external_bank_account_token: T.nilable(String),
@@ -181,6 +187,8 @@ module Lithic
181
187
  status:,
182
188
  # ISO 8601 timestamp of when the transaction was last updated
183
189
  updated:,
190
+ # Token of the blockchain recipient the payout is sent to
191
+ blockchain_recipient_token: nil,
184
192
  # Currency of the transaction in ISO 4217 format
185
193
  currency: nil,
186
194
  # Expected release date for the transaction
@@ -219,6 +227,7 @@ module Lithic
219
227
  source: Lithic::Payment::Source::TaggedSymbol,
220
228
  status: Lithic::Payment::Status::TaggedSymbol,
221
229
  updated: Time,
230
+ blockchain_recipient_token: T.nilable(String),
222
231
  currency: String,
223
232
  expected_release_date: T.nilable(Date),
224
233
  external_bank_account_token: T.nilable(String),
@@ -240,6 +249,7 @@ module Lithic
240
249
 
241
250
  ACH = T.let(:ACH, Lithic::Payment::Category::TaggedSymbol)
242
251
  WIRE = T.let(:WIRE, Lithic::Payment::Category::TaggedSymbol)
252
+ STABLECOIN = T.let(:STABLECOIN, Lithic::Payment::Category::TaggedSymbol)
243
253
  BALANCE_OR_FUNDING =
244
254
  T.let(:BALANCE_OR_FUNDING, Lithic::Payment::Category::TaggedSymbol)
245
255
  FEE = T.let(:FEE, Lithic::Payment::Category::TaggedSymbol)
@@ -277,6 +287,8 @@ module Lithic
277
287
  HOLD = T.let(:HOLD, Lithic::Payment::Category::TaggedSymbol)
278
288
  PROGRAM_FUNDING =
279
289
  T.let(:PROGRAM_FUNDING, Lithic::Payment::Category::TaggedSymbol)
290
+ PROGRAM_TRANSFER =
291
+ T.let(:PROGRAM_TRANSFER, Lithic::Payment::Category::TaggedSymbol)
280
292
 
281
293
  sig do
282
294
  override.returns(T::Array[Lithic::Payment::Category::TaggedSymbol])
@@ -379,6 +391,21 @@ module Lithic
379
391
  # Reserve and funds returned to sender.
380
392
  # - `WIRE_RETURN_OUTBOUND_REJECTED` - Outbound wire return rejected by the Federal
381
393
  # Reserve.
394
+ #
395
+ # Stablecoin events:
396
+ #
397
+ # - `STABLECOIN_RECEIVED` - Stablecoin pay-in received on-chain and pending
398
+ # release to available balance.
399
+ # - `STABLECOIN_INITIATED` - Stablecoin withdrawal initiated, with the funds
400
+ # placed on hold.
401
+ # - `STABLECOIN_REVIEWED` - Stablecoin pay-in or withdrawal has completed the
402
+ # review process.
403
+ # - `STABLECOIN_SENT` - Stablecoin withdrawal accepted for on-chain submission to
404
+ # the destination address, and pending confirmation.
405
+ # - `STABLECOIN_SETTLED` - Stablecoin pay-in funds released to available balance,
406
+ # or stablecoin withdrawal confirmed on-chain.
407
+ # - `STABLECOIN_REJECTED` - Stablecoin withdrawal failed and the hold placed at
408
+ # initiation has been reversed.
382
409
  sig { returns(Lithic::Payment::Event::Type::TaggedSymbol) }
383
410
  attr_accessor :type
384
411
 
@@ -402,7 +429,9 @@ module Lithic
402
429
 
403
430
  # Payment event external ID. For ACH transactions, this is the ACH trace number.
404
431
  # For inbound wire transfers, this is the IMAD (Input Message Accountability
405
- # Data).
432
+ # Data). For stablecoin payments, this is the on-chain transaction hash of the
433
+ # transfer; it is present on events that reflect on-chain activity and null on
434
+ # internal lifecycle events.
406
435
  sig { returns(T.nilable(String)) }
407
436
  attr_accessor :external_id
408
437
 
@@ -486,12 +515,29 @@ module Lithic
486
515
  # Reserve and funds returned to sender.
487
516
  # - `WIRE_RETURN_OUTBOUND_REJECTED` - Outbound wire return rejected by the Federal
488
517
  # Reserve.
518
+ #
519
+ # Stablecoin events:
520
+ #
521
+ # - `STABLECOIN_RECEIVED` - Stablecoin pay-in received on-chain and pending
522
+ # release to available balance.
523
+ # - `STABLECOIN_INITIATED` - Stablecoin withdrawal initiated, with the funds
524
+ # placed on hold.
525
+ # - `STABLECOIN_REVIEWED` - Stablecoin pay-in or withdrawal has completed the
526
+ # review process.
527
+ # - `STABLECOIN_SENT` - Stablecoin withdrawal accepted for on-chain submission to
528
+ # the destination address, and pending confirmation.
529
+ # - `STABLECOIN_SETTLED` - Stablecoin pay-in funds released to available balance,
530
+ # or stablecoin withdrawal confirmed on-chain.
531
+ # - `STABLECOIN_REJECTED` - Stablecoin withdrawal failed and the hold placed at
532
+ # initiation has been reversed.
489
533
  type:,
490
534
  # More detailed reasons for the event
491
535
  detailed_results: nil,
492
536
  # Payment event external ID. For ACH transactions, this is the ACH trace number.
493
537
  # For inbound wire transfers, this is the IMAD (Input Message Accountability
494
- # Data).
538
+ # Data). For stablecoin payments, this is the on-chain transaction hash of the
539
+ # transfer; it is present on events that reflect on-chain activity and null on
540
+ # internal lifecycle events.
495
541
  external_id: nil
496
542
  )
497
543
  end
@@ -588,6 +634,21 @@ module Lithic
588
634
  # Reserve and funds returned to sender.
589
635
  # - `WIRE_RETURN_OUTBOUND_REJECTED` - Outbound wire return rejected by the Federal
590
636
  # Reserve.
637
+ #
638
+ # Stablecoin events:
639
+ #
640
+ # - `STABLECOIN_RECEIVED` - Stablecoin pay-in received on-chain and pending
641
+ # release to available balance.
642
+ # - `STABLECOIN_INITIATED` - Stablecoin withdrawal initiated, with the funds
643
+ # placed on hold.
644
+ # - `STABLECOIN_REVIEWED` - Stablecoin pay-in or withdrawal has completed the
645
+ # review process.
646
+ # - `STABLECOIN_SENT` - Stablecoin withdrawal accepted for on-chain submission to
647
+ # the destination address, and pending confirmation.
648
+ # - `STABLECOIN_SETTLED` - Stablecoin pay-in funds released to available balance,
649
+ # or stablecoin withdrawal confirmed on-chain.
650
+ # - `STABLECOIN_REJECTED` - Stablecoin withdrawal failed and the hold placed at
651
+ # initiation has been reversed.
591
652
  module Type
592
653
  extend Lithic::Internal::Type::Enum
593
654
 
@@ -705,6 +766,33 @@ module Lithic
705
766
  :WIRE_RETURN_OUTBOUND_REJECTED,
706
767
  Lithic::Payment::Event::Type::TaggedSymbol
707
768
  )
769
+ STABLECOIN_RECEIVED =
770
+ T.let(
771
+ :STABLECOIN_RECEIVED,
772
+ Lithic::Payment::Event::Type::TaggedSymbol
773
+ )
774
+ STABLECOIN_INITIATED =
775
+ T.let(
776
+ :STABLECOIN_INITIATED,
777
+ Lithic::Payment::Event::Type::TaggedSymbol
778
+ )
779
+ STABLECOIN_REVIEWED =
780
+ T.let(
781
+ :STABLECOIN_REVIEWED,
782
+ Lithic::Payment::Event::Type::TaggedSymbol
783
+ )
784
+ STABLECOIN_SENT =
785
+ T.let(:STABLECOIN_SENT, Lithic::Payment::Event::Type::TaggedSymbol)
786
+ STABLECOIN_SETTLED =
787
+ T.let(
788
+ :STABLECOIN_SETTLED,
789
+ Lithic::Payment::Event::Type::TaggedSymbol
790
+ )
791
+ STABLECOIN_REJECTED =
792
+ T.let(
793
+ :STABLECOIN_REJECTED,
794
+ Lithic::Payment::Event::Type::TaggedSymbol
795
+ )
708
796
 
709
797
  sig do
710
798
  override.returns(
@@ -782,6 +870,7 @@ module Lithic
782
870
  ACH_SAME_DAY =
783
871
  T.let(:ACH_SAME_DAY, Lithic::Payment::Method::TaggedSymbol)
784
872
  WIRE = T.let(:WIRE, Lithic::Payment::Method::TaggedSymbol)
873
+ STABLECOIN = T.let(:STABLECOIN, Lithic::Payment::Method::TaggedSymbol)
785
874
 
786
875
  sig do
787
876
  override.returns(T::Array[Lithic::Payment::Method::TaggedSymbol])
@@ -798,7 +887,8 @@ module Lithic
798
887
  T.type_alias do
799
888
  T.any(
800
889
  Lithic::Payment::MethodAttributes::ACHMethodAttributes,
801
- Lithic::Payment::MethodAttributes::WireMethodAttributes
890
+ Lithic::Payment::MethodAttributes::WireMethodAttributes,
891
+ Lithic::Payment::MethodAttributes::StablecoinMethodAttributes
802
892
  )
803
893
  end
804
894
 
@@ -840,6 +930,10 @@ module Lithic
840
930
  sig { returns(T.nilable(String)) }
841
931
  attr_accessor :receipt_routing_number
842
932
 
933
+ # Name of the recipient on ACH receipts. Reflects the originating bank's record
934
+ sig { returns(T.nilable(String)) }
935
+ attr_accessor :recipient_name
936
+
843
937
  # Number of retries attempted
844
938
  sig { returns(T.nilable(Integer)) }
845
939
  attr_accessor :retries
@@ -864,6 +958,7 @@ module Lithic
864
958
  company_id: T.nilable(String),
865
959
  override_company_name: T.nilable(String),
866
960
  receipt_routing_number: T.nilable(String),
961
+ recipient_name: T.nilable(String),
867
962
  retries: T.nilable(Integer),
868
963
  return_reason_code: T.nilable(String),
869
964
  trace_numbers: T::Array[String]
@@ -883,6 +978,8 @@ module Lithic
883
978
  override_company_name: nil,
884
979
  # Receipt routing number
885
980
  receipt_routing_number: nil,
981
+ # Name of the recipient on ACH receipts. Reflects the originating bank's record
982
+ recipient_name: nil,
886
983
  # Number of retries attempted
887
984
  retries: nil,
888
985
  # Return reason code if the transaction was returned
@@ -902,6 +999,7 @@ module Lithic
902
999
  company_id: T.nilable(String),
903
1000
  override_company_name: T.nilable(String),
904
1001
  receipt_routing_number: T.nilable(String),
1002
+ recipient_name: T.nilable(String),
905
1003
  retries: T.nilable(Integer),
906
1004
  return_reason_code: T.nilable(String),
907
1005
  trace_numbers: T::Array[String]
@@ -1087,6 +1185,47 @@ module Lithic
1087
1185
  end
1088
1186
  end
1089
1187
 
1188
+ class StablecoinMethodAttributes < Lithic::Internal::Type::BaseModel
1189
+ OrHash =
1190
+ T.type_alias do
1191
+ T.any(
1192
+ Lithic::Payment::MethodAttributes::StablecoinMethodAttributes,
1193
+ Lithic::Internal::AnyHash
1194
+ )
1195
+ end
1196
+
1197
+ # Blockchain the stablecoin transfer settled on
1198
+ sig { returns(String) }
1199
+ attr_accessor :chain
1200
+
1201
+ # On-chain transaction hash of the transfer. Null until the transfer has settled
1202
+ # on chain
1203
+ sig { returns(T.nilable(String)) }
1204
+ attr_accessor :transaction_hash
1205
+
1206
+ sig do
1207
+ params(chain: String, transaction_hash: T.nilable(String)).returns(
1208
+ T.attached_class
1209
+ )
1210
+ end
1211
+ def self.new(
1212
+ # Blockchain the stablecoin transfer settled on
1213
+ chain:,
1214
+ # On-chain transaction hash of the transfer. Null until the transfer has settled
1215
+ # on chain
1216
+ transaction_hash: nil
1217
+ )
1218
+ end
1219
+
1220
+ sig do
1221
+ override.returns(
1222
+ { chain: String, transaction_hash: T.nilable(String) }
1223
+ )
1224
+ end
1225
+ def to_hash
1226
+ end
1227
+ end
1228
+
1090
1229
  sig do
1091
1230
  override.returns(
1092
1231
  T::Array[Lithic::Payment::MethodAttributes::Variants]
@@ -1223,6 +1362,10 @@ module Lithic
1223
1362
  :WIRE_INBOUND_DRAWDOWN_REQUEST,
1224
1363
  Lithic::Payment::Type::TaggedSymbol
1225
1364
  )
1365
+ STABLECOIN_INBOUND =
1366
+ T.let(:STABLECOIN_INBOUND, Lithic::Payment::Type::TaggedSymbol)
1367
+ STABLECOIN_OUTBOUND =
1368
+ T.let(:STABLECOIN_OUTBOUND, Lithic::Payment::Type::TaggedSymbol)
1226
1369
 
1227
1370
  sig { override.returns(T::Array[Lithic::Payment::Type::TaggedSymbol]) }
1228
1371
  def self.values
@@ -202,6 +202,8 @@ module Lithic
202
202
  T.let(:PENDING, Lithic::PaymentListParams::Status::TaggedSymbol)
203
203
  RETURNED =
204
204
  T.let(:RETURNED, Lithic::PaymentListParams::Status::TaggedSymbol)
205
+ REVERSED =
206
+ T.let(:REVERSED, Lithic::PaymentListParams::Status::TaggedSymbol)
205
207
  SETTLED =
206
208
  T.let(:SETTLED, Lithic::PaymentListParams::Status::TaggedSymbol)
207
209
 
@@ -11,7 +11,7 @@ module Lithic
11
11
  T.any(Lithic::TokenizationSimulateParams, Lithic::Internal::AnyHash)
12
12
  end
13
13
 
14
- # The three digit cvv for the card.
14
+ # The three or four digit CVV for the card. AMEX cards use four digit CVVs.
15
15
  sig { returns(String) }
16
16
  attr_accessor :cvv
17
17
 
@@ -89,7 +89,7 @@ module Lithic
89
89
  ).returns(T.attached_class)
90
90
  end
91
91
  def self.new(
92
- # The three digit cvv for the card.
92
+ # The three or four digit CVV for the card. AMEX cards use four digit CVVs.
93
93
  cvv:,
94
94
  # The expiration date of the card in 'MM/YY' format.
95
95
  expiration_date:,
@@ -12,14 +12,19 @@ module Lithic
12
12
  )
13
13
  end
14
14
 
15
- # Globally unique identifier for the associated entity
16
- sig { returns(String) }
15
+ # Globally unique identifier for the associated entity: the card token for `CARD`,
16
+ # the account token for `ACCOUNT`, and the financial account token for
17
+ # `FINANCIAL_ACCOUNT`. Null for `PROGRAM`, which is not scoped to an individual
18
+ # entity
19
+ sig { returns(T.nilable(String)) }
17
20
  attr_accessor :entity_token
18
21
 
19
22
  # The type of entity a case is associated with:
20
23
  #
21
24
  # - `CARD` - The case is associated with a card
22
25
  # - `ACCOUNT` - The case is associated with an account
26
+ # - `FINANCIAL_ACCOUNT` - The case is associated with a financial account
27
+ # - `PROGRAM` - The case is associated with the whole program
23
28
  sig do
24
29
  returns(
25
30
  Lithic::TransactionMonitoring::CaseEntity::EntityType::TaggedSymbol
@@ -30,18 +35,23 @@ module Lithic
30
35
  # The entity a case is associated with
31
36
  sig do
32
37
  params(
33
- entity_token: String,
38
+ entity_token: T.nilable(String),
34
39
  entity_type:
35
40
  Lithic::TransactionMonitoring::CaseEntity::EntityType::OrSymbol
36
41
  ).returns(T.attached_class)
37
42
  end
38
43
  def self.new(
39
- # Globally unique identifier for the associated entity
44
+ # Globally unique identifier for the associated entity: the card token for `CARD`,
45
+ # the account token for `ACCOUNT`, and the financial account token for
46
+ # `FINANCIAL_ACCOUNT`. Null for `PROGRAM`, which is not scoped to an individual
47
+ # entity
40
48
  entity_token:,
41
49
  # The type of entity a case is associated with:
42
50
  #
43
51
  # - `CARD` - The case is associated with a card
44
52
  # - `ACCOUNT` - The case is associated with an account
53
+ # - `FINANCIAL_ACCOUNT` - The case is associated with a financial account
54
+ # - `PROGRAM` - The case is associated with the whole program
45
55
  entity_type:
46
56
  )
47
57
  end
@@ -49,7 +59,7 @@ module Lithic
49
59
  sig do
50
60
  override.returns(
51
61
  {
52
- entity_token: String,
62
+ entity_token: T.nilable(String),
53
63
  entity_type:
54
64
  Lithic::TransactionMonitoring::CaseEntity::EntityType::TaggedSymbol
55
65
  }
@@ -62,6 +72,8 @@ module Lithic
62
72
  #
63
73
  # - `CARD` - The case is associated with a card
64
74
  # - `ACCOUNT` - The case is associated with an account
75
+ # - `FINANCIAL_ACCOUNT` - The case is associated with a financial account
76
+ # - `PROGRAM` - The case is associated with the whole program
65
77
  module EntityType
66
78
  extend Lithic::Internal::Type::Enum
67
79
 
@@ -84,6 +96,16 @@ module Lithic
84
96
  :ACCOUNT,
85
97
  Lithic::TransactionMonitoring::CaseEntity::EntityType::TaggedSymbol
86
98
  )
99
+ FINANCIAL_ACCOUNT =
100
+ T.let(
101
+ :FINANCIAL_ACCOUNT,
102
+ Lithic::TransactionMonitoring::CaseEntity::EntityType::TaggedSymbol
103
+ )
104
+ PROGRAM =
105
+ T.let(
106
+ :PROGRAM,
107
+ Lithic::TransactionMonitoring::CaseEntity::EntityType::TaggedSymbol
108
+ )
87
109
 
88
110
  sig do
89
111
  override.returns(
@@ -61,7 +61,9 @@ module Lithic
61
61
  sig { params(ending_before: String).void }
62
62
  attr_writer :ending_before
63
63
 
64
- # Only return cases associated with the provided entity.
64
+ # Only return cases associated with the provided entity. Accepts a card, account,
65
+ # or financial account token. Cases with a `PROGRAM` entity have no entity token
66
+ # and are never returned by this filter.
65
67
  sig { returns(T.nilable(String)) }
66
68
  attr_reader :entity_token
67
69
 
@@ -170,7 +172,9 @@ module Lithic
170
172
  # A cursor representing an item's token before which a page of results should end.
171
173
  # Used to retrieve the previous page of results before this item.
172
174
  ending_before: nil,
173
- # Only return cases associated with the provided entity.
175
+ # Only return cases associated with the provided entity. Accepts a card, account,
176
+ # or financial account token. Cases with a `PROGRAM` entity have no entity token
177
+ # and are never returned by this filter.
174
178
  entity_token: nil,
175
179
  # Page size (for pagination).
176
180
  page_size: nil,
@@ -46,29 +46,12 @@ module Lithic
46
46
  end
47
47
  attr_writer :priority
48
48
 
49
- # Outcome recorded when a case is resolved:
50
- #
51
- # - `CONFIRMED_FRAUD` - The reviewed activity was confirmed to be fraudulent
52
- # - `SUSPICIOUS_ACTIVITY` - The activity is suspicious but not confirmed fraud
53
- # - `FALSE_POSITIVE` - The activity was legitimate and the alert was a false
54
- # positive
55
- # - `NO_ACTION_REQUIRED` - No further action is required
56
- # - `ESCALATED_EXTERNAL` - The case was escalated to an external party
57
- sig do
58
- returns(
59
- T.nilable(
60
- Lithic::TransactionMonitoring::ResolutionOutcome::OrSymbol
61
- )
62
- )
63
- end
49
+ # Resolution to record on the case. Must be one of the `allowed_resolutions`
50
+ # configured on the case's queue, otherwise the request is rejected with a `400`
51
+ sig { returns(T.nilable(String)) }
64
52
  attr_reader :resolution
65
53
 
66
- sig do
67
- params(
68
- resolution:
69
- Lithic::TransactionMonitoring::ResolutionOutcome::OrSymbol
70
- ).void
71
- end
54
+ sig { params(resolution: String).void }
72
55
  attr_writer :resolution
73
56
 
74
57
  # Notes describing the resolution
@@ -123,8 +106,7 @@ module Lithic
123
106
  actor_token: String,
124
107
  assignee: T.nilable(String),
125
108
  priority: Lithic::TransactionMonitoring::CasePriority::OrSymbol,
126
- resolution:
127
- Lithic::TransactionMonitoring::ResolutionOutcome::OrSymbol,
109
+ resolution: String,
128
110
  resolution_notes: String,
129
111
  sla_deadline: T.nilable(Time),
130
112
  status: Lithic::TransactionMonitoring::CaseStatus::OrSymbol,
@@ -143,14 +125,8 @@ module Lithic
143
125
  assignee: nil,
144
126
  # Priority level of a case, controlling queue ordering and SLA urgency
145
127
  priority: nil,
146
- # Outcome recorded when a case is resolved:
147
- #
148
- # - `CONFIRMED_FRAUD` - The reviewed activity was confirmed to be fraudulent
149
- # - `SUSPICIOUS_ACTIVITY` - The activity is suspicious but not confirmed fraud
150
- # - `FALSE_POSITIVE` - The activity was legitimate and the alert was a false
151
- # positive
152
- # - `NO_ACTION_REQUIRED` - No further action is required
153
- # - `ESCALATED_EXTERNAL` - The case was escalated to an external party
128
+ # Resolution to record on the case. Must be one of the `allowed_resolutions`
129
+ # configured on the case's queue, otherwise the request is rejected with a `400`
154
130
  resolution: nil,
155
131
  # Notes describing the resolution
156
132
  resolution_notes: nil,
@@ -182,8 +158,7 @@ module Lithic
182
158
  actor_token: String,
183
159
  assignee: T.nilable(String),
184
160
  priority: Lithic::TransactionMonitoring::CasePriority::OrSymbol,
185
- resolution:
186
- Lithic::TransactionMonitoring::ResolutionOutcome::OrSymbol,
161
+ resolution: String,
187
162
  resolution_notes: String,
188
163
  sla_deadline: T.nilable(Time),
189
164
  status: Lithic::TransactionMonitoring::CaseStatus::OrSymbol,
@@ -53,21 +53,9 @@ module Lithic
53
53
  sig { returns(String) }
54
54
  attr_accessor :queue_token
55
55
 
56
- # Outcome recorded when a case is resolved:
57
- #
58
- # - `CONFIRMED_FRAUD` - The reviewed activity was confirmed to be fraudulent
59
- # - `SUSPICIOUS_ACTIVITY` - The activity is suspicious but not confirmed fraud
60
- # - `FALSE_POSITIVE` - The activity was legitimate and the alert was a false
61
- # positive
62
- # - `NO_ACTION_REQUIRED` - No further action is required
63
- # - `ESCALATED_EXTERNAL` - The case was escalated to an external party
64
- sig do
65
- returns(
66
- T.nilable(
67
- Lithic::TransactionMonitoring::ResolutionOutcome::TaggedSymbol
68
- )
69
- )
70
- end
56
+ # Outcome recorded when the case was resolved, from the `allowed_resolutions`
57
+ # configured on the case's queue
58
+ sig { returns(T.nilable(String)) }
71
59
  attr_accessor :resolution
72
60
 
73
61
  # Free-form notes describing the resolution
@@ -123,10 +111,7 @@ module Lithic
123
111
  pending_transactions: T::Boolean,
124
112
  priority: Lithic::TransactionMonitoring::CasePriority::OrSymbol,
125
113
  queue_token: String,
126
- resolution:
127
- T.nilable(
128
- Lithic::TransactionMonitoring::ResolutionOutcome::OrSymbol
129
- ),
114
+ resolution: T.nilable(String),
130
115
  resolution_notes: T.nilable(String),
131
116
  resolved: T.nilable(Time),
132
117
  rule_token: T.nilable(String),
@@ -154,14 +139,8 @@ module Lithic
154
139
  priority:,
155
140
  # Token of the queue the case belongs to
156
141
  queue_token:,
157
- # Outcome recorded when a case is resolved:
158
- #
159
- # - `CONFIRMED_FRAUD` - The reviewed activity was confirmed to be fraudulent
160
- # - `SUSPICIOUS_ACTIVITY` - The activity is suspicious but not confirmed fraud
161
- # - `FALSE_POSITIVE` - The activity was legitimate and the alert was a false
162
- # positive
163
- # - `NO_ACTION_REQUIRED` - No further action is required
164
- # - `ESCALATED_EXTERNAL` - The case was escalated to an external party
142
+ # Outcome recorded when the case was resolved, from the `allowed_resolutions`
143
+ # configured on the case's queue
165
144
  resolution:,
166
145
  # Free-form notes describing the resolution
167
146
  resolution_notes:,
@@ -203,10 +182,7 @@ module Lithic
203
182
  priority:
204
183
  Lithic::TransactionMonitoring::CasePriority::TaggedSymbol,
205
184
  queue_token: String,
206
- resolution:
207
- T.nilable(
208
- Lithic::TransactionMonitoring::ResolutionOutcome::TaggedSymbol
209
- ),
185
+ resolution: T.nilable(String),
210
186
  resolution_notes: T.nilable(String),
211
187
  resolved: T.nilable(Time),
212
188
  rule_token: T.nilable(String),
@@ -16,6 +16,11 @@ module Lithic
16
16
  sig { returns(String) }
17
17
  attr_accessor :token
18
18
 
19
+ # Resolutions that can be recorded on cases in this queue. Always the effective
20
+ # list: the queue's own values when it defines them, otherwise the default list
21
+ sig { returns(T::Array[String]) }
22
+ attr_accessor :allowed_resolutions
23
+
19
24
  # Number of cases in the queue, broken down by status. A status is omitted when
20
25
  # the queue has no cases in that status
21
26
  sig { returns(Lithic::TransactionMonitoring::Queue::CaseCounts) }
@@ -49,6 +54,7 @@ module Lithic
49
54
  sig do
50
55
  params(
51
56
  token: String,
57
+ allowed_resolutions: T::Array[String],
52
58
  case_counts:
53
59
  Lithic::TransactionMonitoring::Queue::CaseCounts::OrHash,
54
60
  created: Time,
@@ -60,6 +66,9 @@ module Lithic
60
66
  def self.new(
61
67
  # Globally unique identifier for the queue
62
68
  token:,
69
+ # Resolutions that can be recorded on cases in this queue. Always the effective
70
+ # list: the queue's own values when it defines them, otherwise the default list
71
+ allowed_resolutions:,
63
72
  # Number of cases in the queue, broken down by status. A status is omitted when
64
73
  # the queue has no cases in that status
65
74
  case_counts:,
@@ -78,6 +87,7 @@ module Lithic
78
87
  override.returns(
79
88
  {
80
89
  token: String,
90
+ allowed_resolutions: T::Array[String],
81
91
  case_counts: Lithic::TransactionMonitoring::Queue::CaseCounts,
82
92
  created: Time,
83
93
  description: T.nilable(String),
@@ -19,6 +19,12 @@ module Lithic
19
19
  sig { returns(String) }
20
20
  attr_accessor :name
21
21
 
22
+ # Resolutions that can be recorded on cases in this queue. Omit or send `null` to
23
+ # use the default list. Values are free-form labels and must be non-empty and
24
+ # unique
25
+ sig { returns(T.nilable(T::Array[String])) }
26
+ attr_accessor :allowed_resolutions
27
+
22
28
  # Optional description of the queue
23
29
  sig { returns(T.nilable(String)) }
24
30
  attr_accessor :description
@@ -26,6 +32,7 @@ module Lithic
26
32
  sig do
27
33
  params(
28
34
  name: String,
35
+ allowed_resolutions: T.nilable(T::Array[String]),
29
36
  description: T.nilable(String),
30
37
  request_options: Lithic::RequestOptions::OrHash
31
38
  ).returns(T.attached_class)
@@ -33,6 +40,10 @@ module Lithic
33
40
  def self.new(
34
41
  # Human-readable name of the queue
35
42
  name:,
43
+ # Resolutions that can be recorded on cases in this queue. Omit or send `null` to
44
+ # use the default list. Values are free-form labels and must be non-empty and
45
+ # unique
46
+ allowed_resolutions: nil,
36
47
  # Optional description of the queue
37
48
  description: nil,
38
49
  request_options: {}
@@ -43,6 +54,7 @@ module Lithic
43
54
  override.returns(
44
55
  {
45
56
  name: String,
57
+ allowed_resolutions: T.nilable(T::Array[String]),
46
58
  description: T.nilable(String),
47
59
  request_options: Lithic::RequestOptions
48
60
  }
@@ -18,6 +18,13 @@ module Lithic
18
18
  sig { returns(String) }
19
19
  attr_accessor :queue_token
20
20
 
21
+ # New list of resolutions that can be recorded on cases in this queue, or `null`
22
+ # to revert to the default list. Values are free-form labels and must be non-empty
23
+ # and unique. Changing the list only affects what is selectable going forward; the
24
+ # `resolution` already stored on a case is preserved as-is
25
+ sig { returns(T.nilable(T::Array[String])) }
26
+ attr_accessor :allowed_resolutions
27
+
21
28
  # New description for the queue, or `null` to clear it
22
29
  sig { returns(T.nilable(String)) }
23
30
  attr_accessor :description
@@ -32,6 +39,7 @@ module Lithic
32
39
  sig do
33
40
  params(
34
41
  queue_token: String,
42
+ allowed_resolutions: T.nilable(T::Array[String]),
35
43
  description: T.nilable(String),
36
44
  name: String,
37
45
  request_options: Lithic::RequestOptions::OrHash
@@ -39,6 +47,11 @@ module Lithic
39
47
  end
40
48
  def self.new(
41
49
  queue_token:,
50
+ # New list of resolutions that can be recorded on cases in this queue, or `null`
51
+ # to revert to the default list. Values are free-form labels and must be non-empty
52
+ # and unique. Changing the list only affects what is selectable going forward; the
53
+ # `resolution` already stored on a case is preserved as-is
54
+ allowed_resolutions: nil,
42
55
  # New description for the queue, or `null` to clear it
43
56
  description: nil,
44
57
  # New name for the queue
@@ -51,6 +64,7 @@ module Lithic
51
64
  override.returns(
52
65
  {
53
66
  queue_token: String,
67
+ allowed_resolutions: T.nilable(T::Array[String]),
54
68
  description: T.nilable(String),
55
69
  name: String,
56
70
  request_options: Lithic::RequestOptions