lithic 0.13.0 → 0.15.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 (145) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +35 -0
  3. data/README.md +1 -1
  4. data/lib/lithic/client.rb +4 -0
  5. data/lib/lithic/internal/transport/base_client.rb +2 -0
  6. data/lib/lithic/models/account_holder_simulate_enrollment_review_response.rb +4 -4
  7. data/lib/lithic/models/account_retrieve_signals_params.rb +20 -0
  8. data/lib/lithic/models/auth_rules/auth_rule.rb +10 -6
  9. data/lib/lithic/models/auth_rules/auth_rule_condition.rb +2 -2
  10. data/lib/lithic/models/auth_rules/auth_rule_version.rb +5 -3
  11. data/lib/lithic/models/auth_rules/conditional_3ds_action_parameters.rb +8 -6
  12. data/lib/lithic/models/auth_rules/conditional_ach_action_parameters.rb +4 -4
  13. data/lib/lithic/models/auth_rules/conditional_authorization_action_parameters.rb +119 -44
  14. data/lib/lithic/models/auth_rules/conditional_authorization_adjustment_parameters.rb +533 -0
  15. data/lib/lithic/models/auth_rules/conditional_card_transaction_update_action_parameters.rb +18 -14
  16. data/lib/lithic/models/auth_rules/conditional_tokenization_action_parameters.rb +6 -6
  17. data/lib/lithic/models/auth_rules/conditional_value.rb +3 -2
  18. data/lib/lithic/models/auth_rules/v2_create_params.rb +15 -9
  19. data/lib/lithic/models/auth_rules/v2_draft_params.rb +5 -3
  20. data/lib/lithic/models/balance.rb +8 -6
  21. data/lib/lithic/models/card_authorization.rb +1266 -0
  22. data/lib/lithic/models/card_authorization_approval_request_webhook_event.rb +3 -1253
  23. data/lib/lithic/models/card_authorization_challenge_response_params.rb +40 -0
  24. data/lib/lithic/models/card_authorization_challenge_response_webhook_event.rb +1 -0
  25. data/lib/lithic/models/card_authorization_challenge_webhook_event.rb +67 -0
  26. data/lib/lithic/models/card_program.rb +2 -2
  27. data/lib/lithic/models/card_retrieve_signals_params.rb +20 -0
  28. data/lib/lithic/models/event.rb +13 -4
  29. data/lib/lithic/models/event_list_params.rb +7 -2
  30. data/lib/lithic/models/event_subscription.rb +7 -2
  31. data/lib/lithic/models/events/subscription_create_params.rb +7 -2
  32. data/lib/lithic/models/events/subscription_send_simulated_example_params.rb +1 -0
  33. data/lib/lithic/models/events/subscription_update_params.rb +7 -2
  34. data/lib/lithic/models/external_bank_account.rb +1 -1
  35. data/lib/lithic/models/external_bank_account_pause_params.rb +20 -0
  36. data/lib/lithic/models/financial_accounts/statement.rb +4 -4
  37. data/lib/lithic/models/financial_accounts/statements/statement_line_items.rb +3 -2
  38. data/lib/lithic/models/financial_event.rb +1 -0
  39. data/lib/lithic/models/kyb_business_entity.rb +2 -2
  40. data/lib/lithic/models/parsed_webhook_event.rb +4 -1
  41. data/lib/lithic/models/settlement_detail.rb +14 -14
  42. data/lib/lithic/models/signals_response.rb +306 -0
  43. data/lib/lithic/models/statement_totals.rb +6 -6
  44. data/lib/lithic/models/tokenization_decline_reason.rb +1 -0
  45. data/lib/lithic/models/transaction.rb +2 -2
  46. data/lib/lithic/models/transfer_limits_response.rb +12 -12
  47. data/lib/lithic/models.rb +14 -0
  48. data/lib/lithic/resources/accounts.rb +27 -0
  49. data/lib/lithic/resources/auth_rules/v2.rb +1 -1
  50. data/lib/lithic/resources/card_authorizations.rb +45 -0
  51. data/lib/lithic/resources/cards.rb +25 -0
  52. data/lib/lithic/resources/external_bank_accounts.rb +19 -0
  53. data/lib/lithic/resources/webhooks.rb +1 -1
  54. data/lib/lithic/version.rb +1 -1
  55. data/lib/lithic.rb +9 -0
  56. data/rbi/lithic/client.rbi +3 -0
  57. data/rbi/lithic/models/account_holder_simulate_enrollment_review_response.rbi +6 -12
  58. data/rbi/lithic/models/account_retrieve_signals_params.rbi +35 -0
  59. data/rbi/lithic/models/auth_rules/auth_rule.rbi +8 -4
  60. data/rbi/lithic/models/auth_rules/auth_rule_version.rbi +4 -2
  61. data/rbi/lithic/models/auth_rules/conditional_3ds_action_parameters.rbi +9 -6
  62. data/rbi/lithic/models/auth_rules/conditional_ach_action_parameters.rbi +3 -3
  63. data/rbi/lithic/models/auth_rules/conditional_authorization_action_parameters.rbi +214 -63
  64. data/rbi/lithic/models/auth_rules/conditional_authorization_adjustment_parameters.rbi +1147 -0
  65. data/rbi/lithic/models/auth_rules/conditional_card_transaction_update_action_parameters.rbi +24 -18
  66. data/rbi/lithic/models/auth_rules/conditional_tokenization_action_parameters.rbi +6 -6
  67. data/rbi/lithic/models/auth_rules/conditional_value.rbi +1 -1
  68. data/rbi/lithic/models/auth_rules/v2_create_params.rbi +24 -12
  69. data/rbi/lithic/models/auth_rules/v2_draft_params.rbi +8 -4
  70. data/rbi/lithic/models/balance.rbi +12 -6
  71. data/rbi/lithic/models/card_authorization.rbi +2540 -0
  72. data/rbi/lithic/models/card_authorization_approval_request_webhook_event.rbi +5 -2758
  73. data/rbi/lithic/models/card_authorization_challenge_response_params.rbi +93 -0
  74. data/rbi/lithic/models/card_authorization_challenge_response_webhook_event.rbi +5 -0
  75. data/rbi/lithic/models/card_authorization_challenge_webhook_event.rbi +119 -0
  76. data/rbi/lithic/models/card_program.rbi +3 -6
  77. data/rbi/lithic/models/card_retrieve_signals_params.rbi +35 -0
  78. data/rbi/lithic/models/event.rbi +23 -6
  79. data/rbi/lithic/models/event_list_params.rbi +11 -2
  80. data/rbi/lithic/models/event_subscription.rbi +11 -2
  81. data/rbi/lithic/models/events/subscription_create_params.rbi +11 -2
  82. data/rbi/lithic/models/events/subscription_send_simulated_example_params.rbi +5 -0
  83. data/rbi/lithic/models/events/subscription_update_params.rbi +11 -2
  84. data/rbi/lithic/models/external_bank_account_pause_params.rbi +41 -0
  85. data/rbi/lithic/models/financial_accounts/statement.rbi +6 -12
  86. data/rbi/lithic/models/financial_accounts/statements/statement_line_items.rbi +8 -6
  87. data/rbi/lithic/models/financial_event.rbi +2 -0
  88. data/rbi/lithic/models/kyb_business_entity.rbi +3 -6
  89. data/rbi/lithic/models/parsed_webhook_event.rbi +1 -0
  90. data/rbi/lithic/models/settlement_detail.rbi +15 -15
  91. data/rbi/lithic/models/signals_response.rbi +352 -0
  92. data/rbi/lithic/models/statement_totals.rbi +9 -18
  93. data/rbi/lithic/models/tokenization_decline_reason.rbi +2 -0
  94. data/rbi/lithic/models/transaction.rbi +3 -3
  95. data/rbi/lithic/models/transfer_limits_response.rbi +48 -48
  96. data/rbi/lithic/models.rbi +17 -0
  97. data/rbi/lithic/resources/accounts.rbi +21 -0
  98. data/rbi/lithic/resources/auth_rules/v2.rbi +2 -1
  99. data/rbi/lithic/resources/card_authorizations.rbi +35 -0
  100. data/rbi/lithic/resources/cards.rbi +19 -0
  101. data/rbi/lithic/resources/external_bank_accounts.rbi +10 -0
  102. data/rbi/lithic/resources/webhooks.rbi +4 -1
  103. data/sig/lithic/client.rbs +2 -0
  104. data/sig/lithic/models/account_holder_simulate_enrollment_review_response.rbs +8 -12
  105. data/sig/lithic/models/account_retrieve_signals_params.rbs +23 -0
  106. data/sig/lithic/models/auth_rules/auth_rule.rbs +2 -0
  107. data/sig/lithic/models/auth_rules/auth_rule_version.rbs +1 -0
  108. data/sig/lithic/models/auth_rules/conditional_authorization_action_parameters.rbs +29 -3
  109. data/sig/lithic/models/auth_rules/conditional_authorization_adjustment_parameters.rbs +276 -0
  110. data/sig/lithic/models/auth_rules/conditional_value.rbs +1 -1
  111. data/sig/lithic/models/auth_rules/v2_create_params.rbs +3 -0
  112. data/sig/lithic/models/auth_rules/v2_draft_params.rbs +1 -0
  113. data/sig/lithic/models/balance.rbs +17 -9
  114. data/sig/lithic/models/card_authorization.rbs +1038 -0
  115. data/sig/lithic/models/card_authorization_approval_request_webhook_event.rbs +7 -1013
  116. data/sig/lithic/models/card_authorization_challenge_response_params.rbs +42 -0
  117. data/sig/lithic/models/card_authorization_challenge_response_webhook_event.rbs +2 -1
  118. data/sig/lithic/models/card_authorization_challenge_webhook_event.rbs +53 -0
  119. data/sig/lithic/models/card_program.rbs +4 -6
  120. data/sig/lithic/models/card_retrieve_signals_params.rbs +23 -0
  121. data/sig/lithic/models/event.rbs +2 -0
  122. data/sig/lithic/models/event_list_params.rbs +2 -0
  123. data/sig/lithic/models/event_subscription.rbs +2 -0
  124. data/sig/lithic/models/events/subscription_create_params.rbs +2 -0
  125. data/sig/lithic/models/events/subscription_send_simulated_example_params.rbs +2 -0
  126. data/sig/lithic/models/events/subscription_update_params.rbs +2 -0
  127. data/sig/lithic/models/external_bank_account_pause_params.rbs +24 -0
  128. data/sig/lithic/models/financial_accounts/statement.rbs +8 -12
  129. data/sig/lithic/models/financial_accounts/statements/statement_line_items.rbs +6 -6
  130. data/sig/lithic/models/financial_event.rbs +2 -0
  131. data/sig/lithic/models/kyb_business_entity.rbs +4 -6
  132. data/sig/lithic/models/parsed_webhook_event.rbs +1 -0
  133. data/sig/lithic/models/settlement_detail.rbs +18 -18
  134. data/sig/lithic/models/signals_response.rbs +170 -0
  135. data/sig/lithic/models/statement_totals.rbs +12 -18
  136. data/sig/lithic/models/tokenization_decline_reason.rbs +2 -0
  137. data/sig/lithic/models/transaction.rbs +4 -8
  138. data/sig/lithic/models/transfer_limits_response.rbs +24 -36
  139. data/sig/lithic/models.rbs +14 -0
  140. data/sig/lithic/resources/accounts.rbs +5 -0
  141. data/sig/lithic/resources/card_authorizations.rbs +13 -0
  142. data/sig/lithic/resources/cards.rbs +5 -0
  143. data/sig/lithic/resources/external_bank_accounts.rbs +5 -0
  144. data/sig/lithic/resources/webhooks.rbs +1 -0
  145. metadata +29 -2
