lithic 0.20.0 → 0.21.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 (142) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +25 -0
  3. data/README.md +1 -1
  4. data/lib/lithic/models/account_activity_list_params.rb +1 -0
  5. data/lib/lithic/models/account_activity_list_response.rb +1 -0
  6. data/lib/lithic/models/account_activity_retrieve_transaction_response.rb +1 -0
  7. data/lib/lithic/models/auth_rules/auth_rule.rb +5 -0
  8. data/lib/lithic/models/auth_rules/report_stats.rb +1 -0
  9. data/lib/lithic/models/auth_rules/v2_create_params.rb +15 -0
  10. data/lib/lithic/models/auth_rules/v2_list_results_response.rb +1 -0
  11. data/lib/lithic/models/blockchain_recipient_retrieve_params.rb +20 -0
  12. data/lib/lithic/models/card_pin_updated_webhook_event.rb +87 -0
  13. data/lib/lithic/models/event.rb +5 -0
  14. data/lib/lithic/models/event_list_params.rb +3 -0
  15. data/lib/lithic/models/event_subscription.rb +3 -0
  16. data/lib/lithic/models/events/subscription_create_params.rb +3 -0
  17. data/lib/lithic/models/events/subscription_send_simulated_example_params.rb +1 -0
  18. data/lib/lithic/models/events/subscription_update_params.rb +3 -0
  19. data/lib/lithic/models/external_payment.rb +6 -0
  20. data/lib/lithic/models/external_payment_create_params.rb +1 -0
  21. data/lib/lithic/models/external_payment_list_params.rb +1 -0
  22. data/lib/lithic/models/financial_accounts/installment_plan.rb +311 -0
  23. data/lib/lithic/models/financial_accounts/installment_plan_list_params.rb +75 -0
  24. data/lib/lithic/models/financial_accounts/installment_plan_retrieve_params.rb +32 -0
  25. data/lib/lithic/models/financial_accounts/open_to_buy.rb +36 -0
  26. data/lib/lithic/models/financial_accounts/open_to_buy_retrieve_params.rb +22 -0
  27. data/lib/lithic/models/financial_accounts/open_to_buy_summary.rb +46 -0
  28. data/lib/lithic/models/financial_accounts/statements/statement_line_items.rb +10 -0
  29. data/lib/lithic/models/financial_accounts/transaction_category_balances.rb +34 -0
  30. data/lib/lithic/models/financial_event.rb +9 -0
  31. data/lib/lithic/models/management_operation_create_params.rb +4 -0
  32. data/lib/lithic/models/management_operation_transaction.rb +4 -0
  33. data/lib/lithic/models/parsed_webhook_event.rb +3 -1
  34. data/lib/lithic/models/payment.rb +1 -0
  35. data/lib/lithic/models/payment_create_stablecoin_params.rb +99 -0
  36. data/lib/lithic/models/payment_create_stablecoin_response.rb +19 -0
  37. data/lib/lithic/models/payment_list_params.rb +1 -0
  38. data/lib/lithic/models/payment_retry_params.rb +28 -1
  39. data/lib/lithic/models/payment_simulate_action_params.rb +1 -0
  40. data/lib/lithic/models/three_ds_authentication.rb +126 -1
  41. data/lib/lithic/models/transaction.rb +2 -0
  42. data/lib/lithic/models.rb +6 -0
  43. data/lib/lithic/resources/blockchain_recipients.rb +23 -0
  44. data/lib/lithic/resources/cards.rb +4 -2
  45. data/lib/lithic/resources/financial_accounts/installment_plans.rb +82 -0
  46. data/lib/lithic/resources/financial_accounts/open_to_buy.rb +48 -0
  47. data/lib/lithic/resources/financial_accounts.rb +8 -0
  48. data/lib/lithic/resources/payments.rb +71 -3
  49. data/lib/lithic/version.rb +1 -1
  50. data/lib/lithic.rb +13 -0
  51. data/rbi/lithic/models/account_activity_list_params.rbi +5 -0
  52. data/rbi/lithic/models/account_activity_list_response.rbi +5 -0
  53. data/rbi/lithic/models/account_activity_retrieve_transaction_response.rbi +5 -0
  54. data/rbi/lithic/models/auth_rules/auth_rule.rbi +7 -0
  55. data/rbi/lithic/models/auth_rules/report_stats.rbi +5 -0
  56. data/rbi/lithic/models/auth_rules/v2_create_params.rbi +33 -0
  57. data/rbi/lithic/models/auth_rules/v2_list_results_response.rbi +5 -0
  58. data/rbi/lithic/models/blockchain_recipient_retrieve_params.rbi +41 -0
  59. data/rbi/lithic/models/card_pin_updated_webhook_event.rbi +166 -0
  60. data/rbi/lithic/models/event.rbi +8 -0
  61. data/rbi/lithic/models/event_list_params.rbi +7 -0
  62. data/rbi/lithic/models/event_subscription.rbi +7 -0
  63. data/rbi/lithic/models/events/subscription_create_params.rbi +7 -0
  64. data/rbi/lithic/models/events/subscription_send_simulated_example_params.rbi +5 -0
  65. data/rbi/lithic/models/events/subscription_update_params.rbi +7 -0
  66. data/rbi/lithic/models/external_payment.rbi +30 -0
  67. data/rbi/lithic/models/external_payment_create_params.rbi +5 -0
  68. data/rbi/lithic/models/external_payment_list_params.rbi +5 -0
  69. data/rbi/lithic/models/financial_accounts/installment_plan.rbi +528 -0
  70. data/rbi/lithic/models/financial_accounts/installment_plan_list_params.rbi +155 -0
  71. data/rbi/lithic/models/financial_accounts/installment_plan_retrieve_params.rbi +56 -0
  72. data/rbi/lithic/models/financial_accounts/open_to_buy.rbi +64 -0
  73. data/rbi/lithic/models/financial_accounts/open_to_buy_retrieve_params.rbi +43 -0
  74. data/rbi/lithic/models/financial_accounts/open_to_buy_summary.rbi +73 -0
  75. data/rbi/lithic/models/financial_accounts/statements/statement_line_items.rbi +50 -0
  76. data/rbi/lithic/models/financial_accounts/transaction_category_balances.rbi +81 -0
  77. data/rbi/lithic/models/financial_event.rbi +35 -0
  78. data/rbi/lithic/models/management_operation_create_params.rbi +20 -0
  79. data/rbi/lithic/models/management_operation_transaction.rbi +20 -0
  80. data/rbi/lithic/models/parsed_webhook_event.rbi +1 -0
  81. data/rbi/lithic/models/payment.rbi +2 -0
  82. data/rbi/lithic/models/payment_create_stablecoin_params.rbi +162 -0
  83. data/rbi/lithic/models/payment_create_stablecoin_response.rbi +34 -0
  84. data/rbi/lithic/models/payment_list_params.rbi +2 -0
  85. data/rbi/lithic/models/payment_retry_params.rbi +47 -2
  86. data/rbi/lithic/models/payment_simulate_action_params.rbi +5 -0
  87. data/rbi/lithic/models/three_ds_authentication.rbi +292 -0
  88. data/rbi/lithic/models/transaction.rbi +10 -0
  89. data/rbi/lithic/models.rbi +7 -0
  90. data/rbi/lithic/resources/blockchain_recipients.rbi +14 -0
  91. data/rbi/lithic/resources/cards.rbi +4 -2
  92. data/rbi/lithic/resources/financial_accounts/installment_plans.rbi +66 -0
  93. data/rbi/lithic/resources/financial_accounts/open_to_buy.rbi +40 -0
  94. data/rbi/lithic/resources/financial_accounts.rbi +6 -0
  95. data/rbi/lithic/resources/payments.rbi +68 -2
  96. data/rbi/lithic/resources/webhooks.rbi +1 -0
  97. data/sig/lithic/models/account_activity_list_params.rbs +2 -0
  98. data/sig/lithic/models/account_activity_list_response.rbs +2 -0
  99. data/sig/lithic/models/account_activity_retrieve_transaction_response.rbs +2 -0
  100. data/sig/lithic/models/auth_rules/auth_rule.rbs +2 -0
  101. data/sig/lithic/models/auth_rules/report_stats.rbs +2 -0
  102. data/sig/lithic/models/auth_rules/v2_create_params.rbs +6 -0
  103. data/sig/lithic/models/auth_rules/v2_list_results_response.rbs +2 -0
  104. data/sig/lithic/models/blockchain_recipient_retrieve_params.rbs +24 -0
  105. data/sig/lithic/models/card_pin_updated_webhook_event.rbs +60 -0
  106. data/sig/lithic/models/event.rbs +2 -0
  107. data/sig/lithic/models/event_list_params.rbs +2 -0
  108. data/sig/lithic/models/event_subscription.rbs +2 -0
  109. data/sig/lithic/models/events/subscription_create_params.rbs +2 -0
  110. data/sig/lithic/models/events/subscription_send_simulated_example_params.rbs +2 -0
  111. data/sig/lithic/models/events/subscription_update_params.rbs +2 -0
  112. data/sig/lithic/models/external_payment.rbs +12 -0
  113. data/sig/lithic/models/external_payment_create_params.rbs +2 -0
  114. data/sig/lithic/models/external_payment_list_params.rbs +2 -0
  115. data/sig/lithic/models/financial_accounts/installment_plan.rbs +227 -0
  116. data/sig/lithic/models/financial_accounts/installment_plan_list_params.rbs +69 -0
  117. data/sig/lithic/models/financial_accounts/installment_plan_retrieve_params.rbs +30 -0
  118. data/sig/lithic/models/financial_accounts/open_to_buy.rbs +27 -0
  119. data/sig/lithic/models/financial_accounts/open_to_buy_retrieve_params.rbs +26 -0
  120. data/sig/lithic/models/financial_accounts/open_to_buy_summary.rbs +32 -0
  121. data/sig/lithic/models/financial_accounts/statements/statement_line_items.rbs +20 -0
  122. data/sig/lithic/models/financial_accounts/transaction_category_balances.rbs +32 -0
  123. data/sig/lithic/models/financial_event.rbs +18 -0
  124. data/sig/lithic/models/management_operation_create_params.rbs +8 -0
  125. data/sig/lithic/models/management_operation_transaction.rbs +8 -0
  126. data/sig/lithic/models/parsed_webhook_event.rbs +1 -0
  127. data/sig/lithic/models/payment.rbs +2 -0
  128. data/sig/lithic/models/payment_create_stablecoin_params.rbs +84 -0
  129. data/sig/lithic/models/payment_create_stablecoin_response.rbs +15 -0
  130. data/sig/lithic/models/payment_list_params.rbs +2 -1
  131. data/sig/lithic/models/payment_retry_params.rbs +24 -1
  132. data/sig/lithic/models/payment_simulate_action_params.rbs +2 -0
  133. data/sig/lithic/models/three_ds_authentication.rbs +77 -0
  134. data/sig/lithic/models/transaction.rbs +4 -0
  135. data/sig/lithic/models.rbs +6 -0
  136. data/sig/lithic/resources/blockchain_recipients.rbs +5 -0
  137. data/sig/lithic/resources/financial_accounts/installment_plans.rbs +24 -0
  138. data/sig/lithic/resources/financial_accounts/open_to_buy.rbs +14 -0
  139. data/sig/lithic/resources/financial_accounts.rbs +4 -0
  140. data/sig/lithic/resources/payments.rbs +12 -0
  141. data/sig/lithic/resources/webhooks.rbs +1 -0
  142. metadata +41 -2
