lithic 0.19.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 (191) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +61 -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 +1 -0
  6. data/lib/lithic/models/account_activity_list_response.rb +1 -0
  7. data/lib/lithic/models/account_activity_retrieve_transaction_response.rb +1 -0
  8. data/lib/lithic/models/auth_rules/ach_payment_update_action.rb +1 -0
  9. data/lib/lithic/models/auth_rules/auth_rule.rb +5 -0
  10. data/lib/lithic/models/auth_rules/card_transaction_update_action.rb +1 -0
  11. data/lib/lithic/models/auth_rules/report_stats.rb +1 -0
  12. data/lib/lithic/models/auth_rules/v2_create_params.rb +15 -0
  13. data/lib/lithic/models/auth_rules/v2_list_results_response.rb +3 -0
  14. data/lib/lithic/models/auth_rules/velocity_limit_params.rb +24 -1
  15. data/lib/lithic/models/blockchain_recipient.rb +148 -0
  16. data/lib/lithic/models/blockchain_recipient_create_params.rb +74 -0
  17. data/lib/lithic/models/blockchain_recipient_retrieve_params.rb +20 -0
  18. data/lib/lithic/models/card.rb +2 -2
  19. data/lib/lithic/models/card_pin_updated_webhook_event.rb +87 -0
  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/event.rb +5 -0
  25. data/lib/lithic/models/event_list_params.rb +3 -0
  26. data/lib/lithic/models/event_subscription.rb +3 -0
  27. data/lib/lithic/models/events/subscription_create_params.rb +3 -0
  28. data/lib/lithic/models/events/subscription_send_simulated_example_params.rb +1 -0
  29. data/lib/lithic/models/events/subscription_update_params.rb +3 -0
  30. data/lib/lithic/models/external_payment.rb +6 -0
  31. data/lib/lithic/models/external_payment_create_params.rb +1 -0
  32. data/lib/lithic/models/external_payment_list_params.rb +1 -0
  33. data/lib/lithic/models/financial_account.rb +14 -1
  34. data/lib/lithic/models/financial_accounts/installment_plan.rb +311 -0
  35. data/lib/lithic/models/financial_accounts/installment_plan_list_params.rb +75 -0
  36. data/lib/lithic/models/financial_accounts/installment_plan_retrieve_params.rb +32 -0
  37. data/lib/lithic/models/financial_accounts/open_to_buy.rb +36 -0
  38. data/lib/lithic/models/financial_accounts/open_to_buy_retrieve_params.rb +22 -0
  39. data/lib/lithic/models/financial_accounts/open_to_buy_summary.rb +46 -0
  40. data/lib/lithic/models/financial_accounts/statements/statement_line_items.rb +13 -0
  41. data/lib/lithic/models/financial_accounts/transaction_category_balances.rb +34 -0
  42. data/lib/lithic/models/financial_event.rb +12 -0
  43. data/lib/lithic/models/management_operation_create_params.rb +4 -0
  44. data/lib/lithic/models/management_operation_transaction.rb +4 -0
  45. data/lib/lithic/models/parsed_webhook_event.rb +3 -1
  46. data/lib/lithic/models/payment.rb +68 -9
  47. data/lib/lithic/models/payment_create_stablecoin_params.rb +99 -0
  48. data/lib/lithic/models/payment_create_stablecoin_response.rb +19 -0
  49. data/lib/lithic/models/payment_list_params.rb +1 -0
  50. data/lib/lithic/models/payment_retry_params.rb +28 -1
  51. data/lib/lithic/models/payment_simulate_action_params.rb +1 -0
  52. data/lib/lithic/models/three_ds_authentication.rb +126 -1
  53. data/lib/lithic/models/tokenization_simulate_params.rb +2 -2
  54. data/lib/lithic/models/transaction.rb +2 -0
  55. data/lib/lithic/models/transaction_monitoring/case_entity.rb +13 -4
  56. data/lib/lithic/models/transaction_monitoring/case_list_params.rb +4 -2
  57. data/lib/lithic/models.rb +12 -0
  58. data/lib/lithic/resources/blockchain_recipients.rb +80 -0
  59. data/lib/lithic/resources/cards.rb +33 -4
  60. data/lib/lithic/resources/disputes_v2.rb +3 -1
  61. data/lib/lithic/resources/financial_accounts/installment_plans.rb +82 -0
  62. data/lib/lithic/resources/financial_accounts/open_to_buy.rb +48 -0
  63. data/lib/lithic/resources/financial_accounts.rb +8 -0
  64. data/lib/lithic/resources/payments.rb +71 -3
  65. data/lib/lithic/resources/tokenizations.rb +1 -1
  66. data/lib/lithic/resources/transaction_monitoring/cases.rb +1 -1
  67. data/lib/lithic/version.rb +1 -1
  68. data/lib/lithic.rb +17 -0
  69. data/rbi/lithic/client.rbi +3 -0
  70. data/rbi/lithic/models/account_activity_list_params.rbi +5 -0
  71. data/rbi/lithic/models/account_activity_list_response.rbi +5 -0
  72. data/rbi/lithic/models/account_activity_retrieve_transaction_response.rbi +5 -0
  73. data/rbi/lithic/models/auth_rules/ach_payment_update_action.rbi +5 -0
  74. data/rbi/lithic/models/auth_rules/auth_rule.rbi +7 -0
  75. data/rbi/lithic/models/auth_rules/card_transaction_update_action.rbi +5 -0
  76. data/rbi/lithic/models/auth_rules/report_stats.rbi +5 -0
  77. data/rbi/lithic/models/auth_rules/v2_create_params.rbi +33 -0
  78. data/rbi/lithic/models/auth_rules/v2_list_results_response.rbi +15 -0
  79. data/rbi/lithic/models/auth_rules/velocity_limit_params.rbi +30 -0
  80. data/rbi/lithic/models/blockchain_recipient.rbi +209 -0
  81. data/rbi/lithic/models/blockchain_recipient_create_params.rbi +102 -0
  82. data/rbi/lithic/models/blockchain_recipient_retrieve_params.rbi +41 -0
  83. data/rbi/lithic/models/card.rbi +2 -2
  84. data/rbi/lithic/models/card_pin_updated_webhook_event.rbi +166 -0
  85. data/rbi/lithic/models/card_provision_params.rbi +16 -12
  86. data/rbi/lithic/models/card_reassign_account_params.rbi +49 -0
  87. data/rbi/lithic/models/dispute_v2.rbi +285 -181
  88. data/rbi/lithic/models/disputes_v2_list_params.rbi +13 -0
  89. data/rbi/lithic/models/event.rbi +8 -0
  90. data/rbi/lithic/models/event_list_params.rbi +7 -0
  91. data/rbi/lithic/models/event_subscription.rbi +7 -0
  92. data/rbi/lithic/models/events/subscription_create_params.rbi +7 -0
  93. data/rbi/lithic/models/events/subscription_send_simulated_example_params.rbi +5 -0
  94. data/rbi/lithic/models/events/subscription_update_params.rbi +7 -0
  95. data/rbi/lithic/models/external_payment.rbi +30 -0
  96. data/rbi/lithic/models/external_payment_create_params.rbi +5 -0
  97. data/rbi/lithic/models/external_payment_list_params.rbi +5 -0
  98. data/rbi/lithic/models/financial_account.rbi +12 -0
  99. data/rbi/lithic/models/financial_accounts/installment_plan.rbi +528 -0
  100. data/rbi/lithic/models/financial_accounts/installment_plan_list_params.rbi +155 -0
  101. data/rbi/lithic/models/financial_accounts/installment_plan_retrieve_params.rbi +56 -0
  102. data/rbi/lithic/models/financial_accounts/open_to_buy.rbi +64 -0
  103. data/rbi/lithic/models/financial_accounts/open_to_buy_retrieve_params.rbi +43 -0
  104. data/rbi/lithic/models/financial_accounts/open_to_buy_summary.rbi +73 -0
  105. data/rbi/lithic/models/financial_accounts/statements/statement_line_items.rbi +65 -0
  106. data/rbi/lithic/models/financial_accounts/transaction_category_balances.rbi +81 -0
  107. data/rbi/lithic/models/financial_event.rbi +47 -0
  108. data/rbi/lithic/models/management_operation_create_params.rbi +20 -0
  109. data/rbi/lithic/models/management_operation_transaction.rbi +20 -0
  110. data/rbi/lithic/models/parsed_webhook_event.rbi +1 -0
  111. data/rbi/lithic/models/payment.rbi +108 -10
  112. data/rbi/lithic/models/payment_create_stablecoin_params.rbi +162 -0
  113. data/rbi/lithic/models/payment_create_stablecoin_response.rbi +34 -0
  114. data/rbi/lithic/models/payment_list_params.rbi +2 -0
  115. data/rbi/lithic/models/payment_retry_params.rbi +47 -2
  116. data/rbi/lithic/models/payment_simulate_action_params.rbi +5 -0
  117. data/rbi/lithic/models/three_ds_authentication.rbi +292 -0
  118. data/rbi/lithic/models/tokenization_simulate_params.rbi +2 -2
  119. data/rbi/lithic/models/transaction.rbi +10 -0
  120. data/rbi/lithic/models/transaction_monitoring/case_entity.rbi +27 -5
  121. data/rbi/lithic/models/transaction_monitoring/case_list_params.rbi +6 -2
  122. data/rbi/lithic/models.rbi +14 -0
  123. data/rbi/lithic/resources/blockchain_recipients.rbi +65 -0
  124. data/rbi/lithic/resources/cards.rbi +31 -8
  125. data/rbi/lithic/resources/disputes_v2.rbi +4 -0
  126. data/rbi/lithic/resources/financial_accounts/installment_plans.rbi +66 -0
  127. data/rbi/lithic/resources/financial_accounts/open_to_buy.rbi +40 -0
  128. data/rbi/lithic/resources/financial_accounts.rbi +6 -0
  129. data/rbi/lithic/resources/payments.rbi +68 -2
  130. data/rbi/lithic/resources/tokenizations.rbi +1 -1
  131. data/rbi/lithic/resources/transaction_monitoring/cases.rbi +3 -1
  132. data/rbi/lithic/resources/webhooks.rbi +1 -0
  133. data/sig/lithic/client.rbs +2 -0
  134. data/sig/lithic/models/account_activity_list_params.rbs +2 -0
  135. data/sig/lithic/models/account_activity_list_response.rbs +2 -0
  136. data/sig/lithic/models/account_activity_retrieve_transaction_response.rbs +2 -0
  137. data/sig/lithic/models/auth_rules/ach_payment_update_action.rbs +2 -1
  138. data/sig/lithic/models/auth_rules/auth_rule.rbs +2 -0
  139. data/sig/lithic/models/auth_rules/card_transaction_update_action.rbs +2 -1
  140. data/sig/lithic/models/auth_rules/report_stats.rbs +2 -0
  141. data/sig/lithic/models/auth_rules/v2_create_params.rbs +6 -0
  142. data/sig/lithic/models/auth_rules/v2_list_results_response.rbs +6 -2
  143. data/sig/lithic/models/auth_rules/velocity_limit_params.rbs +10 -0
  144. data/sig/lithic/models/blockchain_recipient.rbs +106 -0
  145. data/sig/lithic/models/blockchain_recipient_create_params.rbs +60 -0
  146. data/sig/lithic/models/blockchain_recipient_retrieve_params.rbs +24 -0
  147. data/sig/lithic/models/card_pin_updated_webhook_event.rbs +60 -0
  148. data/sig/lithic/models/card_reassign_account_params.rbs +28 -0
  149. data/sig/lithic/models/dispute_v2.rbs +145 -101
  150. data/sig/lithic/models/disputes_v2_list_params.rbs +7 -0
  151. data/sig/lithic/models/event.rbs +2 -0
  152. data/sig/lithic/models/event_list_params.rbs +2 -0
  153. data/sig/lithic/models/event_subscription.rbs +2 -0
  154. data/sig/lithic/models/events/subscription_create_params.rbs +2 -0
  155. data/sig/lithic/models/events/subscription_send_simulated_example_params.rbs +2 -0
  156. data/sig/lithic/models/events/subscription_update_params.rbs +2 -0
  157. data/sig/lithic/models/external_payment.rbs +12 -0
  158. data/sig/lithic/models/external_payment_create_params.rbs +2 -0
  159. data/sig/lithic/models/external_payment_list_params.rbs +2 -0
  160. data/sig/lithic/models/financial_account.rbs +5 -0
  161. data/sig/lithic/models/financial_accounts/installment_plan.rbs +227 -0
  162. data/sig/lithic/models/financial_accounts/installment_plan_list_params.rbs +69 -0
  163. data/sig/lithic/models/financial_accounts/installment_plan_retrieve_params.rbs +30 -0
  164. data/sig/lithic/models/financial_accounts/open_to_buy.rbs +27 -0
  165. data/sig/lithic/models/financial_accounts/open_to_buy_retrieve_params.rbs +26 -0
  166. data/sig/lithic/models/financial_accounts/open_to_buy_summary.rbs +32 -0
  167. data/sig/lithic/models/financial_accounts/statements/statement_line_items.rbs +26 -0
  168. data/sig/lithic/models/financial_accounts/transaction_category_balances.rbs +32 -0
  169. data/sig/lithic/models/financial_event.rbs +24 -0
  170. data/sig/lithic/models/management_operation_create_params.rbs +8 -0
  171. data/sig/lithic/models/management_operation_transaction.rbs +8 -0
  172. data/sig/lithic/models/parsed_webhook_event.rbs +1 -0
  173. data/sig/lithic/models/payment.rbs +33 -1
  174. data/sig/lithic/models/payment_create_stablecoin_params.rbs +84 -0
  175. data/sig/lithic/models/payment_create_stablecoin_response.rbs +15 -0
  176. data/sig/lithic/models/payment_list_params.rbs +2 -1
  177. data/sig/lithic/models/payment_retry_params.rbs +24 -1
  178. data/sig/lithic/models/payment_simulate_action_params.rbs +2 -0
  179. data/sig/lithic/models/three_ds_authentication.rbs +77 -0
  180. data/sig/lithic/models/transaction.rbs +4 -0
  181. data/sig/lithic/models/transaction_monitoring/case_entity.rbs +7 -5
  182. data/sig/lithic/models.rbs +12 -0
  183. data/sig/lithic/resources/blockchain_recipients.rbs +23 -0
  184. data/sig/lithic/resources/cards.rbs +6 -0
  185. data/sig/lithic/resources/disputes_v2.rbs +1 -0
  186. data/sig/lithic/resources/financial_accounts/installment_plans.rbs +24 -0
  187. data/sig/lithic/resources/financial_accounts/open_to_buy.rbs +14 -0
  188. data/sig/lithic/resources/financial_accounts.rbs +4 -0
  189. data/sig/lithic/resources/payments.rbs +12 -0
  190. data/sig/lithic/resources/webhooks.rbs +1 -0
  191. metadata +53 -2