@@ -0,0 +1,306 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Lithic
4
+ module Models
5
+ class SignalsResponse < Lithic::Internal::Type::BaseModel
6
+ # @!attribute approved_txn_amount_m2
7
+ # The Welford M2 accumulator for lifetime approved transaction amounts. Used
8
+ # together with `avg_transaction_amount` and `approved_txn_count` to compute the
9
+ # z-score of a new transaction amount (variance = M2 / (count - 1)).
10
+ #
11
+ # @return [Float, nil]
12
+ required :approved_txn_amount_m2, Float, nil?: true
13
+
14
+ # @!attribute approved_txn_amount_m2_30d
15
+ # The Welford M2 accumulator for approved transaction amounts over the last 30
16
+ # days.
17
+ #
18
+ # @return [Float, nil]
19
+ required :approved_txn_amount_m2_30d, Float, nil?: true
20
+
21
+ # @!attribute approved_txn_amount_m2_7d
22
+ # The Welford M2 accumulator for approved transaction amounts over the last 7
23
+ # days.
24
+ #
25
+ # @return [Float, nil]
26
+ required :approved_txn_amount_m2_7d, Float, nil?: true
27
+
28
+ # @!attribute approved_txn_amount_m2_90d
29
+ # The Welford M2 accumulator for approved transaction amounts over the last 90
30
+ # days.
31
+ #
32
+ # @return [Float, nil]
33
+ required :approved_txn_amount_m2_90d, Float, nil?: true
34
+
35
+ # @!attribute approved_txn_count
36
+ # The total number of approved transactions over the entity's lifetime.
37
+ #
38
+ # @return [Integer, nil]
39
+ required :approved_txn_count, Integer, nil?: true
40
+
41
+ # @!attribute approved_txn_count_30d
42
+ # The number of approved transactions in the last 30 days.
43
+ #
44
+ # @return [Integer, nil]
45
+ required :approved_txn_count_30d, Integer, nil?: true
46
+
47
+ # @!attribute approved_txn_count_7d
48
+ # The number of approved transactions in the last 7 days.
49
+ #
50
+ # @return [Integer, nil]
51
+ required :approved_txn_count_7d, Integer, nil?: true
52
+
53
+ # @!attribute approved_txn_count_90d
54
+ # The number of approved transactions in the last 90 days.
55
+ #
56
+ # @return [Integer, nil]
57
+ required :approved_txn_count_90d, Integer, nil?: true
58
+
59
+ # @!attribute avg_transaction_amount
60
+ # The average approved transaction amount over the entity's lifetime, in cents.
61
+ # Null if fewer than 5 approved transactions have been recorded.
62
+ #
63
+ # @return [Float, nil]
64
+ required :avg_transaction_amount, Float, nil?: true
65
+
66
+ # @!attribute avg_transaction_amount_30d
67
+ # The average approved transaction amount over the last 30 days, in cents. Null if
68
+ # fewer than 5 approved transactions in window.
69
+ #
70
+ # @return [Float, nil]
71
+ required :avg_transaction_amount_30d, Float, nil?: true
72
+
73
+ # @!attribute avg_transaction_amount_7d
74
+ # The average approved transaction amount over the last 7 days, in cents. Null if
75
+ # fewer than 5 approved transactions in window.
76
+ #
77
+ # @return [Float, nil]
78
+ required :avg_transaction_amount_7d, Float, nil?: true
79
+
80
+ # @!attribute avg_transaction_amount_90d
81
+ # The average approved transaction amount over the last 90 days, in cents. Null if
82
+ # fewer than 5 approved transactions in window.
83
+ #
84
+ # @return [Float, nil]
85
+ required :avg_transaction_amount_90d, Float, nil?: true
86
+
87
+ # @!attribute distinct_country_count
88
+ # The number of distinct merchant countries seen in the entity's transaction
89
+ # history.
90
+ #
91
+ # @return [Integer, nil]
92
+ required :distinct_country_count, Integer, nil?: true
93
+
94
+ # @!attribute distinct_mcc_count
95
+ # The number of distinct MCCs seen in the entity's transaction history.
96
+ #
97
+ # @return [Integer, nil]
98
+ required :distinct_mcc_count, Integer, nil?: true
99
+
100
+ # @!attribute first_txn_at
101
+ # The timestamp of the first approved transaction for the entity, in ISO 8601
102
+ # format.
103
+ #
104
+ # @return [Time, nil]
105
+ required :first_txn_at, Time, nil?: true
106
+
107
+ # @!attribute is_first_transaction
108
+ # Whether the entity has no prior transaction history. Returns true if no history
109
+ # is found. Null if transaction history exists but a first transaction timestamp
110
+ # is unavailable.
111
+ #
112
+ # @return [Boolean, nil]
113
+ required :is_first_transaction, Lithic::Internal::Type::Boolean, nil?: true
114
+
115
+ # @!attribute last_cp_country
116
+ # The merchant country of the last card-present transaction.
117
+ #
118
+ # @return [String, nil]
119
+ required :last_cp_country, String, nil?: true
120
+
121
+ # @!attribute last_cp_postal_code
122
+ # The merchant postal code of the last card-present transaction.
123
+ #
124
+ # @return [String, nil]
125
+ required :last_cp_postal_code, String, nil?: true
126
+
127
+ # @!attribute last_cp_timestamp
128
+ # The timestamp of the last card-present transaction, in ISO 8601 format.
129
+ #
130
+ # @return [Time, nil]
131
+ required :last_cp_timestamp, Time, nil?: true
132
+
133
+ # @!attribute last_txn_approved_at
134
+ # The timestamp of the most recent approved transaction for the entity, in ISO
135
+ # 8601 format.
136
+ #
137
+ # @return [Time, nil]
138
+ required :last_txn_approved_at, Time, nil?: true
139
+
140
+ # @!attribute seen_countries
141
+ # The set of merchant countries seen in the entity's transaction history. Clients
142
+ # can use this to determine whether a new transaction's country is novel (i.e.
143
+ # compute `is_new_country`).
144
+ #
145
+ # @return [Array<String>, nil]
146
+ required :seen_countries, Lithic::Internal::Type::ArrayOf[String], nil?: true
147
+
148
+ # @!attribute seen_mccs
149
+ # The set of MCCs seen in the entity's transaction history. Clients can use this
150
+ # to determine whether a new transaction's MCC is novel (i.e. compute
151
+ # `is_new_mcc`).
152
+ #
153
+ # @return [Array<String>, nil]
154
+ required :seen_mccs, Lithic::Internal::Type::ArrayOf[String], nil?: true
155
+
156
+ # @!attribute seen_merchants
157
+ # The set of card acceptor IDs seen in the card's approved transaction history,
158
+ # capped at the 1000 most recently seen. Null for account responses. Clients can
159
+ # use this to determine whether a new transaction's merchant is novel (i.e.
160
+ # compute `is_new_merchant`).
161
+ #
162
+ # @return [Array<String>, nil]
163
+ required :seen_merchants, Lithic::Internal::Type::ArrayOf[String], nil?: true
164
+
165
+ # @!attribute stdev_transaction_amount
166
+ # The standard deviation of approved transaction amounts over the entity's
167
+ # lifetime, in cents. Null if fewer than 30 approved transactions have been
168
+ # recorded.
169
+ #
170
+ # @return [Float, nil]
171
+ required :stdev_transaction_amount, Float, nil?: true
172
+
173
+ # @!attribute stdev_transaction_amount_30d
174
+ # The standard deviation of approved transaction amounts over the last 30 days, in
175
+ # cents. Null if fewer than 30 approved transactions in window.
176
+ #
177
+ # @return [Float, nil]
178
+ required :stdev_transaction_amount_30d, Float, nil?: true
179
+
180
+ # @!attribute stdev_transaction_amount_7d
181
+ # The standard deviation of approved transaction amounts over the last 7 days, in
182
+ # cents. Null if fewer than 30 approved transactions in window.
183
+ #
184
+ # @return [Float, nil]
185
+ required :stdev_transaction_amount_7d, Float, nil?: true
186
+
187
+ # @!attribute stdev_transaction_amount_90d
188
+ # The standard deviation of approved transaction amounts over the last 90 days, in
189
+ # cents. Null if fewer than 30 approved transactions in window.
190
+ #
191
+ # @return [Float, nil]
192
+ required :stdev_transaction_amount_90d, Float, nil?: true
193
+
194
+ # @!attribute three_ds_success_count
195
+ # The number of successful 3DS authentications for the card. Null for account
196
+ # responses.
197
+ #
198
+ # @return [Integer, nil]
199
+ required :three_ds_success_count, Integer, nil?: true
200
+
201
+ # @!attribute three_ds_success_rate
202
+ # The 3DS authentication success rate for the card, as a percentage from 0.0 to
203
+ # 100.0. Null for account responses.
204
+ #
205
+ # @return [Float, nil]
206
+ required :three_ds_success_rate, Float, nil?: true
207
+
208
+ # @!attribute three_ds_total_count
209
+ # The total number of 3DS authentication attempts for the card. Null for account
210
+ # responses.
211
+ #
212
+ # @return [Integer, nil]
213
+ required :three_ds_total_count, Integer, nil?: true
214
+
215
+ # @!attribute time_since_last_transaction_days
216
+ # The number of days since the last approved transaction on the entity.
217
+ #
218
+ # @return [Float, nil]
219
+ required :time_since_last_transaction_days, Float, nil?: true
220
+
221
+ # @!method initialize(approved_txn_amount_m2:, approved_txn_amount_m2_30d:, approved_txn_amount_m2_7d:, approved_txn_amount_m2_90d:, approved_txn_count:, approved_txn_count_30d:, approved_txn_count_7d:, approved_txn_count_90d:, avg_transaction_amount:, avg_transaction_amount_30d:, avg_transaction_amount_7d:, avg_transaction_amount_90d:, distinct_country_count:, distinct_mcc_count:, first_txn_at:, is_first_transaction:, last_cp_country:, last_cp_postal_code:, last_cp_timestamp:, last_txn_approved_at:, seen_countries:, seen_mccs:, seen_merchants:, stdev_transaction_amount:, stdev_transaction_amount_30d:, stdev_transaction_amount_7d:, stdev_transaction_amount_90d:, three_ds_success_count:, three_ds_success_rate:, three_ds_total_count:, time_since_last_transaction_days:)
222
+ # Some parameter documentations has been truncated, see
223
+ # {Lithic::Models::SignalsResponse} for more details.
224
+ #
225
+ # Behavioral feature state for a card or account derived from its transaction
226
+ # history.
227
+ #
228
+ # Derived statistical features (averages, standard deviations, z-scores) are
229
+ # computed using Welford's online algorithm over approved transactions. Average
230
+ # fields are null when fewer than 5 approved transactions have been recorded.
231
+ # Standard deviation fields are null when fewer than 30 approved transactions have
232
+ # been recorded.
233
+ #
234
+ # 3DS fields (`three_ds_success_rate`, `three_ds_success_count`,
235
+ # `three_ds_total_count`) are card-scoped and will be null for account responses.
236
+ #
237
+ # Raw fields (`seen_countries`, `seen_mccs`, `approved_txn_amount_m2`, etc.) are
238
+ # included so clients can compute their own transaction-specific derivations, such
239
+ # as checking whether a new transaction's country is in `seen_countries` to
240
+ # determine `is_new_country`, or computing a z-score using the raw mean and M2
241
+ # values.
242
+ #
243
+ # @param approved_txn_amount_m2 [Float, nil] The Welford M2 accumulator for lifetime approved transaction amounts. Used toget
244
+ #
245
+ # @param approved_txn_amount_m2_30d [Float, nil] The Welford M2 accumulator for approved transaction amounts over the last 30 day
246
+ #
247
+ # @param approved_txn_amount_m2_7d [Float, nil] The Welford M2 accumulator for approved transaction amounts over the last 7 days
248
+ #
249
+ # @param approved_txn_amount_m2_90d [Float, nil] The Welford M2 accumulator for approved transaction amounts over the last 90 day
250
+ #
251
+ # @param approved_txn_count [Integer, nil] The total number of approved transactions over the entity's lifetime.
252
+ #
253
+ # @param approved_txn_count_30d [Integer, nil] The number of approved transactions in the last 30 days.
254
+ #
255
+ # @param approved_txn_count_7d [Integer, nil] The number of approved transactions in the last 7 days.
256
+ #
257
+ # @param approved_txn_count_90d [Integer, nil] The number of approved transactions in the last 90 days.
258
+ #
259
+ # @param avg_transaction_amount [Float, nil] The average approved transaction amount over the entity's lifetime, in cents. Nu
260
+ #
261
+ # @param avg_transaction_amount_30d [Float, nil] The average approved transaction amount over the last 30 days, in cents. Null if
262
+ #
263
+ # @param avg_transaction_amount_7d [Float, nil] The average approved transaction amount over the last 7 days, in cents. Null if
264
+ #
265
+ # @param avg_transaction_amount_90d [Float, nil] The average approved transaction amount over the last 90 days, in cents. Null if
266
+ #
267
+ # @param distinct_country_count [Integer, nil] The number of distinct merchant countries seen in the entity's transaction histo
268
+ #
269
+ # @param distinct_mcc_count [Integer, nil] The number of distinct MCCs seen in the entity's transaction history.
270
+ #
271
+ # @param first_txn_at [Time, nil] The timestamp of the first approved transaction for the entity, in ISO 8601 form
272
+ #
273
+ # @param is_first_transaction [Boolean, nil] Whether the entity has no prior transaction history. Returns true if no history
274
+ #
275
+ # @param last_cp_country [String, nil] The merchant country of the last card-present transaction.
276
+ #
277
+ # @param last_cp_postal_code [String, nil] The merchant postal code of the last card-present transaction.
278
+ #
279
+ # @param last_cp_timestamp [Time, nil] The timestamp of the last card-present transaction, in ISO 8601 format.
280
+ #
281
+ # @param last_txn_approved_at [Time, nil] The timestamp of the most recent approved transaction for the entity, in ISO 860
282
+ #
283
+ # @param seen_countries [Array<String>, nil] The set of merchant countries seen in the entity's transaction history. Clients
284
+ #
285
+ # @param seen_mccs [Array<String>, nil] The set of MCCs seen in the entity's transaction history. Clients can use this t
286
+ #
287
+ # @param seen_merchants [Array<String>, nil] The set of card acceptor IDs seen in the card's approved transaction history, ca
288
+ #
289
+ # @param stdev_transaction_amount [Float, nil] The standard deviation of approved transaction amounts over the entity's lifetim
290
+ #
291
+ # @param stdev_transaction_amount_30d [Float, nil] The standard deviation of approved transaction amounts over the last 30 days, in
292
+ #
293
+ # @param stdev_transaction_amount_7d [Float, nil] The standard deviation of approved transaction amounts over the last 7 days, in
294
+ #
295
+ # @param stdev_transaction_amount_90d [Float, nil] The standard deviation of approved transaction amounts over the last 90 days, in
296
+ #
297
+ # @param three_ds_success_count [Integer, nil] The number of successful 3DS authentications for the card. Null for account resp
298
+ #
299
+ # @param three_ds_success_rate [Float, nil] The 3DS authentication success rate for the card, as a percentage from 0.0 to 10
300
+ #
301
+ # @param three_ds_total_count [Integer, nil] The total number of 3DS authentication attempts for the card. Null for account r
302
+ #
303
+ # @param time_since_last_transaction_days [Float, nil] The number of days since the last approved transaction on the entity.
304
+ end
305
+ end
306
+ end
@@ -56,19 +56,19 @@ module Lithic
56
56
  # Breakdown of credits
