onlinepayments-sdk-python3 7.4.1__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 (475) hide show
  1. onlinepayments/__init__.py +0 -0
  2. onlinepayments/sdk/__init__.py +4 -0
  3. onlinepayments/sdk/api_exception.py +60 -0
  4. onlinepayments/sdk/api_resource.py +57 -0
  5. onlinepayments/sdk/authentication/__init__.py +0 -0
  6. onlinepayments/sdk/authentication/authenticator.py +24 -0
  7. onlinepayments/sdk/authentication/authorization_type.py +10 -0
  8. onlinepayments/sdk/authentication/v1hmac_authenticator.py +122 -0
  9. onlinepayments/sdk/authorization_exception.py +19 -0
  10. onlinepayments/sdk/call_context.py +72 -0
  11. onlinepayments/sdk/client.py +107 -0
  12. onlinepayments/sdk/communication/__init__.py +0 -0
  13. onlinepayments/sdk/communication/communication_exception.py +8 -0
  14. onlinepayments/sdk/communication/connection.py +84 -0
  15. onlinepayments/sdk/communication/default_connection.py +313 -0
  16. onlinepayments/sdk/communication/i_metadata_provider.py +19 -0
  17. onlinepayments/sdk/communication/metadata_provider.py +132 -0
  18. onlinepayments/sdk/communication/multipart_form_data_object.py +51 -0
  19. onlinepayments/sdk/communication/multipart_form_data_request.py +16 -0
  20. onlinepayments/sdk/communication/not_found_exception.py +10 -0
  21. onlinepayments/sdk/communication/param_request.py +17 -0
  22. onlinepayments/sdk/communication/pooled_connection.py +29 -0
  23. onlinepayments/sdk/communication/request_header.py +60 -0
  24. onlinepayments/sdk/communication/request_param.py +30 -0
  25. onlinepayments/sdk/communication/response_exception.py +58 -0
  26. onlinepayments/sdk/communication/response_header.py +50 -0
  27. onlinepayments/sdk/communicator.py +465 -0
  28. onlinepayments/sdk/communicator_configuration.py +264 -0
  29. onlinepayments/sdk/declined_payment_exception.py +46 -0
  30. onlinepayments/sdk/declined_payout_exception.py +46 -0
  31. onlinepayments/sdk/declined_refund_exception.py +46 -0
  32. onlinepayments/sdk/declined_transaction_exception.py +22 -0
  33. onlinepayments/sdk/domain/__init__.py +4 -0
  34. onlinepayments/sdk/domain/acceptance.py +56 -0
  35. onlinepayments/sdk/domain/account_on_file.py +102 -0
  36. onlinepayments/sdk/domain/account_on_file_attribute.py +97 -0
  37. onlinepayments/sdk/domain/account_on_file_display_hints.py +64 -0
  38. onlinepayments/sdk/domain/acquirer_information.py +59 -0
  39. onlinepayments/sdk/domain/acquirer_selection_information.py +73 -0
  40. onlinepayments/sdk/domain/additional_order_input.py +107 -0
  41. onlinepayments/sdk/domain/address.py +145 -0
  42. onlinepayments/sdk/domain/address_personal.py +185 -0
  43. onlinepayments/sdk/domain/airline_data.py +519 -0
  44. onlinepayments/sdk/domain/airline_flight_leg.py +386 -0
  45. onlinepayments/sdk/domain/airline_passenger.py +129 -0
  46. onlinepayments/sdk/domain/amount_breakdown.py +63 -0
  47. onlinepayments/sdk/domain/amount_of_money.py +59 -0
  48. onlinepayments/sdk/domain/api_error.py +177 -0
  49. onlinepayments/sdk/domain/apple_pay_line_item.py +145 -0
  50. onlinepayments/sdk/domain/apple_pay_recurring_payment_request.py +116 -0
  51. onlinepayments/sdk/domain/bank_account_iban.py +37 -0
  52. onlinepayments/sdk/domain/batch_metadata.py +73 -0
  53. onlinepayments/sdk/domain/browser_data.py +130 -0
  54. onlinepayments/sdk/domain/calculate_surcharge_request.py +63 -0
  55. onlinepayments/sdk/domain/calculate_surcharge_response.py +44 -0
  56. onlinepayments/sdk/domain/cancel_payment_batch_request.py +57 -0
  57. onlinepayments/sdk/domain/cancel_payment_request.py +130 -0
  58. onlinepayments/sdk/domain/cancel_payment_response.py +41 -0
  59. onlinepayments/sdk/domain/capture.py +97 -0
  60. onlinepayments/sdk/domain/capture_output.py +272 -0
  61. onlinepayments/sdk/domain/capture_payment_batch_request.py +57 -0
  62. onlinepayments/sdk/domain/capture_payment_request.py +148 -0
  63. onlinepayments/sdk/domain/capture_response.py +99 -0
  64. onlinepayments/sdk/domain/capture_status_output.py +37 -0
  65. onlinepayments/sdk/domain/captures_response.py +46 -0
  66. onlinepayments/sdk/domain/card.py +91 -0
  67. onlinepayments/sdk/domain/card_bin_details.py +384 -0
  68. onlinepayments/sdk/domain/card_data_without_cvv.py +73 -0
  69. onlinepayments/sdk/domain/card_essentials.py +438 -0
  70. onlinepayments/sdk/domain/card_fraud_results.py +112 -0
  71. onlinepayments/sdk/domain/card_info.py +55 -0
  72. onlinepayments/sdk/domain/card_payment_method_specific_input.py +608 -0
  73. onlinepayments/sdk/domain/card_payment_method_specific_input_base.py +441 -0
  74. onlinepayments/sdk/domain/card_payment_method_specific_input_for_hosted_checkout.py +105 -0
  75. onlinepayments/sdk/domain/card_payment_method_specific_output.py +467 -0
  76. onlinepayments/sdk/domain/card_payout_method_specific_input.py +99 -0
  77. onlinepayments/sdk/domain/card_recurrence_details.py +40 -0
  78. onlinepayments/sdk/domain/card_source.py +95 -0
  79. onlinepayments/sdk/domain/card_without_cvv.py +73 -0
  80. onlinepayments/sdk/domain/click_to_pay.py +37 -0
  81. onlinepayments/sdk/domain/company_information.py +37 -0
  82. onlinepayments/sdk/domain/complete_payment_card_payment_method_specific_input.py +39 -0
  83. onlinepayments/sdk/domain/complete_payment_request.py +61 -0
  84. onlinepayments/sdk/domain/complete_payment_response.py +85 -0
  85. onlinepayments/sdk/domain/contact_details.py +109 -0
  86. onlinepayments/sdk/domain/create_certificate_response.py +55 -0
  87. onlinepayments/sdk/domain/create_hosted_checkout_request.py +195 -0
  88. onlinepayments/sdk/domain/create_hosted_checkout_response.py +132 -0
  89. onlinepayments/sdk/domain/create_hosted_fields_session_request.py +37 -0
  90. onlinepayments/sdk/domain/create_hosted_fields_session_response.py +102 -0
  91. onlinepayments/sdk/domain/create_hosted_tokenization_request.py +133 -0
  92. onlinepayments/sdk/domain/create_hosted_tokenization_response.py +127 -0
  93. onlinepayments/sdk/domain/create_mandate_request.py +187 -0
  94. onlinepayments/sdk/domain/create_mandate_response.py +63 -0
  95. onlinepayments/sdk/domain/create_mandate_with_return_url.py +187 -0
  96. onlinepayments/sdk/domain/create_payment_link_request.py +344 -0
  97. onlinepayments/sdk/domain/create_payment_request.py +249 -0
  98. onlinepayments/sdk/domain/create_payment_response.py +85 -0
  99. onlinepayments/sdk/domain/create_payout_request.py +176 -0
  100. onlinepayments/sdk/domain/create_token_request.py +77 -0
  101. onlinepayments/sdk/domain/created_payment_output.py +57 -0
  102. onlinepayments/sdk/domain/created_token_response.py +142 -0
  103. onlinepayments/sdk/domain/credit_card_specific_input_hosted_tokenization.py +66 -0
  104. onlinepayments/sdk/domain/credit_card_validation_rules.py +55 -0
  105. onlinepayments/sdk/domain/credit_card_validation_rules_hosted_tokenization.py +55 -0
  106. onlinepayments/sdk/domain/crm_token.py +55 -0
  107. onlinepayments/sdk/domain/csr_request.py +37 -0
  108. onlinepayments/sdk/domain/currency_conversion.py +59 -0
  109. onlinepayments/sdk/domain/currency_conversion_input.py +55 -0
  110. onlinepayments/sdk/domain/currency_conversion_request.py +59 -0
  111. onlinepayments/sdk/domain/currency_conversion_response.py +81 -0
  112. onlinepayments/sdk/domain/currency_conversion_result.py +61 -0
  113. onlinepayments/sdk/domain/currency_conversion_specific_input.py +40 -0
  114. onlinepayments/sdk/domain/customer.py +234 -0
  115. onlinepayments/sdk/domain/customer_account.py +204 -0
  116. onlinepayments/sdk/domain/customer_account_authentication.py +81 -0
  117. onlinepayments/sdk/domain/customer_bank_account.py +73 -0
  118. onlinepayments/sdk/domain/customer_device.py +155 -0
  119. onlinepayments/sdk/domain/customer_device_output.py +37 -0
  120. onlinepayments/sdk/domain/customer_output.py +41 -0
  121. onlinepayments/sdk/domain/customer_payment_activity.py +73 -0
  122. onlinepayments/sdk/domain/customer_token.py +83 -0
  123. onlinepayments/sdk/domain/data_object.py +47 -0
  124. onlinepayments/sdk/domain/dcc_card_source.py +93 -0
  125. onlinepayments/sdk/domain/dcc_proposal.py +118 -0
  126. onlinepayments/sdk/domain/decrypted_payment_data.py +120 -0
  127. onlinepayments/sdk/domain/detokenization_response.py +46 -0
  128. onlinepayments/sdk/domain/detokenized_token_response.py +145 -0
  129. onlinepayments/sdk/domain/directory_entry.py +73 -0
  130. onlinepayments/sdk/domain/discount.py +41 -0
  131. onlinepayments/sdk/domain/empty_validator.py +16 -0
  132. onlinepayments/sdk/domain/error_response.py +64 -0
  133. onlinepayments/sdk/domain/external_cardholder_authentication_data.py +216 -0
  134. onlinepayments/sdk/domain/external_token_linked.py +75 -0
  135. onlinepayments/sdk/domain/feedbacks.py +64 -0
  136. onlinepayments/sdk/domain/fixed_list_validator.py +42 -0
  137. onlinepayments/sdk/domain/fraud_fields.py +84 -0
  138. onlinepayments/sdk/domain/fraud_results.py +43 -0
  139. onlinepayments/sdk/domain/g_pay_three_d_secure.py +159 -0
  140. onlinepayments/sdk/domain/get_batch_status_response.py +91 -0
  141. onlinepayments/sdk/domain/get_hosted_checkout_response.py +63 -0
  142. onlinepayments/sdk/domain/get_hosted_tokenization_response.py +61 -0
  143. onlinepayments/sdk/domain/get_iin_details_request.py +57 -0
  144. onlinepayments/sdk/domain/get_iin_details_response.py +450 -0
  145. onlinepayments/sdk/domain/get_mandate_response.py +41 -0
  146. onlinepayments/sdk/domain/get_payment_product_groups_response.py +44 -0
  147. onlinepayments/sdk/domain/get_payment_products_response.py +44 -0
  148. onlinepayments/sdk/domain/get_privacy_policy_response.py +37 -0
  149. onlinepayments/sdk/domain/gift_card_purchase.py +59 -0
  150. onlinepayments/sdk/domain/hosted_checkout_specific_input.py +250 -0
  151. onlinepayments/sdk/domain/hosted_checkout_specific_output.py +55 -0
  152. onlinepayments/sdk/domain/iin_detail.py +423 -0
  153. onlinepayments/sdk/domain/import_cof_series_request.py +113 -0
  154. onlinepayments/sdk/domain/import_cof_series_response.py +37 -0
  155. onlinepayments/sdk/domain/label_template_element.py +55 -0
  156. onlinepayments/sdk/domain/length_validator.py +51 -0
  157. onlinepayments/sdk/domain/line_item.py +107 -0
  158. onlinepayments/sdk/domain/line_item_detail.py +99 -0
  159. onlinepayments/sdk/domain/line_item_invoice_data.py +37 -0
  160. onlinepayments/sdk/domain/loan_recipient.py +109 -0
  161. onlinepayments/sdk/domain/lodging_data.py +37 -0
  162. onlinepayments/sdk/domain/mandate_address.py +109 -0
  163. onlinepayments/sdk/domain/mandate_address_response.py +109 -0
  164. onlinepayments/sdk/domain/mandate_contact_details.py +37 -0
  165. onlinepayments/sdk/domain/mandate_customer.py +125 -0
  166. onlinepayments/sdk/domain/mandate_customer_response.py +125 -0
  167. onlinepayments/sdk/domain/mandate_merchant_action.py +61 -0
  168. onlinepayments/sdk/domain/mandate_personal_information.py +59 -0
  169. onlinepayments/sdk/domain/mandate_personal_information_response.py +59 -0
  170. onlinepayments/sdk/domain/mandate_personal_name.py +55 -0
  171. onlinepayments/sdk/domain/mandate_personal_name_response.py +55 -0
  172. onlinepayments/sdk/domain/mandate_redirect_data.py +55 -0
  173. onlinepayments/sdk/domain/mandate_response.py +150 -0
  174. onlinepayments/sdk/domain/market_place.py +55 -0
  175. onlinepayments/sdk/domain/merchant_action.py +132 -0
  176. onlinepayments/sdk/domain/mobile_payment_data.py +55 -0
  177. onlinepayments/sdk/domain/mobile_payment_method_hosted_checkout_specific_input.py +105 -0
  178. onlinepayments/sdk/domain/mobile_payment_method_specific_input.py +202 -0
  179. onlinepayments/sdk/domain/mobile_payment_method_specific_output.py +139 -0
  180. onlinepayments/sdk/domain/mobile_payment_product302_specific_input.py +103 -0
  181. onlinepayments/sdk/domain/mobile_payment_product320_specific_input.py +103 -0
  182. onlinepayments/sdk/domain/mobile_three_d_secure_challenge_parameters.py +91 -0
  183. onlinepayments/sdk/domain/multiple_payment_information.py +57 -0
  184. onlinepayments/sdk/domain/network_token_data.py +127 -0
  185. onlinepayments/sdk/domain/network_token_essentials.py +134 -0
  186. onlinepayments/sdk/domain/network_token_linked.py +80 -0
  187. onlinepayments/sdk/domain/omnichannel_payment_specific_input.py +37 -0
  188. onlinepayments/sdk/domain/omnichannel_payout_specific_input.py +55 -0
  189. onlinepayments/sdk/domain/omnichannel_refund_specific_input.py +37 -0
  190. onlinepayments/sdk/domain/omnichannel_subsequent_specific_input.py +37 -0
  191. onlinepayments/sdk/domain/operation_output.py +161 -0
  192. onlinepayments/sdk/domain/operation_payment_references.py +55 -0
  193. onlinepayments/sdk/domain/order.py +213 -0
  194. onlinepayments/sdk/domain/order_line_details.py +189 -0
  195. onlinepayments/sdk/domain/order_references.py +120 -0
  196. onlinepayments/sdk/domain/order_status_output.py +119 -0
  197. onlinepayments/sdk/domain/order_type_information.py +64 -0
  198. onlinepayments/sdk/domain/other_details.py +55 -0
  199. onlinepayments/sdk/domain/payment_account_on_file.py +57 -0
  200. onlinepayments/sdk/domain/payment_context.py +77 -0
  201. onlinepayments/sdk/domain/payment_creation_output.py +94 -0
  202. onlinepayments/sdk/domain/payment_details_response.py +148 -0
  203. onlinepayments/sdk/domain/payment_error_response.py +84 -0
  204. onlinepayments/sdk/domain/payment_link_event.py +73 -0
  205. onlinepayments/sdk/domain/payment_link_order_input.py +84 -0
  206. onlinepayments/sdk/domain/payment_link_order_output.py +81 -0
  207. onlinepayments/sdk/domain/payment_link_response.py +216 -0
  208. onlinepayments/sdk/domain/payment_link_specific_input.py +74 -0
  209. onlinepayments/sdk/domain/payment_links_response.py +44 -0
  210. onlinepayments/sdk/domain/payment_output.py +335 -0
  211. onlinepayments/sdk/domain/payment_product.py +296 -0
  212. onlinepayments/sdk/domain/payment_product130_specific_input.py +41 -0
  213. onlinepayments/sdk/domain/payment_product130_specific_three_d_secure.py +91 -0
  214. onlinepayments/sdk/domain/payment_product3012.py +55 -0
  215. onlinepayments/sdk/domain/payment_product3012_specific_input.py +100 -0
  216. onlinepayments/sdk/domain/payment_product3013_specific_input.py +73 -0
  217. onlinepayments/sdk/domain/payment_product302_specific_data.py +44 -0
  218. onlinepayments/sdk/domain/payment_product3203_specific_output.py +62 -0
  219. onlinepayments/sdk/domain/payment_product3204_specific_output.py +37 -0
  220. onlinepayments/sdk/domain/payment_product3208_specific_input.py +37 -0
  221. onlinepayments/sdk/domain/payment_product3208_specific_output.py +37 -0
  222. onlinepayments/sdk/domain/payment_product3209_specific_input.py +37 -0
  223. onlinepayments/sdk/domain/payment_product3209_specific_output.py +37 -0
  224. onlinepayments/sdk/domain/payment_product320_specific_data.py +62 -0
  225. onlinepayments/sdk/domain/payment_product350.py +55 -0
  226. onlinepayments/sdk/domain/payment_product5001.py +58 -0
  227. onlinepayments/sdk/domain/payment_product5001_specific_output.py +112 -0
  228. onlinepayments/sdk/domain/payment_product5100_specific_input.py +37 -0
  229. onlinepayments/sdk/domain/payment_product5402_specific_output.py +37 -0
  230. onlinepayments/sdk/domain/payment_product5404.py +55 -0
  231. onlinepayments/sdk/domain/payment_product5407.py +55 -0
  232. onlinepayments/sdk/domain/payment_product5500_specific_output.py +91 -0
  233. onlinepayments/sdk/domain/payment_product771_specific_output.py +37 -0
  234. onlinepayments/sdk/domain/payment_product840.py +37 -0
  235. onlinepayments/sdk/domain/payment_product840_customer_account.py +170 -0
  236. onlinepayments/sdk/domain/payment_product840_specific_output.py +167 -0
  237. onlinepayments/sdk/domain/payment_product_display_hints.py +73 -0
  238. onlinepayments/sdk/domain/payment_product_field.py +95 -0
  239. onlinepayments/sdk/domain/payment_product_field_data_restrictions.py +60 -0
  240. onlinepayments/sdk/domain/payment_product_field_display_element.py +97 -0
  241. onlinepayments/sdk/domain/payment_product_field_display_hints.py +218 -0
  242. onlinepayments/sdk/domain/payment_product_field_form_element.py +72 -0
  243. onlinepayments/sdk/domain/payment_product_field_tooltip.py +57 -0
  244. onlinepayments/sdk/domain/payment_product_field_validators.py +195 -0
  245. onlinepayments/sdk/domain/payment_product_filter.py +67 -0
  246. onlinepayments/sdk/domain/payment_product_filter_hosted_tokenization.py +42 -0
  247. onlinepayments/sdk/domain/payment_product_filters_hosted_checkout.py +62 -0
  248. onlinepayments/sdk/domain/payment_product_filters_hosted_tokenization.py +62 -0
  249. onlinepayments/sdk/domain/payment_product_group.py +103 -0
  250. onlinepayments/sdk/domain/payment_product_networks_response.py +42 -0
  251. onlinepayments/sdk/domain/payment_references.py +73 -0
  252. onlinepayments/sdk/domain/payment_response.py +143 -0
  253. onlinepayments/sdk/domain/payment_status_output.py +152 -0
  254. onlinepayments/sdk/domain/payout_error_response.py +80 -0
  255. onlinepayments/sdk/domain/payout_output.py +63 -0
  256. onlinepayments/sdk/domain/payout_response.py +93 -0
  257. onlinepayments/sdk/domain/payout_result.py +93 -0
  258. onlinepayments/sdk/domain/payout_status_output.py +76 -0
  259. onlinepayments/sdk/domain/pending_authentication.py +37 -0
  260. onlinepayments/sdk/domain/personal_information.py +77 -0
  261. onlinepayments/sdk/domain/personal_information_token.py +39 -0
  262. onlinepayments/sdk/domain/personal_name.py +73 -0
  263. onlinepayments/sdk/domain/personal_name_token.py +51 -0
  264. onlinepayments/sdk/domain/product302_recurring.py +37 -0
  265. onlinepayments/sdk/domain/product320_recurring.py +37 -0
  266. onlinepayments/sdk/domain/product_directory.py +46 -0
  267. onlinepayments/sdk/domain/protection_eligibility.py +59 -0
  268. onlinepayments/sdk/domain/range_validator.py +51 -0
  269. onlinepayments/sdk/domain/rate_details.py +109 -0
  270. onlinepayments/sdk/domain/reattempt_instructions.py +82 -0
  271. onlinepayments/sdk/domain/reattempt_instructions_conditions.py +55 -0
  272. onlinepayments/sdk/domain/redirect_data.py +55 -0
  273. onlinepayments/sdk/domain/redirect_payment_method_specific_input.py +575 -0
  274. onlinepayments/sdk/domain/redirect_payment_method_specific_output.py +267 -0
  275. onlinepayments/sdk/domain/redirect_payment_product11_specific_input.py +38 -0
  276. onlinepayments/sdk/domain/redirect_payment_product3103_specific_input.py +40 -0
  277. onlinepayments/sdk/domain/redirect_payment_product3112_specific_input.py +40 -0
  278. onlinepayments/sdk/domain/redirect_payment_product3116_specific_input.py +40 -0
  279. onlinepayments/sdk/domain/redirect_payment_product3203_specific_input.py +40 -0
  280. onlinepayments/sdk/domain/redirect_payment_product3204_specific_input.py +55 -0
  281. onlinepayments/sdk/domain/redirect_payment_product3302_specific_input.py +73 -0
  282. onlinepayments/sdk/domain/redirect_payment_product3306_specific_input.py +37 -0
  283. onlinepayments/sdk/domain/redirect_payment_product3307_specific_input.py +16 -0
  284. onlinepayments/sdk/domain/redirect_payment_product5001_specific_input.py +62 -0
  285. onlinepayments/sdk/domain/redirect_payment_product5300_specific_input.py +163 -0
  286. onlinepayments/sdk/domain/redirect_payment_product5402_specific_input.py +40 -0
  287. onlinepayments/sdk/domain/redirect_payment_product5403_specific_input.py +40 -0
  288. onlinepayments/sdk/domain/redirect_payment_product5406_specific_input.py +41 -0
  289. onlinepayments/sdk/domain/redirect_payment_product5408_specific_input.py +60 -0
  290. onlinepayments/sdk/domain/redirect_payment_product5410_specific_input.py +38 -0
  291. onlinepayments/sdk/domain/redirect_payment_product5412_specific_input.py +55 -0
  292. onlinepayments/sdk/domain/redirect_payment_product5601_specific_input.py +40 -0
  293. onlinepayments/sdk/domain/redirect_payment_product809_specific_input.py +40 -0
  294. onlinepayments/sdk/domain/redirect_payment_product840_specific_input.py +100 -0
  295. onlinepayments/sdk/domain/redirection_data.py +37 -0
  296. onlinepayments/sdk/domain/refund_card_method_specific_output.py +71 -0
  297. onlinepayments/sdk/domain/refund_e_wallet_method_specific_output.py +71 -0
  298. onlinepayments/sdk/domain/refund_error_response.py +82 -0
  299. onlinepayments/sdk/domain/refund_mobile_method_specific_output.py +69 -0
  300. onlinepayments/sdk/domain/refund_output.py +217 -0
  301. onlinepayments/sdk/domain/refund_payment_batch_request.py +57 -0
  302. onlinepayments/sdk/domain/refund_payment_product840_customer_account.py +69 -0
  303. onlinepayments/sdk/domain/refund_payment_product840_specific_output.py +39 -0
  304. onlinepayments/sdk/domain/refund_redirect_method_specific_output.py +51 -0
  305. onlinepayments/sdk/domain/refund_redirect_payment_method_specific_input.py +41 -0
  306. onlinepayments/sdk/domain/refund_redirect_payment_product900_specific_input.py +37 -0
  307. onlinepayments/sdk/domain/refund_request.py +210 -0
  308. onlinepayments/sdk/domain/refund_response.py +97 -0
  309. onlinepayments/sdk/domain/refunds_response.py +46 -0
  310. onlinepayments/sdk/domain/regular_expression_validator.py +35 -0
  311. onlinepayments/sdk/domain/revoke_mandate_request.py +48 -0
  312. onlinepayments/sdk/domain/send_test_request.py +37 -0
  313. onlinepayments/sdk/domain/sepa_direct_debit_payment_method_specific_input.py +59 -0
  314. onlinepayments/sdk/domain/sepa_direct_debit_payment_method_specific_input_base.py +59 -0
  315. onlinepayments/sdk/domain/sepa_direct_debit_payment_method_specific_output.py +81 -0
  316. onlinepayments/sdk/domain/sepa_direct_debit_payment_product771_specific_input.py +59 -0
  317. onlinepayments/sdk/domain/sepa_direct_debit_payment_product771_specific_input_base.py +59 -0
  318. onlinepayments/sdk/domain/session_data.py +116 -0
  319. onlinepayments/sdk/domain/session_details.py +55 -0
  320. onlinepayments/sdk/domain/session_request.py +44 -0
  321. onlinepayments/sdk/domain/session_response.py +114 -0
  322. onlinepayments/sdk/domain/shipping.py +214 -0
  323. onlinepayments/sdk/domain/shipping_detail.py +63 -0
  324. onlinepayments/sdk/domain/shipping_method.py +91 -0
  325. onlinepayments/sdk/domain/shopping_cart.py +155 -0
  326. onlinepayments/sdk/domain/shopping_cart_extension.py +77 -0
  327. onlinepayments/sdk/domain/shopping_cart_output.py +46 -0
  328. onlinepayments/sdk/domain/show_form_data.py +173 -0
  329. onlinepayments/sdk/domain/show_instructions_data.py +37 -0
  330. onlinepayments/sdk/domain/split_payment_product_filter.py +42 -0
  331. onlinepayments/sdk/domain/split_payment_product_filters_hosted_checkout.py +62 -0
  332. onlinepayments/sdk/domain/submit_batch_request_body.py +230 -0
  333. onlinepayments/sdk/domain/submit_batch_response.py +55 -0
  334. onlinepayments/sdk/domain/subsequent_card_payment_method_specific_input.py +175 -0
  335. onlinepayments/sdk/domain/subsequent_payment_batch_request.py +57 -0
  336. onlinepayments/sdk/domain/subsequent_payment_product5001_specific_input.py +41 -0
  337. onlinepayments/sdk/domain/subsequent_payment_request.py +107 -0
  338. onlinepayments/sdk/domain/subsequent_payment_response.py +41 -0
  339. onlinepayments/sdk/domain/surcharge.py +141 -0
  340. onlinepayments/sdk/domain/surcharge_calculation_card.py +55 -0
  341. onlinepayments/sdk/domain/surcharge_for_payment_link.py +40 -0
  342. onlinepayments/sdk/domain/surcharge_rate.py +91 -0
  343. onlinepayments/sdk/domain/surcharge_specific_input.py +62 -0
  344. onlinepayments/sdk/domain/surcharge_specific_output.py +84 -0
  345. onlinepayments/sdk/domain/test_connection.py +35 -0
  346. onlinepayments/sdk/domain/three_d_secure.py +281 -0
  347. onlinepayments/sdk/domain/three_d_secure_base.py +219 -0
  348. onlinepayments/sdk/domain/three_d_secure_data.py +78 -0
  349. onlinepayments/sdk/domain/three_d_secure_results.py +266 -0
  350. onlinepayments/sdk/domain/token_card.py +57 -0
  351. onlinepayments/sdk/domain/token_card_data.py +83 -0
  352. onlinepayments/sdk/domain/token_card_specific_input.py +41 -0
  353. onlinepayments/sdk/domain/token_data.py +63 -0
  354. onlinepayments/sdk/domain/token_e_wallet.py +59 -0
  355. onlinepayments/sdk/domain/token_response.py +181 -0
  356. onlinepayments/sdk/domain/transaction.py +41 -0
  357. onlinepayments/sdk/domain/uploadable_file.py +51 -0
  358. onlinepayments/sdk/domain/validate_credentials_request.py +55 -0
  359. onlinepayments/sdk/domain/validate_credentials_response.py +37 -0
  360. onlinepayments/sdk/domain/value_mapping_element.py +62 -0
  361. onlinepayments/sdk/domain/web_hooks_event.py +214 -0
  362. onlinepayments/sdk/exception_factory.py +75 -0
  363. onlinepayments/sdk/factory.py +127 -0
  364. onlinepayments/sdk/i_client.py +78 -0
  365. onlinepayments/sdk/i_communicator.py +180 -0
  366. onlinepayments/sdk/idempotence_exception.py +36 -0
  367. onlinepayments/sdk/json/__init__.py +0 -0
  368. onlinepayments/sdk/json/default_marshaller.py +60 -0
  369. onlinepayments/sdk/json/marshaller.py +32 -0
  370. onlinepayments/sdk/json/marshaller_syntax_exception.py +13 -0
  371. onlinepayments/sdk/log/__init__.py +0 -0
  372. onlinepayments/sdk/log/body_obfuscator.py +113 -0
  373. onlinepayments/sdk/log/communicator_logger.py +35 -0
  374. onlinepayments/sdk/log/header_obfuscator.py +49 -0
  375. onlinepayments/sdk/log/log_message.py +94 -0
  376. onlinepayments/sdk/log/logging_capable.py +26 -0
  377. onlinepayments/sdk/log/obfuscation_capable.py +24 -0
  378. onlinepayments/sdk/log/obfuscation_rule.py +50 -0
  379. onlinepayments/sdk/log/python_communicator_logger.py +54 -0
  380. onlinepayments/sdk/log/request_log_message.py +28 -0
  381. onlinepayments/sdk/log/response_log_message.py +37 -0
  382. onlinepayments/sdk/log/sys_out_communicator_logger.py +36 -0
  383. onlinepayments/sdk/merchant/__init__.py +4 -0
  384. onlinepayments/sdk/merchant/captures/__init__.py +4 -0
  385. onlinepayments/sdk/merchant/captures/captures_client.py +63 -0
  386. onlinepayments/sdk/merchant/captures/i_captures_client.py +34 -0
  387. onlinepayments/sdk/merchant/cofseries/__init__.py +4 -0
  388. onlinepayments/sdk/merchant/cofseries/cof_series_client.py +62 -0
  389. onlinepayments/sdk/merchant/cofseries/i_cof_series_client.py +35 -0
  390. onlinepayments/sdk/merchant/complete/__init__.py +4 -0
  391. onlinepayments/sdk/merchant/complete/complete_client.py +67 -0
  392. onlinepayments/sdk/merchant/complete/i_complete_client.py +37 -0
  393. onlinepayments/sdk/merchant/hostedcheckout/__init__.py +4 -0
  394. onlinepayments/sdk/merchant/hostedcheckout/hosted_checkout_client.py +99 -0
  395. onlinepayments/sdk/merchant/hostedcheckout/i_hosted_checkout_client.py +55 -0
  396. onlinepayments/sdk/merchant/hostedfields/__init__.py +4 -0
  397. onlinepayments/sdk/merchant/hostedfields/hosted_fields_client.py +62 -0
  398. onlinepayments/sdk/merchant/hostedfields/i_hosted_fields_client.py +35 -0
  399. onlinepayments/sdk/merchant/hostedtokenization/__init__.py +4 -0
  400. onlinepayments/sdk/merchant/hostedtokenization/hosted_tokenization_client.py +99 -0
  401. onlinepayments/sdk/merchant/hostedtokenization/i_hosted_tokenization_client.py +55 -0
  402. onlinepayments/sdk/merchant/i_merchant_client.py +202 -0
  403. onlinepayments/sdk/merchant/mandates/__init__.py +4 -0
  404. onlinepayments/sdk/merchant/mandates/i_mandates_client.py +114 -0
  405. onlinepayments/sdk/merchant/mandates/mandates_client.py +212 -0
  406. onlinepayments/sdk/merchant/merchant_client.py +232 -0
  407. onlinepayments/sdk/merchant/merchantbatch/__init__.py +4 -0
  408. onlinepayments/sdk/merchant/merchantbatch/i_merchant_batch_client.py +74 -0
  409. onlinepayments/sdk/merchant/merchantbatch/merchant_batch_client.py +138 -0
  410. onlinepayments/sdk/merchant/paymentlinks/__init__.py +4 -0
  411. onlinepayments/sdk/merchant/paymentlinks/get_payment_links_in_bulk_params.py +36 -0
  412. onlinepayments/sdk/merchant/paymentlinks/i_payment_links_client.py +73 -0
  413. onlinepayments/sdk/merchant/paymentlinks/payment_links_client.py +135 -0
  414. onlinepayments/sdk/merchant/payments/__init__.py +4 -0
  415. onlinepayments/sdk/merchant/payments/i_payments_client.py +143 -0
  416. onlinepayments/sdk/merchant/payments/payments_client.py +260 -0
  417. onlinepayments/sdk/merchant/payouts/__init__.py +4 -0
  418. onlinepayments/sdk/merchant/payouts/i_payouts_client.py +55 -0
  419. onlinepayments/sdk/merchant/payouts/payouts_client.py +100 -0
  420. onlinepayments/sdk/merchant/privacypolicy/__init__.py +4 -0
  421. onlinepayments/sdk/merchant/privacypolicy/get_privacy_policy_params.py +54 -0
  422. onlinepayments/sdk/merchant/privacypolicy/i_privacy_policy_client.py +36 -0
  423. onlinepayments/sdk/merchant/privacypolicy/privacy_policy_client.py +61 -0
  424. onlinepayments/sdk/merchant/productgroups/__init__.py +4 -0
  425. onlinepayments/sdk/merchant/productgroups/get_product_group_params.py +140 -0
  426. onlinepayments/sdk/merchant/productgroups/get_product_groups_params.py +140 -0
  427. onlinepayments/sdk/merchant/productgroups/i_product_groups_client.py +58 -0
  428. onlinepayments/sdk/merchant/productgroups/product_groups_client.py +100 -0
  429. onlinepayments/sdk/merchant/products/__init__.py +4 -0
  430. onlinepayments/sdk/merchant/products/get_payment_product_networks_params.py +89 -0
  431. onlinepayments/sdk/merchant/products/get_payment_product_params.py +138 -0
  432. onlinepayments/sdk/merchant/products/get_payment_products_params.py +138 -0
  433. onlinepayments/sdk/merchant/products/get_product_directory_params.py +54 -0
  434. onlinepayments/sdk/merchant/products/i_products_client.py +102 -0
  435. onlinepayments/sdk/merchant/products/products_client.py +178 -0
  436. onlinepayments/sdk/merchant/refunds/__init__.py +4 -0
  437. onlinepayments/sdk/merchant/refunds/i_refunds_client.py +34 -0
  438. onlinepayments/sdk/merchant/refunds/refunds_client.py +63 -0
  439. onlinepayments/sdk/merchant/services/__init__.py +4 -0
  440. onlinepayments/sdk/merchant/services/i_services_client.py +96 -0
  441. onlinepayments/sdk/merchant/services/services_client.py +167 -0
  442. onlinepayments/sdk/merchant/sessions/__init__.py +4 -0
  443. onlinepayments/sdk/merchant/sessions/i_sessions_client.py +35 -0
  444. onlinepayments/sdk/merchant/sessions/sessions_client.py +62 -0
  445. onlinepayments/sdk/merchant/subsequent/__init__.py +4 -0
  446. onlinepayments/sdk/merchant/subsequent/i_subsequent_client.py +37 -0
  447. onlinepayments/sdk/merchant/subsequent/subsequent_client.py +67 -0
  448. onlinepayments/sdk/merchant/tokenization/__init__.py +4 -0
  449. onlinepayments/sdk/merchant/tokenization/get_card_data_by_payments_params.py +48 -0
  450. onlinepayments/sdk/merchant/tokenization/get_card_data_by_tokens_params.py +48 -0
  451. onlinepayments/sdk/merchant/tokenization/i_tokenization_client.py +77 -0
  452. onlinepayments/sdk/merchant/tokenization/tokenization_client.py +131 -0
  453. onlinepayments/sdk/merchant/tokens/__init__.py +4 -0
  454. onlinepayments/sdk/merchant/tokens/i_tokens_client.py +74 -0
  455. onlinepayments/sdk/merchant/tokens/tokens_client.py +135 -0
  456. onlinepayments/sdk/merchant/webhooks/__init__.py +4 -0
  457. onlinepayments/sdk/merchant/webhooks/i_webhooks_client.py +55 -0
  458. onlinepayments/sdk/merchant/webhooks/webhooks_client.py +97 -0
  459. onlinepayments/sdk/platform_exception.py +19 -0
  460. onlinepayments/sdk/proxy_configuration.py +102 -0
  461. onlinepayments/sdk/reference_exception.py +19 -0
  462. onlinepayments/sdk/validation_exception.py +19 -0
  463. onlinepayments/sdk/webhooks/__init__.py +0 -0
  464. onlinepayments/sdk/webhooks/api_version_mismatch_exception.py +24 -0
  465. onlinepayments/sdk/webhooks/in_memory_secret_key_store.py +48 -0
  466. onlinepayments/sdk/webhooks/secret_key_not_available_exception.py +18 -0
  467. onlinepayments/sdk/webhooks/secret_key_store.py +15 -0
  468. onlinepayments/sdk/webhooks/signature_validation_exception.py +17 -0
  469. onlinepayments/sdk/webhooks/signature_validator.py +56 -0
  470. onlinepayments/sdk/webhooks/webhooks_helper.py +52 -0
  471. onlinepayments_sdk_python3-7.4.1.dist-info/METADATA +154 -0
  472. onlinepayments_sdk_python3-7.4.1.dist-info/RECORD +475 -0
  473. onlinepayments_sdk_python3-7.4.1.dist-info/WHEEL +5 -0
  474. onlinepayments_sdk_python3-7.4.1.dist-info/licenses/LICENSE.txt +52 -0
  475. onlinepayments_sdk_python3-7.4.1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,155 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # This file was automatically generated.
