fortis-python-sdk 1.0.0__py3-none-any.whl

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 (699) hide show
  1. fortis_python_sdk-1.0.0.dist-info/METADATA +183 -0
  2. fortis_python_sdk-1.0.0.dist-info/RECORD +699 -0
  3. fortis_python_sdk-1.0.0.dist-info/WHEEL +5 -0
  4. fortis_python_sdk-1.0.0.dist-info/licenses/LICENSE +28 -0
  5. fortis_python_sdk-1.0.0.dist-info/top_level.txt +1 -0
  6. fortisapi/__init__.py +12 -0
  7. fortisapi/api_helper.py +19 -0
  8. fortisapi/configuration.py +294 -0
  9. fortisapi/controllers/__init__.py +40 -0
  10. fortisapi/controllers/apple_pay_validate_merchant_controller.py +84 -0
  11. fortisapi/controllers/async_processing_controller.py +78 -0
  12. fortisapi/controllers/base_controller.py +67 -0
  13. fortisapi/controllers/batches_controller.py +179 -0
  14. fortisapi/controllers/calculate_surcharge_controller.py +76 -0
  15. fortisapi/controllers/contacts_controller.py +398 -0
  16. fortisapi/controllers/declined_recurring_transactions_controller.py +326 -0
  17. fortisapi/controllers/device_terms_controller.py +242 -0
  18. fortisapi/controllers/elements_controller.py +129 -0
  19. fortisapi/controllers/enterprise_link_redirect_controller.py +81 -0
  20. fortisapi/controllers/full_boarding_controller.py +85 -0
  21. fortisapi/controllers/level_3_data_controller.py +219 -0
  22. fortisapi/controllers/locations_controller.py +478 -0
  23. fortisapi/controllers/m_3_ds_authentication_controller.py +90 -0
  24. fortisapi/controllers/m_3_ds_transactions_controller.py +84 -0
  25. fortisapi/controllers/merchant_deposits_controller.py +295 -0
  26. fortisapi/controllers/merchant_details_controller.py +82 -0
  27. fortisapi/controllers/on_boarding_controller.py +100 -0
  28. fortisapi/controllers/paylinks_controller.py +396 -0
  29. fortisapi/controllers/payment_card_reader_token_controller.py +76 -0
  30. fortisapi/controllers/quick_invoices_controller.py +531 -0
  31. fortisapi/controllers/recurring_controller.py +545 -0
  32. fortisapi/controllers/reports_controller.py +209 -0
  33. fortisapi/controllers/signatures_controller.py +249 -0
  34. fortisapi/controllers/tags_controller.py +328 -0
  35. fortisapi/controllers/terminals_controller.py +304 -0
  36. fortisapi/controllers/tickets_controller.py +249 -0
  37. fortisapi/controllers/tokens_controller.py +679 -0
  38. fortisapi/controllers/transaction_ach_retries_controller.py +250 -0
  39. fortisapi/controllers/transactions_ach_controller.py +398 -0
  40. fortisapi/controllers/transactions_cash_controller.py +123 -0
  41. fortisapi/controllers/transactions_credit_card_controller.py +1796 -0
  42. fortisapi/controllers/transactions_ebt_card_controller.py +147 -0
  43. fortisapi/controllers/transactions_read_controller.py +248 -0
  44. fortisapi/controllers/transactions_updates_controller.py +435 -0
  45. fortisapi/controllers/webhooks_controller.py +493 -0
  46. fortisapi/exceptions/__init__.py +8 -0
  47. fortisapi/exceptions/api_exception.py +36 -0
  48. fortisapi/exceptions/response_401_token_exception.py +77 -0
  49. fortisapi/exceptions/response_412_exception.py +109 -0
  50. fortisapi/exceptions/response_error_exception.py +109 -0
  51. fortisapi/fortisapi_client.py +360 -0
  52. fortisapi/http/__init__.py +11 -0
  53. fortisapi/http/auth/__init__.py +8 -0
  54. fortisapi/http/auth/access_token.py +100 -0
  55. fortisapi/http/auth/developer_id.py +100 -0
  56. fortisapi/http/auth/user_api_key.py +100 -0
  57. fortisapi/http/auth/user_id.py +100 -0
  58. fortisapi/http/http_call_back.py +20 -0
  59. fortisapi/http/http_client_provider.py +23 -0
  60. fortisapi/http/http_method_enum.py +25 -0
  61. fortisapi/http/http_request.py +55 -0
  62. fortisapi/http/http_response.py +45 -0
  63. fortisapi/http/proxy_settings.py +50 -0
  64. fortisapi/models/__init__.py +636 -0
  65. fortisapi/models/account_info.py +519 -0
  66. fortisapi/models/account_type_12_enum.py +47 -0
  67. fortisapi/models/account_type_13_enum.py +51 -0
  68. fortisapi/models/account_type_16_enum.py +51 -0
  69. fortisapi/models/account_type_enum.py +83 -0
  70. fortisapi/models/account_vault.py +1408 -0
  71. fortisapi/models/account_vault_cau_log.py +201 -0
  72. fortisapi/models/account_vault_cau_product_transaction.py +754 -0
  73. fortisapi/models/ach_product_transaction.py +3048 -0
  74. fortisapi/models/ach_sec_code_1_enum.py +59 -0
  75. fortisapi/models/ach_sec_code_31_enum.py +61 -0
  76. fortisapi/models/ach_sec_code_3_enum.py +59 -0
  77. fortisapi/models/ach_sec_code_enum.py +67 -0
  78. fortisapi/models/acs_challenge_mandated_enum.py +52 -0
  79. fortisapi/models/action_enum.py +70 -0
  80. fortisapi/models/active_recurring.py +975 -0
  81. fortisapi/models/additional_access.py +102 -0
  82. fortisapi/models/additional_amount.py +201 -0
  83. fortisapi/models/addon.py +222 -0
  84. fortisapi/models/addon_transaction_type_enum.py +57 -0
  85. fortisapi/models/address.py +205 -0
  86. fortisapi/models/address_1.py +228 -0
  87. fortisapi/models/address_2.py +204 -0
  88. fortisapi/models/address_71.py +186 -0
  89. fortisapi/models/address_match_enum.py +54 -0
  90. fortisapi/models/address_type_enum.py +50 -0
  91. fortisapi/models/all_tag.py +194 -0
  92. fortisapi/models/alt_bank_account.py +180 -0
  93. fortisapi/models/amount_ind_enum.py +121 -0
  94. fortisapi/models/app_delivery_enum.py +50 -0
  95. fortisapi/models/auth_currency_enum.py +168 -0
  96. fortisapi/models/avs_enum.py +56 -0
  97. fortisapi/models/balance.py +154 -0
  98. fortisapi/models/bank_account.py +156 -0
  99. fortisapi/models/bank_account_1.py +186 -0
  100. fortisapi/models/batch_risk_config.py +132 -0
  101. fortisapi/models/billing_address.py +233 -0
  102. fortisapi/models/billing_address_1.py +258 -0
  103. fortisapi/models/billing_address_24.py +263 -0
  104. fortisapi/models/billing_address_5.py +155 -0
  105. fortisapi/models/body.py +134 -0
  106. fortisapi/models/branding_domain.py +867 -0
  107. fortisapi/models/branding_domain_1.py +867 -0
  108. fortisapi/models/broad_info.py +241 -0
  109. fortisapi/models/browser_information.py +401 -0
  110. fortisapi/models/business_category_enum.py +77 -0
  111. fortisapi/models/business_type_enum.py +365 -0
  112. fortisapi/models/cardholder.py +324 -0
  113. fortisapi/models/cardholder_account.py +211 -0
  114. fortisapi/models/category_enum.py +133 -0
  115. fortisapi/models/cau_subscribe_type_code_enum.py +50 -0
  116. fortisapi/models/cau_subscribe_type_id_enum.py +50 -0
  117. fortisapi/models/cau_summary_status_id_enum.py +53 -0
  118. fortisapi/models/cc_product_transaction.py +3048 -0
  119. fortisapi/models/ch_acc_age_ind_enum.py +66 -0
  120. fortisapi/models/ch_acc_change_ind_enum.py +63 -0
  121. fortisapi/models/ch_acc_pw_change_ind_enum.py +67 -0
  122. fortisapi/models/challenge_message_extension.py +177 -0
  123. fortisapi/models/challenge_window_size_enum.py +73 -0
  124. fortisapi/models/changelog.py +280 -0
  125. fortisapi/models/changelog_detail.py +178 -0
  126. fortisapi/models/children.py +822 -0
  127. fortisapi/models/communication_type_enum.py +50 -0
  128. fortisapi/models/conditions.py +125 -0
  129. fortisapi/models/conditions_18.py +146 -0
  130. fortisapi/models/conditions_181.py +146 -0
  131. fortisapi/models/conditions_191.py +146 -0
  132. fortisapi/models/conditions_27.py +125 -0
  133. fortisapi/models/conditions_4.py +146 -0
  134. fortisapi/models/conditions_41.py +146 -0
  135. fortisapi/models/conditions_42.py +146 -0
  136. fortisapi/models/conditions_43.py +146 -0
  137. fortisapi/models/contact.py +179 -0
  138. fortisapi/models/contact_1.py +822 -0
  139. fortisapi/models/contact_9.py +169 -0
  140. fortisapi/models/contact_user_default_entry_page_enum.py +59 -0
  141. fortisapi/models/context.py +125 -0
  142. fortisapi/models/country_enum.py +47 -0
  143. fortisapi/models/created_user.py +1197 -0
  144. fortisapi/models/currency_code_enum.py +186 -0
  145. fortisapi/models/currency_type.py +131 -0
  146. fortisapi/models/data.py +225 -0
  147. fortisapi/models/data_1.py +105 -0
  148. fortisapi/models/data_10.py +1283 -0
  149. fortisapi/models/data_11.py +948 -0
  150. fortisapi/models/data_12.py +369 -0
  151. fortisapi/models/data_13.py +263 -0
  152. fortisapi/models/data_14.py +552 -0
  153. fortisapi/models/data_15.py +102 -0
  154. fortisapi/models/data_16.py +930 -0
  155. fortisapi/models/data_17.py +920 -0
  156. fortisapi/models/data_18.py +102 -0
  157. fortisapi/models/data_19.py +631 -0
  158. fortisapi/models/data_2.py +1134 -0
  159. fortisapi/models/data_20.py +1657 -0
  160. fortisapi/models/data_21.py +223 -0
  161. fortisapi/models/data_22.py +1341 -0
  162. fortisapi/models/data_23.py +245 -0
  163. fortisapi/models/data_24.py +219 -0
  164. fortisapi/models/data_25.py +1456 -0
  165. fortisapi/models/data_26.py +376 -0
  166. fortisapi/models/data_27.py +1681 -0
  167. fortisapi/models/data_28.py +380 -0
  168. fortisapi/models/data_29.py +4233 -0
  169. fortisapi/models/data_3.py +296 -0
  170. fortisapi/models/data_30.py +421 -0
  171. fortisapi/models/data_31.py +150 -0
  172. fortisapi/models/data_34.py +103 -0
  173. fortisapi/models/data_35.py +259 -0
  174. fortisapi/models/data_36.py +537 -0
  175. fortisapi/models/data_4.py +482 -0
  176. fortisapi/models/data_5.py +171 -0
  177. fortisapi/models/data_6.py +469 -0
  178. fortisapi/models/data_7.py +230 -0
  179. fortisapi/models/data_8.py +616 -0
  180. fortisapi/models/data_9.py +129 -0
  181. fortisapi/models/debit_credit_enum.py +48 -0
  182. fortisapi/models/declined_recurring_notification.py +251 -0
  183. fortisapi/models/default_transaction_type_enum.py +50 -0
  184. fortisapi/models/delivery_method_enum.py +61 -0
  185. fortisapi/models/delivery_timeframe_enum.py +61 -0
  186. fortisapi/models/deposit_type_enum.py +50 -0
  187. fortisapi/models/detail.py +173 -0
  188. fortisapi/models/detail_1.py +323 -0
  189. fortisapi/models/detail_2.py +273 -0
  190. fortisapi/models/developer_company.py +270 -0
  191. fortisapi/models/device.py +123 -0
  192. fortisapi/models/device_binding_status_enum.py +373 -0
  193. fortisapi/models/device_channel_enum.py +51 -0
  194. fortisapi/models/document.py +115 -0
  195. fortisapi/models/e_format_enum.py +62 -0
  196. fortisapi/models/ebt_plan_enum.py +50 -0
  197. fortisapi/models/ebt_type_enum.py +61 -0
  198. fortisapi/models/email_blacklist.py +178 -0
  199. fortisapi/models/email_enum.py +47 -0
  200. fortisapi/models/emv_receipt_data.py +244 -0
  201. fortisapi/models/entry_mode_id_enum.py +73 -0
  202. fortisapi/models/expand_108_enum.py +48 -0
  203. fortisapi/models/expand_10_enum.py +42 -0
  204. fortisapi/models/expand_11_enum.py +99 -0
  205. fortisapi/models/expand_15_enum.py +42 -0
  206. fortisapi/models/expand_17_enum.py +96 -0
  207. fortisapi/models/expand_18_enum.py +84 -0
  208. fortisapi/models/expand_1_enum.py +75 -0
  209. fortisapi/models/expand_26_enum.py +87 -0
  210. fortisapi/models/expand_34_enum.py +42 -0
  211. fortisapi/models/expand_37_enum.py +42 -0
  212. fortisapi/models/expand_40_enum.py +63 -0
  213. fortisapi/models/expand_44_enum.py +48 -0
  214. fortisapi/models/expand_47_enum.py +69 -0
  215. fortisapi/models/expand_57_enum.py +54 -0
  216. fortisapi/models/expand_5_enum.py +48 -0
  217. fortisapi/models/expand_60_enum.py +171 -0
  218. fortisapi/models/expand_8_enum.py +57 -0
  219. fortisapi/models/expand_enum.py +51 -0
  220. fortisapi/models/field.py +125 -0
  221. fortisapi/models/field_20.py +267 -0
  222. fortisapi/models/field_27_enum.py +129 -0
  223. fortisapi/models/field_28_enum.py +168 -0
  224. fortisapi/models/field_30_enum.py +75 -0
  225. fortisapi/models/field_31_enum.py +87 -0
  226. fortisapi/models/field_33_enum.py +183 -0
  227. fortisapi/models/field_34_enum.py +195 -0
  228. fortisapi/models/field_35_enum.py +180 -0
  229. fortisapi/models/field_36_enum.py +192 -0
  230. fortisapi/models/field_37_enum.py +102 -0
  231. fortisapi/models/field_39_enum.py +186 -0
  232. fortisapi/models/field_41_enum.py +237 -0
  233. fortisapi/models/field_43_enum.py +198 -0
  234. fortisapi/models/field_45_enum.py +78 -0
  235. fortisapi/models/field_46_enum.py +126 -0
  236. fortisapi/models/field_47_enum.py +60 -0
  237. fortisapi/models/field_49_enum.py +57 -0
  238. fortisapi/models/field_51_enum.py +210 -0
  239. fortisapi/models/field_53_enum.py +84 -0
  240. fortisapi/models/field_55_enum.py +231 -0
  241. fortisapi/models/field_57_enum.py +75 -0
  242. fortisapi/models/field_59_enum.py +510 -0
  243. fortisapi/models/field_configuration.py +202 -0
  244. fortisapi/models/file.py +412 -0
  245. fortisapi/models/file_2.py +125 -0
  246. fortisapi/models/file_5.py +130 -0
  247. fortisapi/models/filter_by.py +171 -0
  248. fortisapi/models/footer.py +134 -0
  249. fortisapi/models/forecast.py +250 -0
  250. fortisapi/models/format_1_enum.py +47 -0
  251. fortisapi/models/format_enum.py +47 -0
  252. fortisapi/models/header.py +134 -0
  253. fortisapi/models/helppage.py +270 -0
  254. fortisapi/models/home_phone.py +130 -0
  255. fortisapi/models/hosted_payment_page.py +558 -0
  256. fortisapi/models/identity_verification.py +183 -0
  257. fortisapi/models/identity_verification_2.py +183 -0
  258. fortisapi/models/identity_verification_27.py +165 -0
  259. fortisapi/models/idtype_enum.py +47 -0
  260. fortisapi/models/iias_ind_enum.py +64 -0
  261. fortisapi/models/industry_type_enum.py +59 -0
  262. fortisapi/models/initiation_type_enum.py +92 -0
  263. fortisapi/models/interval_type_enum.py +50 -0
  264. fortisapi/models/item_list.py +125 -0
  265. fortisapi/models/item_list_4.py +99 -0
  266. fortisapi/models/item_list_5.py +130 -0
  267. fortisapi/models/joi.py +104 -0
  268. fortisapi/models/joi_18.py +111 -0
  269. fortisapi/models/joi_19.py +111 -0
  270. fortisapi/models/joi_27.py +104 -0
  271. fortisapi/models/joi_4.py +110 -0
  272. fortisapi/models/kyc_response_object.py +101 -0
  273. fortisapi/models/level_3_data.py +481 -0
  274. fortisapi/models/level_3_data_5.py +324 -0
  275. fortisapi/models/level_3_data_6.py +469 -0
  276. fortisapi/models/level_3_default.py +481 -0
  277. fortisapi/models/line_item.py +450 -0
  278. fortisapi/models/line_item_13.py +449 -0
  279. fortisapi/models/line_item_19.py +360 -0
  280. fortisapi/models/line_item_20.py +273 -0
  281. fortisapi/models/links.py +196 -0
  282. fortisapi/models/list.py +650 -0
  283. fortisapi/models/list_1.py +1134 -0
  284. fortisapi/models/list_10.py +1657 -0
  285. fortisapi/models/list_11.py +1341 -0
  286. fortisapi/models/list_12.py +336 -0
  287. fortisapi/models/list_13.py +731 -0
  288. fortisapi/models/list_14.py +245 -0
  289. fortisapi/models/list_15.py +219 -0
  290. fortisapi/models/list_16.py +1456 -0
  291. fortisapi/models/list_17.py +376 -0
  292. fortisapi/models/list_18.py +1681 -0
  293. fortisapi/models/list_19.py +380 -0
  294. fortisapi/models/list_20.py +4233 -0
  295. fortisapi/models/list_3.py +296 -0
  296. fortisapi/models/list_4.py +469 -0
  297. fortisapi/models/list_5.py +948 -0
  298. fortisapi/models/list_6.py +1283 -0
  299. fortisapi/models/list_8.py +552 -0
  300. fortisapi/models/list_9.py +920 -0
  301. fortisapi/models/location.py +756 -0
  302. fortisapi/models/location_18.py +217 -0
  303. fortisapi/models/location_5.py +227 -0
  304. fortisapi/models/location_billing_account.py +509 -0
  305. fortisapi/models/location_type_26_enum.py +51 -0
  306. fortisapi/models/location_type_enum.py +50 -0
  307. fortisapi/models/locationmarketplace.py +247 -0
  308. fortisapi/models/log_email.py +364 -0
  309. fortisapi/models/log_sms.py +315 -0
  310. fortisapi/models/marketplace.py +247 -0
  311. fortisapi/models/masync.py +128 -0
  312. fortisapi/models/merchant_list.py +193 -0
  313. fortisapi/models/merchant_risk_indicator.py +341 -0
  314. fortisapi/models/message_category_enum.py +119 -0
  315. fortisapi/models/message_extension.py +177 -0
  316. fortisapi/models/meta.py +107 -0
  317. fortisapi/models/method_3.py +147 -0
  318. fortisapi/models/method_50.py +145 -0
  319. fortisapi/models/method_53_enum.py +56 -0
  320. fortisapi/models/method_5_enum.py +56 -0
  321. fortisapi/models/method_enum.py +56 -0
  322. fortisapi/models/mobile_phone.py +130 -0
  323. fortisapi/models/modified_user.py +1197 -0
  324. fortisapi/models/multi_transaction.py +147 -0
  325. fortisapi/models/operator_1_enum.py +59 -0
  326. fortisapi/models/operator_enum.py +47 -0
  327. fortisapi/models/order_21.py +99 -0
  328. fortisapi/models/order_enum.py +47 -0
  329. fortisapi/models/owner.py +322 -0
  330. fortisapi/models/ownership_type_enum.py +71 -0
  331. fortisapi/models/page.py +132 -0
  332. fortisapi/models/pagination.py +196 -0
  333. fortisapi/models/parent.py +822 -0
  334. fortisapi/models/parent_3.py +756 -0
  335. fortisapi/models/partner_enum.py +71 -0
  336. fortisapi/models/paylink_action_enum.py +47 -0
  337. fortisapi/models/payment_acc_ind_enum.py +67 -0
  338. fortisapi/models/payment_method_16_enum.py +47 -0
  339. fortisapi/models/payment_method_1_enum.py +47 -0
  340. fortisapi/models/payment_method_9_enum.py +50 -0
  341. fortisapi/models/payment_method_enum.py +50 -0
  342. fortisapi/models/payment_recurring_notification.py +251 -0
  343. fortisapi/models/payment_type_priority_enum.py +47 -0
  344. fortisapi/models/postback_log.py +295 -0
  345. fortisapi/models/postback_status_id_enum.py +53 -0
  346. fortisapi/models/pre_order_purchase_ind_enum.py +52 -0
  347. fortisapi/models/preferred_language_enum.py +51 -0
  348. fortisapi/models/preferred_protocol_version_enum.py +65 -0
  349. fortisapi/models/pricing_element.py +147 -0
  350. fortisapi/models/primary_principal.py +396 -0
  351. fortisapi/models/primary_principal_1.py +376 -0
  352. fortisapi/models/process_method_enum.py +47 -0
  353. fortisapi/models/processor_enum.py +59 -0
  354. fortisapi/models/product_accountvault.py +317 -0
  355. fortisapi/models/product_file.py +416 -0
  356. fortisapi/models/product_file_1.py +414 -0
  357. fortisapi/models/product_invoice.py +651 -0
  358. fortisapi/models/product_recurring.py +387 -0
  359. fortisapi/models/product_token.py +317 -0
  360. fortisapi/models/product_transaction.py +3048 -0
  361. fortisapi/models/product_transaction_1.py +3046 -0
  362. fortisapi/models/purchase.py +501 -0
  363. fortisapi/models/quick_invoice.py +1256 -0
  364. fortisapi/models/quick_invoice_setting.py +299 -0
  365. fortisapi/models/quick_invoice_view.py +176 -0
  366. fortisapi/models/reason_code.py +131 -0
  367. fortisapi/models/reason_code_id_1_enum.py +935 -0
  368. fortisapi/models/reason_code_id_enum.py +578 -0
  369. fortisapi/models/reason_model_enum.py +74 -0
  370. fortisapi/models/received_email.py +364 -0
  371. fortisapi/models/recipients_enum.py +62 -0
  372. fortisapi/models/recurring.py +975 -0
  373. fortisapi/models/recurring_3.py +977 -0
  374. fortisapi/models/recurring_flag_enum.py +64 -0
  375. fortisapi/models/recurring_split.py +200 -0
  376. fortisapi/models/recurring_type_id_enum.py +47 -0
  377. fortisapi/models/registration_field_enum.py +87 -0
  378. fortisapi/models/rejected_transaction.py +3198 -0
  379. fortisapi/models/rejected_transaction_ach_retry.py +244 -0
  380. fortisapi/models/relationship_enum.py +50 -0
  381. fortisapi/models/reorder_items_ind_enum.py +51 -0
  382. fortisapi/models/report_export_type_enum.py +53 -0
  383. fortisapi/models/resource_12_enum.py +52 -0
  384. fortisapi/models/resource_2_enum.py +50 -0
  385. fortisapi/models/resource_enum.py +55 -0
  386. fortisapi/models/response_416_date_range.py +148 -0
  387. fortisapi/models/response_417_filter_channels.py +148 -0
  388. fortisapi/models/response_apple_pay_validate_merchant.py +126 -0
  389. fortisapi/models/response_async_status.py +126 -0
  390. fortisapi/models/response_batchs_collection.py +228 -0
  391. fortisapi/models/response_calculate_surcharge.py +126 -0
  392. fortisapi/models/response_contact.py +126 -0
  393. fortisapi/models/response_contact_searchs_collection.py +228 -0
  394. fortisapi/models/response_contacts_collection.py +228 -0
  395. fortisapi/models/response_declined_recurring_transaction.py +126 -0
  396. fortisapi/models/response_declined_recurring_transaction_payment.py +126 -0
  397. fortisapi/models/response_declined_recurring_transaction_resend.py +126 -0
  398. fortisapi/models/response_declined_recurring_transactions_collection.py +228 -0
  399. fortisapi/models/response_device_term.py +126 -0
  400. fortisapi/models/response_device_terms_collection.py +228 -0
  401. fortisapi/models/response_fullboarding.py +126 -0
  402. fortisapi/models/response_location.py +126 -0
  403. fortisapi/models/response_location_info.py +126 -0
  404. fortisapi/models/response_location_infos_collection.py +228 -0
  405. fortisapi/models/response_location_searchs_collection.py +228 -0
  406. fortisapi/models/response_locations_collection.py +228 -0
  407. fortisapi/models/response_merchant.py +126 -0
  408. fortisapi/models/response_merchant_deposit.py +126 -0
  409. fortisapi/models/response_merchant_deposits_collection.py +228 -0
  410. fortisapi/models/response_merchant_details.py +126 -0
  411. fortisapi/models/response_onboarding.py +126 -0
  412. fortisapi/models/response_paylink.py +126 -0
  413. fortisapi/models/response_paylinks_collection.py +228 -0
  414. fortisapi/models/response_payment_card_reader_token.py +126 -0
  415. fortisapi/models/response_quick_invoice.py +126 -0
  416. fortisapi/models/response_quick_invoice_resend.py +126 -0
  417. fortisapi/models/response_quick_invoices_collection.py +228 -0
  418. fortisapi/models/response_recurring.py +126 -0
  419. fortisapi/models/response_recurrings_collection.py +228 -0
  420. fortisapi/models/response_reporting_reports_cc_settled_transactions_collection.py +231 -0
  421. fortisapi/models/response_reporting_reports_chargebacks_collection.py +228 -0
  422. fortisapi/models/response_signature.py +126 -0
  423. fortisapi/models/response_signatures_collection.py +228 -0
  424. fortisapi/models/response_tag.py +126 -0
  425. fortisapi/models/response_tags_collection.py +228 -0
  426. fortisapi/models/response_terminal.py +126 -0
  427. fortisapi/models/response_terminals_collection.py +228 -0
  428. fortisapi/models/response_three_ds_authentication.py +126 -0
  429. fortisapi/models/response_three_ds_transaction.py +126 -0
  430. fortisapi/models/response_ticket.py +126 -0
  431. fortisapi/models/response_ticket_intention.py +126 -0
  432. fortisapi/models/response_tickets_collection.py +228 -0
  433. fortisapi/models/response_token.py +126 -0
  434. fortisapi/models/response_tokens_collection.py +228 -0
  435. fortisapi/models/response_transaction.py +126 -0
  436. fortisapi/models/response_transaction_ach_retry.py +126 -0
  437. fortisapi/models/response_transaction_ach_retrys_collection.py +228 -0
  438. fortisapi/models/response_transaction_bin_info.py +126 -0
  439. fortisapi/models/response_transaction_intention.py +126 -0
  440. fortisapi/models/response_transaction_level_3.py +126 -0
  441. fortisapi/models/response_transaction_level_3_master.py +126 -0
  442. fortisapi/models/response_transaction_level_3_visa.py +126 -0
  443. fortisapi/models/response_transaction_processing.py +126 -0
  444. fortisapi/models/response_transactions_collection.py +228 -0
  445. fortisapi/models/response_webhook.py +126 -0
  446. fortisapi/models/result.py +152 -0
  447. fortisapi/models/retry_transaction.py +3198 -0
  448. fortisapi/models/retry_transaction_ach_retry.py +246 -0
  449. fortisapi/models/return_fee_transaction.py +3198 -0
  450. fortisapi/models/return_fee_transaction_ach_retry.py +246 -0
  451. fortisapi/models/saved_account.py +1408 -0
  452. fortisapi/models/scheme_id_enum.py +54 -0
  453. fortisapi/models/sec_code_enum.py +51 -0
  454. fortisapi/models/settings.py +148 -0
  455. fortisapi/models/settled_currency_enum.py +168 -0
  456. fortisapi/models/severity_enum.py +62 -0
  457. fortisapi/models/ship_address_usage_ind_enum.py +62 -0
  458. fortisapi/models/ship_indicator_enum.py +101 -0
  459. fortisapi/models/ship_name_indicator_enum.py +52 -0
  460. fortisapi/models/shipping_address.py +264 -0
  461. fortisapi/models/signature.py +220 -0
  462. fortisapi/models/sms_blacklist.py +178 -0
  463. fortisapi/models/sms_enum.py +47 -0
  464. fortisapi/models/sort.py +132 -0
  465. fortisapi/models/source_enum.py +56 -0
  466. fortisapi/models/stack_enum.py +47 -0
  467. fortisapi/models/status_11.py +131 -0
  468. fortisapi/models/status_3_enum.py +47 -0
  469. fortisapi/models/status_5.py +102 -0
  470. fortisapi/models/status_code_12_enum.py +47 -0
  471. fortisapi/models/status_code_17_enum.py +102 -0
  472. fortisapi/models/status_code_enum.py +50 -0
  473. fortisapi/models/status_enum.py +50 -0
  474. fortisapi/models/status_id_enum.py +47 -0
  475. fortisapi/models/surcharge.py +574 -0
  476. fortisapi/models/surcharge_transaction.py +367 -0
  477. fortisapi/models/suspicious_acc_activity_enum.py +52 -0
  478. fortisapi/models/tag.py +194 -0
  479. fortisapi/models/tag_transaction.py +319 -0
  480. fortisapi/models/tax_exempt_enum.py +61 -0
  481. fortisapi/models/tax_surcharge_config_enum.py +47 -0
  482. fortisapi/models/terminal.py +1245 -0
  483. fortisapi/models/terminal_2.py +1243 -0
  484. fortisapi/models/terminal_application.py +411 -0
  485. fortisapi/models/terminal_cvm.py +293 -0
  486. fortisapi/models/terminal_manufacturer.py +249 -0
  487. fortisapi/models/terminal_manufacturer_code_enum.py +55 -0
  488. fortisapi/models/terminal_router.py +245 -0
  489. fortisapi/models/terminal_timeouts.py +304 -0
  490. fortisapi/models/terminal_timeouts_12.py +314 -0
  491. fortisapi/models/three_ds_req_auth_method_enum.py +154 -0
  492. fortisapi/models/three_ds_req_prior_auth_method_enum.py +123 -0
  493. fortisapi/models/three_ds_requestor.py +345 -0
  494. fortisapi/models/three_ds_requestor_authentication_ind_enum.py +141 -0
  495. fortisapi/models/three_ds_requestor_authentication_info.py +179 -0
  496. fortisapi/models/three_ds_requestor_challenge_ind_enum.py +126 -0
  497. fortisapi/models/three_ds_requestor_dec_req_ind_enum.py +72 -0
  498. fortisapi/models/three_ds_requestor_prior_authentication_info.py +188 -0
  499. fortisapi/models/three_ds_requestor_spc_support_enum.py +49 -0
  500. fortisapi/models/three_ri_ind_enum.py +180 -0
  501. fortisapi/models/tip_percents.py +160 -0
  502. fortisapi/models/trans_char_enum.py +45 -0
  503. fortisapi/models/transaction.py +3196 -0
  504. fortisapi/models/transaction_batch.py +537 -0
  505. fortisapi/models/transaction_batch_settlement.py +202 -0
  506. fortisapi/models/transaction_history.py +246 -0
  507. fortisapi/models/transaction_level_3.py +152 -0
  508. fortisapi/models/transaction_reference.py +298 -0
  509. fortisapi/models/transaction_split.py +221 -0
  510. fortisapi/models/transaction_status_enum.py +88 -0
  511. fortisapi/models/transaction_type_enum.py +68 -0
  512. fortisapi/models/trx_source_code_enum.py +155 -0
  513. fortisapi/models/trx_source_id_enum.py +155 -0
  514. fortisapi/models/type_103_enum.py +44 -0
  515. fortisapi/models/type_105_enum.py +44 -0
  516. fortisapi/models/type_10_enum.py +44 -0
  517. fortisapi/models/type_110_enum.py +44 -0
  518. fortisapi/models/type_114_enum.py +44 -0
  519. fortisapi/models/type_11_enum.py +44 -0
  520. fortisapi/models/type_121_enum.py +44 -0
  521. fortisapi/models/type_123.py +131 -0
  522. fortisapi/models/type_124_enum.py +44 -0
  523. fortisapi/models/type_125_enum.py +44 -0
  524. fortisapi/models/type_126_enum.py +44 -0
  525. fortisapi/models/type_127_enum.py +44 -0
  526. fortisapi/models/type_128_enum.py +44 -0
  527. fortisapi/models/type_134_enum.py +44 -0
  528. fortisapi/models/type_135_enum.py +44 -0
  529. fortisapi/models/type_136_enum.py +44 -0
  530. fortisapi/models/type_15_enum.py +44 -0
  531. fortisapi/models/type_16_enum.py +44 -0
  532. fortisapi/models/type_1_enum.py +44 -0
  533. fortisapi/models/type_20_enum.py +44 -0
  534. fortisapi/models/type_21_enum.py +44 -0
  535. fortisapi/models/type_22_enum.py +44 -0
  536. fortisapi/models/type_23_enum.py +44 -0
  537. fortisapi/models/type_27_enum.py +44 -0
  538. fortisapi/models/type_28_enum.py +44 -0
  539. fortisapi/models/type_29_enum.py +64 -0
  540. fortisapi/models/type_2_enum.py +44 -0
  541. fortisapi/models/type_30_enum.py +44 -0
  542. fortisapi/models/type_31_enum.py +44 -0
  543. fortisapi/models/type_35_enum.py +44 -0
  544. fortisapi/models/type_39_enum.py +44 -0
  545. fortisapi/models/type_3_enum.py +44 -0
  546. fortisapi/models/type_43_enum.py +44 -0
  547. fortisapi/models/type_44_enum.py +44 -0
  548. fortisapi/models/type_45_enum.py +44 -0
  549. fortisapi/models/type_46_enum.py +44 -0
  550. fortisapi/models/type_47_enum.py +44 -0
  551. fortisapi/models/type_48_enum.py +44 -0
  552. fortisapi/models/type_4_enum.py +44 -0
  553. fortisapi/models/type_52_enum.py +44 -0
  554. fortisapi/models/type_53_enum.py +44 -0
  555. fortisapi/models/type_54_enum.py +44 -0
  556. fortisapi/models/type_55_enum.py +44 -0
  557. fortisapi/models/type_59_enum.py +44 -0
  558. fortisapi/models/type_5_enum.py +44 -0
  559. fortisapi/models/type_60_enum.py +44 -0
  560. fortisapi/models/type_61_enum.py +45 -0
  561. fortisapi/models/type_62_enum.py +44 -0
  562. fortisapi/models/type_63_enum.py +91 -0
  563. fortisapi/models/type_64_enum.py +44 -0
  564. fortisapi/models/type_65_enum.py +44 -0
  565. fortisapi/models/type_6_enum.py +44 -0
  566. fortisapi/models/type_70_enum.py +44 -0
  567. fortisapi/models/type_71_enum.py +44 -0
  568. fortisapi/models/type_75_enum.py +44 -0
  569. fortisapi/models/type_79_enum.py +44 -0
  570. fortisapi/models/type_83_enum.py +44 -0
  571. fortisapi/models/type_84_enum.py +44 -0
  572. fortisapi/models/type_88_enum.py +44 -0
  573. fortisapi/models/type_89_enum.py +44 -0
  574. fortisapi/models/type_93_enum.py +44 -0
  575. fortisapi/models/type_94_enum.py +44 -0
  576. fortisapi/models/type_98_enum.py +44 -0
  577. fortisapi/models/type_99_enum.py +44 -0
  578. fortisapi/models/type_enum.py +44 -0
  579. fortisapi/models/type_id_enum.py +59 -0
  580. fortisapi/models/ui_prefs.py +204 -0
  581. fortisapi/models/update_if_exists_enum.py +44 -0
  582. fortisapi/models/user.py +180 -0
  583. fortisapi/models/user_1.py +1197 -0
  584. fortisapi/models/user_9.py +1195 -0
  585. fortisapi/models/user_type_code_enum.py +74 -0
  586. fortisapi/models/v_1_contacts_request.py +685 -0
  587. fortisapi/models/v_1_contacts_request_1.py +707 -0
  588. fortisapi/models/v_1_declined_recurring_transaction_payments_request.py +354 -0
  589. fortisapi/models/v_1_device_terms_request.py +161 -0
  590. fortisapi/models/v_1_elements_ticket_intention_request.py +195 -0
  591. fortisapi/models/v_1_elements_transaction_intention_request.py +591 -0
  592. fortisapi/models/v_1_fullboarding_request.py +827 -0
  593. fortisapi/models/v_1_merchant_threedsecure_authentication_request.py +696 -0
  594. fortisapi/models/v_1_onboarding_request.py +833 -0
  595. fortisapi/models/v_1_paylinks_request.py +723 -0
  596. fortisapi/models/v_1_paylinks_request_1.py +735 -0
  597. fortisapi/models/v_1_public_calculate_surcharge_request.py +527 -0
  598. fortisapi/models/v_1_quick_invoices_request.py +1035 -0
  599. fortisapi/models/v_1_quick_invoices_request_1.py +1070 -0
  600. fortisapi/models/v_1_quick_invoices_transaction_request.py +86 -0
  601. fortisapi/models/v_1_recurrings_defer_payment_request.py +86 -0
  602. fortisapi/models/v_1_recurrings_request.py +742 -0
  603. fortisapi/models/v_1_recurrings_request_1.py +750 -0
  604. fortisapi/models/v_1_recurrings_skip_payment_request.py +86 -0
  605. fortisapi/models/v_1_signatures_request.py +113 -0
  606. fortisapi/models/v_1_tags_request.py +99 -0
  607. fortisapi/models/v_1_tags_request_1.py +130 -0
  608. fortisapi/models/v_1_terminals_request.py +1005 -0
  609. fortisapi/models/v_1_terminals_request_1.py +1112 -0
  610. fortisapi/models/v_1_tickets_request.py +286 -0
  611. fortisapi/models/v_1_tokens_ach_request.py +945 -0
  612. fortisapi/models/v_1_tokens_ach_request_1.py +907 -0
  613. fortisapi/models/v_1_tokens_cc_request.py +1071 -0
  614. fortisapi/models/v_1_tokens_cc_request_1.py +905 -0
  615. fortisapi/models/v_1_tokens_previous_transaction_request.py +858 -0
  616. fortisapi/models/v_1_tokens_terminal_async_request.py +889 -0
  617. fortisapi/models/v_1_tokens_terminal_request.py +889 -0
  618. fortisapi/models/v_1_tokens_ticket_request.py +882 -0
  619. fortisapi/models/v_1_tokens_wallet_request.py +919 -0
  620. fortisapi/models/v_1_transaction_ach_retries_request.py +119 -0
  621. fortisapi/models/v_1_transactions_ach_credit_keyed_request.py +1600 -0
  622. fortisapi/models/v_1_transactions_ach_credit_prev_trxn_request.py +1616 -0
  623. fortisapi/models/v_1_transactions_ach_credit_token_request.py +1660 -0
  624. fortisapi/models/v_1_transactions_ach_debit_keyed_request.py +1600 -0
  625. fortisapi/models/v_1_transactions_ach_debit_prev_trxn_request.py +1616 -0
  626. fortisapi/models/v_1_transactions_ach_debit_token_request.py +1660 -0
  627. fortisapi/models/v_1_transactions_ach_refund_prev_trxn_request.py +1616 -0
  628. fortisapi/models/v_1_transactions_auth_complete_request.py +1519 -0
  629. fortisapi/models/v_1_transactions_auth_increment_request.py +1533 -0
  630. fortisapi/models/v_1_transactions_cash_refund_request.py +1515 -0
  631. fortisapi/models/v_1_transactions_cash_sale_request.py +1489 -0
  632. fortisapi/models/v_1_transactions_cc_auth_only_keyed_request.py +2164 -0
  633. fortisapi/models/v_1_transactions_cc_auth_only_prev_trxn_request.py +2124 -0
  634. fortisapi/models/v_1_transactions_cc_auth_only_taptopay_request.py +1843 -0
  635. fortisapi/models/v_1_transactions_cc_auth_only_terminal_request.py +2082 -0
  636. fortisapi/models/v_1_transactions_cc_auth_only_ticket_request.py +2050 -0
  637. fortisapi/models/v_1_transactions_cc_auth_only_token_request.py +2129 -0
  638. fortisapi/models/v_1_transactions_cc_auth_only_wallet_request.py +2062 -0
  639. fortisapi/models/v_1_transactions_cc_avs_only_keyed_request.py +2175 -0
  640. fortisapi/models/v_1_transactions_cc_avs_only_prev_trxn_request.py +2124 -0
  641. fortisapi/models/v_1_transactions_cc_avs_only_swiped_request.py +2086 -0
  642. fortisapi/models/v_1_transactions_cc_avs_only_terminal_request.py +2093 -0
  643. fortisapi/models/v_1_transactions_cc_avs_only_ticket_request.py +2061 -0
  644. fortisapi/models/v_1_transactions_cc_avs_only_token_request.py +2140 -0
  645. fortisapi/models/v_1_transactions_cc_avs_only_wallet_request.py +2073 -0
  646. fortisapi/models/v_1_transactions_cc_balance_inquiry_keyed_request.py +2176 -0
  647. fortisapi/models/v_1_transactions_cc_balance_inquiry_prev_trxn_request.py +2125 -0
  648. fortisapi/models/v_1_transactions_cc_balance_inquiry_swiped_request.py +2087 -0
  649. fortisapi/models/v_1_transactions_cc_balance_inquiry_terminal_request.py +2094 -0
  650. fortisapi/models/v_1_transactions_cc_balance_inquiry_ticket_request.py +2062 -0
  651. fortisapi/models/v_1_transactions_cc_balance_inquiry_token_request.py +2141 -0
  652. fortisapi/models/v_1_transactions_cc_balance_inquiry_wallet_request.py +2074 -0
  653. fortisapi/models/v_1_transactions_cc_refund_keyed_request.py +2218 -0
  654. fortisapi/models/v_1_transactions_cc_refund_prev_trxn_request.py +2124 -0
  655. fortisapi/models/v_1_transactions_cc_refund_taptopay_request.py +1869 -0
  656. fortisapi/models/v_1_transactions_cc_refund_terminal_request.py +2082 -0
  657. fortisapi/models/v_1_transactions_cc_refund_ticket_request.py +2050 -0
  658. fortisapi/models/v_1_transactions_cc_refund_token_request.py +2129 -0
  659. fortisapi/models/v_1_transactions_cc_refund_wallet_request.py +2062 -0
  660. fortisapi/models/v_1_transactions_cc_sale_keyed_request.py +2164 -0
  661. fortisapi/models/v_1_transactions_cc_sale_prev_trxn_request.py +2124 -0
  662. fortisapi/models/v_1_transactions_cc_sale_taptopay_request.py +1843 -0
  663. fortisapi/models/v_1_transactions_cc_sale_terminal_request.py +2082 -0
  664. fortisapi/models/v_1_transactions_cc_sale_ticket_request.py +2050 -0
  665. fortisapi/models/v_1_transactions_cc_sale_token_request.py +2129 -0
  666. fortisapi/models/v_1_transactions_cc_sale_wallet_request.py +2062 -0
  667. fortisapi/models/v_1_transactions_ebt_voucher_clear_refund_keyed_request.py +2190 -0
  668. fortisapi/models/v_1_transactions_ebt_voucher_clear_sale_keyed_request.py +2190 -0
  669. fortisapi/models/v_1_transactions_level_3_master_card_request.py +91 -0
  670. fortisapi/models/v_1_transactions_level_3_visa_request.py +91 -0
  671. fortisapi/models/v_1_transactions_partial_reversal_request.py +1462 -0
  672. fortisapi/models/v_1_transactions_refund_request.py +1448 -0
  673. fortisapi/models/v_1_transactions_tip_adjust_request.py +1973 -0
  674. fortisapi/models/v_1_transactions_void_request.py +130 -0
  675. fortisapi/models/v_1_wallet_provider_apple_pay_validate_merchant_request.py +127 -0
  676. fortisapi/models/v_1_wallet_provider_merchant_details_request.py +87 -0
  677. fortisapi/models/v_1_webhooks_apm_onboarding_request.py +421 -0
  678. fortisapi/models/v_1_webhooks_apm_onboarding_request_1.py +494 -0
  679. fortisapi/models/v_1_webhooks_batch_request.py +410 -0
  680. fortisapi/models/v_1_webhooks_batch_request_1.py +494 -0
  681. fortisapi/models/v_1_webhooks_contact_request.py +421 -0
  682. fortisapi/models/v_1_webhooks_contact_request_1.py +494 -0
  683. fortisapi/models/v_1_webhooks_transaction_request.py +410 -0
  684. fortisapi/models/v_1_webhooks_transaction_request_1.py +494 -0
  685. fortisapi/models/values_4_enum.py +59 -0
  686. fortisapi/models/values_50_enum.py +59 -0
  687. fortisapi/models/values_51_enum.py +62 -0
  688. fortisapi/models/values_58_enum.py +59 -0
  689. fortisapi/models/values_5_enum.py +59 -0
  690. fortisapi/models/values_6_enum.py +59 -0
  691. fortisapi/models/values_7_enum.py +59 -0
  692. fortisapi/models/values_99_enum.py +45 -0
  693. fortisapi/models/values_enum.py +51 -0
  694. fortisapi/models/wallet_provider_enum.py +47 -0
  695. fortisapi/models/wallet_type_enum.py +86 -0
  696. fortisapi/models/work_phone.py +130 -0
  697. fortisapi/utilities/__init__.py +6 -0
  698. fortisapi/utilities/file_wrapper.py +45 -0
  699. fortisapi/utilities/union_type_lookup.py +436 -0