57
57
  #
58
58
  # @return [Object, nil]
59
- optional :credit_details, Lithic::Internal::Type::Unknown
59
+ optional :credit_details, Lithic::Internal::Type::Unknown, nil?: true
60
60
 
61
61
  # @!attribute debit_details
62
62
  # Breakdown of debits
63
63
  #
64
64
  # @return [Object, nil]
65
- optional :debit_details, Lithic::Internal::Type::Unknown
65
+ optional :debit_details, Lithic::Internal::Type::Unknown, nil?: true
66
66
 
67
67
  # @!attribute payment_details
68
68
  # Breakdown of payments
69
69
  #
70
70
  # @return [Object, nil]
71
- optional :payment_details, Lithic::Internal::Type::Unknown
71
+ optional :payment_details, Lithic::Internal::Type::Unknown, nil?: true
72
72
 
73
73
  # @!method initialize(balance_transfers:, cash_advances:, credits:, debits:, fees:, interest:, payments:, purchases:, credit_details: nil, debit_details: nil, payment_details: nil)
74
74
  # Some parameter documentations has been truncated, see
@@ -90,11 +90,11 @@ module Lithic
90
90
  #
91
91
  # @param purchases [Integer] Net card transaction volume less any cash advances in cents
92
92
  #
93
- # @param credit_details [Object] Breakdown of credits
93
+ # @param credit_details [Object, nil] Breakdown of credits
94
94
  #