@@ -0,0 +1,162 @@
1
+ # typed: strong
2
+
3
+ module Lithic
4
+ module Models
5
+ class PaymentCreateStablecoinParams < Lithic::Internal::Type::BaseModel
6
+ extend Lithic::Internal::Type::RequestParameters::Converter
7
+ include Lithic::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ Lithic::PaymentCreateStablecoinParams,
13
+ Lithic::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # Payout amount in cents
18
+ sig { returns(Integer) }
19
+ attr_accessor :amount
20
+
21
+ # Token of the blockchain recipient to send the payout to. The recipient must be
22
+ # in the `ENABLED` verification state
23
+ sig { returns(String) }
24
+ attr_accessor :blockchain_recipient_token
25
+
26
+ # Token of the financial account the payout is funded from
27
+ sig { returns(String) }
28
+ attr_accessor :financial_account_token
29
+
30
+ # Direction of the payment. Stablecoin supports payouts only
31
+ sig { returns(Lithic::PaymentCreateStablecoinParams::Type::OrSymbol) }
32
+ attr_accessor :type
33
+
34
+ # Customer-provided token that will serve as an idempotency token. This token will
35
+ # become the transaction token
36
+ sig { returns(T.nilable(String)) }
37
+ attr_reader :token
38
+
39
+ sig { params(token: String).void }
40
+ attr_writer :token
41
+
42
+ # Optional hold to settle when this payout is initiated
43
+ sig { returns(T.nilable(Lithic::PaymentCreateStablecoinParams::Hold)) }
44
+ attr_reader :hold
45
+
46
+ sig do
47
+ params(hold: Lithic::PaymentCreateStablecoinParams::Hold::OrHash).void
48
+ end
49
+ attr_writer :hold
50
+
51
+ # Memo recorded on the payout. Defaults to `Stablecoin payout on <chain>` when
52
+ # omitted
53
+ sig { returns(T.nilable(String)) }
54
+ attr_reader :memo
55
+
56
+ sig { params(memo: String).void }
57
+ attr_writer :memo
58
+
59
+ sig do
60
+ params(
61
+ amount: Integer,
62
+ blockchain_recipient_token: String,
63
+ financial_account_token: String,
64
+ type: Lithic::PaymentCreateStablecoinParams::Type::OrSymbol,
65
+ token: String,
66
+ hold: Lithic::PaymentCreateStablecoinParams::Hold::OrHash,
67
+ memo: String,
68
+ request_options: Lithic::RequestOptions::OrHash
69
+ ).returns(T.attached_class)
70
+ end
71
+ def self.new(
72
+ # Payout amount in cents
73
+ amount:,
74
+ # Token of the blockchain recipient to send the payout to. The recipient must be
75
+ # in the `ENABLED` verification state
76
+ blockchain_recipient_token:,
77
+ # Token of the financial account the payout is funded from
78
+ financial_account_token:,
79
+ # Direction of the payment. Stablecoin supports payouts only
80
+ type:,
81
+ # Customer-provided token that will serve as an idempotency token. This token will
82
+ # become the transaction token
83
+ token: nil,
84
+ # Optional hold to settle when this payout is initiated
85
+ hold: nil,
86
+ # Memo recorded on the payout. Defaults to `Stablecoin payout on <chain>` when
87
+ # omitted
88
+ memo: nil,
89
+ request_options: {}
90
+ )
91
+ end
92
+
93
+ sig do
94
+ override.returns(
95
+ {
96
+ amount: Integer,
97
+ blockchain_recipient_token: String,
98
+ financial_account_token: String,
99
+ type: Lithic::PaymentCreateStablecoinParams::Type::OrSymbol,
100
+ token: String,
101
+ hold: Lithic::PaymentCreateStablecoinParams::Hold,
102
+ memo: String,
103
+ request_options: Lithic::RequestOptions
104
+ }
105
+ )
106
+ end
107
+ def to_hash
108
+ end
109
+
110
+ # Direction of the payment. Stablecoin supports payouts only
111
+ module Type
112
+ extend Lithic::Internal::Type::Enum
113
+
114
+ TaggedSymbol =
115
+ T.type_alias do
116
+ T.all(Symbol, Lithic::PaymentCreateStablecoinParams::Type)
117
+ end
118
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
119
+
120
+ PAYMENT =
121
+ T.let(
122
+ :PAYMENT,
123
+ Lithic::PaymentCreateStablecoinParams::Type::TaggedSymbol
124
+ )
125
+
126
+ sig do
127
+ override.returns(
128
+ T::Array[Lithic::PaymentCreateStablecoinParams::Type::TaggedSymbol]
129
+ )
130
+ end
131
+ def self.values
132
+ end
133
+ end
134
+
135
+ class Hold < Lithic::Internal::Type::BaseModel
136
+ OrHash =
137
+ T.type_alias do
138
+ T.any(
139
+ Lithic::PaymentCreateStablecoinParams::Hold,
140
+ Lithic::Internal::AnyHash
141
+ )
142
+ end
143
+
144
+ # Token of the hold to settle when this payout is initiated
145
+ sig { returns(String) }
146
+ attr_accessor :token
147
+
148
+ # Optional hold to settle when this payout is initiated
149
+ sig { params(token: String).returns(T.attached_class) }
150
+ def self.new(
151
+ # Token of the hold to settle when this payout is initiated
152
+ token:
153
+ )
154
+ end
155
+
156
+ sig { override.returns({ token: String }) }
157
+ def to_hash
158
+ end
159
+ end
160
+ end
161
+ end
162
+ end
@@ -0,0 +1,34 @@
1
+ # typed: strong
2
+
3
+ module Lithic
4
+ module Models
5
+ class PaymentCreateStablecoinResponse < Lithic::Models::Payment
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Lithic::Models::PaymentCreateStablecoinResponse,
10
+ Lithic::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # Balance
15
+ sig { returns(T.nilable(Lithic::Balance)) }
16
+ attr_reader :balance
17
+
18
+ sig { params(balance: Lithic::Balance::OrHash).void }
19
+ attr_writer :balance
20
+
21
+ # Payment transaction
22
+ sig { params(balance: Lithic::Balance::OrHash).returns(T.attached_class) }
23
+ def self.new(
24
+ # Balance
25
+ balance: nil
26
+ )
27
+ end
28
+
29
+ sig { override.returns({ balance: Lithic::Balance }) }
30
+ def to_hash
31
+ end
32
+ end
33
+ end
34
+ end
@@ -158,6 +158,8 @@ module Lithic
158
158
  OrSymbol = T.type_alias { T.any(Symbol, String) }
