lithic 0.19.0 → 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 (75) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +36 -0
  3. data/README.md +1 -1
  4. data/lib/lithic/client.rb +4 -0
  5. data/lib/lithic/models/auth_rules/ach_payment_update_action.rb +1 -0
  6. data/lib/lithic/models/auth_rules/card_transaction_update_action.rb +1 -0
  7. data/lib/lithic/models/auth_rules/v2_list_results_response.rb +2 -0
  8. data/lib/lithic/models/auth_rules/velocity_limit_params.rb +24 -1
  9. data/lib/lithic/models/blockchain_recipient.rb +148 -0
  10. data/lib/lithic/models/blockchain_recipient_create_params.rb +74 -0
  11. data/lib/lithic/models/card.rb +2 -2
  12. data/lib/lithic/models/card_provision_params.rb +10 -8
  13. data/lib/lithic/models/card_reassign_account_params.rb +29 -0
  14. data/lib/lithic/models/dispute_v2.rb +178 -130
  15. data/lib/lithic/models/disputes_v2_list_params.rb +10 -1
  16. data/lib/lithic/models/financial_account.rb +14 -1
  17. data/lib/lithic/models/financial_accounts/statements/statement_line_items.rb +3 -0
  18. data/lib/lithic/models/financial_event.rb +3 -0
  19. data/lib/lithic/models/payment.rb +67 -9
  20. data/lib/lithic/models/tokenization_simulate_params.rb +2 -2
  21. data/lib/lithic/models/transaction_monitoring/case_entity.rb +13 -4
  22. data/lib/lithic/models/transaction_monitoring/case_list_params.rb +4 -2
  23. data/lib/lithic/models.rb +6 -0
  24. data/lib/lithic/resources/blockchain_recipients.rb +57 -0
  25. data/lib/lithic/resources/cards.rb +29 -2
  26. data/lib/lithic/resources/disputes_v2.rb +3 -1
  27. data/lib/lithic/resources/tokenizations.rb +1 -1
  28. data/lib/lithic/resources/transaction_monitoring/cases.rb +1 -1
  29. data/lib/lithic/version.rb +1 -1
  30. data/lib/lithic.rb +4 -0
  31. data/rbi/lithic/client.rbi +3 -0
  32. data/rbi/lithic/models/auth_rules/ach_payment_update_action.rbi +5 -0
  33. data/rbi/lithic/models/auth_rules/card_transaction_update_action.rbi +5 -0
  34. data/rbi/lithic/models/auth_rules/v2_list_results_response.rbi +10 -0
  35. data/rbi/lithic/models/auth_rules/velocity_limit_params.rbi +30 -0
  36. data/rbi/lithic/models/blockchain_recipient.rbi +209 -0
  37. data/rbi/lithic/models/blockchain_recipient_create_params.rbi +102 -0
  38. data/rbi/lithic/models/card.rbi +2 -2
  39. data/rbi/lithic/models/card_provision_params.rbi +16 -12
  40. data/rbi/lithic/models/card_reassign_account_params.rbi +49 -0
  41. data/rbi/lithic/models/dispute_v2.rbi +285 -181
  42. data/rbi/lithic/models/disputes_v2_list_params.rbi +13 -0
  43. data/rbi/lithic/models/financial_account.rbi +12 -0
  44. data/rbi/lithic/models/financial_accounts/statements/statement_line_items.rbi +15 -0
  45. data/rbi/lithic/models/financial_event.rbi +12 -0
  46. data/rbi/lithic/models/payment.rbi +106 -10
  47. data/rbi/lithic/models/tokenization_simulate_params.rbi +2 -2
  48. data/rbi/lithic/models/transaction_monitoring/case_entity.rbi +27 -5
  49. data/rbi/lithic/models/transaction_monitoring/case_list_params.rbi +6 -2
  50. data/rbi/lithic/models.rbi +7 -0
  51. data/rbi/lithic/resources/blockchain_recipients.rbi +51 -0
  52. data/rbi/lithic/resources/cards.rbi +27 -6
  53. data/rbi/lithic/resources/disputes_v2.rbi +4 -0
  54. data/rbi/lithic/resources/tokenizations.rbi +1 -1
  55. data/rbi/lithic/resources/transaction_monitoring/cases.rbi +3 -1
  56. data/sig/lithic/client.rbs +2 -0
  57. data/sig/lithic/models/auth_rules/ach_payment_update_action.rbs +2 -1
  58. data/sig/lithic/models/auth_rules/card_transaction_update_action.rbs +2 -1
  59. data/sig/lithic/models/auth_rules/v2_list_results_response.rbs +4 -2
  60. data/sig/lithic/models/auth_rules/velocity_limit_params.rbs +10 -0
  61. data/sig/lithic/models/blockchain_recipient.rbs +106 -0
  62. data/sig/lithic/models/blockchain_recipient_create_params.rbs +60 -0
  63. data/sig/lithic/models/card_reassign_account_params.rbs +28 -0
  64. data/sig/lithic/models/dispute_v2.rbs +145 -101
  65. data/sig/lithic/models/disputes_v2_list_params.rbs +7 -0
  66. data/sig/lithic/models/financial_account.rbs +5 -0
  67. data/sig/lithic/models/financial_accounts/statements/statement_line_items.rbs +6 -0
  68. data/sig/lithic/models/financial_event.rbs +6 -0
  69. data/sig/lithic/models/payment.rbs +31 -1
  70. data/sig/lithic/models/transaction_monitoring/case_entity.rbs +7 -5
  71. data/sig/lithic/models.rbs +6 -0
  72. data/sig/lithic/resources/blockchain_recipients.rbs +18 -0
  73. data/sig/lithic/resources/cards.rbs +6 -0
  74. data/sig/lithic/resources/disputes_v2.rbs +1 -0
  75. metadata +14 -2