95
- # @param debit_details [Object] Breakdown of debits
95
+ # @param debit_details [Object, nil] Breakdown of debits
96
96
  #
97
- # @param payment_details [Object] Breakdown of payments
97
+ # @param payment_details [Object, nil] Breakdown of payments
98
98
  end
99
99
  end
100
100
  end
@@ -19,6 +19,7 @@ module Lithic
19
19
  NETWORK_FAILURE = :NETWORK_FAILURE
20
20
  GENERIC_DECLINE = :GENERIC_DECLINE
21
21
  DIGITAL_CARD_ART_REQUIRED = :DIGITAL_CARD_ART_REQUIRED
22
+ INVALID_PAN = :INVALID_PAN
22
23
 
23
24
  # @!method self.values
24
25
  # @return [Array<Symbol>]
@@ -874,7 +874,7 @@ module Lithic
874
874
  # @!attribute network_specific_data
875
875
  #
876
876
  # @return [Lithic::Models::Transaction::Event::NetworkSpecificData, nil]
877
- optional :network_specific_data, -> { Lithic::Transaction::Event::NetworkSpecificData }
877
+ optional :network_specific_data, -> { Lithic::Transaction::Event::NetworkSpecificData }, nil?: true
878
878
 
879
879
  # @!method initialize(token:, amount:, amounts:, created:, detailed_results:, effective_polarity:, network_info:, result:, rule_results:, type:, account_type: nil, network_specific_data: nil)
