lithic 0.1.0.pre.alpha.56 → 0.1.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 (242) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +33 -0
  3. data/README.md +1 -1
  4. data/lib/lithic/client.rb +8 -0
  5. data/lib/lithic/models/account_activity_list_params.rb +2 -0
  6. data/lib/lithic/models/account_activity_list_response.rb +2 -0
  7. data/lib/lithic/models/account_activity_retrieve_transaction_response.rb +2 -0
  8. data/lib/lithic/models/auth_rules/auth_rule.rb +208 -49
  9. data/lib/lithic/models/auth_rules/auth_rule_condition.rb +2 -2
  10. data/lib/lithic/models/auth_rules/conditional_3ds_action_parameters.rb +2 -2
  11. data/lib/lithic/models/auth_rules/conditional_ach_action_parameters.rb +2 -2
  12. data/lib/lithic/models/auth_rules/conditional_authorization_action_parameters.rb +2 -2
  13. data/lib/lithic/models/auth_rules/conditional_operation.rb +5 -0
  14. data/lib/lithic/models/auth_rules/conditional_tokenization_action_parameters.rb +19 -2
  15. data/lib/lithic/models/auth_rules/conditional_value.rb +4 -1
  16. data/lib/lithic/models/auth_rules/event_stream.rb +21 -0
  17. data/lib/lithic/models/auth_rules/v2_create_params.rb +3 -17
  18. data/lib/lithic/models/auth_rules/v2_list_params.rb +16 -19
  19. data/lib/lithic/models/card_bulk_order.rb +106 -0
  20. data/lib/lithic/models/card_bulk_order_create_params.rb +52 -0
  21. data/lib/lithic/models/card_bulk_order_list_params.rb +61 -0
  22. data/lib/lithic/models/card_bulk_order_retrieve_params.rb +14 -0
  23. data/lib/lithic/models/card_bulk_order_update_params.rb +32 -0
  24. data/lib/lithic/models/card_convert_physical_params.rb +3 -0
  25. data/lib/lithic/models/card_create_params.rb +14 -1
  26. data/lib/lithic/models/card_program.rb +10 -10
  27. data/lib/lithic/models/card_reissue_params.rb +3 -0
  28. data/lib/lithic/models/card_renew_params.rb +3 -0
  29. data/lib/lithic/models/card_web_provision_params.rb +32 -1
  30. data/lib/lithic/models/card_web_provision_response.rb +98 -60
  31. data/lib/lithic/models/cardholder_authentication.rb +132 -0
  32. data/lib/lithic/models/device.rb +37 -0
  33. data/lib/lithic/models/digital_wallet_token_metadata.rb +141 -0
  34. data/lib/lithic/models/{external_bank_account_unpause_response.rb → external_bank_account.rb} +15 -16
  35. data/lib/lithic/models/external_payment.rb +12 -0
  36. data/lib/lithic/models/external_payment_create_params.rb +2 -0
  37. data/lib/lithic/models/external_payment_list_params.rb +2 -0
  38. data/lib/lithic/models/financial_account_balance.rb +112 -0
  39. data/lib/lithic/models/financial_accounts/statement.rb +9 -9
  40. data/lib/lithic/models/financial_accounts/statements/statement_line_items.rb +18 -0
  41. data/lib/lithic/models/financial_event.rb +16 -0
  42. data/lib/lithic/models/{funding_event_retrieve_response.rb → funding_event.rb} +9 -10
  43. data/lib/lithic/models/internal_transaction.rb +166 -0
  44. data/lib/lithic/models/management_operation_create_params.rb +6 -0
  45. data/lib/lithic/models/management_operation_transaction.rb +6 -0
  46. data/lib/lithic/models/network_total.rb +169 -0
  47. data/lib/lithic/models/non_pci_card.rb +10 -1
  48. data/lib/lithic/models/payment.rb +11 -1
  49. data/lib/lithic/models/payment_create_params.rb +10 -1
  50. data/lib/lithic/models/three_ds_authentication.rb +1259 -0
  51. data/lib/lithic/models/token_info.rb +42 -0
  52. data/lib/lithic/models/tokenization.rb +9 -111
  53. data/lib/lithic/models/tokenization_decline_reason.rb +27 -0
  54. data/lib/lithic/models/tokenization_rule_result.rb +61 -0
  55. data/lib/lithic/models/tokenization_tfa_reason.rb +29 -0
  56. data/lib/lithic/models/transaction.rb +6 -174
  57. data/lib/lithic/models/wallet_decisioning_info.rb +44 -0
  58. data/lib/lithic/models.rb +38 -0
  59. data/lib/lithic/resources/auth_rules/v2.rb +17 -15
  60. data/lib/lithic/resources/card_bulk_orders.rb +127 -0
  61. data/lib/lithic/resources/cards/balances.rb +2 -2
  62. data/lib/lithic/resources/cards.rb +14 -3
  63. data/lib/lithic/resources/external_bank_accounts.rb +4 -4
  64. data/lib/lithic/resources/financial_accounts/balances.rb +2 -2
  65. data/lib/lithic/resources/funding_events.rb +4 -4
  66. data/lib/lithic/resources/internal_transaction.rb +14 -0
  67. data/lib/lithic/resources/reports/settlement/network_totals.rb +4 -4
  68. data/lib/lithic/resources/three_ds/authentication.rb +2 -2
  69. data/lib/lithic/resources/tokenizations.rb +4 -4
  70. data/lib/lithic/version.rb +1 -1
  71. data/lib/lithic.rb +23 -17
  72. data/manifest.yaml +1 -0
  73. data/rbi/lithic/client.rbi +6 -0
  74. data/rbi/lithic/models/account_activity_list_params.rbi +10 -0
  75. data/rbi/lithic/models/account_activity_list_response.rbi +10 -0
  76. data/rbi/lithic/models/account_activity_retrieve_transaction_response.rbi +10 -0
  77. data/rbi/lithic/models/auth_rules/auth_rule.rbi +339 -80
  78. data/rbi/lithic/models/auth_rules/conditional_operation.rbi +25 -0
  79. data/rbi/lithic/models/auth_rules/conditional_tokenization_action_parameters.rbi +29 -0
  80. data/rbi/lithic/models/auth_rules/conditional_value.rbi +2 -1
  81. data/rbi/lithic/models/auth_rules/event_stream.rbi +44 -0
  82. data/rbi/lithic/models/auth_rules/v2_create_params.rbi +4 -60
  83. data/rbi/lithic/models/auth_rules/v2_list_params.rbi +27 -59
  84. data/rbi/lithic/models/card_bulk_order.rbi +141 -0
  85. data/rbi/lithic/models/card_bulk_order_create_params.rbi +92 -0
  86. data/rbi/lithic/models/card_bulk_order_list_params.rbi +98 -0
  87. data/rbi/lithic/models/card_bulk_order_retrieve_params.rbi +27 -0
  88. data/rbi/lithic/models/card_bulk_order_update_params.rbi +68 -0
  89. data/rbi/lithic/models/card_convert_physical_params.rbi +8 -0
  90. data/rbi/lithic/models/card_create_params.rbi +23 -0
  91. data/rbi/lithic/models/card_program.rbi +10 -13
  92. data/rbi/lithic/models/card_reissue_params.rbi +8 -0
  93. data/rbi/lithic/models/card_renew_params.rbi +8 -0
  94. data/rbi/lithic/models/card_web_provision_params.rbi +44 -0
  95. data/rbi/lithic/models/card_web_provision_response.rbi +182 -102
  96. data/rbi/lithic/models/cardholder_authentication.rbi +296 -0
  97. data/rbi/lithic/models/device.rbi +54 -0
  98. data/rbi/lithic/models/digital_wallet_token_metadata.rbi +290 -0
  99. data/rbi/lithic/models/{external_bank_account_unpause_response.rbi → external_bank_account.rbi} +26 -75
  100. data/rbi/lithic/models/external_payment.rbi +57 -0
  101. data/rbi/lithic/models/external_payment_create_params.rbi +10 -0
  102. data/rbi/lithic/models/external_payment_list_params.rbi +10 -0
  103. data/rbi/lithic/models/financial_account_balance.rbi +144 -0
  104. data/rbi/lithic/models/financial_accounts/statement.rbi +9 -9
  105. data/rbi/lithic/models/financial_accounts/statements/statement_line_items.rbi +90 -0
  106. data/rbi/lithic/models/financial_event.rbi +60 -0
  107. data/rbi/lithic/models/{funding_event_list_response.rbi → funding_event.rbi} +13 -35
  108. data/rbi/lithic/models/internal_transaction.rbi +277 -0
  109. data/rbi/lithic/models/management_operation_create_params.rbi +30 -0
  110. data/rbi/lithic/models/management_operation_transaction.rbi +30 -0
  111. data/rbi/lithic/models/network_total.rbi +226 -0
  112. data/rbi/lithic/models/non_pci_card.rbi +10 -0
  113. data/rbi/lithic/models/payment.rbi +12 -0
  114. data/rbi/lithic/models/payment_create_params.rbi +15 -1
  115. data/rbi/lithic/models/three_ds_authentication.rbi +2432 -0
  116. data/rbi/lithic/models/token_info.rbi +70 -0
  117. data/rbi/lithic/models/tokenization.rbi +12 -335
  118. data/rbi/lithic/models/tokenization_decline_reason.rbi +73 -0
  119. data/rbi/lithic/models/tokenization_rule_result.rbi +96 -0
  120. data/rbi/lithic/models/tokenization_tfa_reason.rbi +74 -0
  121. data/rbi/lithic/models/transaction.rbi +8 -410
  122. data/rbi/lithic/models/wallet_decisioning_info.rbi +63 -0
  123. data/rbi/lithic/models.rbi +38 -0
  124. data/rbi/lithic/resources/auth_rules/v2.rbi +15 -15
  125. data/rbi/lithic/resources/card_bulk_orders.rbi +101 -0
  126. data/rbi/lithic/resources/cards/balances.rbi +1 -3
  127. data/rbi/lithic/resources/cards.rbi +22 -1
  128. data/rbi/lithic/resources/external_bank_accounts.rbi +2 -2
  129. data/rbi/lithic/resources/financial_accounts/balances.rbi +1 -3
  130. data/rbi/lithic/resources/funding_events.rbi +2 -4
  131. data/rbi/lithic/resources/internal_transaction.rbi +12 -0
  132. data/rbi/lithic/resources/reports/settlement/network_totals.rbi +2 -8
  133. data/rbi/lithic/resources/three_ds/authentication.rbi +1 -1
  134. data/rbi/lithic/resources/tokenizations.rbi +2 -2
  135. data/sig/lithic/client.rbs +4 -0
  136. data/sig/lithic/models/account_activity_list_params.rbs +4 -0
  137. data/sig/lithic/models/account_activity_list_response.rbs +4 -0
  138. data/sig/lithic/models/account_activity_retrieve_transaction_response.rbs +4 -0
  139. data/sig/lithic/models/auth_rules/auth_rule.rbs +135 -36
  140. data/sig/lithic/models/auth_rules/conditional_operation.rbs +10 -0
  141. data/sig/lithic/models/auth_rules/conditional_tokenization_action_parameters.rbs +2 -0
  142. data/sig/lithic/models/auth_rules/conditional_value.rbs +1 -1
  143. data/sig/lithic/models/auth_rules/event_stream.rbs +24 -0
  144. data/sig/lithic/models/auth_rules/v2_create_params.rbs +6 -25
  145. data/sig/lithic/models/auth_rules/v2_list_params.rbs +15 -25
  146. data/sig/lithic/models/card_bulk_order.rbs +76 -0
  147. data/sig/lithic/models/card_bulk_order_create_params.rbs +46 -0
  148. data/sig/lithic/models/card_bulk_order_list_params.rbs +56 -0
  149. data/sig/lithic/models/card_bulk_order_retrieve_params.rbs +15 -0
  150. data/sig/lithic/models/card_bulk_order_update_params.rbs +34 -0
  151. data/sig/lithic/models/card_convert_physical_params.rbs +2 -0
  152. data/sig/lithic/models/card_create_params.rbs +9 -0
  153. data/sig/lithic/models/card_program.rbs +5 -7
  154. data/sig/lithic/models/card_reissue_params.rbs +2 -0
  155. data/sig/lithic/models/card_renew_params.rbs +2 -0
  156. data/sig/lithic/models/card_web_provision_params.rbs +26 -2
  157. data/sig/lithic/models/card_web_provision_response.rbs +81 -51
  158. data/sig/lithic/models/cardholder_authentication.rbs +98 -0
  159. data/sig/lithic/models/device.rbs +21 -0
  160. data/sig/lithic/models/digital_wallet_token_metadata.rbs +119 -0
  161. data/sig/lithic/models/{external_bank_account_unpause_response.rbs → external_bank_account.rbs} +17 -17
  162. data/sig/lithic/models/external_payment.rbs +28 -1
  163. data/sig/lithic/models/external_payment_create_params.rbs +8 -1
  164. data/sig/lithic/models/external_payment_list_params.rbs +8 -1
  165. data/sig/lithic/models/financial_account_balance.rbs +78 -0
  166. data/sig/lithic/models/financial_accounts/statement.rbs +12 -12
  167. data/sig/lithic/models/financial_accounts/statements/statement_line_items.rbs +36 -0
  168. data/sig/lithic/models/financial_event.rbs +32 -0
  169. data/sig/lithic/models/{funding_event_list_response.rbs → funding_event.rbs} +11 -11
  170. data/sig/lithic/models/internal_transaction.rbs +165 -0
  171. data/sig/lithic/models/management_operation_create_params.rbs +12 -0
  172. data/sig/lithic/models/management_operation_transaction.rbs +12 -0
  173. data/sig/lithic/models/network_total.rbs +125 -0
  174. data/sig/lithic/models/non_pci_card.rbs +5 -0
  175. data/sig/lithic/models/payment.rbs +9 -0
  176. data/sig/lithic/models/payment_create_params.rbs +7 -0
  177. data/sig/lithic/models/three_ds_authentication.rbs +911 -0
  178. data/sig/lithic/models/token_info.rbs +36 -0
  179. data/sig/lithic/models/tokenization.rbs +18 -137
  180. data/sig/lithic/models/tokenization_decline_reason.rbs +38 -0
  181. data/sig/lithic/models/tokenization_rule_result.rbs +48 -0
  182. data/sig/lithic/models/tokenization_tfa_reason.rbs +42 -0
  183. data/sig/lithic/models/transaction.rbs +8 -140
  184. data/sig/lithic/models/wallet_decisioning_info.rbs +35 -0
  185. data/sig/lithic/models.rbs +38 -0
  186. data/sig/lithic/resources/auth_rules/v2.rbs +9 -8
  187. data/sig/lithic/resources/card_bulk_orders.rbs +34 -0
  188. data/sig/lithic/resources/cards/balances.rbs +1 -1
  189. data/sig/lithic/resources/cards.rbs +5 -1
  190. data/sig/lithic/resources/external_bank_accounts.rbs +2 -2
  191. data/sig/lithic/resources/financial_accounts/balances.rbs +1 -1
  192. data/sig/lithic/resources/funding_events.rbs +2 -2
  193. data/sig/lithic/resources/internal_transaction.rbs +7 -0
  194. data/sig/lithic/resources/reports/settlement/network_totals.rbs +2 -2
  195. data/sig/lithic/resources/three_ds/authentication.rbs +1 -1
  196. data/sig/lithic/resources/tokenizations.rbs +2 -2
  197. metadata +70 -55
  198. data/lib/lithic/models/auth_rules/v2_create_response.rb +0 -280
  199. data/lib/lithic/models/auth_rules/v2_draft_response.rb +0 -279
  200. data/lib/lithic/models/auth_rules/v2_list_response.rb +0 -279
  201. data/lib/lithic/models/auth_rules/v2_promote_response.rb +0 -280
  202. data/lib/lithic/models/auth_rules/v2_retrieve_response.rb +0 -284
  203. data/lib/lithic/models/auth_rules/v2_update_response.rb +0 -280
  204. data/lib/lithic/models/cards/balance_list_response.rb +0 -115
  205. data/lib/lithic/models/external_bank_account_retry_prenote_response.rb +0 -242
  206. data/lib/lithic/models/financial_accounts/balance_list_response.rb +0 -115
  207. data/lib/lithic/models/funding_event_list_response.rb +0 -108
  208. data/lib/lithic/models/reports/settlement/network_total_list_response.rb +0 -176
  209. data/lib/lithic/models/reports/settlement/network_total_retrieve_response.rb +0 -176
  210. data/lib/lithic/models/three_ds/authentication_retrieve_response.rb +0 -1288
  211. data/lib/lithic/models/tokenization_simulate_response.rb +0 -16
  212. data/lib/lithic/models/tokenization_update_digital_card_art_response.rb +0 -16
  213. data/rbi/lithic/models/auth_rules/v2_create_response.rbi +0 -522
  214. data/rbi/lithic/models/auth_rules/v2_draft_response.rbi +0 -522
  215. data/rbi/lithic/models/auth_rules/v2_list_response.rbi +0 -518
  216. data/rbi/lithic/models/auth_rules/v2_promote_response.rbi +0 -525
  217. data/rbi/lithic/models/auth_rules/v2_retrieve_response.rbi +0 -528
  218. data/rbi/lithic/models/auth_rules/v2_update_response.rbi +0 -522
  219. data/rbi/lithic/models/cards/balance_list_response.rbi +0 -170
  220. data/rbi/lithic/models/external_bank_account_retry_prenote_response.rbi +0 -375
  221. data/rbi/lithic/models/financial_accounts/balance_list_response.rbi +0 -174
  222. data/rbi/lithic/models/funding_event_retrieve_response.rbi +0 -184
  223. data/rbi/lithic/models/reports/settlement/network_total_list_response.rbi +0 -280
  224. data/rbi/lithic/models/reports/settlement/network_total_retrieve_response.rbi +0 -280
  225. data/rbi/lithic/models/three_ds/authentication_retrieve_response.rbi +0 -2580
  226. data/rbi/lithic/models/tokenization_simulate_response.rbi +0 -33
  227. data/rbi/lithic/models/tokenization_update_digital_card_art_response.rbi +0 -31
  228. data/sig/lithic/models/auth_rules/v2_create_response.rbs +0 -205
  229. data/sig/lithic/models/auth_rules/v2_draft_response.rbs +0 -205
  230. data/sig/lithic/models/auth_rules/v2_list_response.rbs +0 -205
  231. data/sig/lithic/models/auth_rules/v2_promote_response.rbs +0 -205
  232. data/sig/lithic/models/auth_rules/v2_retrieve_response.rbs +0 -205
  233. data/sig/lithic/models/auth_rules/v2_update_response.rbs +0 -205
  234. data/sig/lithic/models/cards/balance_list_response.rbs +0 -80
  235. data/sig/lithic/models/external_bank_account_retry_prenote_response.rbs +0 -162
  236. data/sig/lithic/models/financial_accounts/balance_list_response.rbs +0 -80
  237. data/sig/lithic/models/funding_event_retrieve_response.rbs +0 -85
  238. data/sig/lithic/models/reports/settlement/network_total_list_response.rbs +0 -129
  239. data/sig/lithic/models/reports/settlement/network_total_retrieve_response.rbs +0 -129
  240. data/sig/lithic/models/three_ds/authentication_retrieve_response.rbs +0 -913
  241. data/sig/lithic/models/tokenization_simulate_response.rbs +0 -18
  242. data/sig/lithic/models/tokenization_update_digital_card_art_response.rbs +0 -16