@@ -32,6 +32,14 @@ module Lithic
32
32
  sig { params(card_token: String).void }
33
33
  attr_writer :card_token
34
34
 
35
+ # Filter by the token of the claim the dispute was filed under. Returns the
36
+ # disputes created from that claim's disputed transaction events.
37
+ sig { returns(T.nilable(String)) }
38
+ attr_reader :claim_token
39
+
40
+ sig { params(claim_token: String).void }
41
+ attr_writer :claim_token
42
+
35
43
  # Filter by the token of the transaction being disputed. Corresponds with
36
44
  # transaction_series.related_transaction_token in the Dispute.
37
45
  sig { returns(T.nilable(String)) }
@@ -75,6 +83,7 @@ module Lithic
75
83
  account_token: String,
76
84
  begin_: Time,
77
85
  card_token: String,
86
+ claim_token: String,
78
87
  disputed_transaction_token: String,
79
88
  end_: Time,
80
89
  ending_before: String,
@@ -90,6 +99,9 @@ module Lithic
90
99
  begin_: nil,
91
100
  # Filter by card token.
92
101
  card_token: nil,
102
+ # Filter by the token of the claim the dispute was filed under. Returns the
103
+ # disputes created from that claim's disputed transaction events.
104
+ claim_token: nil,
93
105
  # Filter by the token of the transaction being disputed. Corresponds with
94
106
  # transaction_series.related_transaction_token in the Dispute.
95
107
  disputed_transaction_token: nil,
@@ -113,6 +125,7 @@ module Lithic
113
125
  account_token: String,
114
126
  begin_: Time,
115
127
  card_token: String,
128
+ claim_token: String,
116
129
  disputed_transaction_token: String,
117
130
  end_: Time,
118
131
  ending_before: String,
@@ -59,6 +59,12 @@ module Lithic
59
59
  sig { returns(T.nilable(String)) }
60
60
  attr_accessor :account_number
61
61
 
62
+ # Provisioned blockchain deposit addresses for this financial account, keyed by
63
+ # the full name of the blockchain network that each address belongs to (e.g.
64
+ # `ETHEREUM`)
65
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
66
+ attr_accessor :blockchain_addresses
67
+
62
68
  sig { returns(T.nilable(String)) }
63
69
  attr_accessor :routing_number
64
70
 
@@ -77,6 +83,7 @@ module Lithic
77
83
  updated: Time,
78
84
  user_defined_status: T.nilable(String),
79
85
  account_number: T.nilable(String),
86
+ blockchain_addresses: T.nilable(T::Hash[Symbol, String]),
80
87
  routing_number: T.nilable(String)
81
88
  ).returns(T.attached_class)
82
89
  end
@@ -98,6 +105,10 @@ module Lithic
98
105
  # User-defined status for the financial account
