lithic 0.1.0.pre.alpha.33 → 0.1.0.pre.alpha.35

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 (92) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -0
  3. data/README.md +1 -1
  4. data/lib/lithic/client.rb +4 -0
  5. data/lib/lithic/models/auth_rules/rule_stats.rb +112 -0
  6. data/lib/lithic/models/auth_rules/v2/backtest_results.rb +6 -238
  7. data/lib/lithic/models/auth_rules/v2_retrieve_report_params.rb +32 -0
  8. data/lib/lithic/models/auth_rules/v2_retrieve_report_response.rb +71 -0
  9. data/lib/lithic/models/card_convert_physical_params.rb +10 -6
  10. data/lib/lithic/models/card_create_params.rb +10 -6
  11. data/lib/lithic/models/card_reissue_params.rb +10 -6
  12. data/lib/lithic/models/card_renew_params.rb +10 -6
  13. data/lib/lithic/models/external_bank_account_create_params.rb +1 -1
  14. data/lib/lithic/models/financial_accounts/statements/statement_line_items.rb +1 -0
  15. data/lib/lithic/models/financial_transaction.rb +1 -0
  16. data/lib/lithic/models/fraud/transaction_report_params.rb +130 -0
  17. data/lib/lithic/models/fraud/transaction_report_response.rb +160 -0
  18. data/lib/lithic/models/fraud/transaction_retrieve_params.rb +16 -0
  19. data/lib/lithic/models/fraud/transaction_retrieve_response.rb +160 -0
  20. data/lib/lithic/models/non_pci_card.rb +16 -21
  21. data/lib/lithic/models/payment.rb +7 -1
  22. data/lib/lithic/models/payment_create_params.rb +7 -1
  23. data/lib/lithic/models/three_ds/authentication_retrieve_response.rb +111 -79
  24. data/lib/lithic/models/three_ds/authentication_simulate_params.rb +8 -2
  25. data/lib/lithic/models/three_ds/authentication_simulate_response.rb +2 -6
  26. data/lib/lithic/models/three_ds/challenge_response.rb +7 -7
  27. data/lib/lithic/models/three_ds/challenge_result.rb +1 -1
  28. data/lib/lithic/models/transfer.rb +1 -0
  29. data/lib/lithic/models.rb +2 -0
  30. data/lib/lithic/resources/auth_rules/v2/backtests.rb +8 -7
  31. data/lib/lithic/resources/auth_rules/v2.rb +45 -4
  32. data/lib/lithic/resources/fraud/transactions.rb +69 -0
  33. data/lib/lithic/resources/fraud.rb +18 -0
  34. data/lib/lithic/resources/three_ds/authentication.rb +6 -6
  35. data/lib/lithic/resources/three_ds/decisioning.rb +8 -3
  36. data/lib/lithic/version.rb +1 -1
  37. data/lib/lithic.rb +9 -0
  38. data/rbi/lithic/client.rbi +3 -0
  39. data/rbi/lithic/models/auth_rules/rule_stats.rbi +229 -0
  40. data/rbi/lithic/models/auth_rules/v2/backtest_results.rbi +8 -523
  41. data/rbi/lithic/models/auth_rules/v2_retrieve_report_params.rbi +56 -0
  42. data/rbi/lithic/models/auth_rules/v2_retrieve_report_response.rbi +149 -0
  43. data/rbi/lithic/models/card_convert_physical_params.rbi +15 -9
  44. data/rbi/lithic/models/card_create_params.rbi +15 -9
  45. data/rbi/lithic/models/card_reissue_params.rbi +15 -9
  46. data/rbi/lithic/models/card_renew_params.rbi +15 -9
  47. data/rbi/lithic/models/external_bank_account_create_params.rbi +2 -2
  48. data/rbi/lithic/models/financial_accounts/statements/statement_line_items.rbi +5 -0
  49. data/rbi/lithic/models/financial_transaction.rbi +5 -0
  50. data/rbi/lithic/models/fraud/transaction_report_params.rbi +263 -0
  51. data/rbi/lithic/models/fraud/transaction_report_response.rbi +309 -0
  52. data/rbi/lithic/models/fraud/transaction_retrieve_params.rbi +32 -0
  53. data/rbi/lithic/models/fraud/transaction_retrieve_response.rbi +309 -0
  54. data/rbi/lithic/models/non_pci_card.rbi +27 -38
  55. data/rbi/lithic/models/payment.rbi +9 -3
  56. data/rbi/lithic/models/payment_create_params.rbi +8 -3
  57. data/rbi/lithic/models/three_ds/authentication_retrieve_response.rbi +171 -108
  58. data/rbi/lithic/models/three_ds/authentication_simulate_params.rbi +6 -0
  59. data/rbi/lithic/models/three_ds/authentication_simulate_response.rbi +2 -4
  60. data/rbi/lithic/models/three_ds/challenge_response.rbi +7 -10
  61. data/rbi/lithic/models/three_ds/challenge_result.rbi +1 -1
  62. data/rbi/lithic/models/transfer.rbi +2 -0
  63. data/rbi/lithic/models.rbi +2 -0
  64. data/rbi/lithic/resources/auth_rules/v2/backtests.rbi +8 -7
  65. data/rbi/lithic/resources/auth_rules/v2.rbi +37 -4
  66. data/rbi/lithic/resources/cards.rbi +20 -12
  67. data/rbi/lithic/resources/fraud/transactions.rbi +86 -0
  68. data/rbi/lithic/resources/fraud.rbi +15 -0
  69. data/rbi/lithic/resources/three_ds/authentication.rbi +6 -4
  70. data/rbi/lithic/resources/three_ds/decisioning.rbi +9 -6
  71. data/sig/lithic/client.rbs +2 -0
  72. data/sig/lithic/models/auth_rules/rule_stats.rbs +108 -0
  73. data/sig/lithic/models/auth_rules/v2/backtest_results.rbs +8 -214
  74. data/sig/lithic/models/auth_rules/v2_retrieve_report_params.rbs +30 -0
  75. data/sig/lithic/models/auth_rules/v2_retrieve_report_response.rbs +64 -0
  76. data/sig/lithic/models/external_bank_account_create_params.rbs +2 -2
  77. data/sig/lithic/models/financial_accounts/statements/statement_line_items.rbs +2 -0
  78. data/sig/lithic/models/financial_transaction.rbs +2 -0
  79. data/sig/lithic/models/fraud/transaction_report_params.rbs +75 -0
  80. data/sig/lithic/models/fraud/transaction_report_response.rbs +90 -0
  81. data/sig/lithic/models/fraud/transaction_retrieve_params.rbs +17 -0
  82. data/sig/lithic/models/fraud/transaction_retrieve_response.rbs +90 -0
  83. data/sig/lithic/models/non_pci_card.rbs +4 -19
  84. data/sig/lithic/models/payment.rbs +8 -3
  85. data/sig/lithic/models/payment_create_params.rbs +8 -3
  86. data/sig/lithic/models/three_ds/authentication_retrieve_response.rbs +19 -20
  87. data/sig/lithic/models/transfer.rbs +2 -0
  88. data/sig/lithic/models.rbs +2 -0
  89. data/sig/lithic/resources/auth_rules/v2.rbs +7 -0
  90. data/sig/lithic/resources/fraud/transactions.rbs +22 -0
  91. data/sig/lithic/resources/fraud.rbs +9 -0
  92. metadata +29 -2
