lithic 0.1.0.pre.alpha.55 → 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 (347) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +53 -0
  3. data/README.md +1 -1
  4. data/lib/lithic/client.rb +12 -0
  5. data/lib/lithic/models/account_activity_list_params.rb +2 -0
  6. data/lib/lithic/models/account_activity_list_response.rb +62 -148
  7. data/lib/lithic/models/account_activity_retrieve_transaction_response.rb +62 -151
  8. data/lib/lithic/models/auth_rules/auth_rule.rb +208 -49
  9. data/lib/lithic/models/auth_rules/auth_rule_condition.rb +9 -52
  10. data/lib/lithic/models/auth_rules/conditional_3ds_action_parameters.rb +9 -52
  11. data/lib/lithic/models/auth_rules/conditional_ach_action_parameters.rb +260 -0
  12. data/lib/lithic/models/auth_rules/conditional_authorization_action_parameters.rb +9 -54
  13. data/lib/lithic/models/auth_rules/conditional_operation.rb +31 -0
  14. data/lib/lithic/models/auth_rules/conditional_tokenization_action_parameters.rb +271 -0
  15. data/lib/lithic/models/auth_rules/conditional_value.rb +30 -0
  16. data/lib/lithic/models/auth_rules/event_stream.rb +21 -0
  17. data/lib/lithic/models/auth_rules/v2_create_params.rb +14 -19
  18. data/lib/lithic/models/auth_rules/v2_draft_params.rb +7 -3
  19. data/lib/lithic/models/auth_rules/v2_list_params.rb +16 -16
  20. data/lib/lithic/models/book_transfer_response.rb +1 -0
  21. data/lib/lithic/models/card_bulk_order.rb +106 -0
  22. data/lib/lithic/models/card_bulk_order_create_params.rb +52 -0
  23. data/lib/lithic/models/card_bulk_order_list_params.rb +61 -0
  24. data/lib/lithic/models/card_bulk_order_retrieve_params.rb +14 -0
  25. data/lib/lithic/models/card_bulk_order_update_params.rb +32 -0
  26. data/lib/lithic/models/card_convert_physical_params.rb +3 -0
  27. data/lib/lithic/models/card_create_params.rb +14 -1
  28. data/lib/lithic/models/card_program.rb +10 -10
  29. data/lib/lithic/models/card_reissue_params.rb +3 -0
  30. data/lib/lithic/models/card_renew_params.rb +3 -0
  31. data/lib/lithic/models/card_web_provision_params.rb +32 -1
  32. data/lib/lithic/models/card_web_provision_response.rb +98 -60
  33. data/lib/lithic/models/cardholder_authentication.rb +132 -0
  34. data/lib/lithic/models/category_details.rb +27 -0
  35. data/lib/lithic/models/device.rb +37 -0
  36. data/lib/lithic/models/digital_wallet_token_metadata.rb +141 -0
  37. data/lib/lithic/models/dispute.rb +242 -510
  38. data/lib/lithic/models/dispute_v2.rb +555 -0
  39. data/lib/lithic/models/disputes_v2_list_params.rb +84 -0
  40. data/lib/lithic/models/disputes_v2_retrieve_params.rb +14 -0
  41. data/lib/lithic/models/{external_bank_account_retry_prenote_response.rb → external_bank_account.rb} +32 -33
  42. data/lib/lithic/models/external_bank_account_address.rb +2 -2
  43. data/lib/lithic/models/external_bank_account_create_response.rb +18 -18
  44. data/lib/lithic/models/external_bank_account_list_response.rb +18 -18
  45. data/lib/lithic/models/external_bank_account_retrieve_response.rb +18 -18
  46. data/lib/lithic/models/external_bank_account_retry_micro_deposits_response.rb +18 -18
  47. data/lib/lithic/models/external_bank_account_unpause_params.rb +14 -0
  48. data/lib/lithic/models/external_bank_account_update_response.rb +18 -18
  49. data/lib/lithic/models/external_bank_accounts/micro_deposit_create_response.rb +18 -18
  50. data/lib/lithic/models/external_payment.rb +15 -2
  51. data/lib/lithic/models/external_payment_create_params.rb +2 -0
  52. data/lib/lithic/models/external_payment_list_params.rb +3 -0
  53. data/lib/lithic/models/financial_account.rb +4 -3
  54. data/lib/lithic/models/financial_account_balance.rb +112 -0
  55. data/lib/lithic/models/financial_accounts/category_balances.rb +29 -0
  56. data/lib/lithic/models/financial_accounts/loan_tape.rb +35 -520
  57. data/lib/lithic/models/financial_accounts/statement.rb +73 -275
  58. data/lib/lithic/models/financial_accounts/statements/statement_line_items.rb +18 -0
  59. data/lib/lithic/models/financial_event.rb +164 -0
  60. data/lib/lithic/models/financial_transaction.rb +3 -146
  61. data/lib/lithic/models/{funding_event_retrieve_response.rb → funding_event.rb} +9 -10
  62. data/lib/lithic/models/internal_transaction.rb +166 -0
  63. data/lib/lithic/models/management_operation_create_params.rb +6 -0
  64. data/lib/lithic/models/management_operation_list_params.rb +1 -0
  65. data/lib/lithic/models/management_operation_transaction.rb +11 -4
  66. data/lib/lithic/models/merchant.rb +70 -0
  67. data/lib/lithic/models/network_total.rb +169 -0
  68. data/lib/lithic/models/non_pci_card.rb +10 -1
  69. data/lib/lithic/models/payment.rb +18 -6
  70. data/lib/lithic/models/payment_create_params.rb +10 -1
  71. data/lib/lithic/models/payment_return_params.rb +62 -0
  72. data/lib/lithic/models/statement_totals.rb +100 -0
  73. data/lib/lithic/models/three_ds_authentication.rb +1259 -0
  74. data/lib/lithic/models/token_info.rb +42 -0
  75. data/lib/lithic/models/tokenization.rb +9 -111
  76. data/lib/lithic/models/tokenization_decline_reason.rb +27 -0
  77. data/lib/lithic/models/tokenization_rule_result.rb +61 -0
  78. data/lib/lithic/models/tokenization_tfa_reason.rb +29 -0
  79. data/lib/lithic/models/transaction.rb +9 -243
  80. data/lib/lithic/models/transactions/events/enhanced_data.rb +49 -40
  81. data/lib/lithic/models/transfer.rb +3 -146
  82. data/lib/lithic/models/wallet_decisioning_info.rb +44 -0
  83. data/lib/lithic/models.rb +56 -0
  84. data/lib/lithic/resources/auth_rules/v2.rb +19 -17
  85. data/lib/lithic/resources/card_bulk_orders.rb +127 -0
  86. data/lib/lithic/resources/cards/balances.rb +2 -2
  87. data/lib/lithic/resources/cards.rb +14 -3
  88. data/lib/lithic/resources/disputes.rb +10 -10
  89. data/lib/lithic/resources/disputes_v2.rb +74 -0
  90. data/lib/lithic/resources/external_bank_accounts.rb +21 -2
  91. data/lib/lithic/resources/financial_accounts/balances.rb +2 -2
  92. data/lib/lithic/resources/funding_events.rb +4 -4
  93. data/lib/lithic/resources/internal_transaction.rb +14 -0
  94. data/lib/lithic/resources/payments.rb +48 -0
  95. data/lib/lithic/resources/reports/settlement/network_totals.rb +4 -4
  96. data/lib/lithic/resources/three_ds/authentication.rb +2 -2
  97. data/lib/lithic/resources/tokenizations.rb +4 -4
  98. data/lib/lithic/version.rb +1 -1
  99. data/lib/lithic.rb +38 -21
  100. data/manifest.yaml +1 -0
  101. data/rbi/lithic/client.rbi +9 -0
  102. data/rbi/lithic/models/account_activity_list_params.rbi +10 -0
  103. data/rbi/lithic/models/account_activity_list_response.rbi +131 -544
  104. data/rbi/lithic/models/account_activity_retrieve_transaction_response.rbi +131 -544
  105. data/rbi/lithic/models/auth_rules/auth_rule.rbi +339 -80
  106. data/rbi/lithic/models/auth_rules/auth_rule_condition.rbi +13 -139
  107. data/rbi/lithic/models/auth_rules/conditional_3ds_action_parameters.rbi +13 -153
  108. data/rbi/lithic/models/auth_rules/conditional_ach_action_parameters.rbi +789 -0
  109. data/rbi/lithic/models/auth_rules/conditional_authorization_action_parameters.rbi +13 -153
  110. data/rbi/lithic/models/auth_rules/conditional_operation.rbi +99 -0
  111. data/rbi/lithic/models/auth_rules/conditional_tokenization_action_parameters.rbi +703 -0
  112. data/rbi/lithic/models/auth_rules/conditional_value.rbi +29 -0
  113. data/rbi/lithic/models/auth_rules/event_stream.rbi +44 -0
  114. data/rbi/lithic/models/auth_rules/v2_create_params.rbi +22 -52
  115. data/rbi/lithic/models/auth_rules/v2_draft_params.rbi +12 -4
  116. data/rbi/lithic/models/auth_rules/v2_list_params.rbi +27 -44
  117. data/rbi/lithic/models/book_transfer_response.rbi +2 -0
  118. data/rbi/lithic/models/card_bulk_order.rbi +141 -0
  119. data/rbi/lithic/models/card_bulk_order_create_params.rbi +92 -0
  120. data/rbi/lithic/models/card_bulk_order_list_params.rbi +98 -0
  121. data/rbi/lithic/models/card_bulk_order_retrieve_params.rbi +27 -0
  122. data/rbi/lithic/models/card_bulk_order_update_params.rbi +68 -0
  123. data/rbi/lithic/models/card_convert_physical_params.rbi +8 -0
  124. data/rbi/lithic/models/card_create_params.rbi +23 -0
  125. data/rbi/lithic/models/card_program.rbi +10 -13
  126. data/rbi/lithic/models/card_reissue_params.rbi +8 -0
  127. data/rbi/lithic/models/card_renew_params.rbi +8 -0
  128. data/rbi/lithic/models/card_web_provision_params.rbi +44 -0
  129. data/rbi/lithic/models/card_web_provision_response.rbi +182 -102
  130. data/rbi/lithic/models/cardholder_authentication.rbi +296 -0
  131. data/rbi/lithic/models/category_details.rbi +43 -0
  132. data/rbi/lithic/models/device.rbi +54 -0
  133. data/rbi/lithic/models/digital_wallet_token_metadata.rbi +290 -0
  134. data/rbi/lithic/models/dispute.rbi +395 -942
  135. data/rbi/lithic/models/dispute_v2.rbi +965 -0
  136. data/rbi/lithic/models/disputes_v2_list_params.rbi +129 -0
  137. data/rbi/lithic/models/disputes_v2_retrieve_params.rbi +27 -0
  138. data/rbi/lithic/models/{external_bank_account_retry_prenote_response.rbi → external_bank_account.rbi} +57 -126
  139. data/rbi/lithic/models/external_bank_account_address.rbi +3 -6
  140. data/rbi/lithic/models/external_bank_account_create_response.rbi +31 -51
  141. data/rbi/lithic/models/external_bank_account_list_response.rbi +31 -51
  142. data/rbi/lithic/models/external_bank_account_retrieve_response.rbi +31 -51
  143. data/rbi/lithic/models/external_bank_account_retry_micro_deposits_response.rbi +31 -51
  144. data/rbi/lithic/models/external_bank_account_unpause_params.rbi +30 -0
  145. data/rbi/lithic/models/external_bank_account_update_response.rbi +31 -51
  146. data/rbi/lithic/models/external_bank_accounts/micro_deposit_create_response.rbi +31 -51
  147. data/rbi/lithic/models/external_payment.rbi +62 -6
  148. data/rbi/lithic/models/external_payment_create_params.rbi +10 -0
  149. data/rbi/lithic/models/external_payment_list_params.rbi +15 -0
  150. data/rbi/lithic/models/financial_account.rbi +12 -4
  151. data/rbi/lithic/models/financial_account_balance.rbi +144 -0
  152. data/rbi/lithic/models/financial_accounts/category_balances.rbi +42 -0
  153. data/rbi/lithic/models/financial_accounts/loan_tape.rbi +47 -802
  154. data/rbi/lithic/models/financial_accounts/statement.rbi +118 -430
  155. data/rbi/lithic/models/financial_accounts/statements/statement_line_items.rbi +90 -0
  156. data/rbi/lithic/models/financial_event.rbi +469 -0
  157. data/rbi/lithic/models/financial_transaction.rbi +3 -509
  158. data/rbi/lithic/models/{funding_event_list_response.rbi → funding_event.rbi} +13 -35
  159. data/rbi/lithic/models/internal_transaction.rbi +277 -0
  160. data/rbi/lithic/models/management_operation_create_params.rbi +30 -0
  161. data/rbi/lithic/models/management_operation_list_params.rbi +5 -0
  162. data/rbi/lithic/models/management_operation_transaction.rbi +41 -12
  163. data/rbi/lithic/models/merchant.rbi +89 -0
  164. data/rbi/lithic/models/network_total.rbi +226 -0
  165. data/rbi/lithic/models/non_pci_card.rbi +10 -0
  166. data/rbi/lithic/models/payment.rbi +28 -7
  167. data/rbi/lithic/models/payment_create_params.rbi +15 -1
  168. data/rbi/lithic/models/payment_return_params.rbi +85 -0
  169. data/rbi/lithic/models/statement_totals.rbi +128 -0
  170. data/rbi/lithic/models/three_ds_authentication.rbi +2432 -0
  171. data/rbi/lithic/models/token_info.rbi +70 -0
  172. data/rbi/lithic/models/tokenization.rbi +12 -335
  173. data/rbi/lithic/models/tokenization_decline_reason.rbi +73 -0
  174. data/rbi/lithic/models/tokenization_rule_result.rbi +96 -0
  175. data/rbi/lithic/models/tokenization_tfa_reason.rbi +74 -0
  176. data/rbi/lithic/models/transaction.rbi +12 -500
  177. data/rbi/lithic/models/transactions/events/enhanced_data.rbi +74 -133
  178. data/rbi/lithic/models/transfer.rbi +4 -436
  179. data/rbi/lithic/models/wallet_decisioning_info.rbi +63 -0
  180. data/rbi/lithic/models.rbi +57 -0
  181. data/rbi/lithic/resources/auth_rules/v2.rbi +23 -18
  182. data/rbi/lithic/resources/card_bulk_orders.rbi +101 -0
  183. data/rbi/lithic/resources/cards/balances.rbi +1 -3
  184. data/rbi/lithic/resources/cards.rbi +22 -1
  185. data/rbi/lithic/resources/disputes.rbi +5 -7
  186. data/rbi/lithic/resources/disputes_v2.rbi +64 -0
  187. data/rbi/lithic/resources/external_bank_accounts.rbi +11 -1
  188. data/rbi/lithic/resources/financial_accounts/balances.rbi +1 -3
  189. data/rbi/lithic/resources/funding_events.rbi +2 -4
  190. data/rbi/lithic/resources/internal_transaction.rbi +12 -0
  191. data/rbi/lithic/resources/payments.rbi +46 -0
  192. data/rbi/lithic/resources/reports/settlement/network_totals.rbi +2 -8
  193. data/rbi/lithic/resources/three_ds/authentication.rbi +1 -1
  194. data/rbi/lithic/resources/tokenizations.rbi +2 -2
  195. data/sig/lithic/client.rbs +6 -0
  196. data/sig/lithic/models/account_activity_list_params.rbs +4 -0
  197. data/sig/lithic/models/account_activity_list_response.rbs +71 -221
  198. data/sig/lithic/models/account_activity_retrieve_transaction_response.rbs +71 -221
  199. data/sig/lithic/models/auth_rules/auth_rule.rbs +135 -36
  200. data/sig/lithic/models/auth_rules/auth_rule_condition.rbs +10 -61
  201. data/sig/lithic/models/auth_rules/conditional_3ds_action_parameters.rbs +10 -61
  202. data/sig/lithic/models/auth_rules/conditional_ach_action_parameters.rbs +293 -0
  203. data/sig/lithic/models/auth_rules/conditional_authorization_action_parameters.rbs +10 -61
  204. data/sig/lithic/models/auth_rules/conditional_operation.rbs +44 -0
  205. data/sig/lithic/models/auth_rules/conditional_tokenization_action_parameters.rbs +239 -0
  206. data/sig/lithic/models/auth_rules/conditional_value.rbs +15 -0
  207. data/sig/lithic/models/auth_rules/event_stream.rbs +24 -0
  208. data/sig/lithic/models/auth_rules/v2_create_params.rbs +8 -17
  209. data/sig/lithic/models/auth_rules/v2_draft_params.rbs +2 -0
  210. data/sig/lithic/models/auth_rules/v2_list_params.rbs +15 -17
  211. data/sig/lithic/models/book_transfer_response.rbs +3 -1
  212. data/sig/lithic/models/card_bulk_order.rbs +76 -0
  213. data/sig/lithic/models/card_bulk_order_create_params.rbs +46 -0
  214. data/sig/lithic/models/card_bulk_order_list_params.rbs +56 -0
  215. data/sig/lithic/models/card_bulk_order_retrieve_params.rbs +15 -0
  216. data/sig/lithic/models/card_bulk_order_update_params.rbs +34 -0
  217. data/sig/lithic/models/card_convert_physical_params.rbs +2 -0
  218. data/sig/lithic/models/card_create_params.rbs +9 -0
  219. data/sig/lithic/models/card_program.rbs +5 -7
  220. data/sig/lithic/models/card_reissue_params.rbs +2 -0
  221. data/sig/lithic/models/card_renew_params.rbs +2 -0
  222. data/sig/lithic/models/card_web_provision_params.rbs +26 -2
  223. data/sig/lithic/models/card_web_provision_response.rbs +81 -51
  224. data/sig/lithic/models/cardholder_authentication.rbs +98 -0
  225. data/sig/lithic/models/category_details.rbs +26 -0
  226. data/sig/lithic/models/device.rbs +21 -0
  227. data/sig/lithic/models/digital_wallet_token_metadata.rbs +119 -0
  228. data/sig/lithic/models/dispute.rbs +157 -417
  229. data/sig/lithic/models/dispute_v2.rbs +438 -0
  230. data/sig/lithic/models/disputes_v2_list_params.rbs +77 -0
  231. data/sig/lithic/models/disputes_v2_retrieve_params.rbs +15 -0
  232. data/sig/lithic/models/external_bank_account.rbs +162 -0
  233. data/sig/lithic/models/external_bank_account_address.rbs +4 -6
  234. data/sig/lithic/models/external_bank_account_create_response.rbs +36 -56
  235. data/sig/lithic/models/external_bank_account_list_response.rbs +36 -56
  236. data/sig/lithic/models/external_bank_account_retrieve_response.rbs +36 -56
  237. data/sig/lithic/models/external_bank_account_retry_micro_deposits_response.rbs +36 -56
  238. data/sig/lithic/models/external_bank_account_unpause_params.rbs +15 -0
  239. data/sig/lithic/models/external_bank_account_update_response.rbs +36 -56
  240. data/sig/lithic/models/external_bank_accounts/micro_deposit_create_response.rbs +36 -56
  241. data/sig/lithic/models/external_payment.rbs +35 -8
  242. data/sig/lithic/models/external_payment_create_params.rbs +8 -1
  243. data/sig/lithic/models/external_payment_list_params.rbs +11 -2
  244. data/sig/lithic/models/financial_account.rbs +4 -4
  245. data/sig/lithic/models/financial_account_balance.rbs +78 -0
  246. data/sig/lithic/models/financial_accounts/category_balances.rbs +24 -0
  247. data/sig/lithic/models/financial_accounts/loan_tape.rbs +48 -464
  248. data/sig/lithic/models/financial_accounts/statement.rbs +59 -244
  249. data/sig/lithic/models/financial_accounts/statements/statement_line_items.rbs +36 -0
  250. data/sig/lithic/models/financial_event.rbs +248 -0
  251. data/sig/lithic/models/financial_transaction.rbs +4 -217
  252. data/sig/lithic/models/{funding_event_list_response.rbs → funding_event.rbs} +11 -11
  253. data/sig/lithic/models/internal_transaction.rbs +165 -0
  254. data/sig/lithic/models/management_operation_create_params.rbs +12 -0
  255. data/sig/lithic/models/management_operation_list_params.rbs +3 -1
  256. data/sig/lithic/models/management_operation_transaction.rbs +23 -13
  257. data/sig/lithic/models/merchant.rbs +50 -0
  258. data/sig/lithic/models/network_total.rbs +125 -0
  259. data/sig/lithic/models/non_pci_card.rbs +5 -0
  260. data/sig/lithic/models/payment.rbs +18 -5
  261. data/sig/lithic/models/payment_create_params.rbs +7 -0
  262. data/sig/lithic/models/payment_return_params.rbs +46 -0
  263. data/sig/lithic/models/statement_totals.rbs +76 -0
  264. data/sig/lithic/models/three_ds_authentication.rbs +911 -0
  265. data/sig/lithic/models/token_info.rbs +36 -0
  266. data/sig/lithic/models/tokenization.rbs +18 -137
  267. data/sig/lithic/models/tokenization_decline_reason.rbs +38 -0
  268. data/sig/lithic/models/tokenization_rule_result.rbs +48 -0
  269. data/sig/lithic/models/tokenization_tfa_reason.rbs +42 -0
  270. data/sig/lithic/models/transaction.rbs +12 -191
  271. data/sig/lithic/models/transactions/events/enhanced_data.rbs +78 -124
  272. data/sig/lithic/models/transfer.rbs +6 -219
  273. data/sig/lithic/models/wallet_decisioning_info.rbs +35 -0
  274. data/sig/lithic/models.rbs +56 -0
  275. data/sig/lithic/resources/auth_rules/v2.rbs +9 -8
  276. data/sig/lithic/resources/card_bulk_orders.rbs +34 -0
  277. data/sig/lithic/resources/cards/balances.rbs +1 -1
  278. data/sig/lithic/resources/cards.rbs +5 -1
  279. data/sig/lithic/resources/disputes.rbs +5 -5
  280. data/sig/lithic/resources/disputes_v2.rbs +24 -0
  281. data/sig/lithic/resources/external_bank_accounts.rbs +6 -1
  282. data/sig/lithic/resources/financial_accounts/balances.rbs +1 -1
  283. data/sig/lithic/resources/funding_events.rbs +2 -2
  284. data/sig/lithic/resources/internal_transaction.rbs +7 -0
  285. data/sig/lithic/resources/payments.rbs +10 -0
  286. data/sig/lithic/resources/reports/settlement/network_totals.rbs +2 -2
  287. data/sig/lithic/resources/three_ds/authentication.rbs +1 -1
  288. data/sig/lithic/resources/tokenizations.rbs +2 -2
  289. metadata +115 -67
  290. data/lib/lithic/models/auth_rules/v2_create_response.rb +0 -267
  291. data/lib/lithic/models/auth_rules/v2_draft_response.rb +0 -266
  292. data/lib/lithic/models/auth_rules/v2_list_response.rb +0 -266
  293. data/lib/lithic/models/auth_rules/v2_promote_response.rb +0 -267
  294. data/lib/lithic/models/auth_rules/v2_retrieve_response.rb +0 -271
  295. data/lib/lithic/models/auth_rules/v2_update_response.rb +0 -267
  296. data/lib/lithic/models/cards/balance_list_response.rb +0 -115
  297. data/lib/lithic/models/dispute_create_response.rb +0 -326
  298. data/lib/lithic/models/dispute_delete_response.rb +0 -326
  299. data/lib/lithic/models/dispute_list_response.rb +0 -326
  300. data/lib/lithic/models/dispute_retrieve_response.rb +0 -326
  301. data/lib/lithic/models/dispute_update_response.rb +0 -326
  302. data/lib/lithic/models/financial_accounts/balance_list_response.rb +0 -115
  303. data/lib/lithic/models/funding_event_list_response.rb +0 -108
  304. data/lib/lithic/models/reports/settlement/network_total_list_response.rb +0 -176
  305. data/lib/lithic/models/reports/settlement/network_total_retrieve_response.rb +0 -176
  306. data/lib/lithic/models/three_ds/authentication_retrieve_response.rb +0 -1288
  307. data/lib/lithic/models/tokenization_simulate_response.rb +0 -16
  308. data/lib/lithic/models/tokenization_update_digital_card_art_response.rb +0 -16
  309. data/rbi/lithic/models/auth_rules/v2_create_response.rbi +0 -496
  310. data/rbi/lithic/models/auth_rules/v2_draft_response.rbi +0 -496
  311. data/rbi/lithic/models/auth_rules/v2_list_response.rbi +0 -492
  312. data/rbi/lithic/models/auth_rules/v2_promote_response.rbi +0 -499
  313. data/rbi/lithic/models/auth_rules/v2_retrieve_response.rbi +0 -502
  314. data/rbi/lithic/models/auth_rules/v2_update_response.rbi +0 -496
  315. data/rbi/lithic/models/cards/balance_list_response.rbi +0 -170
  316. data/rbi/lithic/models/dispute_create_response.rbi +0 -599
  317. data/rbi/lithic/models/dispute_delete_response.rbi +0 -599
  318. data/rbi/lithic/models/dispute_list_response.rbi +0 -582
  319. data/rbi/lithic/models/dispute_retrieve_response.rbi +0 -601
  320. data/rbi/lithic/models/dispute_update_response.rbi +0 -599
  321. data/rbi/lithic/models/financial_accounts/balance_list_response.rbi +0 -174
  322. data/rbi/lithic/models/funding_event_retrieve_response.rbi +0 -184
  323. data/rbi/lithic/models/reports/settlement/network_total_list_response.rbi +0 -280
  324. data/rbi/lithic/models/reports/settlement/network_total_retrieve_response.rbi +0 -280
  325. data/rbi/lithic/models/three_ds/authentication_retrieve_response.rbi +0 -2580
  326. data/rbi/lithic/models/tokenization_simulate_response.rbi +0 -33
  327. data/rbi/lithic/models/tokenization_update_digital_card_art_response.rbi +0 -31
  328. data/sig/lithic/models/auth_rules/v2_create_response.rbs +0 -193
  329. data/sig/lithic/models/auth_rules/v2_draft_response.rbs +0 -193
  330. data/sig/lithic/models/auth_rules/v2_list_response.rbs +0 -193
  331. data/sig/lithic/models/auth_rules/v2_promote_response.rbs +0 -193
  332. data/sig/lithic/models/auth_rules/v2_retrieve_response.rbs +0 -193
  333. data/sig/lithic/models/auth_rules/v2_update_response.rbs +0 -193
  334. data/sig/lithic/models/cards/balance_list_response.rbs +0 -80
  335. data/sig/lithic/models/dispute_create_response.rbs +0 -210
  336. data/sig/lithic/models/dispute_delete_response.rbs +0 -210
  337. data/sig/lithic/models/dispute_list_response.rbs +0 -210
  338. data/sig/lithic/models/dispute_retrieve_response.rbs +0 -210
  339. data/sig/lithic/models/dispute_update_response.rbs +0 -210
  340. data/sig/lithic/models/external_bank_account_retry_prenote_response.rbs +0 -182
  341. data/sig/lithic/models/financial_accounts/balance_list_response.rbs +0 -80
  342. data/sig/lithic/models/funding_event_retrieve_response.rbs +0 -85
  343. data/sig/lithic/models/reports/settlement/network_total_list_response.rbs +0 -129
  344. data/sig/lithic/models/reports/settlement/network_total_retrieve_response.rbs +0 -129
  345. data/sig/lithic/models/three_ds/authentication_retrieve_response.rbs +0 -913
  346. data/sig/lithic/models/tokenization_simulate_response.rbs +0 -18
  347. data/sig/lithic/models/tokenization_update_digital_card_art_response.rbs +0 -16