99
106
  user_defined_status:,
100
107
  account_number: nil,
108
+ # Provisioned blockchain deposit addresses for this financial account, keyed by
109
+ # the full name of the blockchain network that each address belongs to (e.g.
110
+ # `ETHEREUM`)
111
+ blockchain_addresses: nil,
101
112
  routing_number: nil
102
113
  )
103
114
  end
@@ -119,6 +130,7 @@ module Lithic
119
130
  updated: Time,
120
131
  user_defined_status: T.nilable(String),
121
132
  account_number: T.nilable(String),
133
+ blockchain_addresses: T.nilable(T::Hash[Symbol, String]),
122
134
  routing_number: T.nilable(String)
123
135
  }
124
136
  )
@@ -822,16 +822,31 @@ module Lithic
822
822
  :STABLECOIN_RECEIVED,
823
823
  Lithic::FinancialAccounts::Statements::StatementLineItems::Data::EventType::TaggedSymbol
824
824
  )
825
+ STABLECOIN_INITIATED =
826
+ T.let(
827
+ :STABLECOIN_INITIATED,
828
+ Lithic::FinancialAccounts::Statements::StatementLineItems::Data::EventType::TaggedSymbol
829
+ )
825
830
  STABLECOIN_REVIEWED =
826
831
  T.let(
827
832
  :STABLECOIN_REVIEWED,
828
833
  Lithic::FinancialAccounts::Statements::StatementLineItems::Data::EventType::TaggedSymbol
829
834
  )
835
+ STABLECOIN_SENT =
836
+ T.let(
837
+ :STABLECOIN_SENT,
838
+ Lithic::FinancialAccounts::Statements::StatementLineItems::Data::EventType::TaggedSymbol
839
+ )
830
840
  STABLECOIN_SETTLED =
831
841
  T.let(
832
842
  :STABLECOIN_SETTLED,
833
843
  Lithic::FinancialAccounts::Statements::StatementLineItems::Data::EventType::TaggedSymbol
834
844
  )
845
+ STABLECOIN_REJECTED =
846
+ T.let(
847
+ :STABLECOIN_REJECTED,
848
+ Lithic::FinancialAccounts::Statements::StatementLineItems::Data::EventType::TaggedSymbol
849
+ )
835
850
 
836
851
  sig do
837
852
  override.returns(
@@ -474,13 +474,25 @@ module Lithic
474
474
  :STABLECOIN_RECEIVED,
475
475
  Lithic::FinancialEvent::Type::TaggedSymbol
476
476
  )
477
+ STABLECOIN_INITIATED =
478
+ T.let(
479
+ :STABLECOIN_INITIATED,
480
+ Lithic::FinancialEvent::Type::TaggedSymbol
481
+ )
477
482
  STABLECOIN_REVIEWED =
478
483
  T.let(
479
484
  :STABLECOIN_REVIEWED,
480
485
  Lithic::FinancialEvent::Type::TaggedSymbol
481
486
  )
487
+ STABLECOIN_SENT =
488
+ T.let(:STABLECOIN_SENT, Lithic::FinancialEvent::Type::TaggedSymbol)
482
489
  STABLECOIN_SETTLED =
483
490
  T.let(:STABLECOIN_SETTLED, Lithic::FinancialEvent::Type::TaggedSymbol)
491
+ STABLECOIN_REJECTED =
492
+ T.let(
493
+ :STABLECOIN_REJECTED,
494
+ Lithic::FinancialEvent::Type::TaggedSymbol
495
+ )
484
496
 
485
497
  sig do
486
498
  override.returns(T::Array[Lithic::FinancialEvent::Type::TaggedSymbol])
@@ -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),
@@ -387,8 +396,16 @@ module Lithic
387
396
  #
388
397
  # - `STABLECOIN_RECEIVED` - Stablecoin pay-in received on-chain and pending
389
398
  # release to available balance.
390
- # - `STABLECOIN_REVIEWED` - Stablecoin pay-in has completed the review process.
391
- # - `STABLECOIN_SETTLED` - Stablecoin pay-in funds released 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.
392
409
  sig { returns(Lithic::Payment::Event::Type::TaggedSymbol) }
393
410
  attr_accessor :type
394
411
 
@@ -412,7 +429,9 @@ module Lithic
412
429
 