880
880
  # Some parameter documentations has been truncated, see
@@ -902,7 +902,7 @@ module Lithic
902
902
  #
903
903
  # @param account_type [Symbol, Lithic::Models::Transaction::Event::AccountType]
904
904
  #
905
- # @param network_specific_data [Lithic::Models::Transaction::Event::NetworkSpecificData]
905
+ # @param network_specific_data [Lithic::Models::Transaction::Event::NetworkSpecificData, nil]
906
906
 
907
907
  # @see Lithic::Models::Transaction::Event#amounts
908
908
  class Amounts < Lithic::Internal::Type::BaseModel
@@ -104,14 +104,14 @@ module Lithic
104
104
  # Amount originated towards limit
105
105
  #
106
106
  # @return [Integer, nil]
107
- optional :amount_originated, Integer
107
+ optional :amount_originated, Integer, nil?: true
108
108
 
109
109
  # @!method initialize(limit:, amount_originated: nil)
110
110
  # Credit limits
111
111
  #
112
112
  # @param limit [Integer] The limit amount
113
113
  #
114
- # @param amount_originated [Integer] Amount originated towards limit
114
+ # @param amount_originated [Integer, nil] Amount originated towards limit
115
115
  end
116
116
 
117
117
  # @see Lithic::Models::TransferLimitsResponse::Data::DailyLimit#debit