4
+ #
5
+ from typing import Optional
6
+
7
+ from .browser_data import BrowserData
8
+ from .data_object import DataObject
9
+
10
+
11
+ class CustomerDevice(DataObject):
12
+
13
+ __accept_header: Optional[str] = None
14
+ __browser_data: Optional[BrowserData] = None
15
+ __device_fingerprint: Optional[str] = None
16
+ __ip_address: Optional[str] = None
17
+ __locale: Optional[str] = None
18
+ __timezone_offset_utc_minutes: Optional[str] = None
19
+ __user_agent: Optional[str] = None
20
+
21
+ @property
22
+ def accept_header(self) -> Optional[str]:
23
+ """
24
+ | The accept-header of the customer client from the HTTP Headers.
25
+
26
+ Type: str
27
+ """
28
+ return self.__accept_header
29
+
30
+ @accept_header.setter
31
+ def accept_header(self, value: Optional[str]) -> None:
32
+ self.__accept_header = value
33
+
34
+ @property
35
+ def browser_data(self) -> Optional[BrowserData]:
36
+ """
37
+ | Object containing information regarding the browser of the customer
38
+
39
+ Type: :class:`onlinepayments.sdk.domain.browser_data.BrowserData`
40
+ """
41
+ return self.__browser_data
42
+
43
+ @browser_data.setter
44
+ def browser_data(self, value: Optional[BrowserData]) -> None:
45
+ self.__browser_data = value
46
+
47
+ @property
48
+ def device_fingerprint(self) -> Optional[str]:
49
+ """
50
+ | The session ID for the device fingerprint must match the one sent in the device fingerprint script.
51
+
52
+ Type: str
53
+ """
54
+ return self.__device_fingerprint
55
+
56
+ @device_fingerprint.setter
57
+ def device_fingerprint(self, value: Optional[str]) -> None:
58
+ self.__device_fingerprint = value
59
+
60
+ @property
61
+ def ip_address(self) -> Optional[str]:
62
+ """
63
+ | The IP address of the customer client from the HTTP Headers.
64
+
65
+ Type: str
66
+ """
67
+ return self.__ip_address
68
+
69
+ @ip_address.setter
70
+ def ip_address(self, value: Optional[str]) -> None:
71
+ self.__ip_address = value
72
+
73
+ @property
74
+ def locale(self) -> Optional[str]:
75
+ """
76
+ | Locale of the client device/browser. Returned in the browser from the navigator.language property.
77
+ |
78
+ | If you use the latest version of our JavaScript Client SDK, we will collect this data and include it in the encryptedCustomerInput property. We will then automatically populate this data if available.
79
+
80
+ Type: str
81
+ """
82
+ return self.__locale
83
+
84
+ @locale.setter
85
+ def locale(self, value: Optional[str]) -> None:
86
+ self.__locale = value
87
+
88
+ @property
89
+ def timezone_offset_utc_minutes(self) -> Optional[str]:
90
+ """
91
+ | Offset in minutes of timezone of the client versus the UTC. Value is returned by the JavaScript getTimezoneOffset() Method.
92
+ |
93
+ | If you use the latest version of our JavaScript Client SDK, we will collect this data and include it in the encryptedCustomerInput property. We will then automatically populate this data if available.
94
+
95
+ Type: str
96
+ """
97
+ return self.__timezone_offset_utc_minutes
98
+
99
+ @timezone_offset_utc_minutes.setter
100
+ def timezone_offset_utc_minutes(self, value: Optional[str]) -> None:
101
+ self.__timezone_offset_utc_minutes = value
102
+
103
+ @property
104
+ def user_agent(self) -> Optional[str]:
105
+ """
106
+ | User-Agent of the client device/browser from the HTTP Headers.
107
+ |
108
+ | As a fall-back we will use the userAgent that might be included in the encryptedCustomerInput, but this is captured client side using JavaScript and might be different.
109
+
110
+ Type: str
111
+ """
112
+ return self.__user_agent
113
+
114
+ @user_agent.setter
115
+ def user_agent(self, value: Optional[str]) -> None:
116
+ self.__user_agent = value
117
+
118
+ def to_dictionary(self) -> dict:
119
+ dictionary = super(CustomerDevice, self).to_dictionary()
120
+ if self.accept_header is not None:
121
+ dictionary['acceptHeader'] = self.accept_header
122
+ if self.browser_data is not None:
123
+ dictionary['browserData'] = self.browser_data.to_dictionary()
124
+ if self.device_fingerprint is not None:
125
+ dictionary['deviceFingerprint'] = self.device_fingerprint
126
+ if self.ip_address is not None:
127
+ dictionary['ipAddress'] = self.ip_address
128
+ if self.locale is not None:
129
+ dictionary['locale'] = self.locale
130
+ if self.timezone_offset_utc_minutes is not None:
131
+ dictionary['timezoneOffsetUtcMinutes'] = self.timezone_offset_utc_minutes
132
+ if self.user_agent is not None:
133
+ dictionary['userAgent'] = self.user_agent
134
+ return dictionary
135
+
136
+ def from_dictionary(self, dictionary: dict) -> 'CustomerDevice':
137
+ super(CustomerDevice, self).from_dictionary(dictionary)
138
+ if 'acceptHeader' in dictionary:
139
+ self.accept_header = dictionary['acceptHeader']
140
+ if 'browserData' in dictionary:
141
+ if not isinstance(dictionary['browserData'], dict):
142
+ raise TypeError('value \'{}\' is not a dictionary'.format(dictionary['browserData']))
143
+ value = BrowserData()
144
+ self.browser_data = value.from_dictionary(dictionary['browserData'])
145
+ if 'deviceFingerprint' in dictionary:
146
+ self.device_fingerprint = dictionary['deviceFingerprint']
147
+ if 'ipAddress' in dictionary:
148
+ self.ip_address = dictionary['ipAddress']
149
+ if 'locale' in dictionary:
150
+ self.locale = dictionary['locale']
151
+ if 'timezoneOffsetUtcMinutes' in dictionary:
152
+ self.timezone_offset_utc_minutes = dictionary['timezoneOffsetUtcMinutes']
153
+ if 'userAgent' in dictionary:
154
+ self.user_agent = dictionary['userAgent']
155
+ return self
@@ -0,0 +1,37 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # This file was automatically generated.
4
+ #
5
+ from typing import Optional
6
+
7
+ from .data_object import DataObject
8
+
9
+
10
+ class CustomerDeviceOutput(DataObject):
11
+
12
+ __ip_address_country_code: Optional[str] = None
13
+
14
+ @property
15
+ def ip_address_country_code(self) -> Optional[str]:
16
+ """
17
+ | ISO 3166-1 alpha-2 country code
18
+
19
+ Type: str
20
+ """
21
+ return self.__ip_address_country_code
22
+
23
+ @ip_address_country_code.setter
24
+ def ip_address_country_code(self, value: Optional[str]) -> None:
25
+ self.__ip_address_country_code = value
26
+
27
+ def to_dictionary(self) -> dict:
28
+ dictionary = super(CustomerDeviceOutput, self).to_dictionary()
29
+ if self.ip_address_country_code is not None:
30
+ dictionary['ipAddressCountryCode'] = self.ip_address_country_code
31
+ return dictionary
32
+
33
+ def from_dictionary(self, dictionary: dict) -> 'CustomerDeviceOutput':
34
+ super(CustomerDeviceOutput, self).from_dictionary(dictionary)
35
+ if 'ipAddressCountryCode' in dictionary:
36
+ self.ip_address_country_code = dictionary['ipAddressCountryCode']
37
+ return self
@@ -0,0 +1,41 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # This file was automatically generated.
4
+ #
5
+ from typing import Optional
6
+
7
+ from .customer_device_output import CustomerDeviceOutput
8
+ from .data_object import DataObject
9
+
10
+
11
+ class CustomerOutput(DataObject):
12
+
13
+ __device: Optional[CustomerDeviceOutput] = None
14
+
15
+ @property
16
+ def device(self) -> Optional[CustomerDeviceOutput]:
17
+ """
18
+ | Object containing information on the device and browser of the customer
19
+
20
+ Type: :class:`onlinepayments.sdk.domain.customer_device_output.CustomerDeviceOutput`
21
+ """
22
+ return self.__device
23
+
24
+ @device.setter
25
+ def device(self, value: Optional[CustomerDeviceOutput]) -> None:
26
+ self.__device = value
27
+
28
+ def to_dictionary(self) -> dict:
29
+ dictionary = super(CustomerOutput, self).to_dictionary()
30
+ if self.device is not None:
31
+ dictionary['device'] = self.device.to_dictionary()
32
+ return dictionary
33
+
34
+ def from_dictionary(self, dictionary: dict) -> 'CustomerOutput':
35
+ super(CustomerOutput, self).from_dictionary(dictionary)
36
+ if 'device' in dictionary:
37
+ if not isinstance(dictionary['device'], dict):
38
+ raise TypeError('value \'{}\' is not a dictionary'.format(dictionary['device']))
39
+ value = CustomerDeviceOutput()
40
+ self.device = value.from_dictionary(dictionary['device'])
41
+ return self
@@ -0,0 +1,73 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # This file was automatically generated.
4
+ #
5
+ from typing import Optional
6
+
7
+ from .data_object import DataObject
8
+
9
+
10
+ class CustomerPaymentActivity(DataObject):
11
+
12
+ __number_of_payment_attempts_last24_hours: Optional[int] = None
13
+ __number_of_payment_attempts_last_year: Optional[int] = None
14
+ __number_of_purchases_last6_months: Optional[int] = None
15
+
16
+ @property
17
+ def number_of_payment_attempts_last24_hours(self) -> Optional[int]:
18
+ """
19
+ | Number of payment attempts (so including unsuccessful ones) made by this customer with you in the last 24 hours
20
+
21
+ Type: int
22
+ """
23
+ return self.__number_of_payment_attempts_last24_hours
24
+
25
+ @number_of_payment_attempts_last24_hours.setter
26
+ def number_of_payment_attempts_last24_hours(self, value: Optional[int]) -> None:
27
+ self.__number_of_payment_attempts_last24_hours = value
28
+
29
+ @property
30
+ def number_of_payment_attempts_last_year(self) -> Optional[int]:
31
+ """
32
+ | Number of payment attempts (so including unsuccessful ones) made by this customer with you in the last 12 months
33
+
34
+ Type: int
35
+ """
36
+ return self.__number_of_payment_attempts_last_year
37
+
38
+ @number_of_payment_attempts_last_year.setter
39
+ def number_of_payment_attempts_last_year(self, value: Optional[int]) -> None:
40
+ self.__number_of_payment_attempts_last_year = value
41
+
42
+ @property
43
+ def number_of_purchases_last6_months(self) -> Optional[int]:
44
+ """
45
+ | Number of successful purchases made by this customer with you in the last 6 months
46
+
47
+ Type: int
48
+ """
49
+ return self.__number_of_purchases_last6_months
50
+
51
+ @number_of_purchases_last6_months.setter
52
+ def number_of_purchases_last6_months(self, value: Optional[int]) -> None:
53
+ self.__number_of_purchases_last6_months = value
54
+
55
+ def to_dictionary(self) -> dict:
56
+ dictionary = super(CustomerPaymentActivity, self).to_dictionary()
57
+ if self.number_of_payment_attempts_last24_hours is not None:
58
+ dictionary['numberOfPaymentAttemptsLast24Hours'] = self.number_of_payment_attempts_last24_hours
59
+ if self.number_of_payment_attempts_last_year is not None:
60
+ dictionary['numberOfPaymentAttemptsLastYear'] = self.number_of_payment_attempts_last_year
61
+ if self.number_of_purchases_last6_months is not None:
62
+ dictionary['numberOfPurchasesLast6Months'] = self.number_of_purchases_last6_months
63
+ return dictionary
64
+
65
+ def from_dictionary(self, dictionary: dict) -> 'CustomerPaymentActivity':
66
+ super(CustomerPaymentActivity, self).from_dictionary(dictionary)
67
+ if 'numberOfPaymentAttemptsLast24Hours' in dictionary:
68
+ self.number_of_payment_attempts_last24_hours = dictionary['numberOfPaymentAttemptsLast24Hours']
69
+ if 'numberOfPaymentAttemptsLastYear' in dictionary:
70
+ self.number_of_payment_attempts_last_year = dictionary['numberOfPaymentAttemptsLastYear']
71
+ if 'numberOfPurchasesLast6Months' in dictionary:
72
+ self.number_of_purchases_last6_months = dictionary['numberOfPurchasesLast6Months']
73
+ return self
@@ -0,0 +1,83 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # This file was automatically generated.
4
+ #
5
+ from typing import Optional
6
+
7
+ from .address import Address
8
+ from .company_information import CompanyInformation
9
+ from .data_object import DataObject
10
+ from .personal_information_token import PersonalInformationToken
11
+
12
+
13
+ class CustomerToken(DataObject):
14
+
15
+ __billing_address: Optional[Address] = None
16
+ __company_information: Optional[CompanyInformation] = None
17
+ __personal_information: Optional[PersonalInformationToken] = None
18
+
19
+ @property
20
+ def billing_address(self) -> Optional[Address]:
21
+ """
22
+ | Object containing billing address details.
23
+
24
+ Type: :class:`onlinepayments.sdk.domain.address.Address`
25
+ """
26
+ return self.__billing_address
27
+
28
+ @billing_address.setter
29
+ def billing_address(self, value: Optional[Address]) -> None:
30
+ self.__billing_address = value
31
+
32
+ @property
33
+ def company_information(self) -> Optional[CompanyInformation]:
34
+ """
35
+ | Object containing company information
36
+
37
+ Type: :class:`onlinepayments.sdk.domain.company_information.CompanyInformation`
38
+ """
39
+ return self.__company_information
40
+
41
+ @company_information.setter
42
+ def company_information(self, value: Optional[CompanyInformation]) -> None:
43
+ self.__company_information = value
44
+
45
+ @property
46
+ def personal_information(self) -> Optional[PersonalInformationToken]:
47
+ """
48
+ Type: :class:`onlinepayments.sdk.domain.personal_information_token.PersonalInformationToken`
49
+ """
50
+ return self.__personal_information
51
+
52
+ @personal_information.setter
53
+ def personal_information(self, value: Optional[PersonalInformationToken]) -> None:
54
+ self.__personal_information = value
55
+
56
+ def to_dictionary(self) -> dict:
57
+ dictionary = super(CustomerToken, self).to_dictionary()
58
+ if self.billing_address is not None:
59
+ dictionary['billingAddress'] = self.billing_address.to_dictionary()
60
+ if self.company_information is not None:
61
+ dictionary['companyInformation'] = self.company_information.to_dictionary()
62
+ if self.personal_information is not None:
63
+ dictionary['personalInformation'] = self.personal_information.to_dictionary()
64
+ return dictionary
65
+
66
+ def from_dictionary(self, dictionary: dict) -> 'CustomerToken':
67
+ super(CustomerToken, self).from_dictionary(dictionary)
68
+ if 'billingAddress' in dictionary:
69
+ if not isinstance(dictionary['billingAddress'], dict):
70
+ raise TypeError('value \'{}\' is not a dictionary'.format(dictionary['billingAddress']))
71
+ value = Address()
72
+ self.billing_address = value.from_dictionary(dictionary['billingAddress'])
73
+ if 'companyInformation' in dictionary:
74
+ if not isinstance(dictionary['companyInformation'], dict):
75
+ raise TypeError('value \'{}\' is not a dictionary'.format(dictionary['companyInformation']))
76
+ value = CompanyInformation()
77
+ self.company_information = value.from_dictionary(dictionary['companyInformation'])
78
+ if 'personalInformation' in dictionary:
79
+ if not isinstance(dictionary['personalInformation'], dict):
80
+ raise TypeError('value \'{}\' is not a dictionary'.format(dictionary['personalInformation']))
81
+ value = PersonalInformationToken()
82
+ self.personal_information = value.from_dictionary(dictionary['personalInformation'])
83
+ return self
@@ -0,0 +1,47 @@
1
+ from datetime import date, datetime, timezone
2
+
3
+
4
+ class DataObject(object):
5
+ def to_dictionary(self) -> dict:
6
+ return {}
7
+
8
+ def from_dictionary(self, dictionary: dict) -> 'DataObject':
9
+ if not isinstance(dictionary, dict):
10
+ raise TypeError('value \'{}\' is not a dictionary'.format(dictionary))
11
+ return self
12
+
13
+ @staticmethod
14
+ def parse_date(s: str) -> date:
15
+ return date.fromisoformat(s)
16
+
17
+ @staticmethod
18
+ def format_date(d: date) -> str:
19
+ return d.isoformat()
20
+
21
+ @staticmethod
22
+ def parse_datetime(s: str) -> datetime:
23
+ if s.endswith("Z"):
24
+ s = s[:-1] + "+00:00"
25
+
26
+ if "." in s:
27
+ main_part, fractional_and_tz = s.split(".", 1)
28
+
29
+ if "+" in fractional_and_tz:
30
+ fractional, tz = fractional_and_tz.split("+", 1)
31
+ s = "{}.{}+{}".format(main_part, fractional[:6], tz)
32
+ elif "-" in fractional_and_tz:
33
+ fractional, tz = fractional_and_tz.split("-", 1)
34
+ s = "{}.{}-{}".format(main_part, fractional[:6], tz)
35
+ else:
36
+ s = "{}.{}".format(main_part, fractional_and_tz[:6])
37
+
38
+ return datetime.fromisoformat(s)
39
+
40
+ @staticmethod
41
+ def format_datetime(dt: datetime) -> str:
42
+ # isoformat(timespec='milliseconds') works fine, as long as there is a timezone
43
+ # if there isn't one, add the current timezone
44
+ if dt.tzinfo is None:
45
+ zone = datetime.fromtimestamp(dt.timestamp(), timezone.utc).astimezone().tzinfo
46
+ dt = datetime.fromtimestamp(dt.timestamp(), zone)
47
+ return dt.isoformat(timespec='milliseconds')
@@ -0,0 +1,93 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # This file was automatically generated.
4
+ #
5
+ from typing import Optional
6
+
7
+ from .card_info import CardInfo
8
+ from .data_object import DataObject
9
+
10
+
11
+ class DccCardSource(DataObject):
12
+
13
+ __card: Optional[CardInfo] = None
14
+ __encrypted_customer_input: Optional[str] = None
15
+ __hosted_tokenization_id: Optional[str] = None
16
+ __token: Optional[str] = None
17
+
18
+ @property
19
+ def card(self) -> Optional[CardInfo]:
20
+ """
21
+ Type: :class:`onlinepayments.sdk.domain.card_info.CardInfo`
22
+ """
23
+ return self.__card
24
+
25
+ @card.setter
26
+ def card(self, value: Optional[CardInfo]) -> None:
27
+ self.__card = value
28
+
29
+ @property
30
+ def encrypted_customer_input(self) -> Optional[str]:
31
+ """
32
+ | Data that was encrypted client side containing all customer entered data elements like card data. Note: Because this data can only be submitted once to our system and contains encrypted card data you should not store it. As the data was captured within the context of a client session you also need to submit it to us before the session has expired.
33
+
34
+ Type: str
35
+ """
36
+ return self.__encrypted_customer_input
37
+
38
+ @encrypted_customer_input.setter
39
+ def encrypted_customer_input(self, value: Optional[str]) -> None:
40
+ self.__encrypted_customer_input = value
41
+
42
+ @property
43
+ def hosted_tokenization_id(self) -> Optional[str]:
44
+ """
45
+ | An Id of a hosted tokenization session
46
+
47
+ Type: str
48
+ """
49
+ return self.__hosted_tokenization_id
50
+
51
+ @hosted_tokenization_id.setter
52
+ def hosted_tokenization_id(self, value: Optional[str]) -> None:
53
+ self.__hosted_tokenization_id = value
54
+
55
+ @property
56
+ def token(self) -> Optional[str]:
57
+ """
58
+ | An identifier that represents card details that have previously been stored
59
+
60
+ Type: str
61
+ """
62
+ return self.__token
63
+
64
+ @token.setter
65
+ def token(self, value: Optional[str]) -> None:
66
+ self.__token = value
67
+
68
+ def to_dictionary(self) -> dict:
69
+ dictionary = super(DccCardSource, self).to_dictionary()
70
+ if self.card is not None:
71
+ dictionary['card'] = self.card.to_dictionary()
72
+ if self.encrypted_customer_input is not None:
73
+ dictionary['encryptedCustomerInput'] = self.encrypted_customer_input
74
+ if self.hosted_tokenization_id is not None:
75
+ dictionary['hostedTokenizationId'] = self.hosted_tokenization_id
76
+ if self.token is not None:
77
+ dictionary['token'] = self.token
78
+ return dictionary
79
+
80
+ def from_dictionary(self, dictionary: dict) -> 'DccCardSource':
81
+ super(DccCardSource, self).from_dictionary(dictionary)
82
+ if 'card' in dictionary:
83
+ if not isinstance(dictionary['card'], dict):
84
+ raise TypeError('value \'{}\' is not a dictionary'.format(dictionary['card']))
85
+ value = CardInfo()
86
+ self.card = value.from_dictionary(dictionary['card'])
87
+ if 'encryptedCustomerInput' in dictionary:
88
+ self.encrypted_customer_input = dictionary['encryptedCustomerInput']
89
+ if 'hostedTokenizationId' in dictionary:
90
+ self.hosted_tokenization_id = dictionary['hostedTokenizationId']
91
+ if 'token' in dictionary:
92
+ self.token = dictionary['token']
93
+ return self
@@ -0,0 +1,118 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # This file was automatically generated.
4
+ #
5
+ from typing import Optional
6
+
7
+ from .amount_of_money import AmountOfMoney
8
+ from .data_object import DataObject
9
+ from .rate_details import RateDetails
10
+
11
+
12
+ class DccProposal(DataObject):
13
+
14
+ __base_amount: Optional[AmountOfMoney] = None
15
+ __disclaimer_display: Optional[str] = None
16
+ __disclaimer_receipt: Optional[str] = None
17
+ __rate: Optional[RateDetails] = None
18
+ __target_amount: Optional[AmountOfMoney] = None
19
+
20
+ @property
21
+ def base_amount(self) -> Optional[AmountOfMoney]:
22
+ """
23
+ | Object containing amount and ISO currency code attributes
24
+
25
+ Type: :class:`onlinepayments.sdk.domain.amount_of_money.AmountOfMoney`
26
+ """
27
+ return self.__base_amount
28
+
29
+ @base_amount.setter
30
+ def base_amount(self, value: Optional[AmountOfMoney]) -> None:
31
+ self.__base_amount = value
32
+
33
+ @property
34
+ def disclaimer_display(self) -> Optional[str]:
35
+ """
36
+ | Card scheme disclaimer to present to the cardholder
37
+
38
+ Type: str
39
+ """
40
+ return self.__disclaimer_display
41
+
42
+ @disclaimer_display.setter
43
+ def disclaimer_display(self, value: Optional[str]) -> None:
44
+ self.__disclaimer_display = value
45
+
46
+ @property
47
+ def disclaimer_receipt(self) -> Optional[str]:
48
+ """
49
+ | Card scheme disclaimer to print within cardholder receipt
50
+
51
+ Type: str
52
+ """
53
+ return self.__disclaimer_receipt
54
+
55
+ @disclaimer_receipt.setter
56
+ def disclaimer_receipt(self, value: Optional[str]) -> None:
57
+ self.__disclaimer_receipt = value
58
+
59
+ @property
60
+ def rate(self) -> Optional[RateDetails]:
61
+ """
62
+ Type: :class:`onlinepayments.sdk.domain.rate_details.RateDetails`
63
+ """
64
+ return self.__rate
65
+
66
+ @rate.setter
67
+ def rate(self, value: Optional[RateDetails]) -> None:
68
+ self.__rate = value
69
+
70
+ @property
71
+ def target_amount(self) -> Optional[AmountOfMoney]:
72
+ """
73
+ | Object containing amount and ISO currency code attributes
74
+
75
+ Type: :class:`onlinepayments.sdk.domain.amount_of_money.AmountOfMoney`
76
+ """
77
+ return self.__target_amount
78
+
79
+ @target_amount.setter
80
+ def target_amount(self, value: Optional[AmountOfMoney]) -> None:
81
+ self.__target_amount = value
82
+
83
+ def to_dictionary(self) -> dict:
84
+ dictionary = super(DccProposal, self).to_dictionary()
85
+ if self.base_amount is not None:
86
+ dictionary['baseAmount'] = self.base_amount.to_dictionary()
87
+ if self.disclaimer_display is not None:
88
+ dictionary['disclaimerDisplay'] = self.disclaimer_display
89
+ if self.disclaimer_receipt is not None:
90
+ dictionary['disclaimerReceipt'] = self.disclaimer_receipt
91
+ if self.rate is not None:
92
+ dictionary['rate'] = self.rate.to_dictionary()
93
+ if self.target_amount is not None:
94
+ dictionary['targetAmount'] = self.target_amount.to_dictionary()
95
+ return dictionary
96
+
97
+ def from_dictionary(self, dictionary: dict) -> 'DccProposal':
98
+ super(DccProposal, self).from_dictionary(dictionary)
99
+ if 'baseAmount' in dictionary:
100
+ if not isinstance(dictionary['baseAmount'], dict):
101
+ raise TypeError('value \'{}\' is not a dictionary'.format(dictionary['baseAmount']))
102
+ value = AmountOfMoney()
103
+ self.base_amount = value.from_dictionary(dictionary['baseAmount'])
104
+ if 'disclaimerDisplay' in dictionary:
105
+ self.disclaimer_display = dictionary['disclaimerDisplay']
106
+ if 'disclaimerReceipt' in dictionary:
107
+ self.disclaimer_receipt = dictionary['disclaimerReceipt']
108
+ if 'rate' in dictionary:
109
+ if not isinstance(dictionary['rate'], dict):
110
+ raise TypeError('value \'{}\' is not a dictionary'.format(dictionary['rate']))
111
+ value = RateDetails()
112
+ self.rate = value.from_dictionary(dictionary['rate'])
113
+ if 'targetAmount' in dictionary:
114
+ if not isinstance(dictionary['targetAmount'], dict):
115
+ raise TypeError('value \'{}\' is not a dictionary'.format(dictionary['targetAmount']))
116
+ value = AmountOfMoney()
117
+ self.target_amount = value.from_dictionary(dictionary['targetAmount'])
118
+ return self