@@ -0,0 +1,309 @@
1
+ # typed: strong
2
+
3
+ module Lithic
4
+ module Models
5
+ module Fraud
6
+ class TransactionReportResponse < Lithic::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Lithic::Models::Fraud::TransactionReportResponse,
11
+ Lithic::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The fraud status of the transaction, string (enum) supporting the following
16
+ # values:
17
+ #
18
+ # - `SUSPECTED_FRAUD`: The transaction is suspected to be fraudulent, but this
19
+ # hasn’t been confirmed.
20
+ # - `FRAUDULENT`: The transaction is confirmed to be fraudulent. A transaction may
21
+ # immediately be moved into this state, or be graduated into this state from the
22
+ # `SUSPECTED_FRAUD` state.
23
+ # - `NOT_FRAUDULENT`: The transaction is (explicitly) marked as not fraudulent. A
24
+ # transaction may immediately be moved into this state, or be graduated into
25
+ # this state from the `SUSPECTED_FRAUD` state.
26
+ # - `NO_REPORTED_FRAUD`: Indicates that no fraud report exists for the
27
+ # transaction. It is the default state for transactions that have not been
28
+ # analyzed or associated with any known fraudulent activity.
29
+ sig do
30
+ returns(
31
+ Lithic::Models::Fraud::TransactionReportResponse::FraudStatus::TaggedSymbol
32
+ )
33
+ end
34
+ attr_accessor :fraud_status
35
+
36
+ # The universally unique identifier (UUID) associated with the transaction being
37
+ # reported.
38
+ sig { returns(String) }
39
+ attr_accessor :transaction_token
40
+
41
+ # Provides additional context or details about the fraud report.
42
+ sig { returns(T.nilable(String)) }
43
+ attr_reader :comment
44
+
45
+ sig { params(comment: String).void }
46
+ attr_writer :comment
47
+
48
+ # Timestamp representing when the fraud report was created.
49
+ sig { returns(T.nilable(Time)) }
50
+ attr_reader :created_at
51
+
52
+ sig { params(created_at: Time).void }
53
+ attr_writer :created_at
54
+
55
+ # Specifies the type or category of fraud that the transaction is suspected or
56
+ # confirmed to involve, string (enum) supporting the following values:
57
+ #
58
+ # - `FIRST_PARTY_FRAUD`: First-party fraud occurs when a legitimate account or
59
+ # cardholder intentionally misuses financial services for personal gain. This
60
+ # includes actions such as disputing legitimate transactions to obtain a refund,
61
+ # abusing return policies, or defaulting on credit obligations without intent to
62
+ # repay.
63
+ # - `ACCOUNT_TAKEOVER`: Account takeover fraud occurs when a fraudster gains
64
+ # unauthorized access to an existing account, modifies account settings, and
65
+ # carries out fraudulent transactions.
66
+ # - `CARD_COMPROMISED`: Card compromised fraud occurs when a fraudster gains
67
+ # access to card details without taking over the account, such as through
68
+ # physical card theft, cloning, or online data breaches.
69
+ # - `IDENTITY_THEFT`: Identity theft fraud occurs when a fraudster uses stolen
70
+ # personal information, such as Social Security numbers or addresses, to open
71
+ # accounts, apply for loans, or conduct financial transactions in someone's
72
+ # name.
73
+ # - `CARDHOLDER_MANIPULATION`: This type of fraud occurs when a fraudster
74
+ # manipulates or coerces a legitimate cardholder into unauthorized transactions,
75
+ # often through social engineering tactics.
76
+ sig do
77
+ returns(
78
+ T.nilable(
79
+ Lithic::Models::Fraud::TransactionReportResponse::FraudType::TaggedSymbol
80
+ )
81
+ )
82
+ end
83
+ attr_reader :fraud_type
84
+
85
+ sig do
86
+ params(
87
+ fraud_type:
88
+ Lithic::Models::Fraud::TransactionReportResponse::FraudType::OrSymbol
89
+ ).void
90
+ end
91
+ attr_writer :fraud_type
92
+
93
+ # Timestamp representing the last update to the fraud report.
94
+ sig { returns(T.nilable(Time)) }
95
+ attr_reader :updated_at
96
+
97
+ sig { params(updated_at: Time).void }
98
+ attr_writer :updated_at
99
+
100
+ sig do
101
+ params(
102
+ fraud_status:
103
+ Lithic::Models::Fraud::TransactionReportResponse::FraudStatus::OrSymbol,
104
+ transaction_token: String,
105
+ comment: String,
106
+ created_at: Time,
107
+ fraud_type:
108
+ Lithic::Models::Fraud::TransactionReportResponse::FraudType::OrSymbol,
109
+ updated_at: Time
110
+ ).returns(T.attached_class)
111
+ end
112
+ def self.new(
113
+ # The fraud status of the transaction, string (enum) supporting the following
114
+ # values:
115
+ #
116
+ # - `SUSPECTED_FRAUD`: The transaction is suspected to be fraudulent, but this
117
+ # hasn’t been confirmed.
118
+ # - `FRAUDULENT`: The transaction is confirmed to be fraudulent. A transaction may
119
+ # immediately be moved into this state, or be graduated into this state from the
120
+ # `SUSPECTED_FRAUD` state.
121
+ # - `NOT_FRAUDULENT`: The transaction is (explicitly) marked as not fraudulent. A
122
+ # transaction may immediately be moved into this state, or be graduated into
123
+ # this state from the `SUSPECTED_FRAUD` state.
124
+ # - `NO_REPORTED_FRAUD`: Indicates that no fraud report exists for the
125
+ # transaction. It is the default state for transactions that have not been
126
+ # analyzed or associated with any known fraudulent activity.
127
+ fraud_status:,
128
+ # The universally unique identifier (UUID) associated with the transaction being
129
+ # reported.
130
+ transaction_token:,
131
+ # Provides additional context or details about the fraud report.
132
+ comment: nil,
133
+ # Timestamp representing when the fraud report was created.
134
+ created_at: nil,
135
+ # Specifies the type or category of fraud that the transaction is suspected or
136
+ # confirmed to involve, string (enum) supporting the following values:
137
+ #
138
+ # - `FIRST_PARTY_FRAUD`: First-party fraud occurs when a legitimate account or
139
+ # cardholder intentionally misuses financial services for personal gain. This
140
+ # includes actions such as disputing legitimate transactions to obtain a refund,
141
+ # abusing return policies, or defaulting on credit obligations without intent to
142
+ # repay.
143
+ # - `ACCOUNT_TAKEOVER`: Account takeover fraud occurs when a fraudster gains
144
+ # unauthorized access to an existing account, modifies account settings, and
145
+ # carries out fraudulent transactions.
146
+ # - `CARD_COMPROMISED`: Card compromised fraud occurs when a fraudster gains
147
+ # access to card details without taking over the account, such as through
148
+ # physical card theft, cloning, or online data breaches.
149
+ # - `IDENTITY_THEFT`: Identity theft fraud occurs when a fraudster uses stolen
150
+ # personal information, such as Social Security numbers or addresses, to open
151
+ # accounts, apply for loans, or conduct financial transactions in someone's
152
+ # name.
153
+ # - `CARDHOLDER_MANIPULATION`: This type of fraud occurs when a fraudster
154
+ # manipulates or coerces a legitimate cardholder into unauthorized transactions,
155
+ # often through social engineering tactics.
156
+ fraud_type: nil,
157
+ # Timestamp representing the last update to the fraud report.
158
+ updated_at: nil
159
+ )
160
+ end
161
+
162
+ sig do
163
+ override.returns(
164
+ {
165
+ fraud_status:
166
+ Lithic::Models::Fraud::TransactionReportResponse::FraudStatus::TaggedSymbol,
167
+ transaction_token: String,
168
+ comment: String,
169
+ created_at: Time,
170
+ fraud_type:
171
+ Lithic::Models::Fraud::TransactionReportResponse::FraudType::TaggedSymbol,
172
+ updated_at: Time
173
+ }
174
+ )
175
+ end
176
+ def to_hash
177
+ end
178
+
179
+ # The fraud status of the transaction, string (enum) supporting the following
180
+ # values:
181
+ #
182
+ # - `SUSPECTED_FRAUD`: The transaction is suspected to be fraudulent, but this
183
+ # hasn’t been confirmed.
184
+ # - `FRAUDULENT`: The transaction is confirmed to be fraudulent. A transaction may
185
+ # immediately be moved into this state, or be graduated into this state from the
186
+ # `SUSPECTED_FRAUD` state.
187
+ # - `NOT_FRAUDULENT`: The transaction is (explicitly) marked as not fraudulent. A
188
+ # transaction may immediately be moved into this state, or be graduated into
189
+ # this state from the `SUSPECTED_FRAUD` state.
190
+ # - `NO_REPORTED_FRAUD`: Indicates that no fraud report exists for the
191
+ # transaction. It is the default state for transactions that have not been
192
+ # analyzed or associated with any known fraudulent activity.
193
+ module FraudStatus
194
+ extend Lithic::Internal::Type::Enum
195
+
196
+ TaggedSymbol =
197
+ T.type_alias do
198
+ T.all(
199
+ Symbol,
200
+ Lithic::Models::Fraud::TransactionReportResponse::FraudStatus
201
+ )
202
+ end
203
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
204
+
205
+ SUSPECTED_FRAUD =
206
+ T.let(
207
+ :SUSPECTED_FRAUD,
208
+ Lithic::Models::Fraud::TransactionReportResponse::FraudStatus::TaggedSymbol
209
+ )
210
+ FRAUDULENT =
211
+ T.let(
212
+ :FRAUDULENT,
213
+ Lithic::Models::Fraud::TransactionReportResponse::FraudStatus::TaggedSymbol
214
+ )
215
+ NOT_FRAUDULENT =
216
+ T.let(
217
+ :NOT_FRAUDULENT,
218
+ Lithic::Models::Fraud::TransactionReportResponse::FraudStatus::TaggedSymbol
219
+ )
220
+ NO_REPORTED_FRAUD =
221
+ T.let(
222
+ :NO_REPORTED_FRAUD,
223
+ Lithic::Models::Fraud::TransactionReportResponse::FraudStatus::TaggedSymbol
224
+ )
225
+
226
+ sig do
227
+ override.returns(
228
+ T::Array[
229
+ Lithic::Models::Fraud::TransactionReportResponse::FraudStatus::TaggedSymbol
230
+ ]
231
+ )
232
+ end
233
+ def self.values
234
+ end
235
+ end
236
+
237
+ # Specifies the type or category of fraud that the transaction is suspected or
238
+ # confirmed to involve, string (enum) supporting the following values:
239
+ #
240
+ # - `FIRST_PARTY_FRAUD`: First-party fraud occurs when a legitimate account or
241
+ # cardholder intentionally misuses financial services for personal gain. This
242
+ # includes actions such as disputing legitimate transactions to obtain a refund,
243
+ # abusing return policies, or defaulting on credit obligations without intent to
244
+ # repay.
245
+ # - `ACCOUNT_TAKEOVER`: Account takeover fraud occurs when a fraudster gains
246
+ # unauthorized access to an existing account, modifies account settings, and
247
+ # carries out fraudulent transactions.
248
+ # - `CARD_COMPROMISED`: Card compromised fraud occurs when a fraudster gains
249
+ # access to card details without taking over the account, such as through
250
+ # physical card theft, cloning, or online data breaches.
251
+ # - `IDENTITY_THEFT`: Identity theft fraud occurs when a fraudster uses stolen
252
+ # personal information, such as Social Security numbers or addresses, to open
253
+ # accounts, apply for loans, or conduct financial transactions in someone's
254
+ # name.
255
+ # - `CARDHOLDER_MANIPULATION`: This type of fraud occurs when a fraudster
256
+ # manipulates or coerces a legitimate cardholder into unauthorized transactions,
257
+ # often through social engineering tactics.
258
+ module FraudType
259
+ extend Lithic::Internal::Type::Enum
260
+
261
+ TaggedSymbol =
262
+ T.type_alias do
263
+ T.all(
264
+ Symbol,
265
+ Lithic::Models::Fraud::TransactionReportResponse::FraudType
266
+ )
267
+ end
268
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
269
+
270
+ FIRST_PARTY_FRAUD =
271
+ T.let(
272
+ :FIRST_PARTY_FRAUD,
273
+ Lithic::Models::Fraud::TransactionReportResponse::FraudType::TaggedSymbol
274
+ )
275
+ ACCOUNT_TAKEOVER =
276
+ T.let(
277
+ :ACCOUNT_TAKEOVER,
278
+ Lithic::Models::Fraud::TransactionReportResponse::FraudType::TaggedSymbol
279
+ )
280
+ CARD_COMPROMISED =
281
+ T.let(
282
+ :CARD_COMPROMISED,
283
+ Lithic::Models::Fraud::TransactionReportResponse::FraudType::TaggedSymbol
284
+ )
285
+ IDENTITY_THEFT =
286
+ T.let(
287
+ :IDENTITY_THEFT,
288
+ Lithic::Models::Fraud::TransactionReportResponse::FraudType::TaggedSymbol
289
+ )
290
+ CARDHOLDER_MANIPULATION =
291
+ T.let(
292
+ :CARDHOLDER_MANIPULATION,
293
+ Lithic::Models::Fraud::TransactionReportResponse::FraudType::TaggedSymbol
294
+ )
295
+
296
+ sig do
297
+ override.returns(
298
+ T::Array[
299
+ Lithic::Models::Fraud::TransactionReportResponse::FraudType::TaggedSymbol
300
+ ]
301
+ )
302
+ end
303
+ def self.values
304
+ end
305
+ end
306
+ end
307
+ end
308
+ end
309
+ end
@@ -0,0 +1,32 @@
1
+ # typed: strong
2
+
3
+ module Lithic
4
+ module Models
5
+ module Fraud
6
+ class TransactionRetrieveParams < Lithic::Internal::Type::BaseModel
7
+ extend Lithic::Internal::Type::RequestParameters::Converter
8
+ include Lithic::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Lithic::Fraud::TransactionRetrieveParams,
14
+ Lithic::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig do
19
+ params(request_options: Lithic::RequestOptions::OrHash).returns(
20
+ T.attached_class
21
+ )
22
+ end
23
+ def self.new(request_options: {})
24
+ end
25
+
26
+ sig { override.returns({ request_options: Lithic::RequestOptions }) }
27
+ def to_hash
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,309 @@
1
+ # typed: strong
2
+
3
+ module Lithic
4
+ module Models
5
+ module Fraud
6
+ class TransactionRetrieveResponse < Lithic::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Lithic::Models::Fraud::TransactionRetrieveResponse,
11
+ Lithic::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The fraud status of the transaction, string (enum) supporting the following
16
+ # values:
17
+ #
18
+ # - `SUSPECTED_FRAUD`: The transaction is suspected to be fraudulent, but this
19
+ # hasn’t been confirmed.
20
+ # - `FRAUDULENT`: The transaction is confirmed to be fraudulent. A transaction may
21
+ # immediately be moved into this state, or be graduated into this state from the
22
+ # `SUSPECTED_FRAUD` state.
23
+ # - `NOT_FRAUDULENT`: The transaction is (explicitly) marked as not fraudulent. A
24
+ # transaction may immediately be moved into this state, or be graduated into
25
+ # this state from the `SUSPECTED_FRAUD` state.
26
+ # - `NO_REPORTED_FRAUD`: Indicates that no fraud report exists for the
27
+ # transaction. It is the default state for transactions that have not been
28
+ # analyzed or associated with any known fraudulent activity.
29
+ sig do
30
+ returns(
31
+ Lithic::Models::Fraud::TransactionRetrieveResponse::FraudStatus::TaggedSymbol
32
+ )
33
+ end
34
+ attr_accessor :fraud_status
35
+
36
+ # The universally unique identifier (UUID) associated with the transaction being
37
+ # reported.
38
+ sig { returns(String) }
39
+ attr_accessor :transaction_token
40
+
41
+ # Provides additional context or details about the fraud report.
42
+ sig { returns(T.nilable(String)) }
43
+ attr_reader :comment
44
+
45
+ sig { params(comment: String).void }
46
+ attr_writer :comment
47
+
48
+ # Timestamp representing when the fraud report was created.
49
+ sig { returns(T.nilable(Time)) }
50
+ attr_reader :created_at
51
+
52
+ sig { params(created_at: Time).void }
53
+ attr_writer :created_at
54
+
55
+ # Specifies the type or category of fraud that the transaction is suspected or
56
+ # confirmed to involve, string (enum) supporting the following values:
57
+ #
58
+ # - `FIRST_PARTY_FRAUD`: First-party fraud occurs when a legitimate account or
59
+ # cardholder intentionally misuses financial services for personal gain. This
60
+ # includes actions such as disputing legitimate transactions to obtain a refund,
61
+ # abusing return policies, or defaulting on credit obligations without intent to
62
+ # repay.
63
+ # - `ACCOUNT_TAKEOVER`: Account takeover fraud occurs when a fraudster gains
64
+ # unauthorized access to an existing account, modifies account settings, and
65
+ # carries out fraudulent transactions.
66
+ # - `CARD_COMPROMISED`: Card compromised fraud occurs when a fraudster gains
67
+ # access to card details without taking over the account, such as through
68
+ # physical card theft, cloning, or online data breaches.
69
+ # - `IDENTITY_THEFT`: Identity theft fraud occurs when a fraudster uses stolen
70
+ # personal information, such as Social Security numbers or addresses, to open
71
+ # accounts, apply for loans, or conduct financial transactions in someone's
72
+ # name.
73
+ # - `CARDHOLDER_MANIPULATION`: This type of fraud occurs when a fraudster
74
+ # manipulates or coerces a legitimate cardholder into unauthorized transactions,
75
+ # often through social engineering tactics.
76
+ sig do
77
+ returns(
78
+ T.nilable(
79
+ Lithic::Models::Fraud::TransactionRetrieveResponse::FraudType::TaggedSymbol
80
+ )
81
+ )
82
+ end
83
+ attr_reader :fraud_type
84
+
85
+ sig do
86
+ params(
87
+ fraud_type:
88
+ Lithic::Models::Fraud::TransactionRetrieveResponse::FraudType::OrSymbol
89
+ ).void
90
+ end
91
+ attr_writer :fraud_type
92
+
93
+ # Timestamp representing the last update to the fraud report.
94
+ sig { returns(T.nilable(Time)) }
95
+ attr_reader :updated_at
96
+
97
+ sig { params(updated_at: Time).void }
98
+ attr_writer :updated_at
99
+
100
+ sig do
101
+ params(
102
+ fraud_status:
103
+ Lithic::Models::Fraud::TransactionRetrieveResponse::FraudStatus::OrSymbol,
104
+ transaction_token: String,
105
+ comment: String,
106
+ created_at: Time,
107
+ fraud_type:
108
+ Lithic::Models::Fraud::TransactionRetrieveResponse::FraudType::OrSymbol,
109
+ updated_at: Time
110
+ ).returns(T.attached_class)
111
+ end
112
+ def self.new(
113
+ # The fraud status of the transaction, string (enum) supporting the following
114
+ # values:
115
+ #
116
+ # - `SUSPECTED_FRAUD`: The transaction is suspected to be fraudulent, but this
117
+ # hasn’t been confirmed.
118
+ # - `FRAUDULENT`: The transaction is confirmed to be fraudulent. A transaction may
119
+ # immediately be moved into this state, or be graduated into this state from the
120
+ # `SUSPECTED_FRAUD` state.
121
+ # - `NOT_FRAUDULENT`: The transaction is (explicitly) marked as not fraudulent. A
122
+ # transaction may immediately be moved into this state, or be graduated into
123
+ # this state from the `SUSPECTED_FRAUD` state.
124
+ # - `NO_REPORTED_FRAUD`: Indicates that no fraud report exists for the
125
+ # transaction. It is the default state for transactions that have not been
126
+ # analyzed or associated with any known fraudulent activity.
127
+ fraud_status:,
128
+ # The universally unique identifier (UUID) associated with the transaction being
129
+ # reported.
130
+ transaction_token:,
131
+ # Provides additional context or details about the fraud report.
132
+ comment: nil,
133
+ # Timestamp representing when the fraud report was created.
134
+ created_at: nil,
135
+ # Specifies the type or category of fraud that the transaction is suspected or
136
+ # confirmed to involve, string (enum) supporting the following values:
137
+ #
138
+ # - `FIRST_PARTY_FRAUD`: First-party fraud occurs when a legitimate account or
139
+ # cardholder intentionally misuses financial services for personal gain. This
140
+ # includes actions such as disputing legitimate transactions to obtain a refund,
141
+ # abusing return policies, or defaulting on credit obligations without intent to
142
+ # repay.
143
+ # - `ACCOUNT_TAKEOVER`: Account takeover fraud occurs when a fraudster gains
144
+ # unauthorized access to an existing account, modifies account settings, and
145
+ # carries out fraudulent transactions.
146
+ # - `CARD_COMPROMISED`: Card compromised fraud occurs when a fraudster gains
147
+ # access to card details without taking over the account, such as through
148
+ # physical card theft, cloning, or online data breaches.
149
+ # - `IDENTITY_THEFT`: Identity theft fraud occurs when a fraudster uses stolen
150
+ # personal information, such as Social Security numbers or addresses, to open
151
+ # accounts, apply for loans, or conduct financial transactions in someone's
152
+ # name.
153
+ # - `CARDHOLDER_MANIPULATION`: This type of fraud occurs when a fraudster
154
+ # manipulates or coerces a legitimate cardholder into unauthorized transactions,
155
+ # often through social engineering tactics.
156
+ fraud_type: nil,
157
+ # Timestamp representing the last update to the fraud report.
158
+ updated_at: nil
159
+ )
160
+ end
161
+
162
+ sig do
163
+ override.returns(
164
+ {
165
+ fraud_status:
166
+ Lithic::Models::Fraud::TransactionRetrieveResponse::FraudStatus::TaggedSymbol,
167
+ transaction_token: String,
168
+ comment: String,
169
+ created_at: Time,
170
+ fraud_type:
171
+ Lithic::Models::Fraud::TransactionRetrieveResponse::FraudType::TaggedSymbol,
172
+ updated_at: Time
173
+ }
174
+ )
175
+ end
176
+ def to_hash
177
+ end
178
+
179
+ # The fraud status of the transaction, string (enum) supporting the following
180
+ # values:
181
+ #
182
+ # - `SUSPECTED_FRAUD`: The transaction is suspected to be fraudulent, but this
183
+ # hasn’t been confirmed.
184
+ # - `FRAUDULENT`: The transaction is confirmed to be fraudulent. A transaction may
185
+ # immediately be moved into this state, or be graduated into this state from the
186
+ # `SUSPECTED_FRAUD` state.
187
+ # - `NOT_FRAUDULENT`: The transaction is (explicitly) marked as not fraudulent. A
188
+ # transaction may immediately be moved into this state, or be graduated into
189
+ # this state from the `SUSPECTED_FRAUD` state.
190
+ # - `NO_REPORTED_FRAUD`: Indicates that no fraud report exists for the
191
+ # transaction. It is the default state for transactions that have not been
192
+ # analyzed or associated with any known fraudulent activity.
193
+ module FraudStatus
194
+ extend Lithic::Internal::Type::Enum
195
+
196
+ TaggedSymbol =
197
+ T.type_alias do
198
+ T.all(
199
+ Symbol,
200
+ Lithic::Models::Fraud::TransactionRetrieveResponse::FraudStatus
201
+ )
202
+ end
203
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
204
+
205
+ SUSPECTED_FRAUD =
206
+ T.let(
207
+ :SUSPECTED_FRAUD,
208
+ Lithic::Models::Fraud::TransactionRetrieveResponse::FraudStatus::TaggedSymbol
209
+ )
210
+ FRAUDULENT =
211
+ T.let(
212
+ :FRAUDULENT,
213
+ Lithic::Models::Fraud::TransactionRetrieveResponse::FraudStatus::TaggedSymbol
214
+ )
215
+ NOT_FRAUDULENT =
216
+ T.let(
217
+ :NOT_FRAUDULENT,
218
+ Lithic::Models::Fraud::TransactionRetrieveResponse::FraudStatus::TaggedSymbol
219
+ )
220
+ NO_REPORTED_FRAUD =
221
+ T.let(
222
+ :NO_REPORTED_FRAUD,
223
+ Lithic::Models::Fraud::TransactionRetrieveResponse::FraudStatus::TaggedSymbol
224
+ )
225
+
226
+ sig do
227
+ override.returns(
228
+ T::Array[
229
+ Lithic::Models::Fraud::TransactionRetrieveResponse::FraudStatus::TaggedSymbol
230
+ ]
231
+ )
232
+ end
233
+ def self.values
234
+ end
235
+ end
236
+
237
+ # Specifies the type or category of fraud that the transaction is suspected or
238
+ # confirmed to involve, string (enum) supporting the following values:
239
+ #
240
+ # - `FIRST_PARTY_FRAUD`: First-party fraud occurs when a legitimate account or
241
+ # cardholder intentionally misuses financial services for personal gain. This
242
+ # includes actions such as disputing legitimate transactions to obtain a refund,
243
+ # abusing return policies, or defaulting on credit obligations without intent to
244
+ # repay.
245
+ # - `ACCOUNT_TAKEOVER`: Account takeover fraud occurs when a fraudster gains
246
+ # unauthorized access to an existing account, modifies account settings, and
247
+ # carries out fraudulent transactions.
248
+ # - `CARD_COMPROMISED`: Card compromised fraud occurs when a fraudster gains
249
+ # access to card details without taking over the account, such as through
250
+ # physical card theft, cloning, or online data breaches.
251
+ # - `IDENTITY_THEFT`: Identity theft fraud occurs when a fraudster uses stolen
252
+ # personal information, such as Social Security numbers or addresses, to open
253
+ # accounts, apply for loans, or conduct financial transactions in someone's
254
+ # name.
255
+ # - `CARDHOLDER_MANIPULATION`: This type of fraud occurs when a fraudster
256
+ # manipulates or coerces a legitimate cardholder into unauthorized transactions,
257
+ # often through social engineering tactics.
258
+ module FraudType
259
+ extend Lithic::Internal::Type::Enum
260
+
261
+ TaggedSymbol =
262
+ T.type_alias do
263
+ T.all(
264
+ Symbol,
265
+ Lithic::Models::Fraud::TransactionRetrieveResponse::FraudType
266
+ )
267
+ end
268
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
269
+
270
+ FIRST_PARTY_FRAUD =
271
+ T.let(
272
+ :FIRST_PARTY_FRAUD,
273
+ Lithic::Models::Fraud::TransactionRetrieveResponse::FraudType::TaggedSymbol
274
+ )
275
+ ACCOUNT_TAKEOVER =
276
+ T.let(
277
+ :ACCOUNT_TAKEOVER,
278
+ Lithic::Models::Fraud::TransactionRetrieveResponse::FraudType::TaggedSymbol
279
+ )
280
+ CARD_COMPROMISED =
281
+ T.let(
282
+ :CARD_COMPROMISED,
283
+ Lithic::Models::Fraud::TransactionRetrieveResponse::FraudType::TaggedSymbol
284
+ )
285
+ IDENTITY_THEFT =
286
+ T.let(
287
+ :IDENTITY_THEFT,
288
+ Lithic::Models::Fraud::TransactionRetrieveResponse::FraudType::TaggedSymbol
289
+ )
290
+ CARDHOLDER_MANIPULATION =
291
+ T.let(
292
+ :CARDHOLDER_MANIPULATION,
293
+ Lithic::Models::Fraud::TransactionRetrieveResponse::FraudType::TaggedSymbol
294
+ )
295
+
296
+ sig do
297
+ override.returns(
298
+ T::Array[
299
+ Lithic::Models::Fraud::TransactionRetrieveResponse::FraudType::TaggedSymbol
300
+ ]
301
+ )
302
+ end
303
+ def self.values
304
+ end
305
+ end
306
+ end
307
+ end
308
+ end
309
+ end