@@ -0,0 +1,2432 @@
1
+ # typed: strong
2
+
3
+ module Lithic
4
+ module Models
5
+ class ThreeDSAuthentication < Lithic::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Lithic::ThreeDSAuthentication, Lithic::Internal::AnyHash)
9
+ end
10
+
11
+ # Globally unique identifier for the 3DS authentication. Permitted values:
12
+ # 36-digit version 4 UUID (including hyphens).
13
+ sig { returns(String) }
14
+ attr_accessor :token
15
+
16
+ # Type of account/card that is being used for the transaction. Maps to EMV 3DS
17
+ # field `acctType`.
18
+ sig do
19
+ returns(
20
+ T.nilable(Lithic::ThreeDSAuthentication::AccountType::TaggedSymbol)
21
+ )
22
+ end
23
+ attr_accessor :account_type
24
+
25
+ # Indicates the outcome of the 3DS authentication process.
26
+ sig do
27
+ returns(
28
+ Lithic::ThreeDSAuthentication::AuthenticationResult::TaggedSymbol
29
+ )
30
+ end
31
+ attr_accessor :authentication_result
32
+
33
+ # Indicates whether the expiration date provided by the cardholder during checkout
34
+ # matches Lithic's record of the card's expiration date.
35
+ sig do
36
+ returns(Lithic::ThreeDSAuthentication::CardExpiryCheck::TaggedSymbol)
37
+ end
38
+ attr_accessor :card_expiry_check
39
+
40
+ # Globally unique identifier for the card on which the 3DS authentication has
41
+ # occurred. Permitted values: 36-digit version 4 UUID (including hyphens).
42
+ sig { returns(String) }
43
+ attr_accessor :card_token
44
+
45
+ # Object containing data about the cardholder provided during the transaction.
46
+ sig { returns(Lithic::ThreeDSAuthentication::Cardholder) }
47
+ attr_reader :cardholder
48
+
49
+ sig do
50
+ params(
51
+ cardholder: Lithic::ThreeDSAuthentication::Cardholder::OrHash
52
+ ).void
53
+ end
54
+ attr_writer :cardholder
55
+
56
+ # Channel in which the authentication occurs. Maps to EMV 3DS field
57
+ # `deviceChannel`.
58
+ sig { returns(Lithic::ThreeDSAuthentication::Channel::TaggedSymbol) }
59
+ attr_accessor :channel
60
+
61
+ # Date and time when the authentication was created in Lithic's system. Permitted
62
+ # values: Date string in the ISO 8601 format yyyy-MM-dd'T'hh:mm:ssZ.
63
+ sig { returns(Time) }
64
+ attr_accessor :created
65
+
66
+ # Object containing data about the merchant involved in the e-commerce
67
+ # transaction.
68
+ sig { returns(Lithic::ThreeDSAuthentication::Merchant) }
69
+ attr_reader :merchant
70
+
71
+ sig do
72
+ params(merchant: Lithic::ThreeDSAuthentication::Merchant::OrHash).void
73
+ end
74
+ attr_writer :merchant
75
+
76
+ # Either PAYMENT_AUTHENTICATION or NON_PAYMENT_AUTHENTICATION. For
77
+ # NON_PAYMENT_AUTHENTICATION, additional_data and transaction fields are not
78
+ # populated.
79
+ sig do
80
+ returns(Lithic::ThreeDSAuthentication::MessageCategory::TaggedSymbol)
81
+ end
82
+ attr_accessor :message_category
83
+
84
+ # Indicates whether a challenge is requested for this transaction
85
+ #
86
+ # - `NO_PREFERENCE` - No Preference
87
+ # - `NO_CHALLENGE_REQUESTED` - No Challenge Requested
88
+ # - `CHALLENGE_PREFERENCE` - Challenge requested (3DS Requestor preference)
89
+ # - `CHALLENGE_MANDATE` - Challenge requested (Mandate)
90
+ # - `NO_CHALLENGE_RISK_ALREADY_ASSESSED` - No Challenge requested (Transactional
91
+ # risk analysis is already performed)
92
+ # - `DATA_SHARE_ONLY` - No Challenge requested (Data Share Only)
93
+ # - `OTHER` - Other indicators not captured by above. These are rarely used
94
+ sig do
95
+ returns(
96
+ Lithic::ThreeDSAuthentication::ThreeDSRequestorChallengeIndicator::TaggedSymbol
97
+ )
98
+ end
99
+ attr_accessor :three_ds_requestor_challenge_indicator
100
+
101
+ # Object containing additional data about the 3DS request that is beyond the EMV
102
+ # 3DS standard spec (e.g., specific fields that only certain card networks send
103
+ # but are not required across all 3DS requests).
104
+ sig { returns(T.nilable(Lithic::ThreeDSAuthentication::AdditionalData)) }
105
+ attr_reader :additional_data
106
+
107
+ sig do
108
+ params(
109
+ additional_data:
110
+ T.nilable(Lithic::ThreeDSAuthentication::AdditionalData::OrHash)
111
+ ).void
112
+ end
113
+ attr_writer :additional_data
114
+
115
+ # Object containing data about the app used in the e-commerce transaction. Present
116
+ # if the channel is 'APP_BASED'.
117
+ sig { returns(T.nilable(Lithic::ThreeDSAuthentication::App)) }
118
+ attr_reader :app
119
+
120
+ sig do
121
+ params(app: T.nilable(Lithic::ThreeDSAuthentication::App::OrHash)).void
122
+ end
123
+ attr_writer :app
124
+
125
+ # Type of authentication request - i.e., the type of transaction or interaction is
126
+ # causing the merchant to request an authentication. Maps to EMV 3DS field
127
+ # `threeDSRequestorAuthenticationInd`.
128
+ sig do
129
+ returns(
130
+ T.nilable(
131
+ Lithic::ThreeDSAuthentication::AuthenticationRequestType::TaggedSymbol
132
+ )
133
+ )
134
+ end
135
+ attr_accessor :authentication_request_type
136
+
137
+ # Object containing data about the browser used in the e-commerce transaction.
138
+ # Present if the channel is 'BROWSER'.
139
+ sig { returns(T.nilable(Lithic::ThreeDSAuthentication::Browser)) }
140
+ attr_reader :browser
141
+
142
+ sig do
143
+ params(
144
+ browser: T.nilable(Lithic::ThreeDSAuthentication::Browser::OrHash)
145
+ ).void
146
+ end
147
+ attr_writer :browser
148
+
149
+ # Metadata about the challenge method and delivery. Only present when a challenge
150
+ # is triggered.
151
+ sig do
152
+ returns(T.nilable(Lithic::ThreeDSAuthentication::ChallengeMetadata))
153
+ end
154
+ attr_reader :challenge_metadata
155
+
156
+ sig do
157
+ params(
158
+ challenge_metadata:
159
+ T.nilable(Lithic::ThreeDSAuthentication::ChallengeMetadata::OrHash)
160
+ ).void
161
+ end
162
+ attr_writer :challenge_metadata
163
+
164
+ # Entity that orchestrates the challenge. This won't be set for authentications
165
+ # for which a decision has not yet been made (e.g. in-flight customer decisioning
166
+ # request).
167
+ sig do
168
+ returns(
169
+ T.nilable(
170
+ Lithic::ThreeDSAuthentication::ChallengeOrchestratedBy::TaggedSymbol
171
+ )
172
+ )
173
+ end
174
+ attr_accessor :challenge_orchestrated_by
175
+
176
+ # Entity that made the authentication decision. This won't be set for
177
+ # authentications for which a decision has not yet been made (e.g. in-flight
178
+ # customer decisioning request).
179
+ sig do
180
+ returns(
181
+ T.nilable(Lithic::ThreeDSAuthentication::DecisionMadeBy::TaggedSymbol)
182
+ )
183
+ end
184
+ attr_accessor :decision_made_by
185
+
186
+ # Type of 3DS Requestor Initiated (3RI) request — i.e., a 3DS authentication that
187
+ # takes place at the initiation of the merchant rather than the cardholder. The
188
+ # most common example of this is where a merchant is authenticating before billing
189
+ # for a recurring transaction such as a pay TV subscription or a utility bill.
190
+ # Maps to EMV 3DS field `threeRIInd`.
191
+ sig do
192
+ returns(
193
+ T.nilable(
194
+ Lithic::ThreeDSAuthentication::ThreeRiRequestType::TaggedSymbol
195
+ )
196
+ )
197
+ end
198
+ attr_accessor :three_ri_request_type
199
+
200
+ # Object containing data about the e-commerce transaction for which the merchant
201
+ # is requesting authentication.
202
+ sig { returns(T.nilable(Lithic::ThreeDSAuthentication::Transaction)) }
203
+ attr_reader :transaction
204
+
205
+ sig do
206
+ params(
207
+ transaction:
208
+ T.nilable(Lithic::ThreeDSAuthentication::Transaction::OrHash)
209
+ ).void
210
+ end
211
+ attr_writer :transaction
212
+
213
+ # Represents a 3DS authentication
214
+ sig do
215
+ params(
216
+ token: String,
217
+ account_type:
218
+ T.nilable(Lithic::ThreeDSAuthentication::AccountType::OrSymbol),
219
+ authentication_result:
220
+ Lithic::ThreeDSAuthentication::AuthenticationResult::OrSymbol,
221
+ card_expiry_check:
222
+ Lithic::ThreeDSAuthentication::CardExpiryCheck::OrSymbol,
223
+ card_token: String,
224
+ cardholder: Lithic::ThreeDSAuthentication::Cardholder::OrHash,
225
+ channel: Lithic::ThreeDSAuthentication::Channel::OrSymbol,
226
+ created: Time,
227
+ merchant: Lithic::ThreeDSAuthentication::Merchant::OrHash,
228
+ message_category:
229
+ Lithic::ThreeDSAuthentication::MessageCategory::OrSymbol,
230
+ three_ds_requestor_challenge_indicator:
231
+ Lithic::ThreeDSAuthentication::ThreeDSRequestorChallengeIndicator::OrSymbol,
232
+ additional_data:
233
+ T.nilable(Lithic::ThreeDSAuthentication::AdditionalData::OrHash),
234
+ app: T.nilable(Lithic::ThreeDSAuthentication::App::OrHash),
235
+ authentication_request_type:
236
+ T.nilable(
237
+ Lithic::ThreeDSAuthentication::AuthenticationRequestType::OrSymbol
238
+ ),
239
+ browser: T.nilable(Lithic::ThreeDSAuthentication::Browser::OrHash),
240
+ challenge_metadata:
241
+ T.nilable(Lithic::ThreeDSAuthentication::ChallengeMetadata::OrHash),
242
+ challenge_orchestrated_by:
243
+ T.nilable(
244
+ Lithic::ThreeDSAuthentication::ChallengeOrchestratedBy::OrSymbol
245
+ ),
246
+ decision_made_by:
247
+ T.nilable(Lithic::ThreeDSAuthentication::DecisionMadeBy::OrSymbol),
248
+ three_ri_request_type:
249
+ T.nilable(
250
+ Lithic::ThreeDSAuthentication::ThreeRiRequestType::OrSymbol
251
+ ),
252
+ transaction:
253
+ T.nilable(Lithic::ThreeDSAuthentication::Transaction::OrHash)
254
+ ).returns(T.attached_class)
255
+ end
256
+ def self.new(
257
+ # Globally unique identifier for the 3DS authentication. Permitted values:
258
+ # 36-digit version 4 UUID (including hyphens).
259
+ token:,
260
+ # Type of account/card that is being used for the transaction. Maps to EMV 3DS
261
+ # field `acctType`.
262
+ account_type:,
263
+ # Indicates the outcome of the 3DS authentication process.
264
+ authentication_result:,
265
+ # Indicates whether the expiration date provided by the cardholder during checkout
266
+ # matches Lithic's record of the card's expiration date.
267
+ card_expiry_check:,
268
+ # Globally unique identifier for the card on which the 3DS authentication has
269
+ # occurred. Permitted values: 36-digit version 4 UUID (including hyphens).
270
+ card_token:,
271
+ # Object containing data about the cardholder provided during the transaction.
272
+ cardholder:,
273
+ # Channel in which the authentication occurs. Maps to EMV 3DS field
274
+ # `deviceChannel`.
275
+ channel:,
276
+ # Date and time when the authentication was created in Lithic's system. Permitted
277
+ # values: Date string in the ISO 8601 format yyyy-MM-dd'T'hh:mm:ssZ.
278
+ created:,
279
+ # Object containing data about the merchant involved in the e-commerce
280
+ # transaction.
281
+ merchant:,
282
+ # Either PAYMENT_AUTHENTICATION or NON_PAYMENT_AUTHENTICATION. For
283
+ # NON_PAYMENT_AUTHENTICATION, additional_data and transaction fields are not
284
+ # populated.
285
+ message_category:,
286
+ # Indicates whether a challenge is requested for this transaction
287
+ #
288
+ # - `NO_PREFERENCE` - No Preference
289
+ # - `NO_CHALLENGE_REQUESTED` - No Challenge Requested
290
+ # - `CHALLENGE_PREFERENCE` - Challenge requested (3DS Requestor preference)
291
+ # - `CHALLENGE_MANDATE` - Challenge requested (Mandate)
292
+ # - `NO_CHALLENGE_RISK_ALREADY_ASSESSED` - No Challenge requested (Transactional
293
+ # risk analysis is already performed)
294
+ # - `DATA_SHARE_ONLY` - No Challenge requested (Data Share Only)
295
+ # - `OTHER` - Other indicators not captured by above. These are rarely used
296
+ three_ds_requestor_challenge_indicator:,
297
+ # Object containing additional data about the 3DS request that is beyond the EMV
298
+ # 3DS standard spec (e.g., specific fields that only certain card networks send
299
+ # but are not required across all 3DS requests).
300
+ additional_data: nil,
301
+ # Object containing data about the app used in the e-commerce transaction. Present
302
+ # if the channel is 'APP_BASED'.
303
+ app: nil,
304
+ # Type of authentication request - i.e., the type of transaction or interaction is
305
+ # causing the merchant to request an authentication. Maps to EMV 3DS field
306
+ # `threeDSRequestorAuthenticationInd`.
307
+ authentication_request_type: nil,
308
+ # Object containing data about the browser used in the e-commerce transaction.
309
+ # Present if the channel is 'BROWSER'.
310
+ browser: nil,
311
+ # Metadata about the challenge method and delivery. Only present when a challenge
312
+ # is triggered.
313
+ challenge_metadata: nil,
314
+ # Entity that orchestrates the challenge. This won't be set for authentications
315
+ # for which a decision has not yet been made (e.g. in-flight customer decisioning
316
+ # request).
317
+ challenge_orchestrated_by: nil,
318
+ # Entity that made the authentication decision. This won't be set for
319
+ # authentications for which a decision has not yet been made (e.g. in-flight
320
+ # customer decisioning request).
321
+ decision_made_by: nil,
322
+ # Type of 3DS Requestor Initiated (3RI) request — i.e., a 3DS authentication that
323
+ # takes place at the initiation of the merchant rather than the cardholder. The
324
+ # most common example of this is where a merchant is authenticating before billing
325
+ # for a recurring transaction such as a pay TV subscription or a utility bill.
326
+ # Maps to EMV 3DS field `threeRIInd`.
327
+ three_ri_request_type: nil,
328
+ # Object containing data about the e-commerce transaction for which the merchant
329
+ # is requesting authentication.
330
+ transaction: nil
331
+ )
332
+ end
333
+
334
+ sig do
335
+ override.returns(
336
+ {
337
+ token: String,
338
+ account_type:
339
+ T.nilable(
340
+ Lithic::ThreeDSAuthentication::AccountType::TaggedSymbol
341
+ ),
342
+ authentication_result:
343
+ Lithic::ThreeDSAuthentication::AuthenticationResult::TaggedSymbol,
344
+ card_expiry_check:
345
+ Lithic::ThreeDSAuthentication::CardExpiryCheck::TaggedSymbol,
346
+ card_token: String,
347
+ cardholder: Lithic::ThreeDSAuthentication::Cardholder,
348
+ channel: Lithic::ThreeDSAuthentication::Channel::TaggedSymbol,
349
+ created: Time,
350
+ merchant: Lithic::ThreeDSAuthentication::Merchant,
351
+ message_category:
352
+ Lithic::ThreeDSAuthentication::MessageCategory::TaggedSymbol,
353
+ three_ds_requestor_challenge_indicator:
354
+ Lithic::ThreeDSAuthentication::ThreeDSRequestorChallengeIndicator::TaggedSymbol,
355
+ additional_data:
356
+ T.nilable(Lithic::ThreeDSAuthentication::AdditionalData),
357
+ app: T.nilable(Lithic::ThreeDSAuthentication::App),
358
+ authentication_request_type:
359
+ T.nilable(
360
+ Lithic::ThreeDSAuthentication::AuthenticationRequestType::TaggedSymbol
361
+ ),
362
+ browser: T.nilable(Lithic::ThreeDSAuthentication::Browser),
363
+ challenge_metadata:
364
+ T.nilable(Lithic::ThreeDSAuthentication::ChallengeMetadata),
365
+ challenge_orchestrated_by:
366
+ T.nilable(
367
+ Lithic::ThreeDSAuthentication::ChallengeOrchestratedBy::TaggedSymbol
368
+ ),
369
+ decision_made_by:
370
+ T.nilable(
371
+ Lithic::ThreeDSAuthentication::DecisionMadeBy::TaggedSymbol
372
+ ),
373
+ three_ri_request_type:
374
+ T.nilable(
375
+ Lithic::ThreeDSAuthentication::ThreeRiRequestType::TaggedSymbol
376
+ ),
377
+ transaction: T.nilable(Lithic::ThreeDSAuthentication::Transaction)
378
+ }
379
+ )
380
+ end
381
+ def to_hash
382
+ end
383
+
384
+ # Type of account/card that is being used for the transaction. Maps to EMV 3DS
385
+ # field `acctType`.
386
+ module AccountType
387
+ extend Lithic::Internal::Type::Enum
388
+
389
+ TaggedSymbol =
390
+ T.type_alias do
391
+ T.all(Symbol, Lithic::ThreeDSAuthentication::AccountType)
392
+ end
393
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
394
+
395
+ CREDIT =
396
+ T.let(
397
+ :CREDIT,
398
+ Lithic::ThreeDSAuthentication::AccountType::TaggedSymbol
399
+ )
400
+ DEBIT =
401
+ T.let(
402
+ :DEBIT,
403
+ Lithic::ThreeDSAuthentication::AccountType::TaggedSymbol
404
+ )
405
+ NOT_APPLICABLE =
406
+ T.let(
407
+ :NOT_APPLICABLE,
408
+ Lithic::ThreeDSAuthentication::AccountType::TaggedSymbol
409
+ )
410
+
411
+ sig do
412
+ override.returns(
413
+ T::Array[Lithic::ThreeDSAuthentication::AccountType::TaggedSymbol]
414
+ )
415
+ end
416
+ def self.values
417
+ end
418
+ end
419
+
420
+ # Indicates the outcome of the 3DS authentication process.
421
+ module AuthenticationResult
422
+ extend Lithic::Internal::Type::Enum
423
+
424
+ TaggedSymbol =
425
+ T.type_alias do
426
+ T.all(Symbol, Lithic::ThreeDSAuthentication::AuthenticationResult)
427
+ end
428
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
429
+
430
+ DECLINE =
431
+ T.let(
432
+ :DECLINE,
433
+ Lithic::ThreeDSAuthentication::AuthenticationResult::TaggedSymbol
434
+ )
435
+ SUCCESS =
436
+ T.let(
437
+ :SUCCESS,
438
+ Lithic::ThreeDSAuthentication::AuthenticationResult::TaggedSymbol
439
+ )
440
+ PENDING_CHALLENGE =
441
+ T.let(
442
+ :PENDING_CHALLENGE,
443
+ Lithic::ThreeDSAuthentication::AuthenticationResult::TaggedSymbol
444
+ )
445
+ PENDING_DECISION =
446
+ T.let(
447
+ :PENDING_DECISION,
448
+ Lithic::ThreeDSAuthentication::AuthenticationResult::TaggedSymbol
449
+ )
450
+
451
+ sig do
452
+ override.returns(
453
+ T::Array[
454
+ Lithic::ThreeDSAuthentication::AuthenticationResult::TaggedSymbol
455
+ ]
456
+ )
457
+ end
458
+ def self.values
459
+ end
460
+ end
461
+
462
+ # Indicates whether the expiration date provided by the cardholder during checkout
463
+ # matches Lithic's record of the card's expiration date.
464
+ module CardExpiryCheck
465
+ extend Lithic::Internal::Type::Enum
466
+
467
+ TaggedSymbol =
468
+ T.type_alias do
469
+ T.all(Symbol, Lithic::ThreeDSAuthentication::CardExpiryCheck)
470
+ end
471
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
472
+
473
+ MATCH =
474
+ T.let(
475
+ :MATCH,
476
+ Lithic::ThreeDSAuthentication::CardExpiryCheck::TaggedSymbol
477
+ )
478
+ MISMATCH =
479
+ T.let(
480
+ :MISMATCH,
481
+ Lithic::ThreeDSAuthentication::CardExpiryCheck::TaggedSymbol
482
+ )
483
+ NOT_PRESENT =
484
+ T.let(
485
+ :NOT_PRESENT,
486
+ Lithic::ThreeDSAuthentication::CardExpiryCheck::TaggedSymbol
487
+ )
488
+
489
+ sig do
490
+ override.returns(
491
+ T::Array[
492
+ Lithic::ThreeDSAuthentication::CardExpiryCheck::TaggedSymbol
493
+ ]
494
+ )
495
+ end
496
+ def self.values
497
+ end
498
+ end
499
+
500
+ class Cardholder < Lithic::Internal::Type::BaseModel
501
+ OrHash =
502
+ T.type_alias do
503
+ T.any(
504
+ Lithic::ThreeDSAuthentication::Cardholder,
505
+ Lithic::Internal::AnyHash
506
+ )
507
+ end
508
+
509
+ # Indicates whether the shipping address and billing address provided by the
510
+ # cardholder are the same. This value - and assessment of whether the addresses
511
+ # match - is provided directly in the 3DS request and is not determined by Lithic.
512
+ # Maps to EMV 3DS field `addrMatch`.
513
+ sig { returns(T.nilable(T::Boolean)) }
514
+ attr_accessor :address_match
515
+
516
+ # Lithic's evaluation result comparing the transaction's address data with the
517
+ # cardholder KYC data if it exists. In the event Lithic does not have any
518
+ # Cardholder KYC data, or the transaction does not contain any address data,
519
+ # NOT_PRESENT will be returned
520
+ sig do
521
+ returns(
522
+ T.nilable(
523
+ Lithic::ThreeDSAuthentication::Cardholder::AddressOnFileMatch::TaggedSymbol
524
+ )
525
+ )
526
+ end
527
+ attr_reader :address_on_file_match
528
+
529
+ sig do
530
+ params(
531
+ address_on_file_match:
532
+ Lithic::ThreeDSAuthentication::Cardholder::AddressOnFileMatch::OrSymbol
533
+ ).void
534
+ end
535
+ attr_writer :address_on_file_match
536
+
537
+ # Object containing data on the billing address provided during the transaction.
538
+ sig do
539
+ returns(
540
+ T.nilable(Lithic::ThreeDSAuthentication::Cardholder::BillingAddress)
541
+ )
542
+ end
543
+ attr_reader :billing_address
544
+
545
+ sig do
546
+ params(
547
+ billing_address:
548
+ Lithic::ThreeDSAuthentication::Cardholder::BillingAddress::OrHash
549
+ ).void
550
+ end
551
+ attr_writer :billing_address
552
+
553
+ # Email address that is either provided by the cardholder or is on file with the
554
+ # merchant in a 3RI request. Maps to EMV 3DS field `email`.
555
+ sig { returns(T.nilable(String)) }
556
+ attr_accessor :email
557
+
558
+ # Name of the cardholder. Maps to EMV 3DS field `cardholderName`.
559
+ sig { returns(T.nilable(String)) }
560
+ attr_accessor :name
561
+
562
+ # Home phone number in E.164 format provided by the cardholder. Maps to EMV 3DS
563
+ # fields `homePhone.cc` and `homePhone.subscriber`.
564
+ sig { returns(T.nilable(String)) }
565
+ attr_accessor :phone_number_home
566
+
567
+ # Mobile/cell phone number in E.164 format provided by the cardholder. Maps to EMV
568
+ # 3DS fields `mobilePhone.cc` and `mobilePhone.subscriber`.
569
+ sig { returns(T.nilable(String)) }
570
+ attr_accessor :phone_number_mobile
571
+
572
+ # Work phone number in E.164 format provided by the cardholder. Maps to EMV 3DS
573
+ # fields `workPhone.cc` and `workPhone.subscriber`.
574
+ sig { returns(T.nilable(String)) }
575
+ attr_accessor :phone_number_work
576
+
577
+ # Object containing data on the shipping address provided during the transaction.
578
+ sig do
579
+ returns(
580
+ T.nilable(
581
+ Lithic::ThreeDSAuthentication::Cardholder::ShippingAddress
582
+ )
583
+ )
584
+ end
585
+ attr_reader :shipping_address
586
+
587
+ sig do
588
+ params(
589
+ shipping_address:
590
+ Lithic::ThreeDSAuthentication::Cardholder::ShippingAddress::OrHash
591
+ ).void
592
+ end
593
+ attr_writer :shipping_address
594
+
595
+ # Object containing data about the cardholder provided during the transaction.
596
+ sig do
597
+ params(
598
+ address_match: T.nilable(T::Boolean),
599
+ address_on_file_match:
600
+ Lithic::ThreeDSAuthentication::Cardholder::AddressOnFileMatch::OrSymbol,
601
+ billing_address:
602
+ Lithic::ThreeDSAuthentication::Cardholder::BillingAddress::OrHash,
603
+ email: T.nilable(String),
604
+ name: T.nilable(String),
605
+ phone_number_home: T.nilable(String),
606
+ phone_number_mobile: T.nilable(String),
607
+ phone_number_work: T.nilable(String),
608
+ shipping_address:
609
+ Lithic::ThreeDSAuthentication::Cardholder::ShippingAddress::OrHash
610
+ ).returns(T.attached_class)
611
+ end
612
+ def self.new(
613
+ # Indicates whether the shipping address and billing address provided by the
614
+ # cardholder are the same. This value - and assessment of whether the addresses
615
+ # match - is provided directly in the 3DS request and is not determined by Lithic.
616
+ # Maps to EMV 3DS field `addrMatch`.
617
+ address_match: nil,
618
+ # Lithic's evaluation result comparing the transaction's address data with the
619
+ # cardholder KYC data if it exists. In the event Lithic does not have any
620
+ # Cardholder KYC data, or the transaction does not contain any address data,
621
+ # NOT_PRESENT will be returned
622
+ address_on_file_match: nil,
623
+ # Object containing data on the billing address provided during the transaction.
624
+ billing_address: nil,
625
+ # Email address that is either provided by the cardholder or is on file with the
626
+ # merchant in a 3RI request. Maps to EMV 3DS field `email`.
627
+ email: nil,
628
+ # Name of the cardholder. Maps to EMV 3DS field `cardholderName`.
629
+ name: nil,
630
+ # Home phone number in E.164 format provided by the cardholder. Maps to EMV 3DS
631
+ # fields `homePhone.cc` and `homePhone.subscriber`.
632
+ phone_number_home: nil,
633
+ # Mobile/cell phone number in E.164 format provided by the cardholder. Maps to EMV
634
+ # 3DS fields `mobilePhone.cc` and `mobilePhone.subscriber`.
635
+ phone_number_mobile: nil,
636
+ # Work phone number in E.164 format provided by the cardholder. Maps to EMV 3DS
637
+ # fields `workPhone.cc` and `workPhone.subscriber`.
638
+ phone_number_work: nil,
639
+ # Object containing data on the shipping address provided during the transaction.
640
+ shipping_address: nil
641
+ )
642
+ end
643
+
644
+ sig do
645
+ override.returns(
646
+ {
647
+ address_match: T.nilable(T::Boolean),
648
+ address_on_file_match:
649
+ Lithic::ThreeDSAuthentication::Cardholder::AddressOnFileMatch::TaggedSymbol,
650
+ billing_address:
651
+ Lithic::ThreeDSAuthentication::Cardholder::BillingAddress,
652
+ email: T.nilable(String),
653
+ name: T.nilable(String),
654
+ phone_number_home: T.nilable(String),
655
+ phone_number_mobile: T.nilable(String),
656
+ phone_number_work: T.nilable(String),
657
+ shipping_address:
658
+ Lithic::ThreeDSAuthentication::Cardholder::ShippingAddress
659
+ }
660
+ )
661
+ end
662
+ def to_hash
663
+ end
664
+
665
+ # Lithic's evaluation result comparing the transaction's address data with the
666
+ # cardholder KYC data if it exists. In the event Lithic does not have any
667
+ # Cardholder KYC data, or the transaction does not contain any address data,
668
+ # NOT_PRESENT will be returned
669
+ module AddressOnFileMatch
670
+ extend Lithic::Internal::Type::Enum
671
+
672
+ TaggedSymbol =
673
+ T.type_alias do
674
+ T.all(
675
+ Symbol,
676
+ Lithic::ThreeDSAuthentication::Cardholder::AddressOnFileMatch
677
+ )
678
+ end
679
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
680
+
681
+ MATCH =
682
+ T.let(
683
+ :MATCH,
684
+ Lithic::ThreeDSAuthentication::Cardholder::AddressOnFileMatch::TaggedSymbol
685
+ )
686
+ MATCH_ADDRESS_ONLY =
687
+ T.let(
688
+ :MATCH_ADDRESS_ONLY,
689
+ Lithic::ThreeDSAuthentication::Cardholder::AddressOnFileMatch::TaggedSymbol
690
+ )
691
+ MATCH_ZIP_ONLY =
692
+ T.let(
693
+ :MATCH_ZIP_ONLY,
694
+ Lithic::ThreeDSAuthentication::Cardholder::AddressOnFileMatch::TaggedSymbol
695
+ )
696
+ MISMATCH =
697
+ T.let(
698
+ :MISMATCH,
699
+ Lithic::ThreeDSAuthentication::Cardholder::AddressOnFileMatch::TaggedSymbol
700
+ )
701
+ NOT_PRESENT =
702
+ T.let(
703
+ :NOT_PRESENT,
704
+ Lithic::ThreeDSAuthentication::Cardholder::AddressOnFileMatch::TaggedSymbol
705
+ )
706
+
707
+ sig do
708
+ override.returns(
709
+ T::Array[
710
+ Lithic::ThreeDSAuthentication::Cardholder::AddressOnFileMatch::TaggedSymbol
711
+ ]
712
+ )
713
+ end
714
+ def self.values
715
+ end
716
+ end
717
+
718
+ class BillingAddress < Lithic::Internal::Type::BaseModel
719
+ OrHash =
720
+ T.type_alias do
721
+ T.any(
722
+ Lithic::ThreeDSAuthentication::Cardholder::BillingAddress,
723
+ Lithic::Internal::AnyHash
724
+ )
725
+ end
726
+
727
+ # First line of the street address provided by the cardholder.
728
+ sig { returns(T.nilable(String)) }
729
+ attr_accessor :address1
730
+
731
+ # Second line of the street address provided by the cardholder.
732
+ sig { returns(T.nilable(String)) }
733
+ attr_accessor :address2
734
+
735
+ # Third line of the street address provided by the cardholder.
736
+ sig { returns(T.nilable(String)) }
737
+ attr_accessor :address3
738
+
739
+ # City of the address provided by the cardholder.
740
+ sig { returns(T.nilable(String)) }
741
+ attr_accessor :city
742
+
743
+ # Country of the address provided by the cardholder in ISO 3166-1 alpha-3 format
744
+ # (e.g. USA)
745
+ sig { returns(T.nilable(String)) }
746
+ attr_accessor :country
747
+
748
+ # Postal code (e.g., ZIP code) of the address provided by the cardholder
749
+ sig { returns(T.nilable(String)) }
750
+ attr_accessor :postal_code
751
+
752
+ # Object containing data on the billing address provided during the transaction.
753
+ sig do
754
+ params(
755
+ address1: T.nilable(String),
756
+ address2: T.nilable(String),
757
+ address3: T.nilable(String),
758
+ city: T.nilable(String),
759
+ country: T.nilable(String),
760
+ postal_code: T.nilable(String)
761
+ ).returns(T.attached_class)
762
+ end
763
+ def self.new(
764
+ # First line of the street address provided by the cardholder.
765
+ address1: nil,
766
+ # Second line of the street address provided by the cardholder.
767
+ address2: nil,
768
+ # Third line of the street address provided by the cardholder.
769
+ address3: nil,
770
+ # City of the address provided by the cardholder.
771
+ city: nil,
772
+ # Country of the address provided by the cardholder in ISO 3166-1 alpha-3 format
773
+ # (e.g. USA)
774
+ country: nil,
775
+ # Postal code (e.g., ZIP code) of the address provided by the cardholder
776
+ postal_code: nil
777
+ )
778
+ end
779
+
780
+ sig do
781
+ override.returns(
782
+ {
783
+ address1: T.nilable(String),
784
+ address2: T.nilable(String),
785
+ address3: T.nilable(String),
786
+ city: T.nilable(String),
787
+ country: T.nilable(String),
788
+ postal_code: T.nilable(String)
789
+ }
790
+ )
791
+ end
792
+ def to_hash
793
+ end
794
+ end
795
+
796
+ class ShippingAddress < Lithic::Internal::Type::BaseModel
797
+ OrHash =
798
+ T.type_alias do
799
+ T.any(
800
+ Lithic::ThreeDSAuthentication::Cardholder::ShippingAddress,
801
+ Lithic::Internal::AnyHash
802
+ )
803
+ end
804
+
805
+ # First line of the street address provided by the cardholder.
806
+ sig { returns(T.nilable(String)) }
807
+ attr_accessor :address1
808
+
809
+ # Second line of the street address provided by the cardholder.
810
+ sig { returns(T.nilable(String)) }
811
+ attr_accessor :address2
812
+
813
+ # Third line of the street address provided by the cardholder.
814
+ sig { returns(T.nilable(String)) }
815
+ attr_accessor :address3
816
+
817
+ # City of the address provided by the cardholder.
818
+ sig { returns(T.nilable(String)) }
819
+ attr_accessor :city
820
+
821
+ # Country of the address provided by the cardholder in ISO 3166-1 alpha-3 format
822
+ # (e.g. USA)
823
+ sig { returns(T.nilable(String)) }
824
+ attr_accessor :country
825
+
826
+ # Postal code (e.g., ZIP code) of the address provided by the cardholder
827
+ sig { returns(T.nilable(String)) }
828
+ attr_accessor :postal_code
829
+
830
+ # Object containing data on the shipping address provided during the transaction.
831
+ sig do
832
+ params(
833
+ address1: T.nilable(String),
834
+ address2: T.nilable(String),
835
+ address3: T.nilable(String),
836
+ city: T.nilable(String),
837
+ country: T.nilable(String),
838
+ postal_code: T.nilable(String)
839
+ ).returns(T.attached_class)
840
+ end
841
+ def self.new(
842
+ # First line of the street address provided by the cardholder.
843
+ address1: nil,
844
+ # Second line of the street address provided by the cardholder.
845
+ address2: nil,
846
+ # Third line of the street address provided by the cardholder.
847
+ address3: nil,
848
+ # City of the address provided by the cardholder.
849
+ city: nil,
850
+ # Country of the address provided by the cardholder in ISO 3166-1 alpha-3 format
851
+ # (e.g. USA)
852
+ country: nil,
853
+ # Postal code (e.g., ZIP code) of the address provided by the cardholder
854
+ postal_code: nil
855
+ )
856
+ end
857
+
858
+ sig do
859
+ override.returns(
860
+ {
861
+ address1: T.nilable(String),
862
+ address2: T.nilable(String),
863
+ address3: T.nilable(String),
864
+ city: T.nilable(String),
865
+ country: T.nilable(String),
866
+ postal_code: T.nilable(String)
867
+ }
868
+ )
869
+ end
870
+ def to_hash
871
+ end
872
+ end
873
+ end
874
+
875
+ # Channel in which the authentication occurs. Maps to EMV 3DS field
876
+ # `deviceChannel`.
877
+ module Channel
878
+ extend Lithic::Internal::Type::Enum
879
+
880
+ TaggedSymbol =
881
+ T.type_alias { T.all(Symbol, Lithic::ThreeDSAuthentication::Channel) }
882
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
883
+
884
+ APP_BASED =
885
+ T.let(
886
+ :APP_BASED,
887
+ Lithic::ThreeDSAuthentication::Channel::TaggedSymbol
888
+ )
889
+ BROWSER =
890
+ T.let(:BROWSER, Lithic::ThreeDSAuthentication::Channel::TaggedSymbol)
891
+ THREE_DS_REQUESTOR_INITIATED =
892
+ T.let(
893
+ :THREE_DS_REQUESTOR_INITIATED,
894
+ Lithic::ThreeDSAuthentication::Channel::TaggedSymbol
895
+ )
896
+
897
+ sig do
898
+ override.returns(
899
+ T::Array[Lithic::ThreeDSAuthentication::Channel::TaggedSymbol]
900
+ )
901
+ end
902
+ def self.values
903
+ end
904
+ end
905
+
906
+ class Merchant < Lithic::Internal::Type::BaseModel
907
+ OrHash =
908
+ T.type_alias do
909
+ T.any(
910
+ Lithic::ThreeDSAuthentication::Merchant,
911
+ Lithic::Internal::AnyHash
912
+ )
913
+ end
914
+
915
+ # Object containing additional data indicating additional risk factors related to
916
+ # the e-commerce transaction.
917
+ sig { returns(Lithic::ThreeDSAuthentication::Merchant::RiskIndicator) }
918
+ attr_reader :risk_indicator
919
+
920
+ sig do
921
+ params(
922
+ risk_indicator:
923
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::OrHash
924
+ ).void
925
+ end
926
+ attr_writer :risk_indicator
927
+
928
+ # Merchant identifier as assigned by the acquirer. Maps to EMV 3DS field
929
+ # `acquirerMerchantId`. May not be present for non-payment authentications.
930
+ sig { returns(T.nilable(String)) }
931
+ attr_accessor :id
932
+
933
+ # Country code of the merchant requesting 3DS authentication. Maps to EMV 3DS
934
+ # field `merchantCountryCode`. Permitted values: ISO 3166-1 alpha-3 country code
935
+ # (e.g., USA). May not be present for non-payment authentications.
936
+ sig { returns(T.nilable(String)) }
937
+ attr_accessor :country
938
+
939
+ # Merchant category code assigned to the merchant that describes its business
940
+ # activity type. Maps to EMV 3DS field `mcc`. May not be present for non-payment
941
+ # authentications.
942
+ sig { returns(T.nilable(String)) }
943
+ attr_accessor :mcc
944
+
945
+ # Name of the merchant. Maps to EMV 3DS field `merchantName`. May not be present
946
+ # for non-payment authentications.
947
+ sig { returns(T.nilable(String)) }
948
+ attr_accessor :name
949
+
950
+ # Object containing data about the merchant involved in the e-commerce
951
+ # transaction.
952
+ sig do
953
+ params(
954
+ risk_indicator:
955
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::OrHash,
956
+ id: T.nilable(String),
957
+ country: T.nilable(String),
958
+ mcc: T.nilable(String),
959
+ name: T.nilable(String)
960
+ ).returns(T.attached_class)
961
+ end
962
+ def self.new(
963
+ # Object containing additional data indicating additional risk factors related to
964
+ # the e-commerce transaction.
965
+ risk_indicator:,
966
+ # Merchant identifier as assigned by the acquirer. Maps to EMV 3DS field
967
+ # `acquirerMerchantId`. May not be present for non-payment authentications.
968
+ id: nil,
969
+ # Country code of the merchant requesting 3DS authentication. Maps to EMV 3DS
970
+ # field `merchantCountryCode`. Permitted values: ISO 3166-1 alpha-3 country code
971
+ # (e.g., USA). May not be present for non-payment authentications.
972
+ country: nil,
973
+ # Merchant category code assigned to the merchant that describes its business
974
+ # activity type. Maps to EMV 3DS field `mcc`. May not be present for non-payment
975
+ # authentications.
976
+ mcc: nil,
977
+ # Name of the merchant. Maps to EMV 3DS field `merchantName`. May not be present
978
+ # for non-payment authentications.
979
+ name: nil
980
+ )
981
+ end
982
+
983
+ sig do
984
+ override.returns(
985
+ {
986
+ risk_indicator:
987
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator,
988
+ id: T.nilable(String),
989
+ country: T.nilable(String),
990
+ mcc: T.nilable(String),
991
+ name: T.nilable(String)
992
+ }
993
+ )
994
+ end
995
+ def to_hash
996
+ end
997
+
998
+ class RiskIndicator < Lithic::Internal::Type::BaseModel
999
+ OrHash =
1000
+ T.type_alias do
1001
+ T.any(
1002
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator,
1003
+ Lithic::Internal::AnyHash
1004
+ )
1005
+ end
1006
+
1007
+ # In transactions with electronic delivery, email address to which merchandise is
1008
+ # delivered. Maps to EMV 3DS field `deliveryEmailAddress`.
1009
+ sig { returns(T.nilable(String)) }
1010
+ attr_accessor :delivery_email_address
1011
+
1012
+ # The delivery time frame for the merchandise. Maps to EMV 3DS field
1013
+ # `deliveryTimeframe`.
1014
+ sig do
1015
+ returns(
1016
+ T.nilable(
1017
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::DeliveryTimeFrame::TaggedSymbol
1018
+ )
1019
+ )
1020
+ end
1021
+ attr_accessor :delivery_time_frame
1022
+
1023
+ # In prepaid or gift card purchase transactions, purchase amount total in major
1024
+ # units (e.g., a purchase of USD $205.10 would be 205). Maps to EMV 3DS field
1025
+ # `giftCardAmount`.
1026
+ sig { returns(T.nilable(Integer)) }
1027
+ attr_accessor :gift_card_amount
1028
+
1029
+ # In prepaid or gift card purchase transactions, count of individual prepaid or
1030
+ # gift cards/codes purchased. Maps to EMV 3DS field `giftCardCount`.
1031
+ sig { returns(T.nilable(Integer)) }
1032
+ attr_accessor :gift_card_count
1033
+
1034
+ # In prepaid or gift card purchase transactions, currency code of the gift card.
1035
+ # Maps to EMV 3DS field `giftCardCurr`. Permitted values: ISO 4217 three-character
1036
+ # currency code (e.g., USD).
1037
+ sig { returns(T.nilable(String)) }
1038
+ attr_accessor :gift_card_currency
1039
+
1040
+ # Indicates whether the purchase is for merchandise that is available now or at a
1041
+ # future date. Maps to EMV 3DS field `preOrderPurchaseInd`.
1042
+ sig do
1043
+ returns(
1044
+ T.nilable(
1045
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::OrderAvailability::TaggedSymbol
1046
+ )
1047
+ )
1048
+ end
1049
+ attr_accessor :order_availability
1050
+
1051
+ # In pre-order purchase transactions, the expected date that the merchandise will
1052
+ # be available. Maps to EMV 3DS field `preOrderDate`. Permitted values: Date
1053
+ # string in the ISO 8601 format yyyy-MM-dd'T'hh:mm:ssZ
1054
+ sig { returns(T.nilable(Time)) }
1055
+ attr_accessor :pre_order_available_date
1056
+
1057
+ # Indicates whether the cardholder is reordering previously purchased merchandise.
1058
+ # Maps to EMV 3DS field `reorderItemsInd`.
1059
+ sig do
1060
+ returns(
1061
+ T.nilable(
1062
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::ReorderItems::TaggedSymbol
1063
+ )
1064
+ )
1065
+ end
1066
+ attr_accessor :reorder_items
1067
+
1068
+ # Shipping method that the cardholder chose for the transaction. If purchase
1069
+ # includes one or more item, this indicator is used for the physical goods; if the
1070
+ # purchase only includes digital goods, this indicator is used to describe the
1071
+ # most expensive item purchased. Maps to EMV 3DS field `shipIndicator`.
1072
+ sig do
1073
+ returns(
1074
+ T.nilable(
1075
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::ShippingMethod::TaggedSymbol
1076
+ )
1077
+ )
1078
+ end
1079
+ attr_accessor :shipping_method
1080
+
1081
+ # Object containing additional data indicating additional risk factors related to
1082
+ # the e-commerce transaction.
1083
+ sig do
1084
+ params(
1085
+ delivery_email_address: T.nilable(String),
1086
+ delivery_time_frame:
1087
+ T.nilable(
1088
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::DeliveryTimeFrame::OrSymbol
1089
+ ),
1090
+ gift_card_amount: T.nilable(Integer),
1091
+ gift_card_count: T.nilable(Integer),
1092
+ gift_card_currency: T.nilable(String),
1093
+ order_availability:
1094
+ T.nilable(
1095
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::OrderAvailability::OrSymbol
1096
+ ),
1097
+ pre_order_available_date: T.nilable(Time),
1098
+ reorder_items:
1099
+ T.nilable(
1100
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::ReorderItems::OrSymbol
1101
+ ),
1102
+ shipping_method:
1103
+ T.nilable(
1104
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::ShippingMethod::OrSymbol
1105
+ )
1106
+ ).returns(T.attached_class)
1107
+ end
1108
+ def self.new(
1109
+ # In transactions with electronic delivery, email address to which merchandise is
1110
+ # delivered. Maps to EMV 3DS field `deliveryEmailAddress`.
1111
+ delivery_email_address: nil,
1112
+ # The delivery time frame for the merchandise. Maps to EMV 3DS field
1113
+ # `deliveryTimeframe`.
1114
+ delivery_time_frame: nil,
1115
+ # In prepaid or gift card purchase transactions, purchase amount total in major
1116
+ # units (e.g., a purchase of USD $205.10 would be 205). Maps to EMV 3DS field
1117
+ # `giftCardAmount`.
1118
+ gift_card_amount: nil,
1119
+ # In prepaid or gift card purchase transactions, count of individual prepaid or
1120
+ # gift cards/codes purchased. Maps to EMV 3DS field `giftCardCount`.
1121
+ gift_card_count: nil,
1122
+ # In prepaid or gift card purchase transactions, currency code of the gift card.
1123
+ # Maps to EMV 3DS field `giftCardCurr`. Permitted values: ISO 4217 three-character
1124
+ # currency code (e.g., USD).
1125
+ gift_card_currency: nil,
1126
+ # Indicates whether the purchase is for merchandise that is available now or at a
1127
+ # future date. Maps to EMV 3DS field `preOrderPurchaseInd`.
1128
+ order_availability: nil,
1129
+ # In pre-order purchase transactions, the expected date that the merchandise will
1130
+ # be available. Maps to EMV 3DS field `preOrderDate`. Permitted values: Date
1131
+ # string in the ISO 8601 format yyyy-MM-dd'T'hh:mm:ssZ
1132
+ pre_order_available_date: nil,
1133
+ # Indicates whether the cardholder is reordering previously purchased merchandise.
1134
+ # Maps to EMV 3DS field `reorderItemsInd`.
1135
+ reorder_items: nil,
1136
+ # Shipping method that the cardholder chose for the transaction. If purchase
1137
+ # includes one or more item, this indicator is used for the physical goods; if the
1138
+ # purchase only includes digital goods, this indicator is used to describe the
1139
+ # most expensive item purchased. Maps to EMV 3DS field `shipIndicator`.
1140
+ shipping_method: nil
1141
+ )
1142
+ end
1143
+
1144
+ sig do
1145
+ override.returns(
1146
+ {
1147
+ delivery_email_address: T.nilable(String),
1148
+ delivery_time_frame:
1149
+ T.nilable(
1150
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::DeliveryTimeFrame::TaggedSymbol
1151
+ ),
1152
+ gift_card_amount: T.nilable(Integer),
1153
+ gift_card_count: T.nilable(Integer),
1154
+ gift_card_currency: T.nilable(String),
1155
+ order_availability:
1156
+ T.nilable(
1157
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::OrderAvailability::TaggedSymbol
1158
+ ),
1159
+ pre_order_available_date: T.nilable(Time),
1160
+ reorder_items:
1161
+ T.nilable(
1162
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::ReorderItems::TaggedSymbol
1163
+ ),
1164
+ shipping_method:
1165
+ T.nilable(
1166
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::ShippingMethod::TaggedSymbol
1167
+ )
1168
+ }
1169
+ )
1170
+ end
1171
+ def to_hash
1172
+ end
1173
+
1174
+ # The delivery time frame for the merchandise. Maps to EMV 3DS field
1175
+ # `deliveryTimeframe`.
1176
+ module DeliveryTimeFrame
1177
+ extend Lithic::Internal::Type::Enum
1178
+
1179
+ TaggedSymbol =
1180
+ T.type_alias do
1181
+ T.all(
1182
+ Symbol,
1183
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::DeliveryTimeFrame
1184
+ )
1185
+ end
1186
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1187
+
1188
+ ELECTRONIC_DELIVERY =
1189
+ T.let(
1190
+ :ELECTRONIC_DELIVERY,
1191
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::DeliveryTimeFrame::TaggedSymbol
1192
+ )
1193
+ OVERNIGHT_SHIPPING =
1194
+ T.let(
1195
+ :OVERNIGHT_SHIPPING,
1196
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::DeliveryTimeFrame::TaggedSymbol
1197
+ )
1198
+ SAME_DAY_SHIPPING =
1199
+ T.let(
1200
+ :SAME_DAY_SHIPPING,
1201
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::DeliveryTimeFrame::TaggedSymbol
1202
+ )
1203
+ TWO_DAY_OR_MORE_SHIPPING =
1204
+ T.let(
1205
+ :TWO_DAY_OR_MORE_SHIPPING,
1206
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::DeliveryTimeFrame::TaggedSymbol
1207
+ )
1208
+
1209
+ sig do
1210
+ override.returns(
1211
+ T::Array[
1212
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::DeliveryTimeFrame::TaggedSymbol
1213
+ ]
1214
+ )
1215
+ end
1216
+ def self.values
1217
+ end
1218
+ end
1219
+
1220
+ # Indicates whether the purchase is for merchandise that is available now or at a
1221
+ # future date. Maps to EMV 3DS field `preOrderPurchaseInd`.
1222
+ module OrderAvailability
1223
+ extend Lithic::Internal::Type::Enum
1224
+
1225
+ TaggedSymbol =
1226
+ T.type_alias do
1227
+ T.all(
1228
+ Symbol,
1229
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::OrderAvailability
1230
+ )
1231
+ end
1232
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1233
+
1234
+ FUTURE_AVAILABILITY =
1235
+ T.let(
1236
+ :FUTURE_AVAILABILITY,
1237
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::OrderAvailability::TaggedSymbol
1238
+ )
1239
+ MERCHANDISE_AVAILABLE =
1240
+ T.let(
1241
+ :MERCHANDISE_AVAILABLE,
1242
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::OrderAvailability::TaggedSymbol
1243
+ )
1244
+
1245
+ sig do
1246
+ override.returns(
1247
+ T::Array[
1248
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::OrderAvailability::TaggedSymbol
1249
+ ]
1250
+ )
1251
+ end
1252
+ def self.values
1253
+ end
1254
+ end
1255
+
1256
+ # Indicates whether the cardholder is reordering previously purchased merchandise.
1257
+ # Maps to EMV 3DS field `reorderItemsInd`.
1258
+ module ReorderItems
1259
+ extend Lithic::Internal::Type::Enum
1260
+
1261
+ TaggedSymbol =
1262
+ T.type_alias do
1263
+ T.all(
1264
+ Symbol,
1265
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::ReorderItems
1266
+ )
1267
+ end
1268
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1269
+
1270
+ FIRST_TIME_ORDERED =
1271
+ T.let(
1272
+ :FIRST_TIME_ORDERED,
1273
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::ReorderItems::TaggedSymbol
1274
+ )
1275
+ REORDERED =
1276
+ T.let(
1277
+ :REORDERED,
1278
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::ReorderItems::TaggedSymbol
1279
+ )
1280
+
1281
+ sig do
1282
+ override.returns(
1283
+ T::Array[
1284
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::ReorderItems::TaggedSymbol
1285
+ ]
1286
+ )
1287
+ end
1288
+ def self.values
1289
+ end
1290
+ end
1291
+
1292
+ # Shipping method that the cardholder chose for the transaction. If purchase
1293
+ # includes one or more item, this indicator is used for the physical goods; if the
1294
+ # purchase only includes digital goods, this indicator is used to describe the
1295
+ # most expensive item purchased. Maps to EMV 3DS field `shipIndicator`.
1296
+ module ShippingMethod
1297
+ extend Lithic::Internal::Type::Enum
1298
+
1299
+ TaggedSymbol =
1300
+ T.type_alias do
1301
+ T.all(
1302
+ Symbol,
1303
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::ShippingMethod
1304
+ )
1305
+ end
1306
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1307
+
1308
+ DIGITAL_GOODS =
1309
+ T.let(
1310
+ :DIGITAL_GOODS,
1311
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::ShippingMethod::TaggedSymbol
1312
+ )
1313
+ LOCKER_DELIVERY =
1314
+ T.let(
1315
+ :LOCKER_DELIVERY,
1316
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::ShippingMethod::TaggedSymbol
1317
+ )
1318
+ OTHER =
1319
+ T.let(
1320
+ :OTHER,
1321
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::ShippingMethod::TaggedSymbol
1322
+ )
1323
+ PICK_UP_AND_GO_DELIVERY =
1324
+ T.let(
1325
+ :PICK_UP_AND_GO_DELIVERY,
1326
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::ShippingMethod::TaggedSymbol
1327
+ )
1328
+ SHIP_TO_BILLING_ADDRESS =
1329
+ T.let(
1330
+ :SHIP_TO_BILLING_ADDRESS,
1331
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::ShippingMethod::TaggedSymbol
1332
+ )
1333
+ SHIP_TO_NON_BILLING_ADDRESS =
1334
+ T.let(
1335
+ :SHIP_TO_NON_BILLING_ADDRESS,
1336
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::ShippingMethod::TaggedSymbol
1337
+ )
1338
+ SHIP_TO_OTHER_VERIFIED_ADDRESS =
1339
+ T.let(
1340
+ :SHIP_TO_OTHER_VERIFIED_ADDRESS,
1341
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::ShippingMethod::TaggedSymbol
1342
+ )
1343
+ SHIP_TO_STORE =
1344
+ T.let(
1345
+ :SHIP_TO_STORE,
1346
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::ShippingMethod::TaggedSymbol
1347
+ )
1348
+ TRAVEL_AND_EVENT_TICKETS =
1349
+ T.let(
1350
+ :TRAVEL_AND_EVENT_TICKETS,
1351
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::ShippingMethod::TaggedSymbol
1352
+ )
1353
+
1354
+ sig do
1355
+ override.returns(
1356
+ T::Array[
1357
+ Lithic::ThreeDSAuthentication::Merchant::RiskIndicator::ShippingMethod::TaggedSymbol
1358
+ ]
1359
+ )
1360
+ end
1361
+ def self.values
1362
+ end
1363
+ end
1364
+ end
1365
+ end
1366
+
1367
+ # Either PAYMENT_AUTHENTICATION or NON_PAYMENT_AUTHENTICATION. For
1368
+ # NON_PAYMENT_AUTHENTICATION, additional_data and transaction fields are not
1369
+ # populated.
1370
+ module MessageCategory
1371
+ extend Lithic::Internal::Type::Enum
1372
+
1373
+ TaggedSymbol =
1374
+ T.type_alias do
1375
+ T.all(Symbol, Lithic::ThreeDSAuthentication::MessageCategory)
1376
+ end
1377
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1378
+
1379
+ NON_PAYMENT_AUTHENTICATION =
1380
+ T.let(
1381
+ :NON_PAYMENT_AUTHENTICATION,
1382
+ Lithic::ThreeDSAuthentication::MessageCategory::TaggedSymbol
1383
+ )
1384
+ PAYMENT_AUTHENTICATION =
1385
+ T.let(
1386
+ :PAYMENT_AUTHENTICATION,
1387
+ Lithic::ThreeDSAuthentication::MessageCategory::TaggedSymbol
1388
+ )
1389
+
1390
+ sig do
1391
+ override.returns(
1392
+ T::Array[
1393
+ Lithic::ThreeDSAuthentication::MessageCategory::TaggedSymbol
1394
+ ]
1395
+ )
1396
+ end
1397
+ def self.values
1398
+ end
1399
+ end
1400
+
1401
+ # Indicates whether a challenge is requested for this transaction
1402
+ #
1403
+ # - `NO_PREFERENCE` - No Preference
1404
+ # - `NO_CHALLENGE_REQUESTED` - No Challenge Requested
1405
+ # - `CHALLENGE_PREFERENCE` - Challenge requested (3DS Requestor preference)
1406
+ # - `CHALLENGE_MANDATE` - Challenge requested (Mandate)
1407
+ # - `NO_CHALLENGE_RISK_ALREADY_ASSESSED` - No Challenge requested (Transactional
1408
+ # risk analysis is already performed)
1409
+ # - `DATA_SHARE_ONLY` - No Challenge requested (Data Share Only)
1410
+ # - `OTHER` - Other indicators not captured by above. These are rarely used
1411
+ module ThreeDSRequestorChallengeIndicator
1412
+ extend Lithic::Internal::Type::Enum
1413
+
1414
+ TaggedSymbol =
1415
+ T.type_alias do
1416
+ T.all(
1417
+ Symbol,
1418
+ Lithic::ThreeDSAuthentication::ThreeDSRequestorChallengeIndicator
1419
+ )
1420
+ end
1421
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1422
+
1423
+ NO_PREFERENCE =
1424
+ T.let(
1425
+ :NO_PREFERENCE,
1426
+ Lithic::ThreeDSAuthentication::ThreeDSRequestorChallengeIndicator::TaggedSymbol
1427
+ )
1428
+ NO_CHALLENGE_REQUESTED =
1429
+ T.let(
1430
+ :NO_CHALLENGE_REQUESTED,
1431
+ Lithic::ThreeDSAuthentication::ThreeDSRequestorChallengeIndicator::TaggedSymbol
1432
+ )
1433
+ CHALLENGE_PREFERENCE =
1434
+ T.let(
1435
+ :CHALLENGE_PREFERENCE,
1436
+ Lithic::ThreeDSAuthentication::ThreeDSRequestorChallengeIndicator::TaggedSymbol
1437
+ )
1438
+ CHALLENGE_MANDATE =
1439
+ T.let(
1440
+ :CHALLENGE_MANDATE,
1441
+ Lithic::ThreeDSAuthentication::ThreeDSRequestorChallengeIndicator::TaggedSymbol
1442
+ )
1443
+ NO_CHALLENGE_RISK_ALREADY_ASSESSED =
1444
+ T.let(
1445
+ :NO_CHALLENGE_RISK_ALREADY_ASSESSED,
1446
+ Lithic::ThreeDSAuthentication::ThreeDSRequestorChallengeIndicator::TaggedSymbol
1447
+ )
1448
+ DATA_SHARE_ONLY =
1449
+ T.let(
1450
+ :DATA_SHARE_ONLY,
1451
+ Lithic::ThreeDSAuthentication::ThreeDSRequestorChallengeIndicator::TaggedSymbol
1452
+ )
1453
+ OTHER =
1454
+ T.let(
1455
+ :OTHER,
1456
+ Lithic::ThreeDSAuthentication::ThreeDSRequestorChallengeIndicator::TaggedSymbol
1457
+ )
1458
+
1459
+ sig do
1460
+ override.returns(
1461
+ T::Array[
1462
+ Lithic::ThreeDSAuthentication::ThreeDSRequestorChallengeIndicator::TaggedSymbol
1463
+ ]
1464
+ )
1465
+ end
1466
+ def self.values
1467
+ end
1468
+ end
1469
+
1470
+ class AdditionalData < Lithic::Internal::Type::BaseModel
1471
+ OrHash =
1472
+ T.type_alias do
1473
+ T.any(
1474
+ Lithic::ThreeDSAuthentication::AdditionalData,
1475
+ Lithic::Internal::AnyHash
1476
+ )
1477
+ end
1478
+
1479
+ # Mastercard only: Indicates whether the network would have considered the
1480
+ # authentication request to be low risk or not.
1481
+ sig do
1482
+ returns(
1483
+ T.nilable(
1484
+ Lithic::ThreeDSAuthentication::AdditionalData::NetworkDecision::TaggedSymbol
1485
+ )
1486
+ )
1487
+ end
1488
+ attr_accessor :network_decision
1489
+
1490
+ # Mastercard only: Assessment by the network of the authentication risk level,
1491
+ # with a higher value indicating a higher amount of risk. Permitted values:
1492
+ # Integer between 0-950, in increments of 50.
1493
+ sig { returns(T.nilable(Integer)) }
1494
+ attr_accessor :network_risk_score
1495
+
1496
+ # Object containing additional data about the 3DS request that is beyond the EMV
1497
+ # 3DS standard spec (e.g., specific fields that only certain card networks send
1498
+ # but are not required across all 3DS requests).
1499
+ sig do
1500
+ params(
1501
+ network_decision:
1502
+ T.nilable(
1503
+ Lithic::ThreeDSAuthentication::AdditionalData::NetworkDecision::OrSymbol
1504
+ ),
1505
+ network_risk_score: T.nilable(Integer)
1506
+ ).returns(T.attached_class)
1507
+ end
1508
+ def self.new(
1509
+ # Mastercard only: Indicates whether the network would have considered the
1510
+ # authentication request to be low risk or not.
1511
+ network_decision: nil,
1512
+ # Mastercard only: Assessment by the network of the authentication risk level,
1513
+ # with a higher value indicating a higher amount of risk. Permitted values:
1514
+ # Integer between 0-950, in increments of 50.
1515
+ network_risk_score: nil
1516
+ )
1517
+ end
1518
+
1519
+ sig do
1520
+ override.returns(
1521
+ {
1522
+ network_decision:
1523
+ T.nilable(
1524
+ Lithic::ThreeDSAuthentication::AdditionalData::NetworkDecision::TaggedSymbol
1525
+ ),
1526
+ network_risk_score: T.nilable(Integer)
1527
+ }
1528
+ )
1529
+ end
1530
+ def to_hash
1531
+ end
1532
+
1533
+ # Mastercard only: Indicates whether the network would have considered the
1534
+ # authentication request to be low risk or not.
1535
+ module NetworkDecision
1536
+ extend Lithic::Internal::Type::Enum
1537
+
1538
+ TaggedSymbol =
1539
+ T.type_alias do
1540
+ T.all(
1541
+ Symbol,
1542
+ Lithic::ThreeDSAuthentication::AdditionalData::NetworkDecision
1543
+ )
1544
+ end
1545
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1546
+
1547
+ LOW_RISK =
1548
+ T.let(
1549
+ :LOW_RISK,
1550
+ Lithic::ThreeDSAuthentication::AdditionalData::NetworkDecision::TaggedSymbol
1551
+ )
1552
+ NOT_LOW_RISK =
1553
+ T.let(
1554
+ :NOT_LOW_RISK,
1555
+ Lithic::ThreeDSAuthentication::AdditionalData::NetworkDecision::TaggedSymbol
1556
+ )
1557
+
1558
+ sig do
1559
+ override.returns(
1560
+ T::Array[
1561
+ Lithic::ThreeDSAuthentication::AdditionalData::NetworkDecision::TaggedSymbol
1562
+ ]
1563
+ )
1564
+ end
1565
+ def self.values
1566
+ end
1567
+ end
1568
+ end
1569
+
1570
+ class App < Lithic::Internal::Type::BaseModel
1571
+ OrHash =
1572
+ T.type_alias do
1573
+ T.any(Lithic::ThreeDSAuthentication::App, Lithic::Internal::AnyHash)
1574
+ end
1575
+
1576
+ # Device model: e.g. "Apple iPhone 16".
1577
+ sig { returns(T.nilable(String)) }
1578
+ attr_accessor :device
1579
+
1580
+ # Raw device information - base64-encoded JSON object. Maps to EMV 3DS field
1581
+ # `deviceInfo`.
1582
+ sig { returns(T.nilable(String)) }
1583
+ attr_accessor :device_info
1584
+
1585
+ # IP address of the device.
1586
+ sig { returns(T.nilable(String)) }
1587
+ attr_reader :ip
1588
+
1589
+ sig { params(ip: String).void }
1590
+ attr_writer :ip
1591
+
1592
+ # Latitude coordinate of current device location.
1593
+ sig { returns(T.nilable(Float)) }
1594
+ attr_accessor :latitude
1595
+
1596
+ # Device locale: e.g. "en-US".
1597
+ sig { returns(T.nilable(String)) }
1598
+ attr_accessor :locale
1599
+
1600
+ # Longitude coordinate of current device location.
1601
+ sig { returns(T.nilable(Float)) }
1602
+ attr_accessor :longitude
1603
+
1604
+ # Operating System: e.g. "Android 12", "iOS 17.1".
1605
+ sig { returns(T.nilable(String)) }
1606
+ attr_accessor :os
1607
+
1608
+ # Device platform: Android, iOS, Windows, etc.
1609
+ sig { returns(T.nilable(String)) }
1610
+ attr_accessor :platform
1611
+
1612
+ # Screen height in pixels.
1613
+ sig { returns(T.nilable(Integer)) }
1614
+ attr_accessor :screen_height
1615
+
1616
+ # Screen width in pixels.
1617
+ sig { returns(T.nilable(Integer)) }
1618
+ attr_accessor :screen_width
1619
+
1620
+ # Time zone offset in minutes between UTC and device local time.
1621
+ sig { returns(T.nilable(String)) }
1622
+ attr_accessor :time_zone
1623
+
1624
+ # Object containing data about the app used in the e-commerce transaction. Present
1625
+ # if the channel is 'APP_BASED'.
1626
+ sig do
1627
+ params(
1628
+ device: T.nilable(String),
1629
+ device_info: T.nilable(String),
1630
+ ip: String,
1631
+ latitude: T.nilable(Float),
1632
+ locale: T.nilable(String),
1633
+ longitude: T.nilable(Float),
1634
+ os: T.nilable(String),
1635
+ platform: T.nilable(String),
1636
+ screen_height: T.nilable(Integer),
1637
+ screen_width: T.nilable(Integer),
1638
+ time_zone: T.nilable(String)
1639
+ ).returns(T.attached_class)
1640
+ end
1641
+ def self.new(
1642
+ # Device model: e.g. "Apple iPhone 16".
1643
+ device: nil,
1644
+ # Raw device information - base64-encoded JSON object. Maps to EMV 3DS field
1645
+ # `deviceInfo`.
1646
+ device_info: nil,
1647
+ # IP address of the device.
1648
+ ip: nil,
1649
+ # Latitude coordinate of current device location.
1650
+ latitude: nil,
1651
+ # Device locale: e.g. "en-US".
1652
+ locale: nil,
1653
+ # Longitude coordinate of current device location.
1654
+ longitude: nil,
1655
+ # Operating System: e.g. "Android 12", "iOS 17.1".
1656
+ os: nil,
1657
+ # Device platform: Android, iOS, Windows, etc.
1658
+ platform: nil,
1659
+ # Screen height in pixels.
1660
+ screen_height: nil,
1661
+ # Screen width in pixels.
1662
+ screen_width: nil,
1663
+ # Time zone offset in minutes between UTC and device local time.
1664
+ time_zone: nil
1665
+ )
1666
+ end
1667
+
1668
+ sig do
1669
+ override.returns(
1670
+ {
1671
+ device: T.nilable(String),
1672
+ device_info: T.nilable(String),
1673
+ ip: String,
1674
+ latitude: T.nilable(Float),
1675
+ locale: T.nilable(String),
1676
+ longitude: T.nilable(Float),
1677
+ os: T.nilable(String),
1678
+ platform: T.nilable(String),
1679
+ screen_height: T.nilable(Integer),
1680
+ screen_width: T.nilable(Integer),
1681
+ time_zone: T.nilable(String)
1682
+ }
1683
+ )
1684
+ end
1685
+ def to_hash
1686
+ end
1687
+ end
1688
+
1689
+ # Type of authentication request - i.e., the type of transaction or interaction is
1690
+ # causing the merchant to request an authentication. Maps to EMV 3DS field
1691
+ # `threeDSRequestorAuthenticationInd`.
1692
+ module AuthenticationRequestType
1693
+ extend Lithic::Internal::Type::Enum
1694
+
1695
+ TaggedSymbol =
1696
+ T.type_alias do
1697
+ T.all(
1698
+ Symbol,
1699
+ Lithic::ThreeDSAuthentication::AuthenticationRequestType
1700
+ )
1701
+ end
1702
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1703
+
1704
+ ADD_CARD =
1705
+ T.let(
1706
+ :ADD_CARD,
1707
+ Lithic::ThreeDSAuthentication::AuthenticationRequestType::TaggedSymbol
1708
+ )
1709
+ BILLING_AGREEMENT =
1710
+ T.let(
1711
+ :BILLING_AGREEMENT,
1712
+ Lithic::ThreeDSAuthentication::AuthenticationRequestType::TaggedSymbol
1713
+ )
1714
+ DELAYED_SHIPMENT =
1715
+ T.let(
1716
+ :DELAYED_SHIPMENT,
1717
+ Lithic::ThreeDSAuthentication::AuthenticationRequestType::TaggedSymbol
1718
+ )
1719
+ EMV_TOKEN_CARDHOLDER_VERIFICATION =
1720
+ T.let(
1721
+ :EMV_TOKEN_CARDHOLDER_VERIFICATION,
1722
+ Lithic::ThreeDSAuthentication::AuthenticationRequestType::TaggedSymbol
1723
+ )
1724
+ INSTALLMENT_TRANSACTION =
1725
+ T.let(
1726
+ :INSTALLMENT_TRANSACTION,
1727
+ Lithic::ThreeDSAuthentication::AuthenticationRequestType::TaggedSymbol
1728
+ )
1729
+ MAINTAIN_CARD =
1730
+ T.let(
1731
+ :MAINTAIN_CARD,
1732
+ Lithic::ThreeDSAuthentication::AuthenticationRequestType::TaggedSymbol
1733
+ )
1734
+ PAYMENT_TRANSACTION =
1735
+ T.let(
1736
+ :PAYMENT_TRANSACTION,
1737
+ Lithic::ThreeDSAuthentication::AuthenticationRequestType::TaggedSymbol
1738
+ )
1739
+ RECURRING_TRANSACTION =
1740
+ T.let(
1741
+ :RECURRING_TRANSACTION,
1742
+ Lithic::ThreeDSAuthentication::AuthenticationRequestType::TaggedSymbol
1743
+ )
1744
+ SPLIT_PAYMENT =
1745
+ T.let(
1746
+ :SPLIT_PAYMENT,
1747
+ Lithic::ThreeDSAuthentication::AuthenticationRequestType::TaggedSymbol
1748
+ )
1749
+ SPLIT_SHIPMENT =
1750
+ T.let(
1751
+ :SPLIT_SHIPMENT,
1752
+ Lithic::ThreeDSAuthentication::AuthenticationRequestType::TaggedSymbol
1753
+ )
1754
+
1755
+ sig do
1756
+ override.returns(
1757
+ T::Array[
1758
+ Lithic::ThreeDSAuthentication::AuthenticationRequestType::TaggedSymbol
1759
+ ]
1760
+ )
1761
+ end
1762
+ def self.values
1763
+ end
1764
+ end
1765
+
1766
+ class Browser < Lithic::Internal::Type::BaseModel
1767
+ OrHash =
1768
+ T.type_alias do
1769
+ T.any(
1770
+ Lithic::ThreeDSAuthentication::Browser,
1771
+ Lithic::Internal::AnyHash
1772
+ )
1773
+ end
1774
+
1775
+ # Content of the HTTP accept headers as sent from the cardholder's browser to the
1776
+ # 3DS requestor (e.g., merchant or digital wallet).
1777
+ sig { returns(T.nilable(String)) }
1778
+ attr_accessor :accept_header
1779
+
1780
+ # IP address of the browser as returned by the HTTP headers to the 3DS requestor
1781
+ # (e.g., merchant or digital wallet). Maps to EMV 3DS field `browserIP`.
1782
+ sig { returns(T.nilable(String)) }
1783
+ attr_accessor :ip
1784
+
1785
+ # Indicates whether the cardholder's browser has the ability to execute Java. Maps
1786
+ # to EMV 3DS field `browserJavaEnabled`.
1787
+ sig { returns(T.nilable(T::Boolean)) }
1788
+ attr_accessor :java_enabled
1789
+
1790
+ # Indicates whether the cardholder's browser has the ability to execute
1791
+ # JavaScript. Maps to EMV 3DS field `browserJavascriptEnabled`.
1792
+ sig { returns(T.nilable(T::Boolean)) }
1793
+ attr_accessor :javascript_enabled
1794
+
1795
+ # Language of the cardholder's browser as defined in IETF BCP47. Maps to EMV 3DS
1796
+ # field `browserLanguage`.
1797
+ sig { returns(T.nilable(String)) }
1798
+ attr_accessor :language
1799
+
1800
+ # Time zone offset in minutes between UTC and browser local time. Maps to EMV 3DS
1801
+ # field `browserTz`.
1802
+ sig { returns(T.nilable(String)) }
1803
+ attr_accessor :time_zone
1804
+
1805
+ # Content of the HTTP user-agent header. Maps to EMV 3DS field `browserUserAgent`.
1806
+ sig { returns(T.nilable(String)) }
1807
+ attr_accessor :user_agent
1808
+
1809
+ # Object containing data about the browser used in the e-commerce transaction.
1810
+ # Present if the channel is 'BROWSER'.
1811
+ sig do
1812
+ params(
1813
+ accept_header: T.nilable(String),
1814
+ ip: T.nilable(String),
1815
+ java_enabled: T.nilable(T::Boolean),
1816
+ javascript_enabled: T.nilable(T::Boolean),
1817
+ language: T.nilable(String),
1818
+ time_zone: T.nilable(String),
1819
+ user_agent: T.nilable(String)
1820
+ ).returns(T.attached_class)
1821
+ end
1822
+ def self.new(
1823
+ # Content of the HTTP accept headers as sent from the cardholder's browser to the
1824
+ # 3DS requestor (e.g., merchant or digital wallet).
1825
+ accept_header: nil,
1826
+ # IP address of the browser as returned by the HTTP headers to the 3DS requestor
1827
+ # (e.g., merchant or digital wallet). Maps to EMV 3DS field `browserIP`.
1828
+ ip: nil,
1829
+ # Indicates whether the cardholder's browser has the ability to execute Java. Maps
1830
+ # to EMV 3DS field `browserJavaEnabled`.
1831
+ java_enabled: nil,
1832
+ # Indicates whether the cardholder's browser has the ability to execute
1833
+ # JavaScript. Maps to EMV 3DS field `browserJavascriptEnabled`.
1834
+ javascript_enabled: nil,
1835
+ # Language of the cardholder's browser as defined in IETF BCP47. Maps to EMV 3DS
1836
+ # field `browserLanguage`.
1837
+ language: nil,
1838
+ # Time zone offset in minutes between UTC and browser local time. Maps to EMV 3DS
1839
+ # field `browserTz`.
1840
+ time_zone: nil,
1841
+ # Content of the HTTP user-agent header. Maps to EMV 3DS field `browserUserAgent`.
1842
+ user_agent: nil
1843
+ )
1844
+ end
1845
+
1846
+ sig do
1847
+ override.returns(
1848
+ {
1849
+ accept_header: T.nilable(String),
1850
+ ip: T.nilable(String),
1851
+ java_enabled: T.nilable(T::Boolean),
1852
+ javascript_enabled: T.nilable(T::Boolean),
1853
+ language: T.nilable(String),
1854
+ time_zone: T.nilable(String),
1855
+ user_agent: T.nilable(String)
1856
+ }
1857
+ )
1858
+ end
1859
+ def to_hash
1860
+ end
1861
+ end
1862
+
1863
+ class ChallengeMetadata < Lithic::Internal::Type::BaseModel
1864
+ OrHash =
1865
+ T.type_alias do
1866
+ T.any(
1867
+ Lithic::ThreeDSAuthentication::ChallengeMetadata,
1868
+ Lithic::Internal::AnyHash
1869
+ )
1870
+ end
1871
+
1872
+ # The type of challenge method used for authentication.
1873
+ sig do
1874
+ returns(
1875
+ Lithic::ThreeDSAuthentication::ChallengeMetadata::MethodType::TaggedSymbol
1876
+ )
1877
+ end
1878
+ attr_accessor :method_type
1879
+
1880
+ # Indicates the status of the challenge
1881
+ #
1882
+ # - SUCCESS - Cardholder completed the challenge successfully
1883
+ # - PENDING - Challenge was issued to the cardholder and was not completed yet
1884
+ # - SMS_DELIVERY_FAILED - Lithic confirmed undeliverability of the SMS to the
1885
+ # provided phone number. Relevant only for SMS_OTP method
1886
+ # - CARDHOLDER_TIMEOUT - Cardholder failed to complete the challenge within the
1887
+ # given challenge TTL
1888
+ # - CANCELED_VIA_CHALLENGE_UI - Cardholder canceled the challenge by selecting
1889
+ # "cancel" on the challenge UI
1890
+ # - CANCELED_OOB - Cardholder canceled the challenge out of band
1891
+ # - ATTEMPTS_EXCEEDED - Cardholder failed the challenge by either entering an
1892
+ # incorrect OTP more than the allowed number of times or requesting a new OTP
1893
+ # more than the allowed number of times
1894
+ # - ABORTED - Merchant aborted authentication after a challenge was requested
1895
+ # - ERROR - The challenge failed for a reason different than those documented
1896
+ sig do
1897
+ returns(
1898
+ Lithic::ThreeDSAuthentication::ChallengeMetadata::Status::TaggedSymbol
1899
+ )
1900
+ end
1901
+ attr_accessor :status
1902
+
1903
+ # The phone number used for delivering the OTP. Relevant only for SMS_OTP method.
1904
+ sig { returns(T.nilable(String)) }
1905
+ attr_accessor :phone_number
1906
+
1907
+ # Metadata about the challenge method and delivery. Only present when a challenge
1908
+ # is triggered.
1909
+ sig do
1910
+ params(
1911
+ method_type:
1912
+ Lithic::ThreeDSAuthentication::ChallengeMetadata::MethodType::OrSymbol,
1913
+ status:
1914
+ Lithic::ThreeDSAuthentication::ChallengeMetadata::Status::OrSymbol,
1915
+ phone_number: T.nilable(String)
1916
+ ).returns(T.attached_class)
1917
+ end
1918
+ def self.new(
1919
+ # The type of challenge method used for authentication.
1920
+ method_type:,
1921
+ # Indicates the status of the challenge
1922
+ #
1923
+ # - SUCCESS - Cardholder completed the challenge successfully
1924
+ # - PENDING - Challenge was issued to the cardholder and was not completed yet
1925
+ # - SMS_DELIVERY_FAILED - Lithic confirmed undeliverability of the SMS to the
1926
+ # provided phone number. Relevant only for SMS_OTP method
1927
+ # - CARDHOLDER_TIMEOUT - Cardholder failed to complete the challenge within the
1928
+ # given challenge TTL
1929
+ # - CANCELED_VIA_CHALLENGE_UI - Cardholder canceled the challenge by selecting
1930
+ # "cancel" on the challenge UI
1931
+ # - CANCELED_OOB - Cardholder canceled the challenge out of band
1932
+ # - ATTEMPTS_EXCEEDED - Cardholder failed the challenge by either entering an
1933
+ # incorrect OTP more than the allowed number of times or requesting a new OTP
1934
+ # more than the allowed number of times
1935
+ # - ABORTED - Merchant aborted authentication after a challenge was requested
1936
+ # - ERROR - The challenge failed for a reason different than those documented
1937
+ status:,
1938
+ # The phone number used for delivering the OTP. Relevant only for SMS_OTP method.
1939
+ phone_number: nil
1940
+ )
1941
+ end
1942
+
1943
+ sig do
1944
+ override.returns(
1945
+ {
1946
+ method_type:
1947
+ Lithic::ThreeDSAuthentication::ChallengeMetadata::MethodType::TaggedSymbol,
1948
+ status:
1949
+ Lithic::ThreeDSAuthentication::ChallengeMetadata::Status::TaggedSymbol,
1950
+ phone_number: T.nilable(String)
1951
+ }
1952
+ )
1953
+ end
1954
+ def to_hash
1955
+ end
1956
+
1957
+ # The type of challenge method used for authentication.
1958
+ module MethodType
1959
+ extend Lithic::Internal::Type::Enum
1960
+
1961
+ TaggedSymbol =
1962
+ T.type_alias do
1963
+ T.all(
1964
+ Symbol,
1965
+ Lithic::ThreeDSAuthentication::ChallengeMetadata::MethodType
1966
+ )
1967
+ end
1968
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1969
+
1970
+ SMS_OTP =
1971
+ T.let(
1972
+ :SMS_OTP,
1973
+ Lithic::ThreeDSAuthentication::ChallengeMetadata::MethodType::TaggedSymbol
1974
+ )
1975
+ OUT_OF_BAND =
1976
+ T.let(
1977
+ :OUT_OF_BAND,
1978
+ Lithic::ThreeDSAuthentication::ChallengeMetadata::MethodType::TaggedSymbol
1979
+ )
1980
+
1981
+ sig do
1982
+ override.returns(
1983
+ T::Array[
1984
+ Lithic::ThreeDSAuthentication::ChallengeMetadata::MethodType::TaggedSymbol
1985
+ ]
1986
+ )
1987
+ end
1988
+ def self.values
1989
+ end
1990
+ end
1991
+
1992
+ # Indicates the status of the challenge
1993
+ #
1994
+ # - SUCCESS - Cardholder completed the challenge successfully
1995
+ # - PENDING - Challenge was issued to the cardholder and was not completed yet
1996
+ # - SMS_DELIVERY_FAILED - Lithic confirmed undeliverability of the SMS to the
1997
+ # provided phone number. Relevant only for SMS_OTP method
1998
+ # - CARDHOLDER_TIMEOUT - Cardholder failed to complete the challenge within the
1999
+ # given challenge TTL
2000
+ # - CANCELED_VIA_CHALLENGE_UI - Cardholder canceled the challenge by selecting
2001
+ # "cancel" on the challenge UI
2002
+ # - CANCELED_OOB - Cardholder canceled the challenge out of band
2003
+ # - ATTEMPTS_EXCEEDED - Cardholder failed the challenge by either entering an
2004
+ # incorrect OTP more than the allowed number of times or requesting a new OTP
2005
+ # more than the allowed number of times
2006
+ # - ABORTED - Merchant aborted authentication after a challenge was requested
2007
+ # - ERROR - The challenge failed for a reason different than those documented
2008
+ module Status
2009
+ extend Lithic::Internal::Type::Enum
2010
+
2011
+ TaggedSymbol =
2012
+ T.type_alias do
2013
+ T.all(
2014
+ Symbol,
2015
+ Lithic::ThreeDSAuthentication::ChallengeMetadata::Status
2016
+ )
2017
+ end
2018
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2019
+
2020
+ SUCCESS =
2021
+ T.let(
2022
+ :SUCCESS,
2023
+ Lithic::ThreeDSAuthentication::ChallengeMetadata::Status::TaggedSymbol
2024
+ )
2025
+ PENDING =
2026
+ T.let(
2027
+ :PENDING,
2028
+ Lithic::ThreeDSAuthentication::ChallengeMetadata::Status::TaggedSymbol
2029
+ )
2030
+ SMS_DELIVERY_FAILED =
2031
+ T.let(
2032
+ :SMS_DELIVERY_FAILED,
2033
+ Lithic::ThreeDSAuthentication::ChallengeMetadata::Status::TaggedSymbol
2034
+ )
2035
+ CARDHOLDER_TIMEOUT =
2036
+ T.let(
2037
+ :CARDHOLDER_TIMEOUT,
2038
+ Lithic::ThreeDSAuthentication::ChallengeMetadata::Status::TaggedSymbol
2039
+ )
2040
+ CANCELED_VIA_CHALLENGE_UI =
2041
+ T.let(
2042
+ :CANCELED_VIA_CHALLENGE_UI,
2043
+ Lithic::ThreeDSAuthentication::ChallengeMetadata::Status::TaggedSymbol
2044
+ )
2045
+ CANCELED_OOB =
2046
+ T.let(
2047
+ :CANCELED_OOB,
2048
+ Lithic::ThreeDSAuthentication::ChallengeMetadata::Status::TaggedSymbol
2049
+ )
2050
+ ATTEMPTS_EXCEEDED =
2051
+ T.let(
2052
+ :ATTEMPTS_EXCEEDED,
2053
+ Lithic::ThreeDSAuthentication::ChallengeMetadata::Status::TaggedSymbol
2054
+ )
2055
+ ABORTED =
2056
+ T.let(
2057
+ :ABORTED,
2058
+ Lithic::ThreeDSAuthentication::ChallengeMetadata::Status::TaggedSymbol
2059
+ )
2060
+ ERROR =
2061
+ T.let(
2062
+ :ERROR,
2063
+ Lithic::ThreeDSAuthentication::ChallengeMetadata::Status::TaggedSymbol
2064
+ )
2065
+
2066
+ sig do
2067
+ override.returns(
2068
+ T::Array[
2069
+ Lithic::ThreeDSAuthentication::ChallengeMetadata::Status::TaggedSymbol
2070
+ ]
2071
+ )
2072
+ end
2073
+ def self.values
2074
+ end
2075
+ end
2076
+ end
2077
+
2078
+ # Entity that orchestrates the challenge. This won't be set for authentications
2079
+ # for which a decision has not yet been made (e.g. in-flight customer decisioning
2080
+ # request).
2081
+ module ChallengeOrchestratedBy
2082
+ extend Lithic::Internal::Type::Enum
2083
+
2084
+ TaggedSymbol =
2085
+ T.type_alias do
2086
+ T.all(
2087
+ Symbol,
2088
+ Lithic::ThreeDSAuthentication::ChallengeOrchestratedBy
2089
+ )
2090
+ end
2091
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2092
+
2093
+ LITHIC =
2094
+ T.let(
2095
+ :LITHIC,
2096
+ Lithic::ThreeDSAuthentication::ChallengeOrchestratedBy::TaggedSymbol
2097
+ )
2098
+ CUSTOMER =
2099
+ T.let(
2100
+ :CUSTOMER,
2101
+ Lithic::ThreeDSAuthentication::ChallengeOrchestratedBy::TaggedSymbol
2102
+ )
2103
+ NO_CHALLENGE =
2104
+ T.let(
2105
+ :NO_CHALLENGE,
2106
+ Lithic::ThreeDSAuthentication::ChallengeOrchestratedBy::TaggedSymbol
2107
+ )
2108
+
2109
+ sig do
2110
+ override.returns(
2111
+ T::Array[
2112
+ Lithic::ThreeDSAuthentication::ChallengeOrchestratedBy::TaggedSymbol
2113
+ ]
2114
+ )
2115
+ end
2116
+ def self.values
2117
+ end
2118
+ end
2119
+
2120
+ # Entity that made the authentication decision. This won't be set for
2121
+ # authentications for which a decision has not yet been made (e.g. in-flight
2122
+ # customer decisioning request).
2123
+ module DecisionMadeBy
2124
+ extend Lithic::Internal::Type::Enum
2125
+
2126
+ TaggedSymbol =
2127
+ T.type_alias do
2128
+ T.all(Symbol, Lithic::ThreeDSAuthentication::DecisionMadeBy)
2129
+ end
2130
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2131
+
2132
+ LITHIC_RULES =
2133
+ T.let(
2134
+ :LITHIC_RULES,
2135
+ Lithic::ThreeDSAuthentication::DecisionMadeBy::TaggedSymbol
2136
+ )
2137
+ LITHIC_DEFAULT =
2138
+ T.let(
2139
+ :LITHIC_DEFAULT,
2140
+ Lithic::ThreeDSAuthentication::DecisionMadeBy::TaggedSymbol
2141
+ )
2142
+ CUSTOMER_RULES =
2143
+ T.let(
2144
+ :CUSTOMER_RULES,
2145
+ Lithic::ThreeDSAuthentication::DecisionMadeBy::TaggedSymbol
2146
+ )
2147
+ CUSTOMER_ENDPOINT =
2148
+ T.let(
2149
+ :CUSTOMER_ENDPOINT,
2150
+ Lithic::ThreeDSAuthentication::DecisionMadeBy::TaggedSymbol
2151
+ )
2152
+ NETWORK =
2153
+ T.let(
2154
+ :NETWORK,
2155
+ Lithic::ThreeDSAuthentication::DecisionMadeBy::TaggedSymbol
2156
+ )
2157
+ UNKNOWN =
2158
+ T.let(
2159
+ :UNKNOWN,
2160
+ Lithic::ThreeDSAuthentication::DecisionMadeBy::TaggedSymbol
2161
+ )
2162
+
2163
+ sig do
2164
+ override.returns(
2165
+ T::Array[
2166
+ Lithic::ThreeDSAuthentication::DecisionMadeBy::TaggedSymbol
2167
+ ]
2168
+ )
2169
+ end
2170
+ def self.values
2171
+ end
2172
+ end
2173
+
2174
+ # Type of 3DS Requestor Initiated (3RI) request — i.e., a 3DS authentication that
2175
+ # takes place at the initiation of the merchant rather than the cardholder. The
2176
+ # most common example of this is where a merchant is authenticating before billing
2177
+ # for a recurring transaction such as a pay TV subscription or a utility bill.
2178
+ # Maps to EMV 3DS field `threeRIInd`.
2179
+ module ThreeRiRequestType
2180
+ extend Lithic::Internal::Type::Enum
2181
+
2182
+ TaggedSymbol =
2183
+ T.type_alias do
2184
+ T.all(Symbol, Lithic::ThreeDSAuthentication::ThreeRiRequestType)
2185
+ end
2186
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2187
+
2188
+ ACCOUNT_VERIFICATION =
2189
+ T.let(
2190
+ :ACCOUNT_VERIFICATION,
2191
+ Lithic::ThreeDSAuthentication::ThreeRiRequestType::TaggedSymbol
2192
+ )
2193
+ ADD_CARD =
2194
+ T.let(
2195
+ :ADD_CARD,
2196
+ Lithic::ThreeDSAuthentication::ThreeRiRequestType::TaggedSymbol
2197
+ )
2198
+ BILLING_AGREEMENT =
2199
+ T.let(
2200
+ :BILLING_AGREEMENT,
2201
+ Lithic::ThreeDSAuthentication::ThreeRiRequestType::TaggedSymbol
2202
+ )
2203
+ CARD_SECURITY_CODE_STATUS_CHECK =
2204
+ T.let(
2205
+ :CARD_SECURITY_CODE_STATUS_CHECK,
2206
+ Lithic::ThreeDSAuthentication::ThreeRiRequestType::TaggedSymbol
2207
+ )
2208
+ DELAYED_SHIPMENT =
2209
+ T.let(
2210
+ :DELAYED_SHIPMENT,
2211
+ Lithic::ThreeDSAuthentication::ThreeRiRequestType::TaggedSymbol
2212
+ )
2213
+ DEVICE_BINDING_STATUS_CHECK =
2214
+ T.let(
2215
+ :DEVICE_BINDING_STATUS_CHECK,
2216
+ Lithic::ThreeDSAuthentication::ThreeRiRequestType::TaggedSymbol
2217
+ )
2218
+ INSTALLMENT_TRANSACTION =
2219
+ T.let(
2220
+ :INSTALLMENT_TRANSACTION,
2221
+ Lithic::ThreeDSAuthentication::ThreeRiRequestType::TaggedSymbol
2222
+ )
2223
+ MAIL_ORDER =
2224
+ T.let(
2225
+ :MAIL_ORDER,
2226
+ Lithic::ThreeDSAuthentication::ThreeRiRequestType::TaggedSymbol
2227
+ )
2228
+ MAINTAIN_CARD_INFO =
2229
+ T.let(
2230
+ :MAINTAIN_CARD_INFO,
2231
+ Lithic::ThreeDSAuthentication::ThreeRiRequestType::TaggedSymbol
2232
+ )
2233
+ OTHER_PAYMENT =
2234
+ T.let(
2235
+ :OTHER_PAYMENT,
2236
+ Lithic::ThreeDSAuthentication::ThreeRiRequestType::TaggedSymbol
2237
+ )
2238
+ RECURRING_TRANSACTION =
2239
+ T.let(
2240
+ :RECURRING_TRANSACTION,
2241
+ Lithic::ThreeDSAuthentication::ThreeRiRequestType::TaggedSymbol
2242
+ )
2243
+ SPLIT_PAYMENT =
2244
+ T.let(
2245
+ :SPLIT_PAYMENT,
2246
+ Lithic::ThreeDSAuthentication::ThreeRiRequestType::TaggedSymbol
2247
+ )
2248
+ SPLIT_SHIPMENT =
2249
+ T.let(
2250
+ :SPLIT_SHIPMENT,
2251
+ Lithic::ThreeDSAuthentication::ThreeRiRequestType::TaggedSymbol
2252
+ )
2253
+ TELEPHONE_ORDER =
2254
+ T.let(
2255
+ :TELEPHONE_ORDER,
2256
+ Lithic::ThreeDSAuthentication::ThreeRiRequestType::TaggedSymbol
2257
+ )
2258
+ TOP_UP =
2259
+ T.let(
2260
+ :TOP_UP,
2261
+ Lithic::ThreeDSAuthentication::ThreeRiRequestType::TaggedSymbol
2262
+ )
2263
+ TRUST_LIST_STATUS_CHECK =
2264
+ T.let(
2265
+ :TRUST_LIST_STATUS_CHECK,
2266
+ Lithic::ThreeDSAuthentication::ThreeRiRequestType::TaggedSymbol
2267
+ )
2268
+
2269
+ sig do
2270
+ override.returns(
2271
+ T::Array[
2272
+ Lithic::ThreeDSAuthentication::ThreeRiRequestType::TaggedSymbol
2273
+ ]
2274
+ )
2275
+ end
2276
+ def self.values
2277
+ end
2278
+ end
2279
+
2280
+ class Transaction < Lithic::Internal::Type::BaseModel
2281
+ OrHash =
2282
+ T.type_alias do
2283
+ T.any(
2284
+ Lithic::ThreeDSAuthentication::Transaction,
2285
+ Lithic::Internal::AnyHash
2286
+ )
2287
+ end
2288
+
2289
+ # Amount of the purchase in minor units of currency with all punctuation removed.
2290
+ # Maps to EMV 3DS field `purchaseAmount`.
2291
+ sig { returns(Float) }
2292
+ attr_accessor :amount
2293
+
2294
+ # Approximate amount of the purchase in minor units of cardholder currency.
2295
+ # Derived from `amount` using a daily conversion rate.
2296
+ sig { returns(T.nilable(Float)) }
2297
+ attr_accessor :cardholder_amount
2298
+
2299
+ # Currency of the purchase. Maps to EMV 3DS field `purchaseCurrency`. Permitted
2300
+ # values: ISO 4217 three-character currency code (e.g., USD).
2301
+ sig { returns(String) }
2302
+ attr_accessor :currency
2303
+
2304
+ # Minor units of currency, as specified in ISO 4217 currency exponent. Maps to EMV
2305
+ # 3DS field `purchaseExponent`.
2306
+ sig { returns(Float) }
2307
+ attr_accessor :currency_exponent
2308
+
2309
+ # Date and time when the authentication was generated by the merchant/acquirer's
2310
+ # 3DS server. Maps to EMV 3DS field `purchaseDate`. Permitted values: Date string
2311
+ # in the ISO 8601 format yyyy-MM-dd'T'hh:mm:ssZ.
2312
+ sig { returns(Time) }
2313
+ attr_accessor :date_time
2314
+
2315
+ # Type of the transaction for which a 3DS authentication request is occurring.
2316
+ # Maps to EMV 3DS field `transType`.
2317
+ sig do
2318
+ returns(
2319
+ T.nilable(
2320
+ Lithic::ThreeDSAuthentication::Transaction::Type::TaggedSymbol
2321
+ )
2322
+ )
2323
+ end
2324
+ attr_accessor :type
2325
+
2326
+ # Object containing data about the e-commerce transaction for which the merchant
2327
+ # is requesting authentication.
2328
+ sig do
2329
+ params(
2330
+ amount: Float,
2331
+ cardholder_amount: T.nilable(Float),
2332
+ currency: String,
2333
+ currency_exponent: Float,
2334
+ date_time: Time,
2335
+ type:
2336
+ T.nilable(
2337
+ Lithic::ThreeDSAuthentication::Transaction::Type::OrSymbol
2338
+ )
2339
+ ).returns(T.attached_class)
2340
+ end
2341
+ def self.new(
2342
+ # Amount of the purchase in minor units of currency with all punctuation removed.
2343
+ # Maps to EMV 3DS field `purchaseAmount`.
2344
+ amount:,
2345
+ # Approximate amount of the purchase in minor units of cardholder currency.
2346
+ # Derived from `amount` using a daily conversion rate.
2347
+ cardholder_amount:,
2348
+ # Currency of the purchase. Maps to EMV 3DS field `purchaseCurrency`. Permitted
2349
+ # values: ISO 4217 three-character currency code (e.g., USD).
2350
+ currency:,
2351
+ # Minor units of currency, as specified in ISO 4217 currency exponent. Maps to EMV
2352
+ # 3DS field `purchaseExponent`.
2353
+ currency_exponent:,
2354
+ # Date and time when the authentication was generated by the merchant/acquirer's
2355
+ # 3DS server. Maps to EMV 3DS field `purchaseDate`. Permitted values: Date string
2356
+ # in the ISO 8601 format yyyy-MM-dd'T'hh:mm:ssZ.
2357
+ date_time:,
2358
+ # Type of the transaction for which a 3DS authentication request is occurring.
2359
+ # Maps to EMV 3DS field `transType`.
2360
+ type:
2361
+ )
2362
+ end
2363
+
2364
+ sig do
2365
+ override.returns(
2366
+ {
2367
+ amount: Float,
2368
+ cardholder_amount: T.nilable(Float),
2369
+ currency: String,
2370
+ currency_exponent: Float,
2371
+ date_time: Time,
2372
+ type:
2373
+ T.nilable(
2374
+ Lithic::ThreeDSAuthentication::Transaction::Type::TaggedSymbol
2375
+ )
2376
+ }
2377
+ )
2378
+ end
2379
+ def to_hash
2380
+ end
2381
+
2382
+ # Type of the transaction for which a 3DS authentication request is occurring.
2383
+ # Maps to EMV 3DS field `transType`.
2384
+ module Type
2385
+ extend Lithic::Internal::Type::Enum
2386
+
2387
+ TaggedSymbol =
2388
+ T.type_alias do
2389
+ T.all(Symbol, Lithic::ThreeDSAuthentication::Transaction::Type)
2390
+ end
2391
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2392
+
2393
+ ACCOUNT_FUNDING =
2394
+ T.let(
2395
+ :ACCOUNT_FUNDING,
2396
+ Lithic::ThreeDSAuthentication::Transaction::Type::TaggedSymbol
2397
+ )
2398
+ CHECK_ACCEPTANCE =
2399
+ T.let(
2400
+ :CHECK_ACCEPTANCE,
2401
+ Lithic::ThreeDSAuthentication::Transaction::Type::TaggedSymbol
2402
+ )
2403
+ GOODS_SERVICE_PURCHASE =
2404
+ T.let(
2405
+ :GOODS_SERVICE_PURCHASE,
2406
+ Lithic::ThreeDSAuthentication::Transaction::Type::TaggedSymbol
2407
+ )
2408
+ PREPAID_ACTIVATION_AND_LOAD =
2409
+ T.let(
2410
+ :PREPAID_ACTIVATION_AND_LOAD,
2411
+ Lithic::ThreeDSAuthentication::Transaction::Type::TaggedSymbol
2412
+ )
2413
+ QUASI_CASH_TRANSACTION =
2414
+ T.let(
2415
+ :QUASI_CASH_TRANSACTION,
2416
+ Lithic::ThreeDSAuthentication::Transaction::Type::TaggedSymbol
2417
+ )
2418
+
2419
+ sig do
2420
+ override.returns(
2421
+ T::Array[
2422
+ Lithic::ThreeDSAuthentication::Transaction::Type::TaggedSymbol
2423
+ ]
2424
+ )
2425
+ end
2426
+ def self.values
2427
+ end
2428
+ end
2429
+ end
2430
+ end
2431
+ end
2432
+ end