lithic 0.14.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 (129) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -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/auth_rules/auth_rule.rb +10 -6
  8. data/lib/lithic/models/auth_rules/auth_rule_condition.rb +2 -2
  9. data/lib/lithic/models/auth_rules/auth_rule_version.rb +5 -3
  10. data/lib/lithic/models/auth_rules/conditional_3ds_action_parameters.rb +8 -6
  11. data/lib/lithic/models/auth_rules/conditional_ach_action_parameters.rb +4 -4
  12. data/lib/lithic/models/auth_rules/conditional_authorization_action_parameters.rb +52 -34
  13. data/lib/lithic/models/auth_rules/conditional_authorization_adjustment_parameters.rb +533 -0
  14. data/lib/lithic/models/auth_rules/conditional_card_transaction_update_action_parameters.rb +18 -14
  15. data/lib/lithic/models/auth_rules/conditional_tokenization_action_parameters.rb +6 -6
  16. data/lib/lithic/models/auth_rules/conditional_value.rb +3 -2
  17. data/lib/lithic/models/auth_rules/v2_create_params.rb +15 -9
  18. data/lib/lithic/models/auth_rules/v2_draft_params.rb +5 -3
  19. data/lib/lithic/models/balance.rb +8 -6
  20. data/lib/lithic/models/card_authorization.rb +1266 -0
  21. data/lib/lithic/models/card_authorization_approval_request_webhook_event.rb +3 -1253
  22. data/lib/lithic/models/card_authorization_challenge_response_params.rb +40 -0
  23. data/lib/lithic/models/card_authorization_challenge_response_webhook_event.rb +1 -0
  24. data/lib/lithic/models/card_authorization_challenge_webhook_event.rb +67 -0
  25. data/lib/lithic/models/card_program.rb +2 -2
  26. data/lib/lithic/models/event.rb +13 -4
  27. data/lib/lithic/models/event_list_params.rb +7 -2
  28. data/lib/lithic/models/event_subscription.rb +7 -2
  29. data/lib/lithic/models/events/subscription_create_params.rb +7 -2
  30. data/lib/lithic/models/events/subscription_send_simulated_example_params.rb +1 -0
  31. data/lib/lithic/models/events/subscription_update_params.rb +7 -2
  32. data/lib/lithic/models/external_bank_account.rb +1 -1
  33. data/lib/lithic/models/external_bank_account_pause_params.rb +20 -0
  34. data/lib/lithic/models/financial_accounts/statement.rb +4 -4
  35. data/lib/lithic/models/financial_accounts/statements/statement_line_items.rb +3 -2
  36. data/lib/lithic/models/financial_event.rb +1 -0
  37. data/lib/lithic/models/kyb_business_entity.rb +2 -2
  38. data/lib/lithic/models/parsed_webhook_event.rb +4 -1
  39. data/lib/lithic/models/settlement_detail.rb +14 -14
  40. data/lib/lithic/models/statement_totals.rb +6 -6
  41. data/lib/lithic/models/tokenization_decline_reason.rb +1 -0
  42. data/lib/lithic/models/transaction.rb +2 -2
  43. data/lib/lithic/models/transfer_limits_response.rb +12 -12
  44. data/lib/lithic/models.rb +8 -0
  45. data/lib/lithic/resources/auth_rules/v2.rb +1 -1
  46. data/lib/lithic/resources/card_authorizations.rb +45 -0
  47. data/lib/lithic/resources/external_bank_accounts.rb +19 -0
  48. data/lib/lithic/resources/webhooks.rb +1 -1
  49. data/lib/lithic/version.rb +1 -1
  50. data/lib/lithic.rb +6 -0
  51. data/rbi/lithic/client.rbi +3 -0
  52. data/rbi/lithic/models/account_holder_simulate_enrollment_review_response.rbi +6 -12
  53. data/rbi/lithic/models/auth_rules/auth_rule.rbi +8 -4
  54. data/rbi/lithic/models/auth_rules/auth_rule_version.rbi +4 -2
  55. data/rbi/lithic/models/auth_rules/conditional_3ds_action_parameters.rbi +9 -6
  56. data/rbi/lithic/models/auth_rules/conditional_ach_action_parameters.rbi +3 -3
  57. data/rbi/lithic/models/auth_rules/conditional_authorization_action_parameters.rbi +75 -48
  58. data/rbi/lithic/models/auth_rules/conditional_authorization_adjustment_parameters.rbi +1147 -0
  59. data/rbi/lithic/models/auth_rules/conditional_card_transaction_update_action_parameters.rbi +24 -18
  60. data/rbi/lithic/models/auth_rules/conditional_tokenization_action_parameters.rbi +6 -6
  61. data/rbi/lithic/models/auth_rules/conditional_value.rbi +1 -1
  62. data/rbi/lithic/models/auth_rules/v2_create_params.rbi +24 -12
  63. data/rbi/lithic/models/auth_rules/v2_draft_params.rbi +8 -4
  64. data/rbi/lithic/models/balance.rbi +12 -6
  65. data/rbi/lithic/models/card_authorization.rbi +2540 -0
  66. data/rbi/lithic/models/card_authorization_approval_request_webhook_event.rbi +5 -2758
  67. data/rbi/lithic/models/card_authorization_challenge_response_params.rbi +93 -0
  68. data/rbi/lithic/models/card_authorization_challenge_response_webhook_event.rbi +5 -0
  69. data/rbi/lithic/models/card_authorization_challenge_webhook_event.rbi +119 -0
  70. data/rbi/lithic/models/card_program.rbi +3 -6
  71. data/rbi/lithic/models/event.rbi +23 -6
  72. data/rbi/lithic/models/event_list_params.rbi +11 -2
  73. data/rbi/lithic/models/event_subscription.rbi +11 -2
  74. data/rbi/lithic/models/events/subscription_create_params.rbi +11 -2
  75. data/rbi/lithic/models/events/subscription_send_simulated_example_params.rbi +5 -0
  76. data/rbi/lithic/models/events/subscription_update_params.rbi +11 -2
  77. data/rbi/lithic/models/external_bank_account_pause_params.rbi +41 -0
  78. data/rbi/lithic/models/financial_accounts/statement.rbi +6 -12
  79. data/rbi/lithic/models/financial_accounts/statements/statement_line_items.rbi +8 -6
  80. data/rbi/lithic/models/financial_event.rbi +2 -0
  81. data/rbi/lithic/models/kyb_business_entity.rbi +3 -6
  82. data/rbi/lithic/models/parsed_webhook_event.rbi +1 -0
  83. data/rbi/lithic/models/settlement_detail.rbi +15 -15
  84. data/rbi/lithic/models/statement_totals.rbi +9 -18
  85. data/rbi/lithic/models/tokenization_decline_reason.rbi +2 -0
  86. data/rbi/lithic/models/transaction.rbi +3 -3
  87. data/rbi/lithic/models/transfer_limits_response.rbi +48 -48
  88. data/rbi/lithic/models.rbi +11 -0
  89. data/rbi/lithic/resources/auth_rules/v2.rbi +2 -1
  90. data/rbi/lithic/resources/card_authorizations.rbi +35 -0
  91. data/rbi/lithic/resources/external_bank_accounts.rbi +10 -0
  92. data/rbi/lithic/resources/webhooks.rbi +4 -1
  93. data/sig/lithic/client.rbs +2 -0
  94. data/sig/lithic/models/account_holder_simulate_enrollment_review_response.rbs +8 -12
  95. data/sig/lithic/models/auth_rules/auth_rule.rbs +2 -0
  96. data/sig/lithic/models/auth_rules/auth_rule_version.rbs +1 -0
  97. data/sig/lithic/models/auth_rules/conditional_authorization_adjustment_parameters.rbs +276 -0
  98. data/sig/lithic/models/auth_rules/conditional_value.rbs +1 -1
  99. data/sig/lithic/models/auth_rules/v2_create_params.rbs +3 -0
  100. data/sig/lithic/models/auth_rules/v2_draft_params.rbs +1 -0
  101. data/sig/lithic/models/balance.rbs +17 -9
  102. data/sig/lithic/models/card_authorization.rbs +1038 -0
  103. data/sig/lithic/models/card_authorization_approval_request_webhook_event.rbs +7 -1013
  104. data/sig/lithic/models/card_authorization_challenge_response_params.rbs +42 -0
  105. data/sig/lithic/models/card_authorization_challenge_response_webhook_event.rbs +2 -1
  106. data/sig/lithic/models/card_authorization_challenge_webhook_event.rbs +53 -0
  107. data/sig/lithic/models/card_program.rbs +4 -6
  108. data/sig/lithic/models/event.rbs +2 -0
  109. data/sig/lithic/models/event_list_params.rbs +2 -0
  110. data/sig/lithic/models/event_subscription.rbs +2 -0
  111. data/sig/lithic/models/events/subscription_create_params.rbs +2 -0
  112. data/sig/lithic/models/events/subscription_send_simulated_example_params.rbs +2 -0
  113. data/sig/lithic/models/events/subscription_update_params.rbs +2 -0
  114. data/sig/lithic/models/external_bank_account_pause_params.rbs +24 -0
  115. data/sig/lithic/models/financial_accounts/statement.rbs +8 -12
  116. data/sig/lithic/models/financial_accounts/statements/statement_line_items.rbs +6 -6
  117. data/sig/lithic/models/financial_event.rbs +2 -0
  118. data/sig/lithic/models/kyb_business_entity.rbs +4 -6
  119. data/sig/lithic/models/parsed_webhook_event.rbs +1 -0
  120. data/sig/lithic/models/settlement_detail.rbs +18 -18
  121. data/sig/lithic/models/statement_totals.rbs +12 -18
  122. data/sig/lithic/models/tokenization_decline_reason.rbs +2 -0
  123. data/sig/lithic/models/transaction.rbs +4 -8
  124. data/sig/lithic/models/transfer_limits_response.rbs +24 -36
  125. data/sig/lithic/models.rbs +8 -0
  126. data/sig/lithic/resources/card_authorizations.rbs +13 -0
  127. data/sig/lithic/resources/external_bank_accounts.rbs +5 -0
  128. data/sig/lithic/resources/webhooks.rbs +1 -0
  129. metadata +20 -2