159
159
 
160
160
  ACH = T.let(:ACH, Lithic::PaymentListParams::Category::TaggedSymbol)
161
+ STABLECOIN =
162
+ T.let(:STABLECOIN, Lithic::PaymentListParams::Category::TaggedSymbol)
161
163
 
162
164
  sig do
163
165
  override.returns(
@@ -14,22 +14,67 @@ module Lithic
14
14
  sig { returns(String) }
15
15
  attr_accessor :payment_token
16
16
 
17
+ # Settlement speed to retry the payment at. Defaults to the original payment's
18
+ # method. An `ACH_SAME_DAY` retry is rejected if the payment is for $1,000,000.00
19
+ # or more, or if it is submitted after the same day ACH cutoff
20
+ sig { returns(T.nilable(Lithic::PaymentRetryParams::Method::OrSymbol)) }
21
+ attr_reader :method_
22
+
23
+ sig { params(method_: Lithic::PaymentRetryParams::Method::OrSymbol).void }
24
+ attr_writer :method_
25
+
17
26
  sig do
18
27
  params(
19
28
  payment_token: String,
29
+ method_: Lithic::PaymentRetryParams::Method::OrSymbol,
20
30
  request_options: Lithic::RequestOptions::OrHash
21
31
  ).returns(T.attached_class)
22
32
  end
23
- def self.new(payment_token:, request_options: {})
33
+ def self.new(
34
+ payment_token:,
35
+ # Settlement speed to retry the payment at. Defaults to the original payment's
36
+ # method. An `ACH_SAME_DAY` retry is rejected if the payment is for $1,000,000.00
37
+ # or more, or if it is submitted after the same day ACH cutoff
38
+ method_: nil,
39
+ request_options: {}
40
+ )
24
41
  end
25
42
 
26
43
  sig do
27
44
  override.returns(
28
- { payment_token: String, request_options: Lithic::RequestOptions }
45
+ {
46
+ payment_token: String,
47
+ method_: Lithic::PaymentRetryParams::Method::OrSymbol,
48
+ request_options: Lithic::RequestOptions
49
+ }
29
50
  )
30
51
  end
31
52
  def to_hash
32
53
  end
54
+
55
+ # Settlement speed to retry the payment at. Defaults to the original payment's
56
+ # method. An `ACH_SAME_DAY` retry is rejected if the payment is for $1,000,000.00
57
+ # or more, or if it is submitted after the same day ACH cutoff
58
+ module Method
59
+ extend Lithic::Internal::Type::Enum
60
+
61
+ TaggedSymbol =
62
+ T.type_alias { T.all(Symbol, Lithic::PaymentRetryParams::Method) }
63
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
64
+
65
+ ACH_NEXT_DAY =
66
+ T.let(:ACH_NEXT_DAY, Lithic::PaymentRetryParams::Method::TaggedSymbol)
67
+ ACH_SAME_DAY =
68
+ T.let(:ACH_SAME_DAY, Lithic::PaymentRetryParams::Method::TaggedSymbol)
69
+
70
+ sig do
71
+ override.returns(
72
+ T::Array[Lithic::PaymentRetryParams::Method::TaggedSymbol]
73
+ )
74
+ end
75
+ def self.values
76
+ end
77
+ end
33
78
  end
34
79
  end
35
80
  end
@@ -163,6 +163,11 @@ module Lithic
163
163
  :ACH_RETURN_SETTLED,
164
164
  Lithic::PaymentSimulateActionParams::EventType::TaggedSymbol
165
165
  )