@@ -0,0 +1,1259 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Lithic
4
+ module Models
5
+ class ThreeDSAuthentication < Lithic::Internal::Type::BaseModel
6
+ # @!attribute token
7
+ # Globally unique identifier for the 3DS authentication. Permitted values:
8
+ # 36-digit version 4 UUID (including hyphens).
9
+ #
10
+ # @return [String]
11
+ required :token, String
12
+
13
+ # @!attribute account_type
14
+ # Type of account/card that is being used for the transaction. Maps to EMV 3DS
15
+ # field `acctType`.
16
+ #
17
+ # @return [Symbol, Lithic::Models::ThreeDSAuthentication::AccountType, nil]
18
+ required :account_type, enum: -> { Lithic::ThreeDSAuthentication::AccountType }, nil?: true
19
+
20
+ # @!attribute authentication_result
21
+ # Indicates the outcome of the 3DS authentication process.
22
+ #
23
+ # @return [Symbol, Lithic::Models::ThreeDSAuthentication::AuthenticationResult]
24
+ required :authentication_result, enum: -> { Lithic::ThreeDSAuthentication::AuthenticationResult }
25
+
26
+ # @!attribute card_expiry_check
27
+ # Indicates whether the expiration date provided by the cardholder during checkout
28
+ # matches Lithic's record of the card's expiration date.
29
+ #
30
+ # @return [Symbol, Lithic::Models::ThreeDSAuthentication::CardExpiryCheck]
31
+ required :card_expiry_check, enum: -> { Lithic::ThreeDSAuthentication::CardExpiryCheck }
32
+
33
+ # @!attribute card_token
34
+ # Globally unique identifier for the card on which the 3DS authentication has
35
+ # occurred. Permitted values: 36-digit version 4 UUID (including hyphens).
36
+ #
37
+ # @return [String]
38
+ required :card_token, String
39
+
40
+ # @!attribute cardholder
41
+ # Object containing data about the cardholder provided during the transaction.
42
+ #
43
+ # @return [Lithic::Models::ThreeDSAuthentication::Cardholder]
44
+ required :cardholder, -> { Lithic::ThreeDSAuthentication::Cardholder }
45
+
46
+ # @!attribute channel
47
+ # Channel in which the authentication occurs. Maps to EMV 3DS field
48
+ # `deviceChannel`.
49
+ #
50
+ # @return [Symbol, Lithic::Models::ThreeDSAuthentication::Channel]
51
+ required :channel, enum: -> { Lithic::ThreeDSAuthentication::Channel }
52
+
53
+ # @!attribute created
54
+ # Date and time when the authentication was created in Lithic's system. Permitted
55
+ # values: Date string in the ISO 8601 format yyyy-MM-dd'T'hh:mm:ssZ.
56
+ #
57
+ # @return [Time]
58
+ required :created, Time
59
+
60
+ # @!attribute merchant
61
+ # Object containing data about the merchant involved in the e-commerce
62
+ # transaction.
63
+ #
64
+ # @return [Lithic::Models::ThreeDSAuthentication::Merchant]
65
+ required :merchant, -> { Lithic::ThreeDSAuthentication::Merchant }
66
+
67
+ # @!attribute message_category
68
+ # Either PAYMENT_AUTHENTICATION or NON_PAYMENT_AUTHENTICATION. For
69
+ # NON_PAYMENT_AUTHENTICATION, additional_data and transaction fields are not
70
+ # populated.
71
+ #
72
+ # @return [Symbol, Lithic::Models::ThreeDSAuthentication::MessageCategory]
73
+ required :message_category, enum: -> { Lithic::ThreeDSAuthentication::MessageCategory }
74
+
75
+ # @!attribute three_ds_requestor_challenge_indicator
76
+ # Indicates whether a challenge is requested for this transaction
77
+ #
78
+ # - `NO_PREFERENCE` - No Preference
79
+ # - `NO_CHALLENGE_REQUESTED` - No Challenge Requested
80
+ # - `CHALLENGE_PREFERENCE` - Challenge requested (3DS Requestor preference)
81
+ # - `CHALLENGE_MANDATE` - Challenge requested (Mandate)
82
+ # - `NO_CHALLENGE_RISK_ALREADY_ASSESSED` - No Challenge requested (Transactional
83
+ # risk analysis is already performed)
84
+ # - `DATA_SHARE_ONLY` - No Challenge requested (Data Share Only)
85
+ # - `OTHER` - Other indicators not captured by above. These are rarely used
86
+ #
87
+ # @return [Symbol, Lithic::Models::ThreeDSAuthentication::ThreeDSRequestorChallengeIndicator]
88
+ required :three_ds_requestor_challenge_indicator,
89
+ enum: -> { Lithic::ThreeDSAuthentication::ThreeDSRequestorChallengeIndicator }
90
+
91
+ # @!attribute additional_data
92
+ # Object containing additional data about the 3DS request that is beyond the EMV
93
+ # 3DS standard spec (e.g., specific fields that only certain card networks send
94
+ # but are not required across all 3DS requests).
95
+ #
96
+ # @return [Lithic::Models::ThreeDSAuthentication::AdditionalData, nil]
97
+ optional :additional_data, -> { Lithic::ThreeDSAuthentication::AdditionalData }, nil?: true
98
+
99
+ # @!attribute app
100
+ # Object containing data about the app used in the e-commerce transaction. Present
101
+ # if the channel is 'APP_BASED'.
102
+ #
103
+ # @return [Lithic::Models::ThreeDSAuthentication::App, nil]
104
+ optional :app, -> { Lithic::ThreeDSAuthentication::App }, nil?: true
105
+
106
+ # @!attribute authentication_request_type
107
+ # Type of authentication request - i.e., the type of transaction or interaction is
108
+ # causing the merchant to request an authentication. Maps to EMV 3DS field
109
+ # `threeDSRequestorAuthenticationInd`.
110
+ #
111
+ # @return [Symbol, Lithic::Models::ThreeDSAuthentication::AuthenticationRequestType, nil]
112
+ optional :authentication_request_type,
113
+ enum: -> { Lithic::ThreeDSAuthentication::AuthenticationRequestType },
114
+ nil?: true
115
+
116
+ # @!attribute browser
117
+ # Object containing data about the browser used in the e-commerce transaction.
118
+ # Present if the channel is 'BROWSER'.
119
+ #
120
+ # @return [Lithic::Models::ThreeDSAuthentication::Browser, nil]
121
+ optional :browser, -> { Lithic::ThreeDSAuthentication::Browser }, nil?: true
122
+
123
+ # @!attribute challenge_metadata
124
+ # Metadata about the challenge method and delivery. Only present when a challenge
125
+ # is triggered.
126
+ #
127
+ # @return [Lithic::Models::ThreeDSAuthentication::ChallengeMetadata, nil]
128
+ optional :challenge_metadata, -> { Lithic::ThreeDSAuthentication::ChallengeMetadata }, nil?: true
129
+
130
+ # @!attribute challenge_orchestrated_by
131
+ # Entity that orchestrates the challenge. This won't be set for authentications
132
+ # for which a decision has not yet been made (e.g. in-flight customer decisioning
133
+ # request).
134
+ #
135
+ # @return [Symbol, Lithic::Models::ThreeDSAuthentication::ChallengeOrchestratedBy, nil]
136
+ optional :challenge_orchestrated_by,
137
+ enum: -> { Lithic::ThreeDSAuthentication::ChallengeOrchestratedBy },
138
+ nil?: true
139
+
140
+ # @!attribute decision_made_by
141
+ # Entity that made the authentication decision. This won't be set for
142
+ # authentications for which a decision has not yet been made (e.g. in-flight
143
+ # customer decisioning request).
144
+ #
145
+ # @return [Symbol, Lithic::Models::ThreeDSAuthentication::DecisionMadeBy, nil]
146
+ optional :decision_made_by, enum: -> { Lithic::ThreeDSAuthentication::DecisionMadeBy }, nil?: true
147
+
148
+ # @!attribute three_ri_request_type
149
+ # Type of 3DS Requestor Initiated (3RI) request — i.e., a 3DS authentication that
150
+ # takes place at the initiation of the merchant rather than the cardholder. The
151
+ # most common example of this is where a merchant is authenticating before billing
152
+ # for a recurring transaction such as a pay TV subscription or a utility bill.
153
+ # Maps to EMV 3DS field `threeRIInd`.
154
+ #
155
+ # @return [Symbol, Lithic::Models::ThreeDSAuthentication::ThreeRiRequestType, nil]
156
+ optional :three_ri_request_type,
157
+ enum: -> { Lithic::ThreeDSAuthentication::ThreeRiRequestType },
158
+ nil?: true
159
+
160
+ # @!attribute transaction
161
+ # Object containing data about the e-commerce transaction for which the merchant
162
+ # is requesting authentication.
163
+ #
164
+ # @return [Lithic::Models::ThreeDSAuthentication::Transaction, nil]
165
+ optional :transaction, -> { Lithic::ThreeDSAuthentication::Transaction }, nil?: true
166
+
167
+ # @!method initialize(token:, account_type:, authentication_result:, card_expiry_check:, card_token:, cardholder:, channel:, created:, merchant:, message_category:, three_ds_requestor_challenge_indicator:, additional_data: nil, app: nil, authentication_request_type: nil, browser: nil, challenge_metadata: nil, challenge_orchestrated_by: nil, decision_made_by: nil, three_ri_request_type: nil, transaction: nil)
168
+ # Some parameter documentations has been truncated, see
169
+ # {Lithic::Models::ThreeDSAuthentication} for more details.
170
+ #
171
+ # Represents a 3DS authentication
172
+ #
173
+ # @param token [String] Globally unique identifier for the 3DS authentication. Permitted values: 36-digi
174
+ #
175
+ # @param account_type [Symbol, Lithic::Models::ThreeDSAuthentication::AccountType, nil] Type of account/card that is being used for the transaction. Maps to EMV 3DS fie
176
+ #
177
+ # @param authentication_result [Symbol, Lithic::Models::ThreeDSAuthentication::AuthenticationResult] Indicates the outcome of the 3DS authentication process.
178
+ #
179
+ # @param card_expiry_check [Symbol, Lithic::Models::ThreeDSAuthentication::CardExpiryCheck] Indicates whether the expiration date provided by the cardholder during checkout
180
+ #
181
+ # @param card_token [String] Globally unique identifier for the card on which the 3DS authentication has occu
182
+ #
183
+ # @param cardholder [Lithic::Models::ThreeDSAuthentication::Cardholder] Object containing data about the cardholder provided during the transaction.
184
+ #
185
+ # @param channel [Symbol, Lithic::Models::ThreeDSAuthentication::Channel] Channel in which the authentication occurs. Maps to EMV 3DS field `deviceChannel
186
+ #
187
+ # @param created [Time] Date and time when the authentication was created in Lithic's system. Permitted
188
+ #
189
+ # @param merchant [Lithic::Models::ThreeDSAuthentication::Merchant] Object containing data about the merchant involved in the e-commerce transaction
190
+ #
191
+ # @param message_category [Symbol, Lithic::Models::ThreeDSAuthentication::MessageCategory] Either PAYMENT_AUTHENTICATION or NON_PAYMENT_AUTHENTICATION. For NON_PAYMENT_AUT
192
+ #
193
+ # @param three_ds_requestor_challenge_indicator [Symbol, Lithic::Models::ThreeDSAuthentication::ThreeDSRequestorChallengeIndicator] Indicates whether a challenge is requested for this transaction
194
+ #
195
+ # @param additional_data [Lithic::Models::ThreeDSAuthentication::AdditionalData, nil] Object containing additional data about the 3DS request that is beyond the EMV 3
196
+ #
197
+ # @param app [Lithic::Models::ThreeDSAuthentication::App, nil] Object containing data about the app used in the e-commerce transaction. Present
198
+ #
199
+ # @param authentication_request_type [Symbol, Lithic::Models::ThreeDSAuthentication::AuthenticationRequestType, nil] Type of authentication request - i.e., the type of transaction or interaction is
200
+ #
201
+ # @param browser [Lithic::Models::ThreeDSAuthentication::Browser, nil] Object containing data about the browser used in the e-commerce transaction. Pre
202
+ #
203
+ # @param challenge_metadata [Lithic::Models::ThreeDSAuthentication::ChallengeMetadata, nil] Metadata about the challenge method and delivery. Only present when a challenge
204
+ #
205
+ # @param challenge_orchestrated_by [Symbol, Lithic::Models::ThreeDSAuthentication::ChallengeOrchestratedBy, nil] Entity that orchestrates the challenge. This won't be set for authentications fo
206
+ #
207
+ # @param decision_made_by [Symbol, Lithic::Models::ThreeDSAuthentication::DecisionMadeBy, nil] Entity that made the authentication decision. This won't be set for authenticati
208
+ #
209
+ # @param three_ri_request_type [Symbol, Lithic::Models::ThreeDSAuthentication::ThreeRiRequestType, nil] Type of 3DS Requestor Initiated (3RI) request — i.e., a 3DS authentication that
210
+ #
211
+ # @param transaction [Lithic::Models::ThreeDSAuthentication::Transaction, nil] Object containing data about the e-commerce transaction for which the merchant i
212
+
213
+ # Type of account/card that is being used for the transaction. Maps to EMV 3DS
214
+ # field `acctType`.
215
+ #
216
+ # @see Lithic::Models::ThreeDSAuthentication#account_type
217
+ module AccountType
218
+ extend Lithic::Internal::Type::Enum
219
+
220
+ CREDIT = :CREDIT
221
+ DEBIT = :DEBIT
222
+ NOT_APPLICABLE = :NOT_APPLICABLE
223
+
224
+ # @!method self.values
225
+ # @return [Array<Symbol>]
226
+ end
227
+
228
+ # Indicates the outcome of the 3DS authentication process.
229
+ #
230
+ # @see Lithic::Models::ThreeDSAuthentication#authentication_result
231
+ module AuthenticationResult
232
+ extend Lithic::Internal::Type::Enum
233
+
234
+ DECLINE = :DECLINE
235
+ SUCCESS = :SUCCESS
236
+ PENDING_CHALLENGE = :PENDING_CHALLENGE
237
+ PENDING_DECISION = :PENDING_DECISION
238
+
239
+ # @!method self.values
240
+ # @return [Array<Symbol>]
241
+ end
242
+
243
+ # Indicates whether the expiration date provided by the cardholder during checkout
244
+ # matches Lithic's record of the card's expiration date.
245
+ #
246
+ # @see Lithic::Models::ThreeDSAuthentication#card_expiry_check
247
+ module CardExpiryCheck
248
+ extend Lithic::Internal::Type::Enum
249
+
250
+ MATCH = :MATCH
251
+ MISMATCH = :MISMATCH
252
+ NOT_PRESENT = :NOT_PRESENT
253
+
254
+ # @!method self.values
255
+ # @return [Array<Symbol>]
256
+ end
257
+
258
+ # @see Lithic::Models::ThreeDSAuthentication#cardholder
259
+ class Cardholder < Lithic::Internal::Type::BaseModel
260
+ # @!attribute address_match
261
+ # Indicates whether the shipping address and billing address provided by the
262
+ # cardholder are the same. This value - and assessment of whether the addresses
263
+ # match - is provided directly in the 3DS request and is not determined by Lithic.
264
+ # Maps to EMV 3DS field `addrMatch`.
265
+ #
266
+ # @return [Boolean, nil]
267
+ optional :address_match, Lithic::Internal::Type::Boolean, nil?: true
268
+
269
+ # @!attribute address_on_file_match
270
+ # Lithic's evaluation result comparing the transaction's address data with the
271
+ # cardholder KYC data if it exists. In the event Lithic does not have any
272
+ # Cardholder KYC data, or the transaction does not contain any address data,
273
+ # NOT_PRESENT will be returned
274
+ #
275
+ # @return [Symbol, Lithic::Models::ThreeDSAuthentication::Cardholder::AddressOnFileMatch, nil]
276
+ optional :address_on_file_match,
277
+ enum: -> { Lithic::ThreeDSAuthentication::Cardholder::AddressOnFileMatch }
278
+
279
+ # @!attribute billing_address
280
+ # Object containing data on the billing address provided during the transaction.
281
+ #
282
+ # @return [Lithic::Models::ThreeDSAuthentication::Cardholder::BillingAddress, nil]
283
+ optional :billing_address, -> { Lithic::ThreeDSAuthentication::Cardholder::BillingAddress }
284
+
285
+ # @!attribute email
286
+ # Email address that is either provided by the cardholder or is on file with the
287
+ # merchant in a 3RI request. Maps to EMV 3DS field `email`.
288
+ #
289
+ # @return [String, nil]
290
+ optional :email, String, nil?: true
291
+
292
+ # @!attribute name
293
+ # Name of the cardholder. Maps to EMV 3DS field `cardholderName`.
294
+ #
295
+ # @return [String, nil]
296
+ optional :name, String, nil?: true
297
+
298
+ # @!attribute phone_number_home
299
+ # Home phone number in E.164 format provided by the cardholder. Maps to EMV 3DS
300
+ # fields `homePhone.cc` and `homePhone.subscriber`.
301
+ #
302
+ # @return [String, nil]
303
+ optional :phone_number_home, String, nil?: true
304
+
305
+ # @!attribute phone_number_mobile
306
+ # Mobile/cell phone number in E.164 format provided by the cardholder. Maps to EMV
307
+ # 3DS fields `mobilePhone.cc` and `mobilePhone.subscriber`.
308
+ #
309
+ # @return [String, nil]
310
+ optional :phone_number_mobile, String, nil?: true
311
+
312
+ # @!attribute phone_number_work
313
+ # Work phone number in E.164 format provided by the cardholder. Maps to EMV 3DS
314
+ # fields `workPhone.cc` and `workPhone.subscriber`.
315
+ #
316
+ # @return [String, nil]
317
+ optional :phone_number_work, String, nil?: true
318
+
319
+ # @!attribute shipping_address
320
+ # Object containing data on the shipping address provided during the transaction.
321
+ #
322
+ # @return [Lithic::Models::ThreeDSAuthentication::Cardholder::ShippingAddress, nil]
323
+ optional :shipping_address, -> { Lithic::ThreeDSAuthentication::Cardholder::ShippingAddress }
324
+
325
+ # @!method initialize(address_match: nil, address_on_file_match: nil, billing_address: nil, email: nil, name: nil, phone_number_home: nil, phone_number_mobile: nil, phone_number_work: nil, shipping_address: nil)
326
+ # Some parameter documentations has been truncated, see
327
+ # {Lithic::Models::ThreeDSAuthentication::Cardholder} for more details.
328
+ #
329
+ # Object containing data about the cardholder provided during the transaction.
330
+ #
331
+ # @param address_match [Boolean, nil] Indicates whether the shipping address and billing address provided by the cardh
332
+ #
333
+ # @param address_on_file_match [Symbol, Lithic::Models::ThreeDSAuthentication::Cardholder::AddressOnFileMatch] Lithic's evaluation result comparing the transaction's address data with the car
334
+ #
335
+ # @param billing_address [Lithic::Models::ThreeDSAuthentication::Cardholder::BillingAddress] Object containing data on the billing address provided during the transaction.
336
+ #
337
+ # @param email [String, nil] Email address that is either provided by the cardholder or is on file with the m
338
+ #
339
+ # @param name [String, nil] Name of the cardholder. Maps to EMV 3DS field `cardholderName`.
340
+ #
341
+ # @param phone_number_home [String, nil] Home phone number in E.164 format provided by the cardholder. Maps to EMV 3DS fi
342
+ #
343
+ # @param phone_number_mobile [String, nil] Mobile/cell phone number in E.164 format provided by the cardholder. Maps to EMV
344
+ #
345
+ # @param phone_number_work [String, nil] Work phone number in E.164 format provided by the cardholder. Maps to EMV 3DS fi
346
+ #
347
+ # @param shipping_address [Lithic::Models::ThreeDSAuthentication::Cardholder::ShippingAddress] Object containing data on the shipping address provided during the transaction.
348
+
349
+ # Lithic's evaluation result comparing the transaction's address data with the
350
+ # cardholder KYC data if it exists. In the event Lithic does not have any
351
+ # Cardholder KYC data, or the transaction does not contain any address data,
352
+ # NOT_PRESENT will be returned
353
+ #
354
+ # @see Lithic::Models::ThreeDSAuthentication::Cardholder#address_on_file_match
355
+ module AddressOnFileMatch
356
+ extend Lithic::Internal::Type::Enum
357
+
358
+ MATCH = :MATCH
359
+ MATCH_ADDRESS_ONLY = :MATCH_ADDRESS_ONLY
360
+ MATCH_ZIP_ONLY = :MATCH_ZIP_ONLY
361
+ MISMATCH = :MISMATCH
362
+ NOT_PRESENT = :NOT_PRESENT
363
+
364
+ # @!method self.values
365
+ # @return [Array<Symbol>]
366
+ end
367
+
368
+ # @see Lithic::Models::ThreeDSAuthentication::Cardholder#billing_address
369
+ class BillingAddress < Lithic::Internal::Type::BaseModel
370
+ # @!attribute address1
371
+ # First line of the street address provided by the cardholder.
372
+ #
373
+ # @return [String, nil]
374
+ optional :address1, String, nil?: true
375
+
376
+ # @!attribute address2
377
+ # Second line of the street address provided by the cardholder.
378
+ #
379
+ # @return [String, nil]
380
+ optional :address2, String, nil?: true
381
+
382
+ # @!attribute address3
383
+ # Third line of the street address provided by the cardholder.
384
+ #
385
+ # @return [String, nil]
386
+ optional :address3, String, nil?: true
387
+
388
+ # @!attribute city
389
+ # City of the address provided by the cardholder.
390
+ #
391
+ # @return [String, nil]
392
+ optional :city, String, nil?: true
393
+
394
+ # @!attribute country
395
+ # Country of the address provided by the cardholder in ISO 3166-1 alpha-3 format
396
+ # (e.g. USA)
397
+ #
398
+ # @return [String, nil]
399
+ optional :country, String, nil?: true
400
+
401
+ # @!attribute postal_code
402
+ # Postal code (e.g., ZIP code) of the address provided by the cardholder
403
+ #
404
+ # @return [String, nil]
405
+ optional :postal_code, String, nil?: true
406
+
407
+ # @!method initialize(address1: nil, address2: nil, address3: nil, city: nil, country: nil, postal_code: nil)
408
+ # Some parameter documentations has been truncated, see
409
+ # {Lithic::Models::ThreeDSAuthentication::Cardholder::BillingAddress} for more
410
+ # details.
411
+ #
412
+ # Object containing data on the billing address provided during the transaction.
413
+ #
414
+ # @param address1 [String, nil] First line of the street address provided by the cardholder.
415
+ #
416
+ # @param address2 [String, nil] Second line of the street address provided by the cardholder.
417
+ #
418
+ # @param address3 [String, nil] Third line of the street address provided by the cardholder.
419
+ #
420
+ # @param city [String, nil] City of the address provided by the cardholder.
421
+ #
422
+ # @param country [String, nil] Country of the address provided by the cardholder in ISO 3166-1 alpha-3 format (
423
+ #
424
+ # @param postal_code [String, nil] Postal code (e.g., ZIP code) of the address provided by the cardholder
425
+ end
426
+
427
+ # @see Lithic::Models::ThreeDSAuthentication::Cardholder#shipping_address
428
+ class ShippingAddress < Lithic::Internal::Type::BaseModel
429
+ # @!attribute address1
430
+ # First line of the street address provided by the cardholder.
431
+ #
432
+ # @return [String, nil]
433
+ optional :address1, String, nil?: true
434
+
435
+ # @!attribute address2
436
+ # Second line of the street address provided by the cardholder.
437
+ #
438
+ # @return [String, nil]
439
+ optional :address2, String, nil?: true
440
+
441
+ # @!attribute address3
442
+ # Third line of the street address provided by the cardholder.
443
+ #
444
+ # @return [String, nil]
445
+ optional :address3, String, nil?: true
446
+
447
+ # @!attribute city
448
+ # City of the address provided by the cardholder.
449
+ #
450
+ # @return [String, nil]
451
+ optional :city, String, nil?: true
452
+
453
+ # @!attribute country
454
+ # Country of the address provided by the cardholder in ISO 3166-1 alpha-3 format
455
+ # (e.g. USA)
456
+ #
457
+ # @return [String, nil]
458
+ optional :country, String, nil?: true
459
+
460
+ # @!attribute postal_code
461
+ # Postal code (e.g., ZIP code) of the address provided by the cardholder
462
+ #
463
+ # @return [String, nil]
464
+ optional :postal_code, String, nil?: true
465
+
466
+ # @!method initialize(address1: nil, address2: nil, address3: nil, city: nil, country: nil, postal_code: nil)
467
+ # Some parameter documentations has been truncated, see
468
+ # {Lithic::Models::ThreeDSAuthentication::Cardholder::ShippingAddress} for more
469
+ # details.
470
+ #
471
+ # Object containing data on the shipping address provided during the transaction.
472
+ #
473
+ # @param address1 [String, nil] First line of the street address provided by the cardholder.
474
+ #
475
+ # @param address2 [String, nil] Second line of the street address provided by the cardholder.
476
+ #
477
+ # @param address3 [String, nil] Third line of the street address provided by the cardholder.
478
+ #
479
+ # @param city [String, nil] City of the address provided by the cardholder.
480
+ #
481
+ # @param country [String, nil] Country of the address provided by the cardholder in ISO 3166-1 alpha-3 format (
482
+ #
483
+ # @param postal_code [String, nil] Postal code (e.g., ZIP code) of the address provided by the cardholder
484
+ end
485
+ end
486
+
487
+ # Channel in which the authentication occurs. Maps to EMV 3DS field
488
+ # `deviceChannel`.
489
+ #
490
+ # @see Lithic::Models::ThreeDSAuthentication#channel
491
+ module Channel
492
+ extend Lithic::Internal::Type::Enum
493
+
494
+ APP_BASED = :APP_BASED
495
+ BROWSER = :BROWSER
496
+ THREE_DS_REQUESTOR_INITIATED = :THREE_DS_REQUESTOR_INITIATED
497
+
498
+ # @!method self.values
499
+ # @return [Array<Symbol>]
500
+ end
501
+
502
+ # @see Lithic::Models::ThreeDSAuthentication#merchant
503
+ class Merchant < Lithic::Internal::Type::BaseModel
504
+ # @!attribute risk_indicator
505
+ # Object containing additional data indicating additional risk factors related to
506
+ # the e-commerce transaction.
507
+ #
508
+ # @return [Lithic::Models::ThreeDSAuthentication::Merchant::RiskIndicator]
509
+ required :risk_indicator, -> { Lithic::ThreeDSAuthentication::Merchant::RiskIndicator }
510
+
511
+ # @!attribute id
512
+ # Merchant identifier as assigned by the acquirer. Maps to EMV 3DS field
513
+ # `acquirerMerchantId`. May not be present for non-payment authentications.
514
+ #
515
+ # @return [String, nil]
516
+ optional :id, String, nil?: true
517
+
518
+ # @!attribute country
519
+ # Country code of the merchant requesting 3DS authentication. Maps to EMV 3DS
520
+ # field `merchantCountryCode`. Permitted values: ISO 3166-1 alpha-3 country code
521
+ # (e.g., USA). May not be present for non-payment authentications.
522
+ #
523
+ # @return [String, nil]
524
+ optional :country, String, nil?: true
525
+
526
+ # @!attribute mcc
527
+ # Merchant category code assigned to the merchant that describes its business
528
+ # activity type. Maps to EMV 3DS field `mcc`. May not be present for non-payment
529
+ # authentications.
530
+ #
531
+ # @return [String, nil]
532
+ optional :mcc, String, nil?: true
533
+
534
+ # @!attribute name
535
+ # Name of the merchant. Maps to EMV 3DS field `merchantName`. May not be present
536
+ # for non-payment authentications.
537
+ #
538
+ # @return [String, nil]
539
+ optional :name, String, nil?: true
540
+
541
+ # @!method initialize(risk_indicator:, id: nil, country: nil, mcc: nil, name: nil)
542
+ # Some parameter documentations has been truncated, see
543
+ # {Lithic::Models::ThreeDSAuthentication::Merchant} for more details.
544
+ #
545
+ # Object containing data about the merchant involved in the e-commerce
546
+ # transaction.
547
+ #
548
+ # @param risk_indicator [Lithic::Models::ThreeDSAuthentication::Merchant::RiskIndicator] Object containing additional data indicating additional risk factors related to
549
+ #
550
+ # @param id [String, nil] Merchant identifier as assigned by the acquirer. Maps to EMV 3DS field `acquirer
551
+ #
552
+ # @param country [String, nil] Country code of the merchant requesting 3DS authentication. Maps to EMV 3DS fiel
553
+ #
554
+ # @param mcc [String, nil] Merchant category code assigned to the merchant that describes its business acti
555
+ #
556
+ # @param name [String, nil] Name of the merchant. Maps to EMV 3DS field `merchantName`. May not be present f
557
+
558
+ # @see Lithic::Models::ThreeDSAuthentication::Merchant#risk_indicator
559
+ class RiskIndicator < Lithic::Internal::Type::BaseModel
560
+ # @!attribute delivery_email_address
561
+ # In transactions with electronic delivery, email address to which merchandise is
562
+ # delivered. Maps to EMV 3DS field `deliveryEmailAddress`.
563
+ #
564
+ # @return [String, nil]
565
+ optional :delivery_email_address, String, nil?: true
566
+
567
+ # @!attribute delivery_time_frame
568
+ # The delivery time frame for the merchandise. Maps to EMV 3DS field
569
+ # `deliveryTimeframe`.
570
+ #
571
+ # @return [Symbol, Lithic::Models::ThreeDSAuthentication::Merchant::RiskIndicator::DeliveryTimeFrame, nil]
572
+ optional :delivery_time_frame,
573
+ enum: -> { Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::DeliveryTimeFrame },
574
+ nil?: true
575
+
576
+ # @!attribute gift_card_amount
577
+ # In prepaid or gift card purchase transactions, purchase amount total in major
578
+ # units (e.g., a purchase of USD $205.10 would be 205). Maps to EMV 3DS field
579
+ # `giftCardAmount`.
580
+ #
581
+ # @return [Integer, nil]
582
+ optional :gift_card_amount, Integer, nil?: true
583
+
584
+ # @!attribute gift_card_count
585
+ # In prepaid or gift card purchase transactions, count of individual prepaid or
586
+ # gift cards/codes purchased. Maps to EMV 3DS field `giftCardCount`.
587
+ #
588
+ # @return [Integer, nil]
589
+ optional :gift_card_count, Integer, nil?: true
590
+
591
+ # @!attribute gift_card_currency
592
+ # In prepaid or gift card purchase transactions, currency code of the gift card.
593
+ # Maps to EMV 3DS field `giftCardCurr`. Permitted values: ISO 4217 three-character
594
+ # currency code (e.g., USD).
595
+ #
596
+ # @return [String, nil]
597
+ optional :gift_card_currency, String, nil?: true
598
+
599
+ # @!attribute order_availability
600
+ # Indicates whether the purchase is for merchandise that is available now or at a
601
+ # future date. Maps to EMV 3DS field `preOrderPurchaseInd`.
602
+ #
603
+ # @return [Symbol, Lithic::Models::ThreeDSAuthentication::Merchant::RiskIndicator::OrderAvailability, nil]
604
+ optional :order_availability,
605
+ enum: -> { Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::OrderAvailability },
606
+ nil?: true
607
+
608
+ # @!attribute pre_order_available_date
609
+ # In pre-order purchase transactions, the expected date that the merchandise will
610
+ # be available. Maps to EMV 3DS field `preOrderDate`. Permitted values: Date
611
+ # string in the ISO 8601 format yyyy-MM-dd'T'hh:mm:ssZ
612
+ #
613
+ # @return [Time, nil]
614
+ optional :pre_order_available_date, Time, nil?: true
615
+
616
+ # @!attribute reorder_items
617
+ # Indicates whether the cardholder is reordering previously purchased merchandise.
618
+ # Maps to EMV 3DS field `reorderItemsInd`.
619
+ #
620
+ # @return [Symbol, Lithic::Models::ThreeDSAuthentication::Merchant::RiskIndicator::ReorderItems, nil]
621
+ optional :reorder_items,
622
+ enum: -> { Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::ReorderItems },
623
+ nil?: true
624
+
625
+ # @!attribute shipping_method
626
+ # Shipping method that the cardholder chose for the transaction. If purchase
627
+ # includes one or more item, this indicator is used for the physical goods; if the
628
+ # purchase only includes digital goods, this indicator is used to describe the
629
+ # most expensive item purchased. Maps to EMV 3DS field `shipIndicator`.
630
+ #
631
+ # @return [Symbol, Lithic::Models::ThreeDSAuthentication::Merchant::RiskIndicator::ShippingMethod, nil]
632
+ optional :shipping_method,
633
+ enum: -> { Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::ShippingMethod },
634
+ nil?: true
635
+
636
+ # @!method initialize(delivery_email_address: nil, delivery_time_frame: nil, gift_card_amount: nil, gift_card_count: nil, gift_card_currency: nil, order_availability: nil, pre_order_available_date: nil, reorder_items: nil, shipping_method: nil)
637
+ # Some parameter documentations has been truncated, see
638
+ # {Lithic::Models::ThreeDSAuthentication::Merchant::RiskIndicator} for more
639
+ # details.
640
+ #
641
+ # Object containing additional data indicating additional risk factors related to
642
+ # the e-commerce transaction.
643
+ #
644
+ # @param delivery_email_address [String, nil] In transactions with electronic delivery, email address to which merchandise is
645
+ #
646
+ # @param delivery_time_frame [Symbol, Lithic::Models::ThreeDSAuthentication::Merchant::RiskIndicator::DeliveryTimeFrame, nil] The delivery time frame for the merchandise. Maps to EMV 3DS field `deliveryTime
647
+ #
648
+ # @param gift_card_amount [Integer, nil] In prepaid or gift card purchase transactions, purchase amount total in major un
649
+ #
650
+ # @param gift_card_count [Integer, nil] In prepaid or gift card purchase transactions, count of individual prepaid or gi
651
+ #
652
+ # @param gift_card_currency [String, nil] In prepaid or gift card purchase transactions, currency code of the gift card. M
653
+ #
654
+ # @param order_availability [Symbol, Lithic::Models::ThreeDSAuthentication::Merchant::RiskIndicator::OrderAvailability, nil] Indicates whether the purchase is for merchandise that is available now or at a
655
+ #
656
+ # @param pre_order_available_date [Time, nil] In pre-order purchase transactions, the expected date that the merchandise will
657
+ #
658
+ # @param reorder_items [Symbol, Lithic::Models::ThreeDSAuthentication::Merchant::RiskIndicator::ReorderItems, nil] Indicates whether the cardholder is reordering previously purchased merchandise.
659
+ #
660
+ # @param shipping_method [Symbol, Lithic::Models::ThreeDSAuthentication::Merchant::RiskIndicator::ShippingMethod, nil] Shipping method that the cardholder chose for the transaction. If purchase inclu
661
+
662
+ # The delivery time frame for the merchandise. Maps to EMV 3DS field
663
+ # `deliveryTimeframe`.
664
+ #
665
+ # @see Lithic::Models::ThreeDSAuthentication::Merchant::RiskIndicator#delivery_time_frame
666
+ module DeliveryTimeFrame
667
+ extend Lithic::Internal::Type::Enum
668
+
669
+ ELECTRONIC_DELIVERY = :ELECTRONIC_DELIVERY
670
+ OVERNIGHT_SHIPPING = :OVERNIGHT_SHIPPING
671
+ SAME_DAY_SHIPPING = :SAME_DAY_SHIPPING
672
+ TWO_DAY_OR_MORE_SHIPPING = :TWO_DAY_OR_MORE_SHIPPING
673
+
674
+ # @!method self.values
675
+ # @return [Array<Symbol>]
676
+ end
677
+
678
+ # Indicates whether the purchase is for merchandise that is available now or at a
679
+ # future date. Maps to EMV 3DS field `preOrderPurchaseInd`.
680
+ #
681
+ # @see Lithic::Models::ThreeDSAuthentication::Merchant::RiskIndicator#order_availability
682
+ module OrderAvailability
683
+ extend Lithic::Internal::Type::Enum
684
+
685
+ FUTURE_AVAILABILITY = :FUTURE_AVAILABILITY
686
+ MERCHANDISE_AVAILABLE = :MERCHANDISE_AVAILABLE
687
+
688
+ # @!method self.values
689
+ # @return [Array<Symbol>]
690
+ end
691
+
692
+ # Indicates whether the cardholder is reordering previously purchased merchandise.
693
+ # Maps to EMV 3DS field `reorderItemsInd`.
694
+ #
695
+ # @see Lithic::Models::ThreeDSAuthentication::Merchant::RiskIndicator#reorder_items
696
+ module ReorderItems
697
+ extend Lithic::Internal::Type::Enum
698
+
699
+ FIRST_TIME_ORDERED = :FIRST_TIME_ORDERED
700
+ REORDERED = :REORDERED
701
+
702
+ # @!method self.values
703
+ # @return [Array<Symbol>]
704
+ end
705
+
706
+ # Shipping method that the cardholder chose for the transaction. If purchase
707
+ # includes one or more item, this indicator is used for the physical goods; if the
708
+ # purchase only includes digital goods, this indicator is used to describe the
709
+ # most expensive item purchased. Maps to EMV 3DS field `shipIndicator`.
710
+ #
711
+ # @see Lithic::Models::ThreeDSAuthentication::Merchant::RiskIndicator#shipping_method
712
+ module ShippingMethod
713
+ extend Lithic::Internal::Type::Enum
714
+
715
+ DIGITAL_GOODS = :DIGITAL_GOODS
716
+ LOCKER_DELIVERY = :LOCKER_DELIVERY
717
+ OTHER = :OTHER
718
+ PICK_UP_AND_GO_DELIVERY = :PICK_UP_AND_GO_DELIVERY
719
+ SHIP_TO_BILLING_ADDRESS = :SHIP_TO_BILLING_ADDRESS
720
+ SHIP_TO_NON_BILLING_ADDRESS = :SHIP_TO_NON_BILLING_ADDRESS
721
+ SHIP_TO_OTHER_VERIFIED_ADDRESS = :SHIP_TO_OTHER_VERIFIED_ADDRESS
722
+ SHIP_TO_STORE = :SHIP_TO_STORE
723
+ TRAVEL_AND_EVENT_TICKETS = :TRAVEL_AND_EVENT_TICKETS
724
+
725
+ # @!method self.values
726
+ # @return [Array<Symbol>]
727
+ end
728
+ end
729
+ end
730
+
731
+ # Either PAYMENT_AUTHENTICATION or NON_PAYMENT_AUTHENTICATION. For
732
+ # NON_PAYMENT_AUTHENTICATION, additional_data and transaction fields are not
733
+ # populated.
734
+ #
735
+ # @see Lithic::Models::ThreeDSAuthentication#message_category
736
+ module MessageCategory
737
+ extend Lithic::Internal::Type::Enum
738
+
739
+ NON_PAYMENT_AUTHENTICATION = :NON_PAYMENT_AUTHENTICATION
740
+ PAYMENT_AUTHENTICATION = :PAYMENT_AUTHENTICATION
741
+
742
+ # @!method self.values
743
+ # @return [Array<Symbol>]
744
+ end
745
+
746
+ # Indicates whether a challenge is requested for this transaction
747
+ #
748
+ # - `NO_PREFERENCE` - No Preference
749
+ # - `NO_CHALLENGE_REQUESTED` - No Challenge Requested
750
+ # - `CHALLENGE_PREFERENCE` - Challenge requested (3DS Requestor preference)
751
+ # - `CHALLENGE_MANDATE` - Challenge requested (Mandate)
752
+ # - `NO_CHALLENGE_RISK_ALREADY_ASSESSED` - No Challenge requested (Transactional
753
+ # risk analysis is already performed)
754
+ # - `DATA_SHARE_ONLY` - No Challenge requested (Data Share Only)
755
+ # - `OTHER` - Other indicators not captured by above. These are rarely used
756
+ #
757
+ # @see Lithic::Models::ThreeDSAuthentication#three_ds_requestor_challenge_indicator
758
+ module ThreeDSRequestorChallengeIndicator
759
+ extend Lithic::Internal::Type::Enum
760
+
761
+ NO_PREFERENCE = :NO_PREFERENCE
762
+ NO_CHALLENGE_REQUESTED = :NO_CHALLENGE_REQUESTED
763
+ CHALLENGE_PREFERENCE = :CHALLENGE_PREFERENCE
764
+ CHALLENGE_MANDATE = :CHALLENGE_MANDATE
765
+ NO_CHALLENGE_RISK_ALREADY_ASSESSED = :NO_CHALLENGE_RISK_ALREADY_ASSESSED
766
+ DATA_SHARE_ONLY = :DATA_SHARE_ONLY
767
+ OTHER = :OTHER
768
+
769
+ # @!method self.values
770
+ # @return [Array<Symbol>]
771
+ end
772
+
773
+ # @see Lithic::Models::ThreeDSAuthentication#additional_data
774
+ class AdditionalData < Lithic::Internal::Type::BaseModel
775
+ # @!attribute network_decision
776
+ # Mastercard only: Indicates whether the network would have considered the
777
+ # authentication request to be low risk or not.
778
+ #
779
+ # @return [Symbol, Lithic::Models::ThreeDSAuthentication::AdditionalData::NetworkDecision, nil]
780
+ optional :network_decision,
781
+ enum: -> { Lithic::ThreeDSAuthentication::AdditionalData::NetworkDecision },
782
+ nil?: true
783
+
784
+ # @!attribute network_risk_score
785
+ # Mastercard only: Assessment by the network of the authentication risk level,
786
+ # with a higher value indicating a higher amount of risk. Permitted values:
787
+ # Integer between 0-950, in increments of 50.
788
+ #
789
+ # @return [Integer, nil]
790
+ optional :network_risk_score, Integer, nil?: true
791
+
792
+ # @!method initialize(network_decision: nil, network_risk_score: nil)
793
+ # Some parameter documentations has been truncated, see
794
+ # {Lithic::Models::ThreeDSAuthentication::AdditionalData} for more details.
795
+ #
796
+ # Object containing additional data about the 3DS request that is beyond the EMV
797
+ # 3DS standard spec (e.g., specific fields that only certain card networks send
798
+ # but are not required across all 3DS requests).
799
+ #
800
+ # @param network_decision [Symbol, Lithic::Models::ThreeDSAuthentication::AdditionalData::NetworkDecision, nil] Mastercard only: Indicates whether the network would have considered the authent
801
+ #
802
+ # @param network_risk_score [Integer, nil] Mastercard only: Assessment by the network of the authentication risk level, wit
803
+
804
+ # Mastercard only: Indicates whether the network would have considered the
805
+ # authentication request to be low risk or not.
806
+ #
807
+ # @see Lithic::Models::ThreeDSAuthentication::AdditionalData#network_decision
808
+ module NetworkDecision
809
+ extend Lithic::Internal::Type::Enum
810
+
811
+ LOW_RISK = :LOW_RISK
812
+ NOT_LOW_RISK = :NOT_LOW_RISK
813
+
814
+ # @!method self.values
815
+ # @return [Array<Symbol>]
816
+ end
817
+ end
818
+
819
+ # @see Lithic::Models::ThreeDSAuthentication#app
820
+ class App < Lithic::Internal::Type::BaseModel
821
+ # @!attribute device
822
+ # Device model: e.g. "Apple iPhone 16".
823
+ #
824
+ # @return [String, nil]
825
+ optional :device, String, nil?: true
826
+
827
+ # @!attribute device_info
828
+ # Raw device information - base64-encoded JSON object. Maps to EMV 3DS field
829
+ # `deviceInfo`.
830
+ #
831
+ # @return [String, nil]
832
+ optional :device_info, String, nil?: true
833
+
834
+ # @!attribute ip
835
+ # IP address of the device.
836
+ #
837
+ # @return [String, nil]
838
+ optional :ip, String
839
+
840
+ # @!attribute latitude
841
+ # Latitude coordinate of current device location.
842
+ #
843
+ # @return [Float, nil]
844
+ optional :latitude, Float, nil?: true
845
+
846
+ # @!attribute locale
847
+ # Device locale: e.g. "en-US".
848
+ #
849
+ # @return [String, nil]
850
+ optional :locale, String, nil?: true
851
+
852
+ # @!attribute longitude
853
+ # Longitude coordinate of current device location.
854
+ #
855
+ # @return [Float, nil]
856
+ optional :longitude, Float, nil?: true
857
+
858
+ # @!attribute os
859
+ # Operating System: e.g. "Android 12", "iOS 17.1".
860
+ #
861
+ # @return [String, nil]
862
+ optional :os, String, nil?: true
863
+
864
+ # @!attribute platform
865
+ # Device platform: Android, iOS, Windows, etc.
866
+ #
867
+ # @return [String, nil]
868
+ optional :platform, String, nil?: true
869
+
870
+ # @!attribute screen_height
871
+ # Screen height in pixels.
872
+ #
873
+ # @return [Integer, nil]
874
+ optional :screen_height, Integer, nil?: true
875
+
876
+ # @!attribute screen_width
877
+ # Screen width in pixels.
878
+ #
879
+ # @return [Integer, nil]
880
+ optional :screen_width, Integer, nil?: true
881
+
882
+ # @!attribute time_zone
883
+ # Time zone offset in minutes between UTC and device local time.
884
+ #
885
+ # @return [String, nil]
886
+ optional :time_zone, String, nil?: true
887
+
888
+ # @!method initialize(device: nil, device_info: nil, ip: nil, latitude: nil, locale: nil, longitude: nil, os: nil, platform: nil, screen_height: nil, screen_width: nil, time_zone: nil)
889
+ # Some parameter documentations has been truncated, see
890
+ # {Lithic::Models::ThreeDSAuthentication::App} for more details.
891
+ #
892
+ # Object containing data about the app used in the e-commerce transaction. Present
893
+ # if the channel is 'APP_BASED'.
894
+ #
895
+ # @param device [String, nil] Device model: e.g. "Apple iPhone 16".
896
+ #
897
+ # @param device_info [String, nil] Raw device information - base64-encoded JSON object. Maps to EMV 3DS field `devi
898
+ #
899
+ # @param ip [String] IP address of the device.
900
+ #
901
+ # @param latitude [Float, nil] Latitude coordinate of current device location.
902
+ #
903
+ # @param locale [String, nil] Device locale: e.g. "en-US".
904
+ #
905
+ # @param longitude [Float, nil] Longitude coordinate of current device location.
906
+ #
907
+ # @param os [String, nil] Operating System: e.g. "Android 12", "iOS 17.1".
908
+ #
909
+ # @param platform [String, nil] Device platform: Android, iOS, Windows, etc.
910
+ #
911
+ # @param screen_height [Integer, nil] Screen height in pixels.
912
+ #
913
+ # @param screen_width [Integer, nil] Screen width in pixels.
914
+ #
915
+ # @param time_zone [String, nil] Time zone offset in minutes between UTC and device local time.
916
+ end
917
+
918
+ # Type of authentication request - i.e., the type of transaction or interaction is
919
+ # causing the merchant to request an authentication. Maps to EMV 3DS field
920
+ # `threeDSRequestorAuthenticationInd`.
921
+ #
922
+ # @see Lithic::Models::ThreeDSAuthentication#authentication_request_type
923
+ module AuthenticationRequestType
924
+ extend Lithic::Internal::Type::Enum
925
+
926
+ ADD_CARD = :ADD_CARD
927
+ BILLING_AGREEMENT = :BILLING_AGREEMENT
928
+ DELAYED_SHIPMENT = :DELAYED_SHIPMENT
929
+ EMV_TOKEN_CARDHOLDER_VERIFICATION = :EMV_TOKEN_CARDHOLDER_VERIFICATION
930
+ INSTALLMENT_TRANSACTION = :INSTALLMENT_TRANSACTION
931
+ MAINTAIN_CARD = :MAINTAIN_CARD
932
+ PAYMENT_TRANSACTION = :PAYMENT_TRANSACTION
933
+ RECURRING_TRANSACTION = :RECURRING_TRANSACTION
934
+ SPLIT_PAYMENT = :SPLIT_PAYMENT
935
+ SPLIT_SHIPMENT = :SPLIT_SHIPMENT
936
+
937
+ # @!method self.values
938
+ # @return [Array<Symbol>]
939
+ end
940
+
941
+ # @see Lithic::Models::ThreeDSAuthentication#browser
942
+ class Browser < Lithic::Internal::Type::BaseModel
943
+ # @!attribute accept_header
944
+ # Content of the HTTP accept headers as sent from the cardholder's browser to the
945
+ # 3DS requestor (e.g., merchant or digital wallet).
946
+ #
947
+ # @return [String, nil]
948
+ optional :accept_header, String, nil?: true
949
+
950
+ # @!attribute ip
951
+ # IP address of the browser as returned by the HTTP headers to the 3DS requestor
952
+ # (e.g., merchant or digital wallet). Maps to EMV 3DS field `browserIP`.
953
+ #
954
+ # @return [String, nil]
955
+ optional :ip, String, nil?: true
956
+
957
+ # @!attribute java_enabled
958
+ # Indicates whether the cardholder's browser has the ability to execute Java. Maps
959
+ # to EMV 3DS field `browserJavaEnabled`.
960
+ #
961
+ # @return [Boolean, nil]
962
+ optional :java_enabled, Lithic::Internal::Type::Boolean, nil?: true
963
+
964
+ # @!attribute javascript_enabled
965
+ # Indicates whether the cardholder's browser has the ability to execute
966
+ # JavaScript. Maps to EMV 3DS field `browserJavascriptEnabled`.
967
+ #
968
+ # @return [Boolean, nil]
969
+ optional :javascript_enabled, Lithic::Internal::Type::Boolean, nil?: true
970
+
971
+ # @!attribute language
972
+ # Language of the cardholder's browser as defined in IETF BCP47. Maps to EMV 3DS
973
+ # field `browserLanguage`.
974
+ #
975
+ # @return [String, nil]
976
+ optional :language, String, nil?: true
977
+
978
+ # @!attribute time_zone
979
+ # Time zone offset in minutes between UTC and browser local time. Maps to EMV 3DS
980
+ # field `browserTz`.
981
+ #
982
+ # @return [String, nil]
983
+ optional :time_zone, String, nil?: true
984
+
985
+ # @!attribute user_agent
986
+ # Content of the HTTP user-agent header. Maps to EMV 3DS field `browserUserAgent`.
987
+ #
988
+ # @return [String, nil]
989
+ optional :user_agent, String, nil?: true
990
+
991
+ # @!method initialize(accept_header: nil, ip: nil, java_enabled: nil, javascript_enabled: nil, language: nil, time_zone: nil, user_agent: nil)
992
+ # Some parameter documentations has been truncated, see
993
+ # {Lithic::Models::ThreeDSAuthentication::Browser} for more details.
994
+ #
995
+ # Object containing data about the browser used in the e-commerce transaction.
996
+ # Present if the channel is 'BROWSER'.
997
+ #
998
+ # @param accept_header [String, nil] Content of the HTTP accept headers as sent from the cardholder's browser to the
999
+ #
1000
+ # @param ip [String, nil] IP address of the browser as returned by the HTTP headers to the 3DS requestor (
1001
+ #
1002
+ # @param java_enabled [Boolean, nil] Indicates whether the cardholder's browser has the ability to execute Java. Maps
1003
+ #
1004
+ # @param javascript_enabled [Boolean, nil] Indicates whether the cardholder's browser has the ability to execute JavaScript
1005
+ #
1006
+ # @param language [String, nil] Language of the cardholder's browser as defined in IETF BCP47. Maps to EMV 3DS f
1007
+ #
1008
+ # @param time_zone [String, nil] Time zone offset in minutes between UTC and browser local time. Maps to EMV 3DS
1009
+ #
1010
+ # @param user_agent [String, nil] Content of the HTTP user-agent header. Maps to EMV 3DS field `browserUserAgent`.
1011
+ end
1012
+
1013
+ # @see Lithic::Models::ThreeDSAuthentication#challenge_metadata
1014
+ class ChallengeMetadata < Lithic::Internal::Type::BaseModel
1015
+ # @!attribute method_type
1016
+ # The type of challenge method used for authentication.
1017
+ #
1018
+ # @return [Symbol, Lithic::Models::ThreeDSAuthentication::ChallengeMetadata::MethodType]
1019
+ required :method_type, enum: -> { Lithic::ThreeDSAuthentication::ChallengeMetadata::MethodType }
1020
+
1021
+ # @!attribute status
1022
+ # Indicates the status of the challenge
1023
+ #
1024
+ # - SUCCESS - Cardholder completed the challenge successfully
1025
+ # - PENDING - Challenge was issued to the cardholder and was not completed yet
1026
+ # - SMS_DELIVERY_FAILED - Lithic confirmed undeliverability of the SMS to the
1027
+ # provided phone number. Relevant only for SMS_OTP method
1028
+ # - CARDHOLDER_TIMEOUT - Cardholder failed to complete the challenge within the
1029
+ # given challenge TTL
1030
+ # - CANCELED_VIA_CHALLENGE_UI - Cardholder canceled the challenge by selecting
1031
+ # "cancel" on the challenge UI
1032
+ # - CANCELED_OOB - Cardholder canceled the challenge out of band
1033
+ # - ATTEMPTS_EXCEEDED - Cardholder failed the challenge by either entering an
1034
+ # incorrect OTP more than the allowed number of times or requesting a new OTP
1035
+ # more than the allowed number of times
1036
+ # - ABORTED - Merchant aborted authentication after a challenge was requested
1037
+ # - ERROR - The challenge failed for a reason different than those documented
1038
+ #
1039
+ # @return [Symbol, Lithic::Models::ThreeDSAuthentication::ChallengeMetadata::Status]
1040
+ required :status, enum: -> { Lithic::ThreeDSAuthentication::ChallengeMetadata::Status }
1041
+
1042
+ # @!attribute phone_number
1043
+ # The phone number used for delivering the OTP. Relevant only for SMS_OTP method.
1044
+ #
1045
+ # @return [String, nil]
1046
+ optional :phone_number, String, nil?: true
1047
+
1048
+ # @!method initialize(method_type:, status:, phone_number: nil)
1049
+ # Some parameter documentations has been truncated, see
1050
+ # {Lithic::Models::ThreeDSAuthentication::ChallengeMetadata} for more details.
1051
+ #
1052
+ # Metadata about the challenge method and delivery. Only present when a challenge
1053
+ # is triggered.
1054
+ #
1055
+ # @param method_type [Symbol, Lithic::Models::ThreeDSAuthentication::ChallengeMetadata::MethodType] The type of challenge method used for authentication.
1056
+ #
1057
+ # @param status [Symbol, Lithic::Models::ThreeDSAuthentication::ChallengeMetadata::Status] Indicates the status of the challenge
1058
+ #
1059
+ # @param phone_number [String, nil] The phone number used for delivering the OTP. Relevant only for SMS_OTP method.
1060
+
1061
+ # The type of challenge method used for authentication.
1062
+ #
1063
+ # @see Lithic::Models::ThreeDSAuthentication::ChallengeMetadata#method_type
1064
+ module MethodType
1065
+ extend Lithic::Internal::Type::Enum
1066
+
1067
+ SMS_OTP = :SMS_OTP
1068
+ OUT_OF_BAND = :OUT_OF_BAND
1069
+
1070
+ # @!method self.values
1071
+ # @return [Array<Symbol>]
1072
+ end
1073
+
1074
+ # Indicates the status of the challenge
1075
+ #
1076
+ # - SUCCESS - Cardholder completed the challenge successfully
1077
+ # - PENDING - Challenge was issued to the cardholder and was not completed yet
1078
+ # - SMS_DELIVERY_FAILED - Lithic confirmed undeliverability of the SMS to the
1079
+ # provided phone number. Relevant only for SMS_OTP method
1080
+ # - CARDHOLDER_TIMEOUT - Cardholder failed to complete the challenge within the
1081
+ # given challenge TTL
1082
+ # - CANCELED_VIA_CHALLENGE_UI - Cardholder canceled the challenge by selecting
1083
+ # "cancel" on the challenge UI
1084
+ # - CANCELED_OOB - Cardholder canceled the challenge out of band
1085
+ # - ATTEMPTS_EXCEEDED - Cardholder failed the challenge by either entering an
1086
+ # incorrect OTP more than the allowed number of times or requesting a new OTP
1087
+ # more than the allowed number of times
1088
+ # - ABORTED - Merchant aborted authentication after a challenge was requested
1089
+ # - ERROR - The challenge failed for a reason different than those documented
1090
+ #
1091
+ # @see Lithic::Models::ThreeDSAuthentication::ChallengeMetadata#status
1092
+ module Status
1093
+ extend Lithic::Internal::Type::Enum
1094
+
1095
+ SUCCESS = :SUCCESS
1096
+ PENDING = :PENDING
1097
+ SMS_DELIVERY_FAILED = :SMS_DELIVERY_FAILED
1098
+ CARDHOLDER_TIMEOUT = :CARDHOLDER_TIMEOUT
1099
+ CANCELED_VIA_CHALLENGE_UI = :CANCELED_VIA_CHALLENGE_UI
1100
+ CANCELED_OOB = :CANCELED_OOB
1101
+ ATTEMPTS_EXCEEDED = :ATTEMPTS_EXCEEDED
1102
+ ABORTED = :ABORTED
1103
+ ERROR = :ERROR
1104
+
1105
+ # @!method self.values
1106
+ # @return [Array<Symbol>]
1107
+ end
1108
+ end
1109
+
1110
+ # Entity that orchestrates the challenge. This won't be set for authentications
1111
+ # for which a decision has not yet been made (e.g. in-flight customer decisioning
1112
+ # request).
1113
+ #
1114
+ # @see Lithic::Models::ThreeDSAuthentication#challenge_orchestrated_by
1115
+ module ChallengeOrchestratedBy
1116
+ extend Lithic::Internal::Type::Enum
1117
+
1118
+ LITHIC = :LITHIC
1119
+ CUSTOMER = :CUSTOMER
1120
+ NO_CHALLENGE = :NO_CHALLENGE
1121
+
1122
+ # @!method self.values
1123
+ # @return [Array<Symbol>]
1124
+ end
1125
+
1126
+ # Entity that made the authentication decision. This won't be set for
1127
+ # authentications for which a decision has not yet been made (e.g. in-flight
1128
+ # customer decisioning request).
1129
+ #
1130
+ # @see Lithic::Models::ThreeDSAuthentication#decision_made_by
1131
+ module DecisionMadeBy
1132
+ extend Lithic::Internal::Type::Enum
1133
+
1134
+ LITHIC_RULES = :LITHIC_RULES
1135
+ LITHIC_DEFAULT = :LITHIC_DEFAULT
1136
+ CUSTOMER_RULES = :CUSTOMER_RULES
1137
+ CUSTOMER_ENDPOINT = :CUSTOMER_ENDPOINT
1138
+ NETWORK = :NETWORK
1139
+ UNKNOWN = :UNKNOWN
1140
+
1141
+ # @!method self.values
1142
+ # @return [Array<Symbol>]
1143
+ end
1144
+
1145
+ # Type of 3DS Requestor Initiated (3RI) request — i.e., a 3DS authentication that
1146
+ # takes place at the initiation of the merchant rather than the cardholder. The
1147
+ # most common example of this is where a merchant is authenticating before billing
1148
+ # for a recurring transaction such as a pay TV subscription or a utility bill.
1149
+ # Maps to EMV 3DS field `threeRIInd`.
1150
+ #
1151
+ # @see Lithic::Models::ThreeDSAuthentication#three_ri_request_type
1152
+ module ThreeRiRequestType
1153
+ extend Lithic::Internal::Type::Enum
1154
+
1155
+ ACCOUNT_VERIFICATION = :ACCOUNT_VERIFICATION
1156
+ ADD_CARD = :ADD_CARD
1157
+ BILLING_AGREEMENT = :BILLING_AGREEMENT
1158
+ CARD_SECURITY_CODE_STATUS_CHECK = :CARD_SECURITY_CODE_STATUS_CHECK
1159
+ DELAYED_SHIPMENT = :DELAYED_SHIPMENT
1160
+ DEVICE_BINDING_STATUS_CHECK = :DEVICE_BINDING_STATUS_CHECK
1161
+ INSTALLMENT_TRANSACTION = :INSTALLMENT_TRANSACTION
1162
+ MAIL_ORDER = :MAIL_ORDER
1163
+ MAINTAIN_CARD_INFO = :MAINTAIN_CARD_INFO
1164
+ OTHER_PAYMENT = :OTHER_PAYMENT
1165
+ RECURRING_TRANSACTION = :RECURRING_TRANSACTION
1166
+ SPLIT_PAYMENT = :SPLIT_PAYMENT
1167
+ SPLIT_SHIPMENT = :SPLIT_SHIPMENT
1168
+ TELEPHONE_ORDER = :TELEPHONE_ORDER
1169
+ TOP_UP = :TOP_UP
1170
+ TRUST_LIST_STATUS_CHECK = :TRUST_LIST_STATUS_CHECK
1171
+
1172
+ # @!method self.values
1173
+ # @return [Array<Symbol>]
1174
+ end
1175
+
1176
+ # @see Lithic::Models::ThreeDSAuthentication#transaction
1177
+ class Transaction < Lithic::Internal::Type::BaseModel
1178
+ # @!attribute amount
1179
+ # Amount of the purchase in minor units of currency with all punctuation removed.
1180
+ # Maps to EMV 3DS field `purchaseAmount`.
1181
+ #
1182
+ # @return [Float]
1183
+ required :amount, Float
1184
+
1185
+ # @!attribute cardholder_amount
1186
+ # Approximate amount of the purchase in minor units of cardholder currency.
1187
+ # Derived from `amount` using a daily conversion rate.
1188
+ #
1189
+ # @return [Float, nil]
1190
+ required :cardholder_amount, Float, nil?: true
1191
+
1192
+ # @!attribute currency
1193
+ # Currency of the purchase. Maps to EMV 3DS field `purchaseCurrency`. Permitted
1194
+ # values: ISO 4217 three-character currency code (e.g., USD).
1195
+ #
1196
+ # @return [String]
1197
+ required :currency, String
1198
+
1199
+ # @!attribute currency_exponent
1200
+ # Minor units of currency, as specified in ISO 4217 currency exponent. Maps to EMV
1201
+ # 3DS field `purchaseExponent`.
1202
+ #
1203
+ # @return [Float]
1204
+ required :currency_exponent, Float
1205
+
1206
+ # @!attribute date_time
1207
+ # Date and time when the authentication was generated by the merchant/acquirer's
1208
+ # 3DS server. Maps to EMV 3DS field `purchaseDate`. Permitted values: Date string
1209
+ # in the ISO 8601 format yyyy-MM-dd'T'hh:mm:ssZ.
1210
+ #
1211
+ # @return [Time]
1212
+ required :date_time, Time
1213
+
1214
+ # @!attribute type
1215
+ # Type of the transaction for which a 3DS authentication request is occurring.
1216
+ # Maps to EMV 3DS field `transType`.
1217
+ #
1218
+ # @return [Symbol, Lithic::Models::ThreeDSAuthentication::Transaction::Type, nil]
1219
+ required :type, enum: -> { Lithic::ThreeDSAuthentication::Transaction::Type }, nil?: true
1220
+
1221
+ # @!method initialize(amount:, cardholder_amount:, currency:, currency_exponent:, date_time:, type:)
1222
+ # Some parameter documentations has been truncated, see
1223
+ # {Lithic::Models::ThreeDSAuthentication::Transaction} for more details.
1224
+ #
1225
+ # Object containing data about the e-commerce transaction for which the merchant
1226
+ # is requesting authentication.
1227
+ #
1228
+ # @param amount [Float] Amount of the purchase in minor units of currency with all punctuation removed.
1229
+ #
1230
+ # @param cardholder_amount [Float, nil] Approximate amount of the purchase in minor units of cardholder currency. Derive
1231
+ #
1232
+ # @param currency [String] Currency of the purchase. Maps to EMV 3DS field `purchaseCurrency`. Permitted va
1233
+ #
1234
+ # @param currency_exponent [Float] Minor units of currency, as specified in ISO 4217 currency exponent. Maps to EMV
1235
+ #
1236
+ # @param date_time [Time] Date and time when the authentication was generated by the merchant/acquirer's 3
1237
+ #
1238
+ # @param type [Symbol, Lithic::Models::ThreeDSAuthentication::Transaction::Type, nil] Type of the transaction for which a 3DS authentication request is occurring. Map
1239
+
1240
+ # Type of the transaction for which a 3DS authentication request is occurring.
1241
+ # Maps to EMV 3DS field `transType`.
1242
+ #
1243
+ # @see Lithic::Models::ThreeDSAuthentication::Transaction#type
1244
+ module Type
1245
+ extend Lithic::Internal::Type::Enum
1246
+
1247
+ ACCOUNT_FUNDING = :ACCOUNT_FUNDING
1248
+ CHECK_ACCEPTANCE = :CHECK_ACCEPTANCE
1249
+ GOODS_SERVICE_PURCHASE = :GOODS_SERVICE_PURCHASE
1250
+ PREPAID_ACTIVATION_AND_LOAD = :PREPAID_ACTIVATION_AND_LOAD
1251
+ QUASI_CASH_TRANSACTION = :QUASI_CASH_TRANSACTION
1252
+
1253
+ # @!method self.values
1254
+ # @return [Array<Symbol>]
1255
+ end
1256
+ end
1257
+ end
1258
+ end
1259
+ end