413
430
  # Payment event external ID. For ACH transactions, this is the ACH trace number.
414
431
  # For inbound wire transfers, this is the IMAD (Input Message Accountability
415
- # 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.
416
435
  sig { returns(T.nilable(String)) }
417
436
  attr_accessor :external_id
418
437
 
@@ -501,14 +520,24 @@ module Lithic
501
520
  #
502
521
  # - `STABLECOIN_RECEIVED` - Stablecoin pay-in received on-chain and pending
503
522
  # release to available balance.
504
- # - `STABLECOIN_REVIEWED` - Stablecoin pay-in has completed the review process.
505
- # - `STABLECOIN_SETTLED` - Stablecoin pay-in funds released 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.
506
533
  type:,
507
534
  # More detailed reasons for the event
508
535
  detailed_results: nil,
509
536
  # Payment event external ID. For ACH transactions, this is the ACH trace number.
510
537
  # For inbound wire transfers, this is the IMAD (Input Message Accountability
511
- # 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.
512
541
  external_id: nil
513
542
  )
514
543
  end
@@ -610,8 +639,16 @@ module Lithic
610
639
  #
611
640
  # - `STABLECOIN_RECEIVED` - Stablecoin pay-in received on-chain and pending
612
641
  # release to available balance.
613
- # - `STABLECOIN_REVIEWED` - Stablecoin pay-in has completed the review process.
614
- # - `STABLECOIN_SETTLED` - Stablecoin pay-in funds released 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.
615
652
  module Type
616
653
  extend Lithic::Internal::Type::Enum
617
654
 
@@ -734,16 +771,28 @@ module Lithic
734
771
  :STABLECOIN_RECEIVED,
735
772
  Lithic::Payment::Event::Type::TaggedSymbol
736
773
  )
774
+ STABLECOIN_INITIATED =
775
+ T.let(
776
+ :STABLECOIN_INITIATED,
777
+ Lithic::Payment::Event::Type::TaggedSymbol
778
+ )
737
779
  STABLECOIN_REVIEWED =
738
780
  T.let(
739
781
  :STABLECOIN_REVIEWED,
740
782
  Lithic::Payment::Event::Type::TaggedSymbol
741
783
  )
784
+ STABLECOIN_SENT =
785
+ T.let(:STABLECOIN_SENT, Lithic::Payment::Event::Type::TaggedSymbol)
742
786
  STABLECOIN_SETTLED =
743
787
  T.let(
744
788
  :STABLECOIN_SETTLED,
745
789
  Lithic::Payment::Event::Type::TaggedSymbol
746
790
  )
791
+ STABLECOIN_REJECTED =
792
+ T.let(
793
+ :STABLECOIN_REJECTED,
794
+ Lithic::Payment::Event::Type::TaggedSymbol
795
+ )
747
796
 
748
797
  sig do