@@ -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
@@ -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:,
@@ -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,
@@ -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,14 @@ 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
+
95
+ BlockchainRecipientRetrieveParams =
96
+ Lithic::Models::BlockchainRecipientRetrieveParams
97
+
90
98
  BookTransferCreateParams = Lithic::Models::BookTransferCreateParams
91
99
 
92
100
  BookTransferListParams = Lithic::Models::BookTransferListParams
@@ -145,6 +153,8 @@ module Lithic
145
153
 
146
154
  CardListParams = Lithic::Models::CardListParams
147
155
 
156
+ CardPinUpdatedWebhookEvent = Lithic::Models::CardPinUpdatedWebhookEvent
157
+
148
158
  CardProgram = Lithic::Models::CardProgram
149
159
 
150
160
  CardProgramListParams = Lithic::Models::CardProgramListParams
@@ -153,6 +163,8 @@ module Lithic
153
163
 
154
164
  CardProvisionParams = Lithic::Models::CardProvisionParams
155
165
 
166
+ CardReassignAccountParams = Lithic::Models::CardReassignAccountParams
167
+
156
168
  CardReissuedWebhookEvent = Lithic::Models::CardReissuedWebhookEvent
157
169
 
158
170
  CardReissueParams = Lithic::Models::CardReissueParams