@@ -126,14 +126,14 @@ module Lithic
126
126
  # Amount originated towards limit
127
127
  #
128
128
  # @return [Integer, nil]
129
- optional :amount_originated, Integer
129
+ optional :amount_originated, Integer, nil?: true
130
130
 
131
131
  # @!method initialize(limit:, amount_originated: nil)
132
132
  # Debit limits
133
133
  #
134
134
  # @param limit [Integer] The limit amount
135
135
  #
136
- # @param amount_originated [Integer] Amount originated towards limit
136
+ # @param amount_originated [Integer, nil] Amount originated towards limit
137
137
  end
138
138
  end
139
139
 
@@ -170,14 +170,14 @@ module Lithic
170
170
  # Amount originated towards limit
171
171
  #
172
172
  # @return [Integer, nil]
173
- optional :amount_originated, Integer
173
+ optional :amount_originated, Integer, nil?: true
174
174
 
175
175
  # @!method initialize(limit:, amount_originated: nil)
176
176
  # Credit limits
177
177
  #
178
178
  # @param limit [Integer] The limit amount
179
179
  #
180
- # @param amount_originated [Integer] Amount originated towards limit
180
+ # @param amount_originated [Integer, nil] Amount originated towards limit
181
181
  end
182
182
 
183
183
  # @see Lithic::Models::TransferLimitsResponse::Data::MonthlyLimit#debit
@@ -192,14 +192,14 @@ module Lithic
192
192
  # Amount originated towards limit
193
193
  #
194
194
  # @return [Integer, nil]
195
- optional :amount_originated, Integer
195
+ optional :amount_originated, Integer, nil?: true
196
196
 
197
197
  # @!method initialize(limit:, amount_originated: nil)
198
198
  # Debit limits
199
199
  #
200
200
  # @param limit [Integer] The limit amount
201
201
  #
202
- # @param amount_originated [Integer] Amount originated towards limit
202
+ # @param amount_originated [Integer, nil] Amount originated towards limit
203
203
  end
204
204
  end
205
205
 
@@ -236,14 +236,14 @@ module Lithic
236
236
  # Amount originated towards limit
237
237
  #
238
238
  # @return [Integer, nil]
239
- optional :amount_originated, Integer
239
+ optional :amount_originated, Integer, nil?: true
240
240
 
241
241
  # @!method initialize(limit:, amount_originated: nil)
242
242
  # Credit limits
243
243
  #
244
244
  # @param limit [Integer] The limit amount
245
245
  #
246
- # @param amount_originated [Integer] Amount originated towards limit
246
+ # @param amount_originated [Integer, nil] Amount originated towards limit
247
247
  end
248
248
 
249
249
  # @see Lithic::Models::TransferLimitsResponse::Data::ProgramLimitPerTransaction#debit