166
+ STABLECOIN_REVIEWED =
167
+ T.let(
168
+ :STABLECOIN_REVIEWED,
169
+ Lithic::PaymentSimulateActionParams::EventType::TaggedSymbol
170
+ )
166
171
 
167
172
  sig do
168
173
  override.returns(
@@ -183,6 +183,20 @@ module Lithic
183
183
  end
184
184
  attr_accessor :decision_made_by
185
185
 
186
+ # PSD2/SCA context for EEA and UK transactions. Present when Lithic determines the
187
+ # transaction is in scope for PSD2 Strong Customer Authentication. Absent for
188
+ # out-of-scope transactions.
189
+ sig { returns(T.nilable(Lithic::ThreeDSAuthentication::Psd2Context)) }
190
+ attr_reader :psd2_context
191
+
192
+ sig do
193
+ params(
194
+ psd2_context:
195
+ T.nilable(Lithic::ThreeDSAuthentication::Psd2Context::OrHash)
196
+ ).void
197
+ end
198
+ attr_writer :psd2_context
199
+
186
200
  # Type of 3DS Requestor Initiated (3RI) request — i.e., a 3DS authentication that
187
201
  # takes place at the initiation of the merchant rather than the cardholder. The
188
202
  # most common example of this is where a merchant is authenticating before billing
@@ -245,6 +259,8 @@ module Lithic
245
259
  ),