@@ -0,0 +1,696 @@
1
+ """fortisapi.
2
+
3
+ This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ).
4
+ """
5
+
6
+ # ruff: noqa: E501
7
+ from fortisapi.api_helper import APIHelper
8
+ from fortisapi.models.broad_info import BroadInfo
9
+ from fortisapi.models.browser_information import (
10
+ BrowserInformation,
11
+ )
12
+ from fortisapi.models.cardholder import Cardholder
13
+ from fortisapi.models.cardholder_account import (
14
+ CardholderAccount,
15
+ )
16
+ from fortisapi.models.challenge_message_extension import (
17
+ ChallengeMessageExtension,
18
+ )
19
+ from fortisapi.models.device import Device
20
+ from fortisapi.models.message_extension import (
21
+ MessageExtension,
22
+ )
23
+ from fortisapi.models.multi_transaction import (
24
+ MultiTransaction,
25
+ )
26
+ from fortisapi.models.purchase import Purchase
27
+ from fortisapi.models.three_ds_requestor import (
28
+ ThreeDsRequestor,
29
+ )
30
+
31
+
32
+ class V1MerchantThreedsecureAuthenticationRequest(object):
33
+ """Implementation of the 'V1 Merchant Threedsecure Authentication Request' model.
34
+
35
+ Attributes:
36
+ product_transaction_id (str): Product Transaction ID to associate with this
37
+ 3DS request
38
+ preferred_protocol_version (PreferredProtocolVersionEnum): Specifies the
39
+ preferred version of 3D Secure protocol to be utilized while executing 3D
40
+ Secure authentication. 3DS Server initiates an authentication request
41
+ with the preferred version and if this version is not supported by other
42
+ 3D Secure components, it falls back to the next supported version(s) and
43
+ continues authentication. If the preferred version is enforced by setting
44
+ #enforcePreferredProtocolVersion flag, but this version is not supported
45
+ by one of the 3D Secure components, 3DS Server does not initiate an
46
+ authentication and provides corresponding error message to the customer.
47
+ If no value is provided, EMV 3DS 2.1.0 version will be used by default.
48
+ >2.1.0 - prefer authentication with 2.1.0 version > >2.2.0 - prefer
49
+ authentication with 2.2.0 version > >2.3.1 - prefer authentication with
50
+ 2.3.1 version >
51
+ enforce_preferred_protocol_version (bool): Boolean flag that enforces
52
+ preferred 3D Secure protocol version to be used in 3D Secure
53
+ authentication. The value should be set true to enforce preferred
54
+ version. If value is false or not provided, 3DS Server can fall back to
55
+ next supported 3DS protocol version while initiating 3D Secure
56
+ authentication.
57
+ device_channel (DeviceChannelEnum): Indicates the type of channel interface
58
+ being used to initiate the transaction. >02 - Browser (BRW) > >03 - 3DS
59
+ Requestor Initiated (3RI) >
60
+ message_category (MessageCategoryEnum): Identifies the category of the
61
+ message for a specific use case. >01 - Payment Authentication (PA) > >02
62
+ - Non-Payment Authentication (NPA) > >80 through 99 - PS Specific Values
63
+ > >80 - MasterCard Identity Check Insights > >85 - MasterCard Identity
64
+ Check, Production Validation PA > >86 - MasterCard Identity Check,
65
+ Production Validation NPA >
66
+ three_ds_comp_ind (str): Indicates whether the 3DS Method successfully
67
+ completed. The value is used only when device_channel = 02 (Browser).
68
+ From protocol version 2.3.1 this field is required. >Y - Successfully
69
+ completed > >N - Did not successfully complete > >U - Unavailable - 3DS
70
+ Method URL was not present in the PRes message data for the card range
71
+ associated with the Cardholder Account Number. >
72
+ three_ds_method_id (str): Contains the 3DS Server Transaction ID used during
73
+ the previous execution of the 3DS method. Accepted value length is 36
74
+ characters. Accepted value is a Canonical format as defined in IETF RFC
75
+ 4122. May utilise any of the specified versions if the output meets
76
+ specified requirements. This field is required if the 3DS Requestor
77
+ reuses previous 3DS Method execution with device_channel = 02 (BRW).
78
+ Available in EMV 3DS 2.3.1 and later versions.
79
+ three_ds_requestor (ThreeDsRequestor): Contains information for the 3DS
80
+ Requestor.
81
+ three_ds_server_trans_id (uuid|str): Universally unique transaction
82
+ identifier assigned by the 3DS Server to identify a single transaction.
83
+ This value has 36 characters in a format defined in IETF RFC 4122. In
84
+ case 3DS Method is previously invoked, the threeDSServerTransID should be
85
+ sent. If not, 3DS Server will generate a new transaction identifier. If
86
+ threeDSServerTransID is generated in versioning flow same transaction
87
+ identifier should be used in Authentication flow which combines them as
88
+ one transaction.
89
+ three_ds_requestor_url (str): Fully qualified URL of 3DS Requestor website or
90
+ customer care site.
91
+ cardholder_account (CardholderAccount): Contains information for the
92
+ Cardholder Account.
93
+ cardholder (Cardholder): Contains information for the Cardholder. This field
94
+ is required unless market or regional mandate restricts sending this
95
+ information.
96
+ purchase (Purchase): Contains purchase information
97
+ broad_info (BroadInfo): Until EMV 3DS 2.2.0: Unstructured information sent
98
+ between the 3DS Server, the DS and the ACS. This field is not required
99
+ to be filled by the Requestor and the requirements for the presence of
100
+ this field are DS specific. Starting from EMV 3DS 2.3.1: Structured
101
+ information sent between the 3DS Server, the DS and the ACS. 2.3.1
102
+ structure is defined below. Accepted value length is maximum 4096
103
+ characters. This field is optional.
104
+ message_extension (List[MessageExtension]): Data necessary to support
105
+ requirements not otherwise defined in the 3D Secure message are carried
106
+ in a Message Extension. This field is limited to 81,920 characters and it
107
+ is used in the Authentication Request. Requirements of this field are
108
+ set by each Directory Server.
109
+ challenge_message_extension (List[ChallengeMessageExtension]): Data necessary
110
+ to support requirements not otherwise defined in the 3D Secure message
111
+ are carried in a Message Extension. This field is limited to 81,920
112
+ characters and it is used in the generating of the ChallengeRequest, if
113
+ challenge is needed. Requirements of this field are set by each
114
+ Directory Server.
115
+ browser_information (BrowserInformation): Contains browser information.
116
+ This field is required when device_channel=02 (BRW).
117
+ three_ri_ind (ThreeRiIndEnum): Indicates the type of 3RI request. This data
118
+ element provides additional information to the ACS to determine the best
119
+ approach for handling a 3RI request. Values 06 through 12 are accepted
120
+ as well if 3DS Server initiates authentication with EMV 3DS 2.2.0 version
121
+ or greater (required protocol version can be set in the
122
+ preferred_protocol_version field). Starting from EMV 3DS 2.3.1:
123
+ Required if device_channel = 03 and message_category = 01 or 02. Values
124
+ 13 and 14 can be used. >01 - Recurring transaction > >02 - Installment
125
+ transaction > >03 - Add card > >04 - Maintain card information > >05 -
126
+ Account verification > >06 - Split/delayed shipment (EMV 3DS 2.2.0
127
+ version or greater) > >07 - Top-up (EMV 3DS 2.2.0 version or greater) >
128
+ >08 - Mail order (EMV 3DS 2.2.0 version or greater) > >09 - Telephone
129
+ order (EMV 3DS 2.2.0 version or greater) > >10 - Whitelist status check
130
+ (EMV 3DS 2.2.0 version or greater) > >11 - Other payment (EMV 3DS 2.2.0
131
+ version or greater) > >12 - Billing agreement (EMV 3DS 2.2.0 version or
132
+ greater) > >13 - Device Binding status check (EMV 3DS 2.3.1 version or
133
+ greater) > >14 - Card Security Code status check (EMV 3DS 2.3.1 version
134
+ or greater) > >80 through 99 - PS-specific values, regardless of protocol
135
+ version >
136
+ device (Device): Contains device information. Available for supporting EMV
137
+ 3DS 2.3.1 and later versions.
138
+ multi_transaction (MultiTransaction): Additional transaction information in
139
+ case of multiple transactions or merchants. Available for supporting EMV
140
+ 3DS 2.3.1 and later versions.
141
+ device_id (str): Unique and immutable identifier linked to a device that is
142
+ consistent across 3DS transactions for the specific user device.
143
+ Available for supporting EMV 3DS 2.3.1 and later versions.
144
+ user_id (str): Identifier of the transacting user’s Browser Account ID.
145
+ Available for supporting EMV 3DS 2.3.1 and later versions.
146
+ payee_origin (str): The origin of the payee that will be provided in the SPC
147
+ Transaction Data as a fully qualified URL.
148
+ additional_properties (Dict[str, object]): The additional properties for the
149
+ model.
150
+
151
+ """
152
+
153
+ # Create a mapping from Model property names to API property names
154
+ _names = {
155
+ "product_transaction_id": "product_transaction_id",
156
+ "device_channel": "device_channel",
157
+ "message_category": "message_category",
158
+ "three_ds_requestor": "three_ds_requestor",
159
+ "cardholder_account": "cardholder_account",
160
+ "preferred_protocol_version": "preferred_protocol_version",
161
+ "enforce_preferred_protocol_version": "enforce_preferred_protocol_version",
162
+ "three_ds_comp_ind": "three_ds_comp_ind",
163
+ "three_ds_method_id": "three_ds_method_id",
164
+ "three_ds_server_trans_id": "three_ds_server_trans_id",
165
+ "three_ds_requestor_url": "three_ds_requestor_url",
166
+ "cardholder": "cardholder",
167
+ "purchase": "purchase",
168
+ "broad_info": "broad_info",
169
+ "message_extension": "message_extension",
170
+ "challenge_message_extension": "challenge_message_extension",
171
+ "browser_information": "browser_information",
172
+ "three_ri_ind": "three_ri_ind",
173
+ "device": "device",
174
+ "multi_transaction": "multi_transaction",
175
+ "device_id": "device_id",
176
+ "user_id": "user_id",
177
+ "payee_origin": "payee_origin",
178
+ }
179
+
180
+ _optionals = [
181
+ "preferred_protocol_version",
182
+ "enforce_preferred_protocol_version",
183
+ "three_ds_comp_ind",
184
+ "three_ds_method_id",
185
+ "three_ds_server_trans_id",
186
+ "three_ds_requestor_url",
187
+ "cardholder",
188
+ "purchase",
189
+ "broad_info",
190
+ "message_extension",
191
+ "challenge_message_extension",
192
+ "browser_information",
193
+ "three_ri_ind",
194
+ "device",
195
+ "multi_transaction",
196
+ "device_id",
197
+ "user_id",
198
+ "payee_origin",
199
+ ]
200
+
201
+ _nullables = [
202
+ "preferred_protocol_version",
203
+ "three_ds_comp_ind",
204
+ "three_ds_method_id",
205
+ "three_ds_server_trans_id",
206
+ "three_ds_requestor_url",
207
+ "three_ri_ind",
208
+ "device_id",
209
+ "user_id",
210
+ "payee_origin",
211
+ ]
212
+
213
+ def __init__(
214
+ self,
215
+ product_transaction_id=None,
216
+ device_channel=None,
217
+ message_category=None,
218
+ three_ds_requestor=None,
219
+ cardholder_account=None,
220
+ preferred_protocol_version=APIHelper.SKIP,
221
+ enforce_preferred_protocol_version=APIHelper.SKIP,
222
+ three_ds_comp_ind=APIHelper.SKIP,
223
+ three_ds_method_id=APIHelper.SKIP,
224
+ three_ds_server_trans_id=APIHelper.SKIP,
225
+ three_ds_requestor_url=APIHelper.SKIP,
226
+ cardholder=APIHelper.SKIP,
227
+ purchase=APIHelper.SKIP,
228
+ broad_info=APIHelper.SKIP,
229
+ message_extension=APIHelper.SKIP,
230
+ challenge_message_extension=APIHelper.SKIP,
231
+ browser_information=APIHelper.SKIP,
232
+ three_ri_ind=APIHelper.SKIP,
233
+ device=APIHelper.SKIP,
234
+ multi_transaction=APIHelper.SKIP,
235
+ device_id=APIHelper.SKIP,
236
+ user_id=APIHelper.SKIP,
237
+ payee_origin=APIHelper.SKIP,
238
+ additional_properties=None):
239
+ """Initialize a V1MerchantThreedsecureAuthenticationRequest instance."""
240
+ # Initialize members of the class
241
+ self.product_transaction_id = product_transaction_id
242
+ if preferred_protocol_version is not APIHelper.SKIP:
243
+ self.preferred_protocol_version = preferred_protocol_version
244
+ if enforce_preferred_protocol_version is not APIHelper.SKIP:
245
+ self.enforce_preferred_protocol_version =\
246
+ enforce_preferred_protocol_version
247
+ self.device_channel = device_channel
248
+ self.message_category = message_category
249
+ if three_ds_comp_ind is not APIHelper.SKIP:
250
+ self.three_ds_comp_ind = three_ds_comp_ind
251
+ if three_ds_method_id is not APIHelper.SKIP:
252
+ self.three_ds_method_id = three_ds_method_id
253
+ self.three_ds_requestor = three_ds_requestor
254
+ if three_ds_server_trans_id is not APIHelper.SKIP:
255
+ self.three_ds_server_trans_id = three_ds_server_trans_id
256
+ if three_ds_requestor_url is not APIHelper.SKIP:
257
+ self.three_ds_requestor_url = three_ds_requestor_url
258
+ self.cardholder_account = cardholder_account
259
+ if cardholder is not APIHelper.SKIP:
260
+ self.cardholder = cardholder
261
+ if purchase is not APIHelper.SKIP:
262
+ self.purchase = purchase
263
+ if broad_info is not APIHelper.SKIP:
264
+ self.broad_info = broad_info
265
+ if message_extension is not APIHelper.SKIP:
266
+ self.message_extension = message_extension
267
+ if challenge_message_extension is not APIHelper.SKIP:
268
+ self.challenge_message_extension = challenge_message_extension
269
+ if browser_information is not APIHelper.SKIP:
270
+ self.browser_information = browser_information
271
+ if three_ri_ind is not APIHelper.SKIP:
272
+ self.three_ri_ind = three_ri_ind
273
+ if device is not APIHelper.SKIP:
274
+ self.device = device
275
+ if multi_transaction is not APIHelper.SKIP:
276
+ self.multi_transaction = multi_transaction
277
+ if device_id is not APIHelper.SKIP:
278
+ self.device_id = device_id
279
+ if user_id is not APIHelper.SKIP:
280
+ self.user_id = user_id
281
+ if payee_origin is not APIHelper.SKIP:
282
+ self.payee_origin = payee_origin
283
+
284
+ # Add additional model properties to the instance
285
+ if additional_properties is None:
286
+ additional_properties = {}
287
+ self.additional_properties = additional_properties
288
+
289
+ @classmethod
290
+ def from_dictionary(cls,
291
+ dictionary):
292
+ """Create an instance of this model from a dictionary
293
+
294
+ Args:
295
+ dictionary (dictionary): A dictionary representation of the object
296
+ as obtained from the deserialization of the server's response. The
297
+ keys MUST match property names in the API description.
298
+
299
+ Returns:
300
+ object: An instance of this structure class.
301
+
302
+ """
303
+ if not isinstance(dictionary, dict) or dictionary is None:
304
+ return None
305
+
306
+ # Extract variables from the dictionary
307
+ product_transaction_id =\
308
+ dictionary.get("product_transaction_id")\
309
+ if dictionary.get("product_transaction_id")\
310
+ else None
311
+ device_channel =\
312
+ dictionary.get("device_channel")\
313
+ if dictionary.get("device_channel")\
314
+ else None
315
+ message_category =\
316
+ dictionary.get("message_category")\
317
+ if dictionary.get("message_category")\
318
+ else None
319
+ three_ds_requestor =\
320
+ ThreeDsRequestor.from_dictionary(
321
+ dictionary.get("three_ds_requestor"))\
322
+ if dictionary.get("three_ds_requestor") else None
323
+ cardholder_account =\
324
+ CardholderAccount.from_dictionary(
325
+ dictionary.get("cardholder_account"))\
326
+ if dictionary.get("cardholder_account") else None
327
+ preferred_protocol_version =\
328
+ dictionary.get("preferred_protocol_version")\
329
+ if "preferred_protocol_version" in dictionary.keys()\
330
+ else APIHelper.SKIP
331
+ enforce_preferred_protocol_version =\
332
+ dictionary.get("enforce_preferred_protocol_version")\
333
+ if "enforce_preferred_protocol_version" in dictionary.keys()\
334
+ else APIHelper.SKIP
335
+ three_ds_comp_ind =\
336
+ dictionary.get("three_ds_comp_ind")\
337
+ if "three_ds_comp_ind" in dictionary.keys()\
338
+ else APIHelper.SKIP
339
+ three_ds_method_id =\
340
+ dictionary.get("three_ds_method_id")\
341
+ if "three_ds_method_id" in dictionary.keys()\
342
+ else APIHelper.SKIP
343
+ three_ds_server_trans_id =\
344
+ dictionary.get("three_ds_server_trans_id")\
345
+ if "three_ds_server_trans_id" in dictionary.keys()\
346
+ else APIHelper.SKIP
347
+ three_ds_requestor_url =\
348
+ dictionary.get("three_ds_requestor_url")\
349
+ if "three_ds_requestor_url" in dictionary.keys()\
350
+ else APIHelper.SKIP
351
+ cardholder =\
352
+ Cardholder.from_dictionary(
353
+ dictionary.get("cardholder"))\
354
+ if "cardholder" in dictionary.keys()\
355
+ else APIHelper.SKIP
356
+ purchase =\
357
+ Purchase.from_dictionary(
358
+ dictionary.get("purchase"))\
359
+ if "purchase" in dictionary.keys()\
360
+ else APIHelper.SKIP
361
+ broad_info =\
362
+ BroadInfo.from_dictionary(
363
+ dictionary.get("broad_info"))\
364
+ if "broad_info" in dictionary.keys()\
365
+ else APIHelper.SKIP
366
+ message_extension = None
367
+ if dictionary.get("message_extension") is not None:
368
+ message_extension = [
369
+ MessageExtension.from_dictionary(x)
370
+ for x in dictionary.get("message_extension")
371
+ ]
372
+ else:
373
+ message_extension = APIHelper.SKIP
374
+ challenge_message_extension = None
375
+ if dictionary.get("challenge_message_extension") is not None:
376
+ challenge_message_extension = [
377
+ ChallengeMessageExtension.from_dictionary(x)
378
+ for x in dictionary.get("challenge_message_extension")
379
+ ]
380
+ else:
381
+ challenge_message_extension = APIHelper.SKIP
382
+ browser_information =\
383
+ BrowserInformation.from_dictionary(
384
+ dictionary.get("browser_information"))\
385
+ if "browser_information" in dictionary.keys()\
386
+ else APIHelper.SKIP
387
+ three_ri_ind =\
388
+ dictionary.get("three_ri_ind")\
389
+ if "three_ri_ind" in dictionary.keys()\
390
+ else APIHelper.SKIP
391
+ device =\
392
+ Device.from_dictionary(
393
+ dictionary.get("device"))\
394
+ if "device" in dictionary.keys()\
395
+ else APIHelper.SKIP
396
+ multi_transaction =\
397
+ MultiTransaction.from_dictionary(
398
+ dictionary.get("multi_transaction"))\
399
+ if "multi_transaction" in dictionary.keys()\
400
+ else APIHelper.SKIP
401
+ device_id =\
402
+ dictionary.get("device_id")\
403
+ if "device_id" in dictionary.keys()\
404
+ else APIHelper.SKIP
405
+ user_id =\
406
+ dictionary.get("user_id")\
407
+ if "user_id" in dictionary.keys()\
408
+ else APIHelper.SKIP
409
+ payee_origin =\
410
+ dictionary.get("payee_origin")\
411
+ if "payee_origin" in dictionary.keys()\
412
+ else APIHelper.SKIP
413
+
414
+ # Clean out expected properties from dictionary
415
+ additional_properties =\
416
+ {k: v for k, v in dictionary.items() if k not in cls._names.values()}
417
+
418
+ # Return an object of this model
419
+ return cls(product_transaction_id,
420
+ device_channel,
421
+ message_category,
422
+ three_ds_requestor,
423
+ cardholder_account,
424
+ preferred_protocol_version,
425
+ enforce_preferred_protocol_version,
426
+ three_ds_comp_ind,
427
+ three_ds_method_id,
428
+ three_ds_server_trans_id,
429
+ three_ds_requestor_url,
430
+ cardholder,
431
+ purchase,
432
+ broad_info,
433
+ message_extension,
434
+ challenge_message_extension,
435
+ browser_information,
436
+ three_ri_ind,
437
+ device,
438
+ multi_transaction,
439
+ device_id,
440
+ user_id,
441
+ payee_origin,
442
+ additional_properties)
443
+
444
+ def __repr__(self):
445
+ """Return a unambiguous string representation."""
446
+ _product_transaction_id=self.product_transaction_id
447
+ _preferred_protocol_version=(
448
+ self.preferred_protocol_version
449
+ if hasattr(self, "preferred_protocol_version")
450
+ else None
451
+ )
452
+ _enforce_preferred_protocol_version=(
453
+ self.enforce_preferred_protocol_version
454
+ if hasattr(self, "enforce_preferred_protocol_version")
455
+ else None
456
+ )
457
+ _device_channel=self.device_channel
458
+ _message_category=self.message_category
459
+ _three_ds_comp_ind=(
460
+ self.three_ds_comp_ind
461
+ if hasattr(self, "three_ds_comp_ind")
462
+ else None
463
+ )
464
+ _three_ds_method_id=(
465
+ self.three_ds_method_id
466
+ if hasattr(self, "three_ds_method_id")
467
+ else None
468
+ )
469
+ _three_ds_requestor=self.three_ds_requestor
470
+ _three_ds_server_trans_id=(
471
+ self.three_ds_server_trans_id
472
+ if hasattr(self, "three_ds_server_trans_id")
473
+ else None
474
+ )
475
+ _three_ds_requestor_url=(
476
+ self.three_ds_requestor_url
477
+ if hasattr(self, "three_ds_requestor_url")
478
+ else None
479
+ )
480
+ _cardholder_account=self.cardholder_account
481
+ _cardholder=(
482
+ self.cardholder
483
+ if hasattr(self, "cardholder")
484
+ else None
485
+ )
486
+ _purchase=(
487
+ self.purchase
488
+ if hasattr(self, "purchase")
489
+ else None
490
+ )
491
+ _broad_info=(
492
+ self.broad_info
493
+ if hasattr(self, "broad_info")
494
+ else None
495
+ )
496
+ _message_extension=(
497
+ self.message_extension
498
+ if hasattr(self, "message_extension")
499
+ else None
500
+ )
501
+ _challenge_message_extension=(
502
+ self.challenge_message_extension
503
+ if hasattr(self, "challenge_message_extension")
504
+ else None
505
+ )
506
+ _browser_information=(
507
+ self.browser_information
508
+ if hasattr(self, "browser_information")
509
+ else None
510
+ )
511
+ _three_ri_ind=(
512
+ self.three_ri_ind
513
+ if hasattr(self, "three_ri_ind")
514
+ else None
515
+ )
516
+ _device=(
517
+ self.device
518
+ if hasattr(self, "device")
519
+ else None
520
+ )
521
+ _multi_transaction=(
522
+ self.multi_transaction
523
+ if hasattr(self, "multi_transaction")
524
+ else None
525
+ )
526
+ _device_id=(
527
+ self.device_id
528
+ if hasattr(self, "device_id")
529
+ else None
530
+ )
531
+ _user_id=(
532
+ self.user_id
533
+ if hasattr(self, "user_id")
534
+ else None
535
+ )
536
+ _payee_origin=(
537
+ self.payee_origin
538
+ if hasattr(self, "payee_origin")
539
+ else None
540
+ )
541
+ _additional_properties=self.additional_properties
542
+ return (
543
+ f"{self.__class__.__name__}("
544
+ f"product_transaction_id={_product_transaction_id!r}, "
545
+ f"preferred_protocol_version={_preferred_protocol_version!r}, "
546
+ f"enforce_preferred_protocol_version={_enforce_preferred_protocol_version!r}, "
547
+ f"device_channel={_device_channel!r}, "
548
+ f"message_category={_message_category!r}, "
549
+ f"three_ds_comp_ind={_three_ds_comp_ind!r}, "
550
+ f"three_ds_method_id={_three_ds_method_id!r}, "
551
+ f"three_ds_requestor={_three_ds_requestor!r}, "
552
+ f"three_ds_server_trans_id={_three_ds_server_trans_id!r}, "
553
+ f"three_ds_requestor_url={_three_ds_requestor_url!r}, "
554
+ f"cardholder_account={_cardholder_account!r}, "
555
+ f"cardholder={_cardholder!r}, "
556
+ f"purchase={_purchase!r}, "
557
+ f"broad_info={_broad_info!r}, "
558
+ f"message_extension={_message_extension!r}, "
559
+ f"challenge_message_extension={_challenge_message_extension!r}, "
560
+ f"browser_information={_browser_information!r}, "
561
+ f"three_ri_ind={_three_ri_ind!r}, "
562
+ f"device={_device!r}, "
563
+ f"multi_transaction={_multi_transaction!r}, "
564
+ f"device_id={_device_id!r}, "
565
+ f"user_id={_user_id!r}, "
566
+ f"payee_origin={_payee_origin!r}, "
567
+ f"additional_properties={_additional_properties!r}, "
568
+ f")"
569
+ )
570
+
571
+ def __str__(self):
572
+ """Return a human-readable string representation."""
573
+ _product_transaction_id=self.product_transaction_id
574
+ _preferred_protocol_version=(
575
+ self.preferred_protocol_version
576
+ if hasattr(self, "preferred_protocol_version")
577
+ else None
578
+ )
579
+ _enforce_preferred_protocol_version=(
580
+ self.enforce_preferred_protocol_version
581
+ if hasattr(self, "enforce_preferred_protocol_version")
582
+ else None
583
+ )
584
+ _device_channel=self.device_channel
585
+ _message_category=self.message_category
586
+ _three_ds_comp_ind=(
587
+ self.three_ds_comp_ind
588
+ if hasattr(self, "three_ds_comp_ind")
589
+ else None
590
+ )
591
+ _three_ds_method_id=(
592
+ self.three_ds_method_id
593
+ if hasattr(self, "three_ds_method_id")
594
+ else None
595
+ )
596
+ _three_ds_requestor=self.three_ds_requestor
597
+ _three_ds_server_trans_id=(
598
+ self.three_ds_server_trans_id
599
+ if hasattr(self, "three_ds_server_trans_id")
600
+ else None
601
+ )
602
+ _three_ds_requestor_url=(
603
+ self.three_ds_requestor_url
604
+ if hasattr(self, "three_ds_requestor_url")
605
+ else None
606
+ )
607
+ _cardholder_account=self.cardholder_account
608
+ _cardholder=(
609
+ self.cardholder
610
+ if hasattr(self, "cardholder")
611
+ else None
612
+ )
613
+ _purchase=(
614
+ self.purchase
615
+ if hasattr(self, "purchase")
616
+ else None
617
+ )
618
+ _broad_info=(
619
+ self.broad_info
620
+ if hasattr(self, "broad_info")
621
+ else None
622
+ )
623
+ _message_extension=(
624
+ self.message_extension
625
+ if hasattr(self, "message_extension")
626
+ else None
627
+ )
628
+ _challenge_message_extension=(
629
+ self.challenge_message_extension
630
+ if hasattr(self, "challenge_message_extension")
631
+ else None
632
+ )
633
+ _browser_information=(
634
+ self.browser_information
635
+ if hasattr(self, "browser_information")
636
+ else None
637
+ )
638
+ _three_ri_ind=(
639
+ self.three_ri_ind
640
+ if hasattr(self, "three_ri_ind")
641
+ else None
642
+ )
643
+ _device=(
644
+ self.device
645
+ if hasattr(self, "device")
646
+ else None
647
+ )
648
+ _multi_transaction=(
649
+ self.multi_transaction
650
+ if hasattr(self, "multi_transaction")
651
+ else None
652
+ )
653
+ _device_id=(
654
+ self.device_id
655
+ if hasattr(self, "device_id")
656
+ else None
657
+ )
658
+ _user_id=(
659
+ self.user_id
660
+ if hasattr(self, "user_id")
661
+ else None
662
+ )
663
+ _payee_origin=(
664
+ self.payee_origin
665
+ if hasattr(self, "payee_origin")
666
+ else None
667
+ )
668
+ _additional_properties=self.additional_properties
669
+ return (
670
+ f"{self.__class__.__name__}("
671
+ f"product_transaction_id={_product_transaction_id!s}, "
672
+ f"preferred_protocol_version={_preferred_protocol_version!s}, "
673
+ f"enforce_preferred_protocol_version={_enforce_preferred_protocol_version!s}, "
674
+ f"device_channel={_device_channel!s}, "
675
+ f"message_category={_message_category!s}, "
676
+ f"three_ds_comp_ind={_three_ds_comp_ind!s}, "
677
+ f"three_ds_method_id={_three_ds_method_id!s}, "
678
+ f"three_ds_requestor={_three_ds_requestor!s}, "
679
+ f"three_ds_server_trans_id={_three_ds_server_trans_id!s}, "
680
+ f"three_ds_requestor_url={_three_ds_requestor_url!s}, "
681
+ f"cardholder_account={_cardholder_account!s}, "
682
+ f"cardholder={_cardholder!s}, "
683
+ f"purchase={_purchase!s}, "
684
+ f"broad_info={_broad_info!s}, "
685
+ f"message_extension={_message_extension!s}, "
686
+ f"challenge_message_extension={_challenge_message_extension!s}, "
687
+ f"browser_information={_browser_information!s}, "
688
+ f"three_ri_ind={_three_ri_ind!s}, "
689
+ f"device={_device!s}, "
690
+ f"multi_transaction={_multi_transaction!s}, "
691
+ f"device_id={_device_id!s}, "
692
+ f"user_id={_user_id!s}, "
693
+ f"payee_origin={_payee_origin!s}, "
694
+ f"additional_properties={_additional_properties!s}, "
695
+ f")"
696
+ )