749
798
  override.returns(
@@ -821,6 +870,7 @@ module Lithic
821
870
  ACH_SAME_DAY =
822
871
  T.let(:ACH_SAME_DAY, Lithic::Payment::Method::TaggedSymbol)
823
872
  WIRE = T.let(:WIRE, Lithic::Payment::Method::TaggedSymbol)
873
+ STABLECOIN = T.let(:STABLECOIN, Lithic::Payment::Method::TaggedSymbol)
824
874
 
825
875
  sig do
826
876
  override.returns(T::Array[Lithic::Payment::Method::TaggedSymbol])
@@ -837,7 +887,8 @@ module Lithic
837
887
  T.type_alias do
838
888
  T.any(
839
889
  Lithic::Payment::MethodAttributes::ACHMethodAttributes,
840
- Lithic::Payment::MethodAttributes::WireMethodAttributes
890
+ Lithic::Payment::MethodAttributes::WireMethodAttributes,
891
+ Lithic::Payment::MethodAttributes::StablecoinMethodAttributes
841
892
  )
842
893
  end
843
894
 
@@ -1134,6 +1185,47 @@ module Lithic
1134
1185
  end
1135
1186
  end
1136
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
+
1137
1229
  sig do
1138
1230
  override.returns(
1139
1231
  T::Array[Lithic::Payment::MethodAttributes::Variants]
@@ -1270,6 +1362,10 @@ module Lithic
1270
1362
  :WIRE_INBOUND_DRAWDOWN_REQUEST,
1271
1363
  Lithic::Payment::Type::TaggedSymbol
1272
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)
1273
1369
 
1274
1370
  sig { override.returns(T::Array[Lithic::Payment::Type::TaggedSymbol]) }
1275
1371
  def self.values
@@ -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,
@@ -87,6 +87,11 @@ module Lithic
87
87
 
88
88
  BalanceUpdatedWebhookEvent = Lithic::Models::BalanceUpdatedWebhookEvent
89
89
 
90
+ BlockchainRecipient = Lithic::Models::BlockchainRecipient
91
+
92
+ BlockchainRecipientCreateParams =
93
+ Lithic::Models::BlockchainRecipientCreateParams
94
+
90
95
  BookTransferCreateParams = Lithic::Models::BookTransferCreateParams
91
96
 
92
97
  BookTransferListParams = Lithic::Models::BookTransferListParams
@@ -153,6 +158,8 @@ module Lithic
153
158
 
154
159
  CardProvisionParams = Lithic::Models::CardProvisionParams
155
160
 
161
+ CardReassignAccountParams = Lithic::Models::CardReassignAccountParams
162
+
156
163
  CardReissuedWebhookEvent = Lithic::Models::CardReissuedWebhookEvent
157
164
 
158
165
  CardReissueParams = Lithic::Models::CardReissueParams
@@ -0,0 +1,51 @@
1
+ # typed: strong
2
+
3
+ module Lithic
4
+ module Resources
5
+ class BlockchainRecipients
6
+ # Register a blockchain address as a withdrawal destination for a financial
7
+ # account
8
+ #
9
+ # The recipient is created with a `PENDING` verification state and cannot receive
10
+ # a payout until screening of the address completes. Registering an address that
11
+ # is already registered to the same financial account returns the existing
12
+ # recipient and its current verification state, rather than creating a second one
13
+ sig do
14
+ params(
15
+ account_token: String,
16
+ address: String,
17
+ chain: String,
18
+ owner: String,
19
+ owner_type: Lithic::OwnerType::OrSymbol,
20
+ address_tag: String,
21
+ name: String,
22
+ request_options: Lithic::RequestOptions::OrHash
23
+ ).returns(Lithic::BlockchainRecipient)
24
+ end
25
+ def create(
26
+ # The financial account the blockchain recipient belongs to
27
+ account_token:,
28
+ # The blockchain address funds will be withdrawn to
29
+ address:,
30
+ # The blockchain network that the address belongs to
31
+ chain:,
32
+ # Legal name of the business or individual who owns the blockchain address
33
+ owner:,
34
+ # Owner Type
35
+ owner_type:,
36
+ # An optional tag or memo used by some chains to identify the destination of a
37
+ # transfer within a shared address
38
+ address_tag: nil,
39
+ # The nickname for this blockchain recipient
40
+ name: nil,
41
+ request_options: {}
42
+ )
43
+ end
44
+
45
+ # @api private
46
+ sig { params(client: Lithic::Client).returns(T.attached_class) }
47
+ def self.new(client:)
48
+ end
49
+ end
50
+ end
51
+ end
@@ -465,13 +465,15 @@ module Lithic
465
465
  # encoded in PEM format with headers `(-----BEGIN CERTIFICATE-----)` and trailers
466
466
  # omitted. Provided by the device's wallet.
467
467
  certificate: nil,
468
- # Only applicable if `digital_wallet` is `GOOGLE_PAY` or `SAMSUNG_PAY` and the
469
- # card is on the Visa network. Stable device identification set by the wallet
470
- # provider.
468
+ # Only applicable if `digital_wallet` is `GOOGLE_PAY` or `SAMSUNG_PAY`. Stable
469
+ # device identification set by the wallet provider. Required for both wallets
470
+ # regardless of network, though the value is only used for cards on the Visa
471
+ # network and is ignored on Amex and Mastercard.
471
472
  client_device_id: nil,
472
- # Only applicable if `digital_wallet` is `GOOGLE_PAY` or `SAMSUNG_PAY` and the
473
- # card is on the Visa network. Consumer ID that identifies the wallet account
474
- # holder entity.
473
+ # Only applicable if `digital_wallet` is `GOOGLE_PAY` or `SAMSUNG_PAY`. Consumer
474
+ # ID that identifies the wallet account holder entity. Required for both wallets
475
+ # regardless of network, though the value is only used for cards on the Visa
476
+ # network and is ignored on Amex and Mastercard.
475
477
  client_wallet_account_id: nil,
476
478
  # Name of digital wallet provider.
477
479
  digital_wallet: nil,
@@ -487,6 +489,25 @@ module Lithic
487
489
  )