246
260
  decision_made_by:
247
261
  T.nilable(Lithic::ThreeDSAuthentication::DecisionMadeBy::OrSymbol),
262
+ psd2_context:
263
+ T.nilable(Lithic::ThreeDSAuthentication::Psd2Context::OrHash),
248
264
  three_ri_request_type:
249
265
  T.nilable(
250
266
  Lithic::ThreeDSAuthentication::ThreeRiRequestType::OrSymbol
@@ -319,6 +335,10 @@ module Lithic
319
335
  # authentications for which a decision has not yet been made (e.g. in-flight
320
336
  # customer decisioning request).
321
337
  decision_made_by: nil,
338
+ # PSD2/SCA context for EEA and UK transactions. Present when Lithic determines the
339
+ # transaction is in scope for PSD2 Strong Customer Authentication. Absent for
340
+ # out-of-scope transactions.
341
+ psd2_context: nil,
322
342
  # Type of 3DS Requestor Initiated (3RI) request — i.e., a 3DS authentication that
323
343
  # takes place at the initiation of the merchant rather than the cardholder. The
324
344
  # most common example of this is where a merchant is authenticating before billing
@@ -370,6 +390,7 @@ module Lithic
370
390
  T.nilable(
371
391
  Lithic::ThreeDSAuthentication::DecisionMadeBy::TaggedSymbol
372
392
  ),
393
+ psd2_context: T.nilable(Lithic::ThreeDSAuthentication::Psd2Context),
373
394
  three_ri_request_type:
374
395
  T.nilable(
375
396
  Lithic::ThreeDSAuthentication::ThreeRiRequestType::TaggedSymbol
@@ -2171,6 +2192,277 @@ module Lithic
2171
2192
  end
2172
2193
  end
2173
2194
 
2195
+ class Psd2Context < Lithic::Internal::Type::BaseModel
2196
+ OrHash =
2197
+ T.type_alias do
2198
+ T.any(
2199
+ Lithic::ThreeDSAuthentication::Psd2Context,
2200
+ Lithic::Internal::AnyHash
2201
+ )
2202
+ end
2203
+
2204
+ # SCA exemption declared by the acquirer in the 3DS authentication request.
2205
+ #
2206
+ # - `NONE` - No exemption claimed
2207
+ # - `TRANSACTION_RISK_ANALYSIS` - Transaction Risk Analysis (TRA) exemption;
2208
+ # acquirer asserts low fraud risk
2209
+ # - `LOW_VALUE` - Low-value payment exemption; transaction is below the EUR 30
2210
+ # threshold
2211
+ # - `RECURRING_PAYMENT` - Recurring payment with a fixed amount to the same payee
2212
+ # - `MERCHANT_INITIATED_TRANSACTION` - Merchant-initiated transaction (MIT);
2213
+ # cardholder not present
2214
+ # - `TRUSTED_BENEFICIARY` - Trusted beneficiary; merchant is on cardholder's
2215
+ # whitelist
2216
+ # - `STRONG_CUSTOMER_AUTHENTICATION_DELEGATION` - SCA already performed by a
2217
+ # delegated third-party authenticator
2218
+ # - `SECURE_CORPORATE_PAYMENT` - Secure corporate payment using a dedicated
2219
+ # corporate card or process
2220
+ # - `AUTHENTICATION_OUTAGE_EXCEPTION` - Authentication outage exception;
2221
+ # scheme-level fallback during ACS downtime
2222
+ # - `BUNDLED` - Mastercard only; bundled exemption code where the exact exemption
2223
+ # type cannot be distinguished
2224
+ sig do
2225
+ returns(
2226
+ T.nilable(
2227
+ Lithic::ThreeDSAuthentication::Psd2Context::AcquirerExemption::TaggedSymbol
2228
+ )
2229
+ )
2230
+ end
2231
+ attr_reader :acquirer_exemption
2232
+
2233
+ sig do
2234
+ params(
2235
+ acquirer_exemption:
2236
+ Lithic::ThreeDSAuthentication::Psd2Context::AcquirerExemption::OrSymbol
2237
+ ).void
2238
+ end
2239
+ attr_writer :acquirer_exemption
2240
+
2241
+ # Lithic's validation of the acquirer-declared exemption. Absent when no acquirer
2242
+ # exemption was declared.
2243
+ #
2244
+ # - `ACCEPTED` - Lithic signals support the acquirer's claim
2245
+ # - `REJECTED` - Lithic signals contradict the claim, or a required signal is
2246
+ # missing
2247
+ # - `NOT_VALIDATED` - Exemption was declared but Lithic has no basis to evaluate
2248
+ # it; treated as `REJECTED` for challenge purposes
2249
+ sig do
2250
+ returns(
2251
+ T.nilable(
2252
+ Lithic::ThreeDSAuthentication::Psd2Context::LithicExemptionValidation::TaggedSymbol
2253
+ )
2254
+ )
2255
+ end
2256
+ attr_reader :lithic_exemption_validation
2257
+
2258
+ sig do
2259
+ params(
2260
+ lithic_exemption_validation:
2261
+ Lithic::ThreeDSAuthentication::Psd2Context::LithicExemptionValidation::OrSymbol
2262
+ ).void
2263
+ end
2264
+ attr_writer :lithic_exemption_validation
2265
+
2266
+ # PSD2/SCA context for EEA and UK transactions. Present when Lithic determines the
2267
+ # transaction is in scope for PSD2 Strong Customer Authentication. Absent for
2268
+ # out-of-scope transactions.
2269
+ sig do
2270
+ params(
2271
+ acquirer_exemption:
2272
+ Lithic::ThreeDSAuthentication::Psd2Context::AcquirerExemption::OrSymbol,
2273
+ lithic_exemption_validation:
2274
+ Lithic::ThreeDSAuthentication::Psd2Context::LithicExemptionValidation::OrSymbol
2275
+ ).returns(T.attached_class)
2276
+ end
2277
+ def self.new(
2278
+ # SCA exemption declared by the acquirer in the 3DS authentication request.
2279
+ #
2280
+ # - `NONE` - No exemption claimed
2281
+ # - `TRANSACTION_RISK_ANALYSIS` - Transaction Risk Analysis (TRA) exemption;
2282
+ # acquirer asserts low fraud risk
2283
+ # - `LOW_VALUE` - Low-value payment exemption; transaction is below the EUR 30
2284
+ # threshold
2285
+ # - `RECURRING_PAYMENT` - Recurring payment with a fixed amount to the same payee
2286
+ # - `MERCHANT_INITIATED_TRANSACTION` - Merchant-initiated transaction (MIT);
2287
+ # cardholder not present
2288
+ # - `TRUSTED_BENEFICIARY` - Trusted beneficiary; merchant is on cardholder's
2289
+ # whitelist
2290
+ # - `STRONG_CUSTOMER_AUTHENTICATION_DELEGATION` - SCA already performed by a
2291
+ # delegated third-party authenticator
2292
+ # - `SECURE_CORPORATE_PAYMENT` - Secure corporate payment using a dedicated
2293
+ # corporate card or process
2294
+ # - `AUTHENTICATION_OUTAGE_EXCEPTION` - Authentication outage exception;
2295
+ # scheme-level fallback during ACS downtime
2296
+ # - `BUNDLED` - Mastercard only; bundled exemption code where the exact exemption
2297
+ # type cannot be distinguished
2298
+ acquirer_exemption: nil,
2299
+ # Lithic's validation of the acquirer-declared exemption. Absent when no acquirer
2300
+ # exemption was declared.
2301
+ #
2302
+ # - `ACCEPTED` - Lithic signals support the acquirer's claim
2303
+ # - `REJECTED` - Lithic signals contradict the claim, or a required signal is
2304
+ # missing
2305
+ # - `NOT_VALIDATED` - Exemption was declared but Lithic has no basis to evaluate
2306
+ # it; treated as `REJECTED` for challenge purposes
2307
+ lithic_exemption_validation: nil
2308
+ )
2309
+ end
2310
+
2311
+ sig do
2312
+ override.returns(
2313
+ {
2314
+ acquirer_exemption:
2315
+ Lithic::ThreeDSAuthentication::Psd2Context::AcquirerExemption::TaggedSymbol,
2316
+ lithic_exemption_validation:
2317
+ Lithic::ThreeDSAuthentication::Psd2Context::LithicExemptionValidation::TaggedSymbol
2318
+ }
2319
+ )
2320
+ end
2321
+ def to_hash
2322
+ end
2323
+
2324
+ # SCA exemption declared by the acquirer in the 3DS authentication request.
2325
+ #
2326
+ # - `NONE` - No exemption claimed
2327
+ # - `TRANSACTION_RISK_ANALYSIS` - Transaction Risk Analysis (TRA) exemption;
2328
+ # acquirer asserts low fraud risk
2329
+ # - `LOW_VALUE` - Low-value payment exemption; transaction is below the EUR 30
2330
+ # threshold
2331
+ # - `RECURRING_PAYMENT` - Recurring payment with a fixed amount to the same payee
2332
+ # - `MERCHANT_INITIATED_TRANSACTION` - Merchant-initiated transaction (MIT);
2333
+ # cardholder not present
2334
+ # - `TRUSTED_BENEFICIARY` - Trusted beneficiary; merchant is on cardholder's
2335
+ # whitelist
2336
+ # - `STRONG_CUSTOMER_AUTHENTICATION_DELEGATION` - SCA already performed by a
2337
+ # delegated third-party authenticator
2338
+ # - `SECURE_CORPORATE_PAYMENT` - Secure corporate payment using a dedicated
2339
+ # corporate card or process
2340
+ # - `AUTHENTICATION_OUTAGE_EXCEPTION` - Authentication outage exception;
2341
+ # scheme-level fallback during ACS downtime
2342
+ # - `BUNDLED` - Mastercard only; bundled exemption code where the exact exemption
2343
+ # type cannot be distinguished
2344
+ module AcquirerExemption
2345
+ extend Lithic::Internal::Type::Enum
2346
+
2347
+ TaggedSymbol =
2348
+ T.type_alias do
2349
+ T.all(
2350
+ Symbol,
2351
+ Lithic::ThreeDSAuthentication::Psd2Context::AcquirerExemption
2352
+ )
2353
+ end
2354
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2355
+
2356
+ NONE =
2357
+ T.let(
2358
+ :NONE,
2359
+ Lithic::ThreeDSAuthentication::Psd2Context::AcquirerExemption::TaggedSymbol
2360
+ )
2361
+ TRANSACTION_RISK_ANALYSIS =
2362
+ T.let(
2363
+ :TRANSACTION_RISK_ANALYSIS,
2364
+ Lithic::ThreeDSAuthentication::Psd2Context::AcquirerExemption::TaggedSymbol
2365
+ )
2366
+ LOW_VALUE =
2367
+ T.let(
2368
+ :LOW_VALUE,
2369
+ Lithic::ThreeDSAuthentication::Psd2Context::AcquirerExemption::TaggedSymbol
2370
+ )
2371
+ RECURRING_PAYMENT =
2372
+ T.let(
2373
+ :RECURRING_PAYMENT,
2374
+ Lithic::ThreeDSAuthentication::Psd2Context::AcquirerExemption::TaggedSymbol
2375
+ )
2376
+ MERCHANT_INITIATED_TRANSACTION =
2377
+ T.let(
2378
+ :MERCHANT_INITIATED_TRANSACTION,
2379
+ Lithic::ThreeDSAuthentication::Psd2Context::AcquirerExemption::TaggedSymbol
2380
+ )
2381
+ TRUSTED_BENEFICIARY =
2382
+ T.let(
2383
+ :TRUSTED_BENEFICIARY,
2384
+ Lithic::ThreeDSAuthentication::Psd2Context::AcquirerExemption::TaggedSymbol
2385
+ )
2386
+ STRONG_CUSTOMER_AUTHENTICATION_DELEGATION =
2387
+ T.let(
2388
+ :STRONG_CUSTOMER_AUTHENTICATION_DELEGATION,
2389
+ Lithic::ThreeDSAuthentication::Psd2Context::AcquirerExemption::TaggedSymbol
2390
+ )
2391
+ SECURE_CORPORATE_PAYMENT =
2392
+ T.let(
2393
+ :SECURE_CORPORATE_PAYMENT,
2394
+ Lithic::ThreeDSAuthentication::Psd2Context::AcquirerExemption::TaggedSymbol
2395
+ )
2396
+ AUTHENTICATION_OUTAGE_EXCEPTION =
2397
+ T.let(
2398
+ :AUTHENTICATION_OUTAGE_EXCEPTION,
2399
+ Lithic::ThreeDSAuthentication::Psd2Context::AcquirerExemption::TaggedSymbol
2400
+ )
2401
+ BUNDLED =
2402
+ T.let(
2403
+ :BUNDLED,
2404
+ Lithic::ThreeDSAuthentication::Psd2Context::AcquirerExemption::TaggedSymbol
2405
+ )
2406
+
2407
+ sig do
2408
+ override.returns(
2409
+ T::Array[
2410
+ Lithic::ThreeDSAuthentication::Psd2Context::AcquirerExemption::TaggedSymbol
2411
+ ]
2412
+ )
2413
+ end
2414
+ def self.values
2415
+ end
2416
+ end
2417
+
2418
+ # Lithic's validation of the acquirer-declared exemption. Absent when no acquirer
2419
+ # exemption was declared.
2420
+ #
2421
+ # - `ACCEPTED` - Lithic signals support the acquirer's claim
2422
+ # - `REJECTED` - Lithic signals contradict the claim, or a required signal is
2423
+ # missing
2424
+ # - `NOT_VALIDATED` - Exemption was declared but Lithic has no basis to evaluate
2425
+ # it; treated as `REJECTED` for challenge purposes
2426
+ module LithicExemptionValidation
2427
+ extend Lithic::Internal::Type::Enum
2428
+
2429
+ TaggedSymbol =
2430
+ T.type_alias do
2431
+ T.all(
2432
+ Symbol,
2433
+ Lithic::ThreeDSAuthentication::Psd2Context::LithicExemptionValidation
2434
+ )
2435
+ end
2436
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2437
+
2438
+ ACCEPTED =
2439
+ T.let(
2440
+ :ACCEPTED,
2441
+ Lithic::ThreeDSAuthentication::Psd2Context::LithicExemptionValidation::TaggedSymbol
2442
+ )
2443
+ REJECTED =
2444
+ T.let(
2445
+ :REJECTED,
2446
+ Lithic::ThreeDSAuthentication::Psd2Context::LithicExemptionValidation::TaggedSymbol
2447
+ )
2448
+ NOT_VALIDATED =
2449
+ T.let(
2450
+ :NOT_VALIDATED,
2451
+ Lithic::ThreeDSAuthentication::Psd2Context::LithicExemptionValidation::TaggedSymbol
2452
+ )
2453
+
2454
+ sig do
2455
+ override.returns(
2456
+ T::Array[
2457
+ Lithic::ThreeDSAuthentication::Psd2Context::LithicExemptionValidation::TaggedSymbol
2458
+ ]
2459
+ )
2460
+ end
2461
+ def self.values
2462
+ end
2463
+ end
2464
+ end
2465
+
2174
2466
  # Type of 3DS Requestor Initiated (3RI) request — i.e., a 3DS authentication that
2175
2467
  # takes place at the initiation of the merchant rather than the cardholder. The
2176
2468
  # most common example of this is where a merchant is authenticating before billing
@@ -2079,6 +2079,11 @@ module Lithic
2079
2079
  :REVERSAL_UNMATCHED,
2080
2080
  Lithic::Transaction::Event::DetailedResult::TaggedSymbol
2081
2081
  )
2082
+ SCA_REQUIRED =
2083
+ T.let(
2084
+ :SCA_REQUIRED,
2085
+ Lithic::Transaction::Event::DetailedResult::TaggedSymbol
2086
+ )
2082
2087
  SECURITY_VIOLATION =
2083
2088
  T.let(
2084
2089
  :SECURITY_VIOLATION,
@@ -2982,6 +2987,11 @@ module Lithic
2982
2987
  :REVERSAL_UNMATCHED,
2983
2988
  Lithic::Transaction::Event::RuleResult::Result::TaggedSymbol
2984
2989
  )
2990
+ SCA_REQUIRED =
2991
+ T.let(
2992
+ :SCA_REQUIRED,
2993
+ Lithic::Transaction::Event::RuleResult::Result::TaggedSymbol
2994
+ )
2985
2995
  SECURITY_VIOLATION =
2986
2996
  T.let(
2987
2997
  :SECURITY_VIOLATION,
@@ -92,6 +92,9 @@ module Lithic
92
92
  BlockchainRecipientCreateParams =
93
93
  Lithic::Models::BlockchainRecipientCreateParams
94
94
 
95
+ BlockchainRecipientRetrieveParams =
96
+ Lithic::Models::BlockchainRecipientRetrieveParams
97
+
95
98
  BookTransferCreateParams = Lithic::Models::BookTransferCreateParams
96
99
 
97
100
  BookTransferListParams = Lithic::Models::BookTransferListParams
@@ -150,6 +153,8 @@ module Lithic
150
153
 
151
154
  CardListParams = Lithic::Models::CardListParams
152
155
 
156
+ CardPinUpdatedWebhookEvent = Lithic::Models::CardPinUpdatedWebhookEvent
157
+
153
158
  CardProgram = Lithic::Models::CardProgram
154
159
 
155
160
  CardProgramListParams = Lithic::Models::CardProgramListParams
@@ -493,6 +498,8 @@ module Lithic
493
498
 
494
499
  PaymentCreateParams = Lithic::Models::PaymentCreateParams
495
500
 
501
+ PaymentCreateStablecoinParams = Lithic::Models::PaymentCreateStablecoinParams
502
+
496
503
  PaymentListParams = Lithic::Models::PaymentListParams
497
504
 
498
505
  PaymentRetrieveParams = Lithic::Models::PaymentRetrieveParams
@@ -42,6 +42,20 @@ module Lithic
42
42
  )
43
43
  end
44
44
 
45
+ # Get a blockchain recipient by token
46
+ #
47
+ # Use this to poll the `verification_state` after registering an address: a
48
+ # recipient cannot receive a payout until screening completes and moves it out of
49
+ # `PENDING`
50
+ sig do
51
+ params(
52
+ blockchain_recipient_token: String,
53
+ request_options: Lithic::RequestOptions::OrHash
54
+ ).returns(Lithic::BlockchainRecipient)
55
+ end
56
+ def retrieve(blockchain_recipient_token, request_options: {})
57
+ end
58
+
45
59
  # @api private
46
60
  sig { params(client: Lithic::Client).returns(T.attached_class) }
47
61
  def self.new(client:)