@@ -0,0 +1,1147 @@
1
+ # typed: strong
2
+
3
+ module Lithic
4
+ module Models
5
+ module AuthRules
6
+ class ConditionalAuthorizationAdjustmentParameters < Lithic::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters,
11
+ Lithic::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The hold adjustment to apply if the conditions are met
16
+ sig do
17
+ returns(
18
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Adjustment
19
+ )
20
+ end
21
+ attr_reader :adjustment
22
+
23
+ sig do
24
+ params(
25
+ adjustment:
26
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Adjustment::OrHash
27
+ ).void
28
+ end
29
+ attr_writer :adjustment
30
+
31
+ sig do
32
+ returns(
33
+ T::Array[
34
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition
35
+ ]
36
+ )
37
+ end
38
+ attr_accessor :conditions
39
+
40
+ sig do
41
+ params(
42
+ adjustment:
43
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Adjustment::OrHash,
44
+ conditions:
45
+ T::Array[
46
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::OrHash
47
+ ]
48
+ ).returns(T.attached_class)
49
+ end
50
+ def self.new(
51
+ # The hold adjustment to apply if the conditions are met
52
+ adjustment:,
53
+ conditions:
54
+ )
55
+ end
56
+
57
+ sig do
58
+ override.returns(
59
+ {
60
+ adjustment:
61
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Adjustment,
62
+ conditions:
63
+ T::Array[
64
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition
65
+ ]
66
+ }
67
+ )
68
+ end
69
+ def to_hash
70
+ end
71
+
72
+ class Adjustment < Lithic::Internal::Type::BaseModel
73
+ OrHash =
74
+ T.type_alias do
75
+ T.any(
76
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Adjustment,
77
+ Lithic::Internal::AnyHash
78
+ )
79
+ end
80
+
81
+ # The mode of the hold adjustment, determining how the value is interpreted:
82
+ #
83
+ # - `REPLACE_WITH_AMOUNT`: The value is the approved hold amount in cents.
84
+ # - `ADD_PERCENTAGE`: The value adjusts the hold amount by a percentage. 1000
85
+ # represents a 10% increase, 0 represents no change.
86
+ # - `ADD_AMOUNT`: The value is added to the hold amount in cents.
87
+ sig do
88
+ returns(
89
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Adjustment::Mode::OrSymbol
90
+ )
91
+ end
92
+ attr_accessor :mode
93
+
94
+ # The type of adjustment to apply
95
+ sig do
96
+ returns(
97
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Adjustment::Type::OrSymbol
98
+ )
99
+ end
100
+ attr_accessor :type
101
+
102
+ # The value used for the hold adjustment, interpreted based on the mode
103
+ sig { returns(Integer) }
104
+ attr_accessor :value
105
+
106
+ # The hold adjustment to apply if the conditions are met
107
+ sig do
108
+ params(
109
+ mode:
110
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Adjustment::Mode::OrSymbol,
111
+ type:
112
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Adjustment::Type::OrSymbol,
113
+ value: Integer
114
+ ).returns(T.attached_class)
115
+ end
116
+ def self.new(
117
+ # The mode of the hold adjustment, determining how the value is interpreted:
118
+ #
119
+ # - `REPLACE_WITH_AMOUNT`: The value is the approved hold amount in cents.
120
+ # - `ADD_PERCENTAGE`: The value adjusts the hold amount by a percentage. 1000
121
+ # represents a 10% increase, 0 represents no change.
122
+ # - `ADD_AMOUNT`: The value is added to the hold amount in cents.
123
+ mode:,
124
+ # The type of adjustment to apply
125
+ type:,
126
+ # The value used for the hold adjustment, interpreted based on the mode
127
+ value:
128
+ )
129
+ end
130
+
131
+ sig do
132
+ override.returns(
133
+ {
134
+ mode:
135
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Adjustment::Mode::OrSymbol,
136
+ type:
137
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Adjustment::Type::OrSymbol,
138
+ value: Integer
139
+ }
140
+ )
141
+ end
142
+ def to_hash
143
+ end
144
+
145
+ # The mode of the hold adjustment, determining how the value is interpreted:
146
+ #
147
+ # - `REPLACE_WITH_AMOUNT`: The value is the approved hold amount in cents.
148
+ # - `ADD_PERCENTAGE`: The value adjusts the hold amount by a percentage. 1000
149
+ # represents a 10% increase, 0 represents no change.
150
+ # - `ADD_AMOUNT`: The value is added to the hold amount in cents.
151
+ module Mode
152
+ extend Lithic::Internal::Type::Enum
153
+
154
+ TaggedSymbol =
155
+ T.type_alias do
156
+ T.all(
157
+ Symbol,
158
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Adjustment::Mode
159
+ )
160
+ end
161
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
162
+
163
+ REPLACE_WITH_AMOUNT =
164
+ T.let(
165
+ :REPLACE_WITH_AMOUNT,
166
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Adjustment::Mode::TaggedSymbol
167
+ )
168
+ ADD_PERCENTAGE =
169
+ T.let(
170
+ :ADD_PERCENTAGE,
171
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Adjustment::Mode::TaggedSymbol
172
+ )
173
+ ADD_AMOUNT =
174
+ T.let(
175
+ :ADD_AMOUNT,
176
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Adjustment::Mode::TaggedSymbol
177
+ )
178
+
179
+ sig do
180
+ override.returns(
181
+ T::Array[
182
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Adjustment::Mode::TaggedSymbol
183
+ ]
184
+ )
185
+ end
186
+ def self.values
187
+ end
188
+ end
189
+
190
+ # The type of adjustment to apply
191
+ module Type
192
+ extend Lithic::Internal::Type::Enum
193
+
194
+ TaggedSymbol =
195
+ T.type_alias do
196
+ T.all(
197
+ Symbol,
198
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Adjustment::Type
199
+ )
200
+ end
201
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
202
+
203
+ HOLD_ADJUSTMENT =
204
+ T.let(
205
+ :HOLD_ADJUSTMENT,
206
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Adjustment::Type::TaggedSymbol
207
+ )
208
+
209
+ sig do
210
+ override.returns(
211
+ T::Array[
212
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Adjustment::Type::TaggedSymbol
213
+ ]
214
+ )
215
+ end
216
+ def self.values
217
+ end
218
+ end
219
+ end
220
+
221
+ class Condition < Lithic::Internal::Type::BaseModel
222
+ OrHash =
223
+ T.type_alias do
224
+ T.any(
225
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition,
226
+ Lithic::Internal::AnyHash
227
+ )
228
+ end
229
+
230
+ # The attribute to target.
231
+ #
232
+ # The following attributes may be targeted:
233
+ #
234
+ # - `MCC`: A four-digit number listed in ISO 18245. An MCC is used to classify a
235
+ # business by the types of goods or services it provides.
236
+ # - `COUNTRY`: Country of entity of card acceptor. Possible values are: (1) all
237
+ # ISO 3166-1 alpha-3 country codes, (2) QZZ for Kosovo, and (3) ANT for
238
+ # Netherlands Antilles.
239
+ # - `CURRENCY`: 3-character alphabetic ISO 4217 code for the merchant currency of
240
+ # the transaction.
241
+ # - `MERCHANT_ID`: Unique alphanumeric identifier for the payment card acceptor
242
+ # (merchant).
243
+ # - `DESCRIPTOR`: Short description of card acceptor.
244
+ # - `LIABILITY_SHIFT`: Indicates whether chargeback liability shift to the issuer
245
+ # applies to the transaction. Valid values are `NONE`, `3DS_AUTHENTICATED`, or
246
+ # `TOKEN_AUTHENTICATED`.
247
+ # - `PAN_ENTRY_MODE`: The method by which the cardholder's primary account number
248
+ # (PAN) was entered. Valid values are `AUTO_ENTRY`, `BAR_CODE`, `CONTACTLESS`,
249
+ # `ECOMMERCE`, `ERROR_KEYED`, `ERROR_MAGNETIC_STRIPE`, `ICC`, `KEY_ENTERED`,
250
+ # `MAGNETIC_STRIPE`, `MANUAL`, `OCR`, `SECURE_CARDLESS`, `UNSPECIFIED`,
251
+ # `UNKNOWN`, `CREDENTIAL_ON_FILE`, or `ECOMMERCE`.
252
+ # - `TRANSACTION_AMOUNT`: The base transaction amount (in cents) plus the acquirer
253
+ # fee field in the settlement/cardholder billing currency. This is the amount
254
+ # the issuer should authorize against unless the issuer is paying the acquirer
255
+ # fee on behalf of the cardholder. Use an integer value.
256
+ # - `CASH_AMOUNT`: The cash amount of the transaction in minor units (cents). This
257
+ # represents the amount of cash being withdrawn or advanced. Use an integer
258
+ # value.
259
+ # - `RISK_SCORE`: Network-provided score assessing risk level associated with a
260
+ # given authorization. Scores are on a range of 0-999, with 0 representing the
261
+ # lowest risk and 999 representing the highest risk. For Visa transactions,
262
+ # where the raw score has a range of 0-99, Lithic will normalize the score by
263
+ # multiplying the raw score by 10x. Use an integer value.
264
+ # - `CARD_TRANSACTION_COUNT_15M`: The number of transactions on the card in the
265
+ # trailing 15 minutes before the authorization. Use an integer value.
266
+ # - `CARD_TRANSACTION_COUNT_1H`: The number of transactions on the card in the
267
+ # trailing hour up and until the authorization. Use an integer value.
268
+ # - `CARD_TRANSACTION_COUNT_24H`: The number of transactions on the card in the
269
+ # trailing 24 hours up and until the authorization. Use an integer value.
270
+ # - `CARD_DECLINE_COUNT_15M`: The number of declined transactions on the card in
271
+ # the trailing 15 minutes before the authorization. Use an integer value.
272
+ # - `CARD_DECLINE_COUNT_1H`: The number of declined transactions on the card in
273
+ # the trailing hour up and until the authorization. Use an integer value.
274
+ # - `CARD_DECLINE_COUNT_24H`: The number of declined transactions on the card in
275
+ # the trailing 24 hours up and until the authorization. Use an integer value.
276
+ # - `CARD_STATE`: The current state of the card associated with the transaction.
277
+ # Valid values are `CLOSED`, `OPEN`, `PAUSED`, `PENDING_ACTIVATION`,
278
+ # `PENDING_FULFILLMENT`.
279
+ # - `PIN_ENTERED`: Indicates whether a PIN was entered during the transaction.
280
+ # Valid values are `TRUE`, `FALSE`.
281
+ # - `PIN_STATUS`: The current state of card's PIN. Valid values are `NOT_SET`,
282
+ # `OK`, `BLOCKED`.
283
+ # - `WALLET_TYPE`: For transactions using a digital wallet token, indicates the
284
+ # source of the token. Valid values are `APPLE_PAY`, `GOOGLE_PAY`,
285
+ # `SAMSUNG_PAY`, `MASTERPASS`, `MERCHANT`, `OTHER`, `NONE`.
286
+ # - `TRANSACTION_INITIATOR`: The entity that initiated the transaction indicates
287
+ # the source of the token. Valid values are `CARDHOLDER`, `MERCHANT`, `UNKNOWN`.
288
+ # - `ADDRESS_MATCH`: Lithic's evaluation result comparing transaction's address
289
+ # data with the cardholder KYC data if it exists. Valid values are `MATCH`,
290
+ # `MATCH_ADDRESS_ONLY`, `MATCH_ZIP_ONLY`,`MISMATCH`,`NOT_PRESENT`.
291
+ # - `SERVICE_LOCATION_STATE`: The state/province code (ISO 3166-2) where the
292
+ # cardholder received the service, e.g. "NY". When a service location is present
293
+ # in the network data, the service location state is used. Otherwise, falls back
294
+ # to the card acceptor state.
295
+ # - `SERVICE_LOCATION_POSTAL_CODE`: The postal code where the cardholder received
296
+ # the service, e.g. "10001". When a service location is present in the network
297
+ # data, the service location postal code is used. Otherwise, falls back to the
298
+ # card acceptor postal code.
299
+ # - `CARD_AGE`: The age of the card in seconds at the time of the authorization.
300
+ # Use an integer value.
301
+ # - `ACCOUNT_AGE`: The age of the account holder's account in seconds at the time
302
+ # of the authorization. Use an integer value. For programs where Lithic does not
303
+ # manage or retain account holder data, this attribute does not evaluate.
304
+ # - `AMOUNT_Z_SCORE`: The z-score of the transaction amount relative to the
305
+ # entity's transaction history. Null if fewer than 30 approved transactions in
306
+ # the specified window. Requires `parameters.scope` and `parameters.interval`.
307
+ # Use a decimal value.
308
+ # - `AVG_TRANSACTION_AMOUNT`: The average approved transaction amount for the
309
+ # entity over the specified window, in cents. Requires `parameters.scope` and
310
+ # `parameters.interval`. Use a decimal value.
311
+ # - `STDEV_TRANSACTION_AMOUNT`: The standard deviation of approved transaction
312
+ # amounts for the entity over the specified window, in cents. Null if fewer than
313
+ # 30 approved transactions in the specified window. Requires `parameters.scope`
314
+ # and `parameters.interval`. Use a decimal value.
315
+ # - `IS_NEW_COUNTRY`: Whether the transaction's merchant country has not been seen
316
+ # in the entity's transaction history. Valid values are `TRUE`, `FALSE`.
317
+ # Requires `parameters.scope`.
318
+ # - `IS_NEW_MCC`: Whether the transaction's MCC has not been seen in the entity's
319
+ # transaction history. Valid values are `TRUE`, `FALSE`. Requires
320
+ # `parameters.scope`.
321
+ # - `IS_FIRST_TRANSACTION`: Whether this is the first transaction for the entity.
322
+ # Valid values are `TRUE`, `FALSE`. Requires `parameters.scope`.
323
+ # - `CONSECUTIVE_DECLINES`: The number of consecutive declined transactions for
324
+ # the entity over the last 30 days (rolling). Requires `parameters.scope`. Not
325
+ # supported for `BUSINESS_ACCOUNT` scope. Use an integer value.
326
+ # - `TIME_SINCE_LAST_TRANSACTION`: The number of days since the last approved
327
+ # transaction for the entity, rounded to the nearest whole day. Requires
328
+ # `parameters.scope`. Use an integer value.
329
+ # - `DISTINCT_COUNTRY_COUNT`: The number of distinct merchant countries seen in
330
+ # the entity's transaction history. Requires `parameters.scope`. Use an integer
331
+ # value.
332
+ # - `IS_NEW_MERCHANT`: Whether the card acceptor ID has not been seen in the
333
+ # card's approved transaction history (capped at the 1000 most recently seen
334
+ # merchants). Valid values are `TRUE`, `FALSE`. Card-scoped only; no
335
+ # `parameters` required.
336
+ # - `THREE_DS_SUCCESS_RATE`: The 3DS authentication success rate for the card, as
337
+ # a percentage from 0.0 to 100.0. Card-scoped only; no `parameters` required.
338
+ # Use a decimal value.
339
+ # - `TRAVEL_SPEED`: The estimated speed of travel derived from the distance
340
+ # between the postal code centers of the last card-present transaction and the
341
+ # current transaction, divided by the elapsed time. Null if there is no prior
342
+ # card-present transaction, if either postal code cannot be geocoded, or if
343
+ # elapsed time is zero. Requires `parameters.unit` set to `MPH` or `KPH`. Use a
344
+ # decimal value.
345
+ # - `DISTANCE_FROM_LAST_TRANSACTION`: The estimated distance between the postal
346
+ # code centers of the last card-present transaction and the current transaction.
347
+ # Null if there is no prior card-present transaction or if either postal code
348
+ # cannot be geocoded. Requires `parameters.unit` set to `MILES` or `KILOMETERS`.
349
+ # Use a decimal value.
350
+ sig do
351
+ returns(
352
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::OrSymbol
353
+ )
354
+ end
355
+ attr_accessor :attribute
356
+
357
+ # The operation to apply to the attribute
358
+ sig { returns(Lithic::AuthRules::ConditionalOperation::OrSymbol) }
359
+ attr_accessor :operation
360
+
361
+ # A regex string, to be used with `MATCHES` or `DOES_NOT_MATCH`
362
+ sig { returns(Lithic::AuthRules::ConditionalValue::Variants) }
363
+ attr_accessor :value
364
+
365
+ # Additional parameters for certain attributes. Required when `attribute` is one
366
+ # of `AMOUNT_Z_SCORE`, `AVG_TRANSACTION_AMOUNT`, `STDEV_TRANSACTION_AMOUNT`,
367
+ # `IS_NEW_COUNTRY`, `IS_NEW_MCC`, `IS_FIRST_TRANSACTION`, `CONSECUTIVE_DECLINES`,
368
+ # `TIME_SINCE_LAST_TRANSACTION`, or `DISTINCT_COUNTRY_COUNT` (require `scope`); or
369
+ # `TRAVEL_SPEED` or `DISTANCE_FROM_LAST_TRANSACTION` (require `unit`). Not used
370
+ # for other attributes.
371
+ sig do
372
+ returns(
373
+ T.nilable(
374
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters
375
+ )
376
+ )
377
+ end
378
+ attr_reader :parameters
379
+
380
+ sig do
381
+ params(
382
+ parameters:
383
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::OrHash
384
+ ).void
385
+ end
386
+ attr_writer :parameters
387
+
388
+ sig do
389
+ params(
390
+ attribute:
391
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::OrSymbol,
392
+ operation: Lithic::AuthRules::ConditionalOperation::OrSymbol,
393
+ value: Lithic::AuthRules::ConditionalValue::Variants,
394
+ parameters:
395
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::OrHash
396
+ ).returns(T.attached_class)
397
+ end
398
+ def self.new(
399
+ # The attribute to target.
400
+ #
401
+ # The following attributes may be targeted:
402
+ #
403
+ # - `MCC`: A four-digit number listed in ISO 18245. An MCC is used to classify a
404
+ # business by the types of goods or services it provides.
405
+ # - `COUNTRY`: Country of entity of card acceptor. Possible values are: (1) all
406
+ # ISO 3166-1 alpha-3 country codes, (2) QZZ for Kosovo, and (3) ANT for
407
+ # Netherlands Antilles.
408
+ # - `CURRENCY`: 3-character alphabetic ISO 4217 code for the merchant currency of
409
+ # the transaction.
410
+ # - `MERCHANT_ID`: Unique alphanumeric identifier for the payment card acceptor
411
+ # (merchant).
412
+ # - `DESCRIPTOR`: Short description of card acceptor.
413
+ # - `LIABILITY_SHIFT`: Indicates whether chargeback liability shift to the issuer
414
+ # applies to the transaction. Valid values are `NONE`, `3DS_AUTHENTICATED`, or
415
+ # `TOKEN_AUTHENTICATED`.
416
+ # - `PAN_ENTRY_MODE`: The method by which the cardholder's primary account number
417
+ # (PAN) was entered. Valid values are `AUTO_ENTRY`, `BAR_CODE`, `CONTACTLESS`,
418
+ # `ECOMMERCE`, `ERROR_KEYED`, `ERROR_MAGNETIC_STRIPE`, `ICC`, `KEY_ENTERED`,
419
+ # `MAGNETIC_STRIPE`, `MANUAL`, `OCR`, `SECURE_CARDLESS`, `UNSPECIFIED`,
420
+ # `UNKNOWN`, `CREDENTIAL_ON_FILE`, or `ECOMMERCE`.
421
+ # - `TRANSACTION_AMOUNT`: The base transaction amount (in cents) plus the acquirer
422
+ # fee field in the settlement/cardholder billing currency. This is the amount
423
+ # the issuer should authorize against unless the issuer is paying the acquirer
424
+ # fee on behalf of the cardholder. Use an integer value.
425
+ # - `CASH_AMOUNT`: The cash amount of the transaction in minor units (cents). This
426
+ # represents the amount of cash being withdrawn or advanced. Use an integer
427
+ # value.
428
+ # - `RISK_SCORE`: Network-provided score assessing risk level associated with a
429
+ # given authorization. Scores are on a range of 0-999, with 0 representing the
430
+ # lowest risk and 999 representing the highest risk. For Visa transactions,
431
+ # where the raw score has a range of 0-99, Lithic will normalize the score by
432
+ # multiplying the raw score by 10x. Use an integer value.
433
+ # - `CARD_TRANSACTION_COUNT_15M`: The number of transactions on the card in the
434
+ # trailing 15 minutes before the authorization. Use an integer value.
435
+ # - `CARD_TRANSACTION_COUNT_1H`: The number of transactions on the card in the
436
+ # trailing hour up and until the authorization. Use an integer value.
437
+ # - `CARD_TRANSACTION_COUNT_24H`: The number of transactions on the card in the
438
+ # trailing 24 hours up and until the authorization. Use an integer value.
439
+ # - `CARD_DECLINE_COUNT_15M`: The number of declined transactions on the card in
440
+ # the trailing 15 minutes before the authorization. Use an integer value.
441
+ # - `CARD_DECLINE_COUNT_1H`: The number of declined transactions on the card in
442
+ # the trailing hour up and until the authorization. Use an integer value.
443
+ # - `CARD_DECLINE_COUNT_24H`: The number of declined transactions on the card in
444
+ # the trailing 24 hours up and until the authorization. Use an integer value.
445
+ # - `CARD_STATE`: The current state of the card associated with the transaction.
446
+ # Valid values are `CLOSED`, `OPEN`, `PAUSED`, `PENDING_ACTIVATION`,
447
+ # `PENDING_FULFILLMENT`.
448
+ # - `PIN_ENTERED`: Indicates whether a PIN was entered during the transaction.
449
+ # Valid values are `TRUE`, `FALSE`.
450
+ # - `PIN_STATUS`: The current state of card's PIN. Valid values are `NOT_SET`,
451
+ # `OK`, `BLOCKED`.
452
+ # - `WALLET_TYPE`: For transactions using a digital wallet token, indicates the
453
+ # source of the token. Valid values are `APPLE_PAY`, `GOOGLE_PAY`,
454
+ # `SAMSUNG_PAY`, `MASTERPASS`, `MERCHANT`, `OTHER`, `NONE`.
455
+ # - `TRANSACTION_INITIATOR`: The entity that initiated the transaction indicates
456
+ # the source of the token. Valid values are `CARDHOLDER`, `MERCHANT`, `UNKNOWN`.
457
+ # - `ADDRESS_MATCH`: Lithic's evaluation result comparing transaction's address
458
+ # data with the cardholder KYC data if it exists. Valid values are `MATCH`,
459
+ # `MATCH_ADDRESS_ONLY`, `MATCH_ZIP_ONLY`,`MISMATCH`,`NOT_PRESENT`.
460
+ # - `SERVICE_LOCATION_STATE`: The state/province code (ISO 3166-2) where the
461
+ # cardholder received the service, e.g. "NY". When a service location is present
462
+ # in the network data, the service location state is used. Otherwise, falls back
463
+ # to the card acceptor state.
464
+ # - `SERVICE_LOCATION_POSTAL_CODE`: The postal code where the cardholder received
465
+ # the service, e.g. "10001". When a service location is present in the network
466
+ # data, the service location postal code is used. Otherwise, falls back to the
467
+ # card acceptor postal code.
468
+ # - `CARD_AGE`: The age of the card in seconds at the time of the authorization.
469
+ # Use an integer value.
470
+ # - `ACCOUNT_AGE`: The age of the account holder's account in seconds at the time
471
+ # of the authorization. Use an integer value. For programs where Lithic does not
472
+ # manage or retain account holder data, this attribute does not evaluate.
473
+ # - `AMOUNT_Z_SCORE`: The z-score of the transaction amount relative to the
474
+ # entity's transaction history. Null if fewer than 30 approved transactions in
475
+ # the specified window. Requires `parameters.scope` and `parameters.interval`.
476
+ # Use a decimal value.
477
+ # - `AVG_TRANSACTION_AMOUNT`: The average approved transaction amount for the
478
+ # entity over the specified window, in cents. Requires `parameters.scope` and
479
+ # `parameters.interval`. Use a decimal value.
480
+ # - `STDEV_TRANSACTION_AMOUNT`: The standard deviation of approved transaction
481
+ # amounts for the entity over the specified window, in cents. Null if fewer than
482
+ # 30 approved transactions in the specified window. Requires `parameters.scope`
483
+ # and `parameters.interval`. Use a decimal value.
484
+ # - `IS_NEW_COUNTRY`: Whether the transaction's merchant country has not been seen
485
+ # in the entity's transaction history. Valid values are `TRUE`, `FALSE`.
486
+ # Requires `parameters.scope`.
487
+ # - `IS_NEW_MCC`: Whether the transaction's MCC has not been seen in the entity's
488
+ # transaction history. Valid values are `TRUE`, `FALSE`. Requires
489
+ # `parameters.scope`.
490
+ # - `IS_FIRST_TRANSACTION`: Whether this is the first transaction for the entity.
491
+ # Valid values are `TRUE`, `FALSE`. Requires `parameters.scope`.
492
+ # - `CONSECUTIVE_DECLINES`: The number of consecutive declined transactions for
493
+ # the entity over the last 30 days (rolling). Requires `parameters.scope`. Not
494
+ # supported for `BUSINESS_ACCOUNT` scope. Use an integer value.
495
+ # - `TIME_SINCE_LAST_TRANSACTION`: The number of days since the last approved
496
+ # transaction for the entity, rounded to the nearest whole day. Requires
497
+ # `parameters.scope`. Use an integer value.
498
+ # - `DISTINCT_COUNTRY_COUNT`: The number of distinct merchant countries seen in
499
+ # the entity's transaction history. Requires `parameters.scope`. Use an integer
500
+ # value.
501
+ # - `IS_NEW_MERCHANT`: Whether the card acceptor ID has not been seen in the
502
+ # card's approved transaction history (capped at the 1000 most recently seen
503
+ # merchants). Valid values are `TRUE`, `FALSE`. Card-scoped only; no
504
+ # `parameters` required.
505
+ # - `THREE_DS_SUCCESS_RATE`: The 3DS authentication success rate for the card, as
506
+ # a percentage from 0.0 to 100.0. Card-scoped only; no `parameters` required.
507
+ # Use a decimal value.
508
+ # - `TRAVEL_SPEED`: The estimated speed of travel derived from the distance
509
+ # between the postal code centers of the last card-present transaction and the
510
+ # current transaction, divided by the elapsed time. Null if there is no prior
511
+ # card-present transaction, if either postal code cannot be geocoded, or if
512
+ # elapsed time is zero. Requires `parameters.unit` set to `MPH` or `KPH`. Use a
513
+ # decimal value.
514
+ # - `DISTANCE_FROM_LAST_TRANSACTION`: The estimated distance between the postal
515
+ # code centers of the last card-present transaction and the current transaction.
516
+ # Null if there is no prior card-present transaction or if either postal code
517
+ # cannot be geocoded. Requires `parameters.unit` set to `MILES` or `KILOMETERS`.
518
+ # Use a decimal value.
519
+ attribute:,
520
+ # The operation to apply to the attribute
521
+ operation:,
522
+ # A regex string, to be used with `MATCHES` or `DOES_NOT_MATCH`
523
+ value:,
524
+ # Additional parameters for certain attributes. Required when `attribute` is one
525
+ # of `AMOUNT_Z_SCORE`, `AVG_TRANSACTION_AMOUNT`, `STDEV_TRANSACTION_AMOUNT`,
526
+ # `IS_NEW_COUNTRY`, `IS_NEW_MCC`, `IS_FIRST_TRANSACTION`, `CONSECUTIVE_DECLINES`,
527
+ # `TIME_SINCE_LAST_TRANSACTION`, or `DISTINCT_COUNTRY_COUNT` (require `scope`); or
528
+ # `TRAVEL_SPEED` or `DISTANCE_FROM_LAST_TRANSACTION` (require `unit`). Not used
529
+ # for other attributes.
530
+ parameters: nil
531
+ )
532
+ end
533
+
534
+ sig do
535
+ override.returns(
536
+ {
537
+ attribute:
538
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::OrSymbol,
539
+ operation: Lithic::AuthRules::ConditionalOperation::OrSymbol,
540
+ value: Lithic::AuthRules::ConditionalValue::Variants,
541
+ parameters:
542
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters
543
+ }
544
+ )
545
+ end
546
+ def to_hash
547
+ end
548
+
549
+ # The attribute to target.
550
+ #
551
+ # The following attributes may be targeted:
552
+ #
553
+ # - `MCC`: A four-digit number listed in ISO 18245. An MCC is used to classify a
554
+ # business by the types of goods or services it provides.
555
+ # - `COUNTRY`: Country of entity of card acceptor. Possible values are: (1) all
556
+ # ISO 3166-1 alpha-3 country codes, (2) QZZ for Kosovo, and (3) ANT for
557
+ # Netherlands Antilles.
558
+ # - `CURRENCY`: 3-character alphabetic ISO 4217 code for the merchant currency of
559
+ # the transaction.
560
+ # - `MERCHANT_ID`: Unique alphanumeric identifier for the payment card acceptor
561
+ # (merchant).
562
+ # - `DESCRIPTOR`: Short description of card acceptor.
563
+ # - `LIABILITY_SHIFT`: Indicates whether chargeback liability shift to the issuer
564
+ # applies to the transaction. Valid values are `NONE`, `3DS_AUTHENTICATED`, or
565
+ # `TOKEN_AUTHENTICATED`.
566
+ # - `PAN_ENTRY_MODE`: The method by which the cardholder's primary account number
567
+ # (PAN) was entered. Valid values are `AUTO_ENTRY`, `BAR_CODE`, `CONTACTLESS`,
568
+ # `ECOMMERCE`, `ERROR_KEYED`, `ERROR_MAGNETIC_STRIPE`, `ICC`, `KEY_ENTERED`,
569
+ # `MAGNETIC_STRIPE`, `MANUAL`, `OCR`, `SECURE_CARDLESS`, `UNSPECIFIED`,
570
+ # `UNKNOWN`, `CREDENTIAL_ON_FILE`, or `ECOMMERCE`.
571
+ # - `TRANSACTION_AMOUNT`: The base transaction amount (in cents) plus the acquirer
572
+ # fee field in the settlement/cardholder billing currency. This is the amount
573
+ # the issuer should authorize against unless the issuer is paying the acquirer
574
+ # fee on behalf of the cardholder. Use an integer value.
575
+ # - `CASH_AMOUNT`: The cash amount of the transaction in minor units (cents). This
576
+ # represents the amount of cash being withdrawn or advanced. Use an integer
577
+ # value.
578
+ # - `RISK_SCORE`: Network-provided score assessing risk level associated with a
579
+ # given authorization. Scores are on a range of 0-999, with 0 representing the
580
+ # lowest risk and 999 representing the highest risk. For Visa transactions,
581
+ # where the raw score has a range of 0-99, Lithic will normalize the score by
582
+ # multiplying the raw score by 10x. Use an integer value.
583
+ # - `CARD_TRANSACTION_COUNT_15M`: The number of transactions on the card in the
584
+ # trailing 15 minutes before the authorization. Use an integer value.
585
+ # - `CARD_TRANSACTION_COUNT_1H`: The number of transactions on the card in the
586
+ # trailing hour up and until the authorization. Use an integer value.
587
+ # - `CARD_TRANSACTION_COUNT_24H`: The number of transactions on the card in the
588
+ # trailing 24 hours up and until the authorization. Use an integer value.
589
+ # - `CARD_DECLINE_COUNT_15M`: The number of declined transactions on the card in
590
+ # the trailing 15 minutes before the authorization. Use an integer value.
591
+ # - `CARD_DECLINE_COUNT_1H`: The number of declined transactions on the card in
592
+ # the trailing hour up and until the authorization. Use an integer value.
593
+ # - `CARD_DECLINE_COUNT_24H`: The number of declined transactions on the card in
594
+ # the trailing 24 hours up and until the authorization. Use an integer value.
595
+ # - `CARD_STATE`: The current state of the card associated with the transaction.
596
+ # Valid values are `CLOSED`, `OPEN`, `PAUSED`, `PENDING_ACTIVATION`,
597
+ # `PENDING_FULFILLMENT`.
598
+ # - `PIN_ENTERED`: Indicates whether a PIN was entered during the transaction.
599
+ # Valid values are `TRUE`, `FALSE`.
600
+ # - `PIN_STATUS`: The current state of card's PIN. Valid values are `NOT_SET`,
601
+ # `OK`, `BLOCKED`.
602
+ # - `WALLET_TYPE`: For transactions using a digital wallet token, indicates the
603
+ # source of the token. Valid values are `APPLE_PAY`, `GOOGLE_PAY`,
604
+ # `SAMSUNG_PAY`, `MASTERPASS`, `MERCHANT`, `OTHER`, `NONE`.
605
+ # - `TRANSACTION_INITIATOR`: The entity that initiated the transaction indicates
606
+ # the source of the token. Valid values are `CARDHOLDER`, `MERCHANT`, `UNKNOWN`.
607
+ # - `ADDRESS_MATCH`: Lithic's evaluation result comparing transaction's address
608
+ # data with the cardholder KYC data if it exists. Valid values are `MATCH`,
609
+ # `MATCH_ADDRESS_ONLY`, `MATCH_ZIP_ONLY`,`MISMATCH`,`NOT_PRESENT`.
610
+ # - `SERVICE_LOCATION_STATE`: The state/province code (ISO 3166-2) where the
611
+ # cardholder received the service, e.g. "NY". When a service location is present
612
+ # in the network data, the service location state is used. Otherwise, falls back
613
+ # to the card acceptor state.
614
+ # - `SERVICE_LOCATION_POSTAL_CODE`: The postal code where the cardholder received
615
+ # the service, e.g. "10001". When a service location is present in the network
616
+ # data, the service location postal code is used. Otherwise, falls back to the
617
+ # card acceptor postal code.
618
+ # - `CARD_AGE`: The age of the card in seconds at the time of the authorization.
619
+ # Use an integer value.
620
+ # - `ACCOUNT_AGE`: The age of the account holder's account in seconds at the time
621
+ # of the authorization. Use an integer value. For programs where Lithic does not
622
+ # manage or retain account holder data, this attribute does not evaluate.
623
+ # - `AMOUNT_Z_SCORE`: The z-score of the transaction amount relative to the
624
+ # entity's transaction history. Null if fewer than 30 approved transactions in
625
+ # the specified window. Requires `parameters.scope` and `parameters.interval`.
626
+ # Use a decimal value.
627
+ # - `AVG_TRANSACTION_AMOUNT`: The average approved transaction amount for the
628
+ # entity over the specified window, in cents. Requires `parameters.scope` and
629
+ # `parameters.interval`. Use a decimal value.
630
+ # - `STDEV_TRANSACTION_AMOUNT`: The standard deviation of approved transaction
631
+ # amounts for the entity over the specified window, in cents. Null if fewer than
632
+ # 30 approved transactions in the specified window. Requires `parameters.scope`
633
+ # and `parameters.interval`. Use a decimal value.
634
+ # - `IS_NEW_COUNTRY`: Whether the transaction's merchant country has not been seen
635
+ # in the entity's transaction history. Valid values are `TRUE`, `FALSE`.
636
+ # Requires `parameters.scope`.
637
+ # - `IS_NEW_MCC`: Whether the transaction's MCC has not been seen in the entity's
638
+ # transaction history. Valid values are `TRUE`, `FALSE`. Requires
639
+ # `parameters.scope`.
640
+ # - `IS_FIRST_TRANSACTION`: Whether this is the first transaction for the entity.
641
+ # Valid values are `TRUE`, `FALSE`. Requires `parameters.scope`.
642
+ # - `CONSECUTIVE_DECLINES`: The number of consecutive declined transactions for
643
+ # the entity over the last 30 days (rolling). Requires `parameters.scope`. Not
644
+ # supported for `BUSINESS_ACCOUNT` scope. Use an integer value.
645
+ # - `TIME_SINCE_LAST_TRANSACTION`: The number of days since the last approved
646
+ # transaction for the entity, rounded to the nearest whole day. Requires
647
+ # `parameters.scope`. Use an integer value.
648
+ # - `DISTINCT_COUNTRY_COUNT`: The number of distinct merchant countries seen in
649
+ # the entity's transaction history. Requires `parameters.scope`. Use an integer
650
+ # value.
651
+ # - `IS_NEW_MERCHANT`: Whether the card acceptor ID has not been seen in the
652
+ # card's approved transaction history (capped at the 1000 most recently seen
653
+ # merchants). Valid values are `TRUE`, `FALSE`. Card-scoped only; no
654
+ # `parameters` required.
655
+ # - `THREE_DS_SUCCESS_RATE`: The 3DS authentication success rate for the card, as
656
+ # a percentage from 0.0 to 100.0. Card-scoped only; no `parameters` required.
657
+ # Use a decimal value.
658
+ # - `TRAVEL_SPEED`: The estimated speed of travel derived from the distance
659
+ # between the postal code centers of the last card-present transaction and the
660
+ # current transaction, divided by the elapsed time. Null if there is no prior
661
+ # card-present transaction, if either postal code cannot be geocoded, or if
662
+ # elapsed time is zero. Requires `parameters.unit` set to `MPH` or `KPH`. Use a
663
+ # decimal value.
664
+ # - `DISTANCE_FROM_LAST_TRANSACTION`: The estimated distance between the postal
665
+ # code centers of the last card-present transaction and the current transaction.
666
+ # Null if there is no prior card-present transaction or if either postal code
667
+ # cannot be geocoded. Requires `parameters.unit` set to `MILES` or `KILOMETERS`.
668
+ # Use a decimal value.
669
+ module Attribute
670
+ extend Lithic::Internal::Type::Enum
671
+
672
+ TaggedSymbol =
673
+ T.type_alias do
674
+ T.all(
675
+ Symbol,
676
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute
677
+ )
678
+ end
679
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
680
+
681
+ MCC =
682
+ T.let(
683
+ :MCC,
684
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
685
+ )
686
+ COUNTRY =
687
+ T.let(
688
+ :COUNTRY,
689
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
690
+ )
691
+ CURRENCY =
692
+ T.let(
693
+ :CURRENCY,
694
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
695
+ )
696
+ MERCHANT_ID =
697
+ T.let(
698
+ :MERCHANT_ID,
699
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
700
+ )
701
+ DESCRIPTOR =
702
+ T.let(
703
+ :DESCRIPTOR,
704
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
705
+ )
706
+ LIABILITY_SHIFT =
707
+ T.let(
708
+ :LIABILITY_SHIFT,
709
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
710
+ )
711
+ PAN_ENTRY_MODE =
712
+ T.let(
713
+ :PAN_ENTRY_MODE,
714
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
715
+ )
716
+ TRANSACTION_AMOUNT =
717
+ T.let(
718
+ :TRANSACTION_AMOUNT,
719
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
720
+ )
721
+ CASH_AMOUNT =
722
+ T.let(
723
+ :CASH_AMOUNT,
724
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
725
+ )
726
+ RISK_SCORE =
727
+ T.let(
728
+ :RISK_SCORE,
729
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
730
+ )
731
+ CARD_TRANSACTION_COUNT_15_M =
732
+ T.let(
733
+ :CARD_TRANSACTION_COUNT_15M,
734
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
735
+ )
736
+ CARD_TRANSACTION_COUNT_1_H =
737
+ T.let(
738
+ :CARD_TRANSACTION_COUNT_1H,
739
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
740
+ )
741
+ CARD_TRANSACTION_COUNT_24_H =
742
+ T.let(
743
+ :CARD_TRANSACTION_COUNT_24H,
744
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
745
+ )
746
+ CARD_DECLINE_COUNT_15_M =
747
+ T.let(
748
+ :CARD_DECLINE_COUNT_15M,
749
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
750
+ )
751
+ CARD_DECLINE_COUNT_1_H =
752
+ T.let(
753
+ :CARD_DECLINE_COUNT_1H,
754
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
755
+ )
756
+ CARD_DECLINE_COUNT_24_H =
757
+ T.let(
758
+ :CARD_DECLINE_COUNT_24H,
759
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
760
+ )
761
+ CARD_STATE =
762
+ T.let(
763
+ :CARD_STATE,
764
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
765
+ )
766
+ PIN_ENTERED =
767
+ T.let(
768
+ :PIN_ENTERED,
769
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
770
+ )
771
+ PIN_STATUS =
772
+ T.let(
773
+ :PIN_STATUS,
774
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
775
+ )
776
+ WALLET_TYPE =
777
+ T.let(
778
+ :WALLET_TYPE,
779
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
780
+ )
781
+ TRANSACTION_INITIATOR =
782
+ T.let(
783
+ :TRANSACTION_INITIATOR,
784
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
785
+ )
786
+ ADDRESS_MATCH =
787
+ T.let(
788
+ :ADDRESS_MATCH,
789
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
790
+ )
791
+ SERVICE_LOCATION_STATE =
792
+ T.let(
793
+ :SERVICE_LOCATION_STATE,
794
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
795
+ )
796
+ SERVICE_LOCATION_POSTAL_CODE =
797
+ T.let(
798
+ :SERVICE_LOCATION_POSTAL_CODE,
799
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
800
+ )
801
+ CARD_AGE =
802
+ T.let(
803
+ :CARD_AGE,
804
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
805
+ )
806
+ ACCOUNT_AGE =
807
+ T.let(
808
+ :ACCOUNT_AGE,
809
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
810
+ )
811
+ AMOUNT_Z_SCORE =
812
+ T.let(
813
+ :AMOUNT_Z_SCORE,
814
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
815
+ )
816
+ AVG_TRANSACTION_AMOUNT =
817
+ T.let(
818
+ :AVG_TRANSACTION_AMOUNT,
819
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
820
+ )
821
+ STDEV_TRANSACTION_AMOUNT =
822
+ T.let(
823
+ :STDEV_TRANSACTION_AMOUNT,
824
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
825
+ )
826
+ IS_NEW_COUNTRY =
827
+ T.let(
828
+ :IS_NEW_COUNTRY,
829
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
830
+ )
831
+ IS_NEW_MCC =
832
+ T.let(
833
+ :IS_NEW_MCC,
834
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
835
+ )
836
+ IS_FIRST_TRANSACTION =
837
+ T.let(
838
+ :IS_FIRST_TRANSACTION,
839
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
840
+ )
841
+ CONSECUTIVE_DECLINES =
842
+ T.let(
843
+ :CONSECUTIVE_DECLINES,
844
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
845
+ )
846
+ TIME_SINCE_LAST_TRANSACTION =
847
+ T.let(
848
+ :TIME_SINCE_LAST_TRANSACTION,
849
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
850
+ )
851
+ DISTINCT_COUNTRY_COUNT =
852
+ T.let(
853
+ :DISTINCT_COUNTRY_COUNT,
854
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
855
+ )
856
+ IS_NEW_MERCHANT =
857
+ T.let(
858
+ :IS_NEW_MERCHANT,
859
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
860
+ )
861
+ THREE_DS_SUCCESS_RATE =
862
+ T.let(
863
+ :THREE_DS_SUCCESS_RATE,
864
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
865
+ )
866
+ TRAVEL_SPEED =
867
+ T.let(
868
+ :TRAVEL_SPEED,
869
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
870
+ )
871
+ DISTANCE_FROM_LAST_TRANSACTION =
872
+ T.let(
873
+ :DISTANCE_FROM_LAST_TRANSACTION,
874
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
875
+ )
876
+
877
+ sig do
878
+ override.returns(
879
+ T::Array[
880
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Attribute::TaggedSymbol
881
+ ]
882
+ )
883
+ end
884
+ def self.values
885
+ end
886
+ end
887
+
888
+ class Parameters < Lithic::Internal::Type::BaseModel
889
+ OrHash =
890
+ T.type_alias do
891
+ T.any(
892
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters,
893
+ Lithic::Internal::AnyHash
894
+ )
895
+ end
896
+
897
+ # The time window for statistical attributes (`AMOUNT_Z_SCORE`,
898
+ # `AVG_TRANSACTION_AMOUNT`, `STDEV_TRANSACTION_AMOUNT`). Use `LIFETIME` for
899
+ # all-time history or a specific window (`7D`, `30D`, `90D`).
900
+ sig do
901
+ returns(
902
+ T.nilable(
903
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::Interval::OrSymbol
904
+ )
905
+ )
906
+ end
907
+ attr_reader :interval
908
+
909
+ sig do
910
+ params(
911
+ interval:
912
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::Interval::OrSymbol
913
+ ).void
914
+ end
915
+ attr_writer :interval
916
+
917
+ # The entity scope to evaluate the attribute against.
918
+ sig do
919
+ returns(
920
+ T.nilable(
921
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::Scope::OrSymbol
922
+ )
923
+ )
924
+ end
925
+ attr_reader :scope
926
+
927
+ sig do
928
+ params(
929
+ scope:
930
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::Scope::OrSymbol
931
+ ).void
932
+ end
933
+ attr_writer :scope
934
+
935
+ # The unit for impossible travel attributes. Required when `attribute` is
936
+ # `TRAVEL_SPEED` or `DISTANCE_FROM_LAST_TRANSACTION`.
937
+ #
938
+ # For `TRAVEL_SPEED`: `MPH` (miles per hour) or `KPH` (kilometers per hour).
939
+ #
940
+ # For `DISTANCE_FROM_LAST_TRANSACTION`: `MILES` or `KILOMETERS`.
941
+ sig do
942
+ returns(
943
+ T.nilable(
944
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::Unit::OrSymbol
945
+ )
946
+ )
947
+ end
948
+ attr_reader :unit
949
+
950
+ sig do
951
+ params(
952
+ unit:
953
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::Unit::OrSymbol
954
+ ).void
955
+ end
956
+ attr_writer :unit
957
+
958
+ # Additional parameters for certain attributes. Required when `attribute` is one
959
+ # of `AMOUNT_Z_SCORE`, `AVG_TRANSACTION_AMOUNT`, `STDEV_TRANSACTION_AMOUNT`,
960
+ # `IS_NEW_COUNTRY`, `IS_NEW_MCC`, `IS_FIRST_TRANSACTION`, `CONSECUTIVE_DECLINES`,
961
+ # `TIME_SINCE_LAST_TRANSACTION`, or `DISTINCT_COUNTRY_COUNT` (require `scope`); or
962
+ # `TRAVEL_SPEED` or `DISTANCE_FROM_LAST_TRANSACTION` (require `unit`). Not used
963
+ # for other attributes.
964
+ sig do
965
+ params(
966
+ interval:
967
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::Interval::OrSymbol,
968
+ scope:
969
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::Scope::OrSymbol,
970
+ unit:
971
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::Unit::OrSymbol
972
+ ).returns(T.attached_class)
973
+ end
974
+ def self.new(
975
+ # The time window for statistical attributes (`AMOUNT_Z_SCORE`,
976
+ # `AVG_TRANSACTION_AMOUNT`, `STDEV_TRANSACTION_AMOUNT`). Use `LIFETIME` for
977
+ # all-time history or a specific window (`7D`, `30D`, `90D`).
978
+ interval: nil,
979
+ # The entity scope to evaluate the attribute against.
980
+ scope: nil,
981
+ # The unit for impossible travel attributes. Required when `attribute` is
982
+ # `TRAVEL_SPEED` or `DISTANCE_FROM_LAST_TRANSACTION`.
983
+ #
984
+ # For `TRAVEL_SPEED`: `MPH` (miles per hour) or `KPH` (kilometers per hour).
985
+ #
986
+ # For `DISTANCE_FROM_LAST_TRANSACTION`: `MILES` or `KILOMETERS`.
987
+ unit: nil
988
+ )
989
+ end
990
+
991
+ sig do
992
+ override.returns(
993
+ {
994
+ interval:
995
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::Interval::OrSymbol,
996
+ scope:
997
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::Scope::OrSymbol,
998
+ unit:
999
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::Unit::OrSymbol
1000
+ }
1001
+ )
1002
+ end
1003
+ def to_hash
1004
+ end
1005
+
1006
+ # The time window for statistical attributes (`AMOUNT_Z_SCORE`,
1007
+ # `AVG_TRANSACTION_AMOUNT`, `STDEV_TRANSACTION_AMOUNT`). Use `LIFETIME` for
1008
+ # all-time history or a specific window (`7D`, `30D`, `90D`).
1009
+ module Interval
1010
+ extend Lithic::Internal::Type::Enum
1011
+
1012
+ TaggedSymbol =
1013
+ T.type_alias do
1014
+ T.all(
1015
+ Symbol,
1016
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::Interval
1017
+ )
1018
+ end
1019
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1020
+
1021
+ LIFETIME =
1022
+ T.let(
1023
+ :LIFETIME,
1024
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::Interval::TaggedSymbol
1025
+ )
1026
+ INTERVAL_7_D =
1027
+ T.let(
1028
+ :"7D",
1029
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::Interval::TaggedSymbol
1030
+ )
1031
+ INTERVAL_30_D =
1032
+ T.let(
1033
+ :"30D",
1034
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::Interval::TaggedSymbol
1035
+ )
1036
+ INTERVAL_90_D =
1037
+ T.let(
1038
+ :"90D",
1039
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::Interval::TaggedSymbol
1040
+ )
1041
+
1042
+ sig do
1043
+ override.returns(
1044
+ T::Array[
1045
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::Interval::TaggedSymbol
1046
+ ]
1047
+ )
1048
+ end
1049
+ def self.values
1050
+ end
1051
+ end
1052
+
1053
+ # The entity scope to evaluate the attribute against.
1054
+ module Scope
1055
+ extend Lithic::Internal::Type::Enum
1056
+
1057
+ TaggedSymbol =
1058
+ T.type_alias do
1059
+ T.all(
1060
+ Symbol,
1061
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::Scope
1062
+ )
1063
+ end
1064
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1065
+
1066
+ CARD =
1067
+ T.let(
1068
+ :CARD,
1069
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::Scope::TaggedSymbol
1070
+ )
1071
+ ACCOUNT =
1072
+ T.let(
1073
+ :ACCOUNT,
1074
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::Scope::TaggedSymbol
1075
+ )
1076
+ BUSINESS_ACCOUNT =
1077
+ T.let(
1078
+ :BUSINESS_ACCOUNT,
1079
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::Scope::TaggedSymbol
1080
+ )
1081
+
1082
+ sig do
1083
+ override.returns(
1084
+ T::Array[
1085
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::Scope::TaggedSymbol
1086
+ ]
1087
+ )
1088
+ end
1089
+ def self.values
1090
+ end
1091
+ end
1092
+
1093
+ # The unit for impossible travel attributes. Required when `attribute` is
1094
+ # `TRAVEL_SPEED` or `DISTANCE_FROM_LAST_TRANSACTION`.
1095
+ #
1096
+ # For `TRAVEL_SPEED`: `MPH` (miles per hour) or `KPH` (kilometers per hour).
1097
+ #
1098
+ # For `DISTANCE_FROM_LAST_TRANSACTION`: `MILES` or `KILOMETERS`.
1099
+ module Unit
1100
+ extend Lithic::Internal::Type::Enum
1101
+
1102
+ TaggedSymbol =
1103
+ T.type_alias do
1104
+ T.all(
1105
+ Symbol,
1106
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::Unit
1107
+ )
1108
+ end
1109
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1110
+
1111
+ MPH =
1112
+ T.let(
1113
+ :MPH,
1114
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::Unit::TaggedSymbol
1115
+ )
1116
+ KPH =
1117
+ T.let(
1118
+ :KPH,
1119
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::Unit::TaggedSymbol
1120
+ )
1121
+ MILES =
1122
+ T.let(
1123
+ :MILES,
1124
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::Unit::TaggedSymbol
1125
+ )
1126
+ KILOMETERS =
1127
+ T.let(
1128
+ :KILOMETERS,
1129
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::Unit::TaggedSymbol
1130
+ )
1131
+
1132
+ sig do
1133
+ override.returns(
1134
+ T::Array[
1135
+ Lithic::AuthRules::ConditionalAuthorizationAdjustmentParameters::Condition::Parameters::Unit::TaggedSymbol
1136
+ ]
1137
+ )
1138
+ end
1139
+ def self.values
1140
+ end
1141
+ end
1142
+ end
1143
+ end
1144
+ end
1145
+ end
1146
+ end
1147
+ end