488
490
  end
489
491
 
492
+ # Reassigns a card to another account. The card must be in an `OPEN` or `PAUSED`
493
+ # state, and the destination account must be in an `ACTIVE` state.
494
+ #
495
+ # Clients must contact their Lithic account manager for access to this endpoint.
496
+ sig do
497
+ params(
498
+ card_token: String,
499
+ new_account_token: String,
500
+ request_options: Lithic::RequestOptions::OrHash
501
+ ).returns(Lithic::Card)
502
+ end
503
+ def reassign_account(
504
+ card_token,
505
+ # Globally unique identifier for the account to associate with the card
506
+ new_account_token:,
507
+ request_options: {}
508
+ )
509
+ end
510
+
490
511
  # Initiate print and shipment of a duplicate physical card (e.g. card is
491
512
  # physically damaged). The PAN, expiry, and CVC2 will remain the same and the
492
513
  # original card can continue to be used until the new card is activated. Only
@@ -23,6 +23,7 @@ module Lithic
23
23
  account_token: String,
24
24
  begin_: Time,
25
25
  card_token: String,
26
+ claim_token: String,
26
27
  disputed_transaction_token: String,
27
28
  end_: Time,
28
29
  ending_before: String,
@@ -38,6 +39,9 @@ module Lithic
38
39
  begin_: nil,
39
40
  # Filter by card token.
40
41
  card_token: nil,
42
+ # Filter by the token of the claim the dispute was filed under. Returns the
43
+ # disputes created from that claim's disputed transaction events.
44
+ claim_token: nil,
41
45
  # Filter by the token of the transaction being disputed. Corresponds with
42
46
  # transaction_series.related_transaction_token in the Dispute.
43
47
  disputed_transaction_token: nil,
@@ -167,7 +167,7 @@ module Lithic
167
167
  ).returns(Lithic::Tokenization)
168
168
  end
169
169
  def simulate(
170
- # The three digit cvv for the card.
170
+ # The three or four digit CVV for the card. AMEX cards use four digit CVVs.
171
171
  cvv:,
172
172
  # The expiration date of the card in 'MM/YY' format.
173
173
  expiration_date:,
@@ -120,7 +120,9 @@ module Lithic
120
120
  # A cursor representing an item's token before which a page of results should end.
121
121
  # Used to retrieve the previous page of results before this item.
122
122
  ending_before: nil,
123
- # Only return cases associated with the provided entity.
123
+ # Only return cases associated with the provided entity. Accepts a card, account,
124
+ # or financial account token. Cases with a `PROGRAM` entity have no entity token
125
+ # and are never returned by this filter.
124
126
  entity_token: nil,
125
127
  # Page size (for pagination).
126
128
  page_size: nil,
@@ -55,6 +55,8 @@ module Lithic
55
55
 
56
56
  attr_reader external_bank_accounts: Lithic::Resources::ExternalBankAccounts
57
57
 
58
+ attr_reader blockchain_recipients: Lithic::Resources::BlockchainRecipients
59
+
58
60
  attr_reader payments: Lithic::Resources::Payments
59
61
 
60
62
  attr_reader three_ds: Lithic::Resources::ThreeDS
@@ -71,12 +71,13 @@ module Lithic
71
71
  type: Lithic::Models::AuthRules::ACHPaymentUpdateAction::CreateCaseAction::type_
72
72
  }
73
73
 
74
- type scope = :FINANCIAL_ACCOUNT
74
+ type scope = :FINANCIAL_ACCOUNT | :PROGRAM
75
75
 
76
76
  module Scope
77
77
  extend Lithic::Internal::Type::Enum
78
78
 
79
79
  FINANCIAL_ACCOUNT: :FINANCIAL_ACCOUNT
80
+ PROGRAM: :PROGRAM
80
81
 
81
82
  def self?.values: -> ::Array[Lithic::Models::AuthRules::ACHPaymentUpdateAction::CreateCaseAction::scope]
82
83
  end