@@ -258,14 +258,14 @@ module Lithic
258
258
  # Amount originated towards limit
259
259
  #
260
260
  # @return [Integer, nil]
261
- optional :amount_originated, Integer
261
+ optional :amount_originated, Integer, nil?: true
262
262
 
263
263
  # @!method initialize(limit:, amount_originated: nil)
264
264
  # Debit limits
265
265
  #
266
266
  # @param limit [Integer] The limit amount
267
267
  #
268
- # @param amount_originated [Integer] Amount originated towards limit
268
+ # @param amount_originated [Integer, nil] Amount originated towards limit
269
269
  end
270
270
  end
271
271
  end
data/lib/lithic/models.rb CHANGED
@@ -82,6 +82,8 @@ module Lithic
82
82
 
83
83
  AccountRetrieveParams = Lithic::Models::AccountRetrieveParams
84
84
 
85
+ AccountRetrieveSignalsParams = Lithic::Models::AccountRetrieveSignalsParams
86
+
85
87
  AccountRetrieveSpendLimitsParams = Lithic::Models::AccountRetrieveSpendLimitsParams
86
88
 
87
89
  AccountSpendLimits = Lithic::Models::AccountSpendLimits
@@ -128,12 +130,18 @@ module Lithic
128
130
 
129
131
  Card = Lithic::Models::Card
130
132
 
133
+ CardAuthorization = Lithic::Models::CardAuthorization
134
+
131
135
  CardAuthorizationApprovalRequestWebhookEvent =
132
136
  Lithic::Models::CardAuthorizationApprovalRequestWebhookEvent
133
137
 
138
+ CardAuthorizationChallengeResponseParams = Lithic::Models::CardAuthorizationChallengeResponseParams
139
+
134
140
  CardAuthorizationChallengeResponseWebhookEvent =
135
141
  Lithic::Models::CardAuthorizationChallengeResponseWebhookEvent
136
142
 
143
+ CardAuthorizationChallengeWebhookEvent = Lithic::Models::CardAuthorizationChallengeWebhookEvent
144
+
137
145
  CardBulkOrder = Lithic::Models::CardBulkOrder
138
146
 
139
147
  CardBulkOrderCreateParams = Lithic::Models::CardBulkOrderCreateParams
@@ -176,6 +184,8 @@ module Lithic
176
184
 
177
185
  CardRetrieveParams = Lithic::Models::CardRetrieveParams
178
186
 
187
+ CardRetrieveSignalsParams = Lithic::Models::CardRetrieveSignalsParams
188
+
179
189
  CardRetrieveSpendLimitsParams = Lithic::Models::CardRetrieveSpendLimitsParams
180
190
 
181
191
  Cards = Lithic::Models::Cards
@@ -292,6 +302,8 @@ module Lithic
292
302
 
293
303
  ExternalBankAccountListParams = Lithic::Models::ExternalBankAccountListParams
294
304
 
305
+ ExternalBankAccountPauseParams = Lithic::Models::ExternalBankAccountPauseParams
306
+
295
307
  ExternalBankAccountRetrieveParams = Lithic::Models::ExternalBankAccountRetrieveParams
296
308
 
297
309
  ExternalBankAccountRetryMicroDepositsParams = Lithic::Models::ExternalBankAccountRetryMicroDepositsParams
@@ -487,6 +499,8 @@ module Lithic
487
499
 
488
500
  ShippingAddress = Lithic::Models::ShippingAddress
489
501
 
502
+ SignalsResponse = Lithic::Models::SignalsResponse
503
+
490
504
  SpendLimitDuration = Lithic::Models::SpendLimitDuration
491
505
 
492
506
  StatementsCreatedWebhookEvent = Lithic::Models::StatementsCreatedWebhookEvent
@@ -99,6 +99,33 @@ module Lithic
99
99
  )
100
100
  end
101
101
 
102
+ # Returns behavioral feature state derived from an account's transaction history.
103
+ #
104
+ # These signals expose the same data used by behavioral rule attributes (e.g.
105
+ # `AMOUNT_Z_SCORE` with `scope: ACCOUNT`, `IS_NEW_COUNTRY` with `scope: ACCOUNT`)
106
+ # and custom code `TRANSACTION_HISTORY_SIGNALS` features, allowing clients to
107
+ # inspect feature values before writing rules and debug rule behavior.
108
+ #
109
+ # Note: 3DS fields are not available at the account scope and will be null.
110
+ #
111
+ # @overload retrieve_signals(account_token, request_options: {})
112
+ #
113
+ # @param account_token [String] The token of the account to fetch signals for.
114
+ #
115
+ # @param request_options [Lithic::RequestOptions, Hash{Symbol=>Object}, nil]
116
+ #
117
+ # @return [Lithic::Models::SignalsResponse]
118
+ #
119
+ # @see Lithic::Models::AccountRetrieveSignalsParams
120
+ def retrieve_signals(account_token, params = {})
121
+ @client.request(
122
+ method: :get,
123
+ path: ["v1/accounts/%1$s/signals", account_token],
124
+ model: Lithic::SignalsResponse,
125
+ options: params[:request_options]
126
+ )
127
+ end
128
+
102
129
  # Get an Account's available spend limits, which is based on the spend limit
103
130
  # configured on the Account and the amount already spent over the spend limit's
104
131
  # duration. For example, if the Account has a daily spend limit of $1000
@@ -144,7 +144,7 @@ module Lithic
144
144
  #
145
145
  # @param auth_rule_token [String]
146
146
  #