@@ -486,6 +498,8 @@ module Lithic
486
498
 
487
499
  PaymentCreateParams = Lithic::Models::PaymentCreateParams
488
500
 
501
+ PaymentCreateStablecoinParams = Lithic::Models::PaymentCreateStablecoinParams
502
+
489
503
  PaymentListParams = Lithic::Models::PaymentListParams
490
504
 
491
505
  PaymentRetrieveParams = Lithic::Models::PaymentRetrieveParams
@@ -0,0 +1,65 @@
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
+ # 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
+
59
+ # @api private
60
+ sig { params(client: Lithic::Client).returns(T.attached_class) }
61
+ def self.new(client:)
62
+ end
63
+ end
64
+ end
65
+ 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,11 +489,31 @@ 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
493
514
  # applies to cards of type `PHYSICAL`. A card can be reissued or renewed a total
494
- # of 8 times.
515
+ # of 8 times. Returns `409` if the card is still ongoing manufacturing when using
516
+ # Thales as a manufacturer.
495
517
  sig do
496
518
  params(
497
519
  card_token: String,
@@ -541,7 +563,8 @@ module Lithic
541
563
  # `PHYSICAL` card can be reissued or renewed a total of 8 times. For `VIRTUAL`,
542
564
  # the card will retain the same card token and PAN and receive an updated expiry
543
565
  # and CVC2 code. `product_id`, `shipping_method`, `shipping_address`, `carrier`
544
- # are only relevant for renewing `PHYSICAL` cards.
566
+ # are only relevant for renewing `PHYSICAL` cards. Returns `409` if the card is
567
+ # still ongoing manufacturing when using Thales as a manufacturer.
545
568
  sig do
546
569
  params(
547
570
  card_token: String,
@@ -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,