147
- # @param parameters [Lithic::Models::AuthRules::ConditionalBlockParameters, Lithic::Models::AuthRules::VelocityLimitParams, Lithic::Models::AuthRules::MerchantLockParameters, Lithic::Models::AuthRules::Conditional3DSActionParameters, Lithic::Models::AuthRules::ConditionalAuthorizationActionParameters, Lithic::Models::AuthRules::ConditionalACHActionParameters, Lithic::Models::AuthRules::ConditionalTokenizationActionParameters, Lithic::Models::AuthRules::ConditionalCardTransactionUpdateActionParameters, Lithic::Models::AuthRules::TypescriptCodeParameters, nil] Parameters for the Auth Rule
147
+ # @param parameters [Lithic::Models::AuthRules::ConditionalBlockParameters, Lithic::Models::AuthRules::VelocityLimitParams, Lithic::Models::AuthRules::MerchantLockParameters, Lithic::Models::AuthRules::Conditional3DSActionParameters, Lithic::Models::AuthRules::ConditionalAuthorizationActionParameters, Lithic::Models::AuthRules::ConditionalACHActionParameters, Lithic::Models::AuthRules::ConditionalTokenizationActionParameters, Lithic::Models::AuthRules::ConditionalCardTransactionUpdateActionParameters, Lithic::Models::AuthRules::TypescriptCodeParameters, Lithic::Models::AuthRules::ConditionalAuthorizationAdjustmentParameters, nil] Parameters for the Auth Rule
148
148
  #
149
149
  # @param request_options [Lithic::RequestOptions, Hash{Symbol=>Object}, nil]
150
150
  #
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Lithic
4
+ module Resources
5
+ class CardAuthorizations
6
+ # Some parameter documentations has been truncated, see
7
+ # {Lithic::Models::CardAuthorizationChallengeResponseParams} for more details.
8
+ #
9
+ # Card program's response to Authorization Challenge. Programs that have
10
+ # Authorization Challenges configured as Out of Band receive a
11
+ # [card_authorization.challenge](https://docs.lithic.com/reference/post_card-authorization-challenge)
12
+ # webhook when an authorization attempt triggers a challenge. The card program
13
+ # should respond using this endpoint after the cardholder completes the challenge.
14
+ #
15
+ # @overload challenge_response(event_token, response:, request_options: {})
16
+ #
17
+ # @param event_token [String] Globally unique identifier for the authorization event that triggered the challe
18
+ #
19
+ # @param response [Symbol, Lithic::Models::CardAuthorizationChallengeResponseParams::Response] Whether the cardholder has approved or declined the issued challenge
20
+ #
21
+ # @param request_options [Lithic::RequestOptions, Hash{Symbol=>Object}, nil]
22
+ #
23
+ # @return [nil]
24
+ #
25
+ # @see Lithic::Models::CardAuthorizationChallengeResponseParams
26
+ def challenge_response(event_token, params)
27
+ parsed, options = Lithic::CardAuthorizationChallengeResponseParams.dump_request(params)
28
+ @client.request(
29
+ method: :post,
30
+ path: ["v1/card_authorizations/%1$s/challenge_response", event_token],
31
+ body: parsed,
32
+ model: NilClass,
33
+ options: options
34
+ )
35
+ end
36
+
37
+ # @api private
38
+ #
39
+ # @param client [Lithic::Client]
40
+ def initialize(client:)
41
+ @client = client
42
+ end
43
+ end
44
+ end
45
+ end
@@ -404,6 +404,31 @@ module Lithic
404
404
  )
405
405
  end
406
406
 
407
+ # Returns behavioral feature state derived from a card's transaction history.
408
+ #
409
+ # These signals expose the same data used by behavioral rule attributes (e.g.
410
+ # `AMOUNT_Z_SCORE` with `scope: CARD`, `IS_NEW_COUNTRY` with `scope: CARD`) and
411
+ # custom code `TRANSACTION_HISTORY_SIGNALS` features, allowing clients to inspect
412
+ # feature values before writing rules and debug rule behavior.
413
+ #
414
+ # @overload retrieve_signals(card_token, request_options: {})
415
+ #
416
+ # @param card_token [String] The token of the card to fetch signals for.
417
+ #
418
+ # @param request_options [Lithic::RequestOptions, Hash{Symbol=>Object}, nil]
419
+ #
420
+ # @return [Lithic::Models::SignalsResponse]
421
+ #
422
+ # @see Lithic::Models::CardRetrieveSignalsParams
423
+ def retrieve_signals(card_token, params = {})
424
+ @client.request(
425
+ method: :get,
426
+ path: ["v1/cards/%1$s/signals", card_token],
427
+ model: Lithic::SignalsResponse,
428
+ options: params[:request_options]
429
+ )
430
+ end
431
+
407
432
  # Get a Card's available spend limit, which is based on the spend limit configured
408
433
  # on the Card and the amount already spent over the spend limit's duration. For
409
434
  # example, if the Card has a monthly spend limit of $1000 configured, and has
@@ -132,6 +132,25 @@ module Lithic
132
132
  )
133
133
  end
134
134
 
135
+ # Pause an external bank account
136
+ #
137
+ # @overload pause(external_bank_account_token, request_options: {})
138
+ #
139
+ # @param external_bank_account_token [String]
140
+ # @param request_options [Lithic::RequestOptions, Hash{Symbol=>Object}, nil]
141
+ #
142
+ # @return [Lithic::Models::ExternalBankAccount]
143
+ #
144
+ # @see Lithic::Models::ExternalBankAccountPauseParams
145
+ def pause(external_bank_account_token, params = {})
146
+ @client.request(
147
+ method: :post,
148
+ path: ["v1/external_bank_accounts/%1$s/pause", external_bank_account_token],
149
+ model: Lithic::ExternalBankAccount,
150
+ options: params[:request_options]
151
+ )
152
+ end
153
+
135
154
  # Retry external bank account micro deposit verification.
136
155
  #
137
156
  # @overload retry_micro_deposits(external_bank_account_token, financial_account_token: nil, request_options: {})