hamza-payments-query-sdk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +136 -0
  4. data/lib/payments/api_helper.rb +10 -0
  5. data/lib/payments/client.rb +78 -0
  6. data/lib/payments/configuration.rb +145 -0
  7. data/lib/payments/controllers/base_controller.rb +60 -0
  8. data/lib/payments/controllers/m3_ds_actions_controller.rb +97 -0
  9. data/lib/payments/controllers/manage_payments_controller.rb +272 -0
  10. data/lib/payments/controllers/payment_controller.rb +51 -0
  11. data/lib/payments/controllers/payment_queries_controller.rb +134 -0
  12. data/lib/payments/exceptions/api_exception.rb +21 -0
  13. data/lib/payments/exceptions/error_response_exception.rb +51 -0
  14. data/lib/payments/exceptions/header_error_response_exception.rb +58 -0
  15. data/lib/payments/exceptions/pq_querybydaterange400_response_exception.rb +51 -0
  16. data/lib/payments/exceptions/pq_querybypaymentid404_response_error_exception.rb +51 -0
  17. data/lib/payments/exceptions/pq_queryhistoricalpayments400_response_exception.rb +51 -0
  18. data/lib/payments/exceptions/validation_error_response_exception.rb +58 -0
  19. data/lib/payments/http/auth/basic_auth.rb +50 -0
  20. data/lib/payments/http/http_call_back.rb +10 -0
  21. data/lib/payments/http/http_method_enum.rb +10 -0
  22. data/lib/payments/http/http_request.rb +10 -0
  23. data/lib/payments/http/http_response.rb +10 -0
  24. data/lib/payments/http/proxy_settings.rb +13 -0
  25. data/lib/payments/models/accept_enum.rb +21 -0
  26. data/lib/payments/models/account_history.rb +110 -0
  27. data/lib/payments/models/account_updater_message1_enum.rb +44 -0
  28. data/lib/payments/models/account_updater_message_enum.rb +41 -0
  29. data/lib/payments/models/advice.rb +62 -0
  30. data/lib/payments/models/applepay_payments_instruction.rb +151 -0
  31. data/lib/payments/models/authentication.rb +161 -0
  32. data/lib/payments/models/authorization_action_list.rb +90 -0
  33. data/lib/payments/models/authorization_failed.rb +103 -0
  34. data/lib/payments/models/authorization_refused.rb +124 -0
  35. data/lib/payments/models/authorization_requested.rb +94 -0
  36. data/lib/payments/models/authorization_succeeded.rb +104 -0
  37. data/lib/payments/models/authorization_timed_out.rb +94 -0
  38. data/lib/payments/models/authorization_type1_enum.rb +23 -0
  39. data/lib/payments/models/authorization_type_enum.rb +23 -0
  40. data/lib/payments/models/avs_not_matched_enum.rb +25 -0
  41. data/lib/payments/models/base_model.rb +110 -0
  42. data/lib/payments/models/billing_address.rb +147 -0
  43. data/lib/payments/models/browser_color_depth_enum.rb +41 -0
  44. data/lib/payments/models/cancel_response.rb +71 -0
  45. data/lib/payments/models/cancellation.rb +88 -0
  46. data/lib/payments/models/cancellation_failed.rb +94 -0
  47. data/lib/payments/models/cancellation_request_submitted.rb +94 -0
  48. data/lib/payments/models/cancellation_requested.rb +94 -0
  49. data/lib/payments/models/cancellation_timed_out.rb +94 -0
  50. data/lib/payments/models/card.rb +159 -0
  51. data/lib/payments/models/card1.rb +106 -0
  52. data/lib/payments/models/card3.rb +72 -0
  53. data/lib/payments/models/card_authorized_payment_response.rb +195 -0
  54. data/lib/payments/models/card_payment_instrument.rb +76 -0
  55. data/lib/payments/models/card_payments_instruction.rb +164 -0
  56. data/lib/payments/models/category_enum.rb +23 -0
  57. data/lib/payments/models/challenge.rb +100 -0
  58. data/lib/payments/models/challenge_info.rb +91 -0
  59. data/lib/payments/models/challenge_response201.rb +75 -0
  60. data/lib/payments/models/challenge_response202.rb +62 -0
  61. data/lib/payments/models/challenged_action_list.rb +65 -0
  62. data/lib/payments/models/challenged_response.rb +96 -0
  63. data/lib/payments/models/channel1_enum.rb +27 -0
  64. data/lib/payments/models/channel_enum.rb +24 -0
  65. data/lib/payments/models/conflict_payment_instrument.rb +104 -0
  66. data/lib/payments/models/content_type_enum.rb +20 -0
  67. data/lib/payments/models/custom.rb +241 -0
  68. data/lib/payments/models/customer.rb +146 -0
  69. data/lib/payments/models/customer_agreement.rb +120 -0
  70. data/lib/payments/models/cvc_not_matched_enum.rb +24 -0
  71. data/lib/payments/models/detail_enum.rb +23 -0
  72. data/lib/payments/models/device_data.rb +200 -0
  73. data/lib/payments/models/device_data_collection.rb +79 -0
  74. data/lib/payments/models/device_data_request.rb +71 -0
  75. data/lib/payments/models/device_data_required_action_list.rb +66 -0
  76. data/lib/payments/models/device_data_required_response.rb +89 -0
  77. data/lib/payments/models/device_data_response201.rb +95 -0
  78. data/lib/payments/models/embedded.rb +71 -0
  79. data/lib/payments/models/embedded1.rb +71 -0
  80. data/lib/payments/models/error.rb +81 -0
  81. data/lib/payments/models/exemption.rb +106 -0
  82. data/lib/payments/models/expiry_date.rb +90 -0
  83. data/lib/payments/models/expiry_date1.rb +84 -0
  84. data/lib/payments/models/fraud.rb +73 -0
  85. data/lib/payments/models/fraud_high_risk_response.rb +88 -0
  86. data/lib/payments/models/funding_type_enum.rb +32 -0
  87. data/lib/payments/models/googlepay_payments_instruction.rb +151 -0
  88. data/lib/payments/models/identifier_type_enum.rb +26 -0
  89. data/lib/payments/models/installment_plan.rb +76 -0
  90. data/lib/payments/models/installment_type_enum.rb +26 -0
  91. data/lib/payments/models/issuer.rb +63 -0
  92. data/lib/payments/models/issuer1.rb +76 -0
  93. data/lib/payments/models/issuer_response_enum.rb +23 -0
  94. data/lib/payments/models/last_event_enum.rb +95 -0
  95. data/lib/payments/models/links.rb +123 -0
  96. data/lib/payments/models/links1.rb +70 -0
  97. data/lib/payments/models/links2.rb +60 -0
  98. data/lib/payments/models/links3.rb +97 -0
  99. data/lib/payments/models/merchant.rb +88 -0
  100. data/lib/payments/models/message_enum.rb +34 -0
  101. data/lib/payments/models/method_enum.rb +38 -0
  102. data/lib/payments/models/mnext.rb +62 -0
  103. data/lib/payments/models/mself.rb +62 -0
  104. data/lib/payments/models/name_enum.rb +51 -0
  105. data/lib/payments/models/narrative.rb +86 -0
  106. data/lib/payments/models/narrative1.rb +87 -0
  107. data/lib/payments/models/narrative2.rb +71 -0
  108. data/lib/payments/models/number.rb +85 -0
  109. data/lib/payments/models/number3.rb +62 -0
  110. data/lib/payments/models/outcome16_enum.rb +21 -0
  111. data/lib/payments/models/outcome17_enum.rb +21 -0
  112. data/lib/payments/models/outcome6_enum.rb +42 -0
  113. data/lib/payments/models/outcome7_enum.rb +26 -0
  114. data/lib/payments/models/outcome_enum.rb +50 -0
  115. data/lib/payments/models/partial_refund_action_list.rb +64 -0
  116. data/lib/payments/models/partial_refund_response.rb +81 -0
  117. data/lib/payments/models/partial_settle_action_list.rb +102 -0
  118. data/lib/payments/models/partial_settle_response.rb +81 -0
  119. data/lib/payments/models/payment.rb +192 -0
  120. data/lib/payments/models/payment1.rb +86 -0
  121. data/lib/payments/models/payment_instrument.rb +62 -0
  122. data/lib/payments/models/payment_instrument4.rb +81 -0
  123. data/lib/payments/models/payment_instrument6.rb +71 -0
  124. data/lib/payments/models/payment_instrument7.rb +171 -0
  125. data/lib/payments/models/payment_refused_response.rb +187 -0
  126. data/lib/payments/models/payment_request.rb +96 -0
  127. data/lib/payments/models/payments_action_cancel.rb +71 -0
  128. data/lib/payments/models/payments_action_complete3ds_challenge.rb +72 -0
  129. data/lib/payments/models/payments_action_partial_refund.rb +71 -0
  130. data/lib/payments/models/payments_action_partial_settle.rb +73 -0
  131. data/lib/payments/models/payments_action_refund.rb +71 -0
  132. data/lib/payments/models/payments_action_settle.rb +71 -0
  133. data/lib/payments/models/payments_action_supply3ds_device_data.rb +73 -0
  134. data/lib/payments/models/payments_bank_account.rb +119 -0
  135. data/lib/payments/models/payments_cancel.rb +72 -0
  136. data/lib/payments/models/payments_card_account.rb +69 -0
  137. data/lib/payments/models/payments_card_on_file_customer_agreement.rb +85 -0
  138. data/lib/payments/models/payments_card_plain_payment_instrument.rb +149 -0
  139. data/lib/payments/models/payments_customer_agreement.rb +79 -0
  140. data/lib/payments/models/payments_email_account.rb +69 -0
  141. data/lib/payments/models/payments_events.rb +72 -0
  142. data/lib/payments/models/payments_exemption.rb +102 -0
  143. data/lib/payments/models/payments_fraud.rb +107 -0
  144. data/lib/payments/models/payments_funds_recipient.rb +139 -0
  145. data/lib/payments/models/payments_funds_sender.rb +120 -0
  146. data/lib/payments/models/payments_funds_transfer.rb +108 -0
  147. data/lib/payments/models/payments_gift_cards_purchase.rb +81 -0
  148. data/lib/payments/models/payments_installment_customer_agreement.rb +133 -0
  149. data/lib/payments/models/payments_instruction.rb +309 -0
  150. data/lib/payments/models/payments_link.rb +62 -0
  151. data/lib/payments/models/payments_network_token_payment_instrument.rb +126 -0
  152. data/lib/payments/models/payments_partial_refund_request.rb +68 -0
  153. data/lib/payments/models/payments_partial_settle.rb +72 -0
  154. data/lib/payments/models/payments_partial_settle_request.rb +81 -0
  155. data/lib/payments/models/payments_payment_facilitator.rb +88 -0
  156. data/lib/payments/models/payments_payment_instrument.rb +78 -0
  157. data/lib/payments/models/payments_phone_account.rb +69 -0
  158. data/lib/payments/models/payments_recipient.rb +110 -0
  159. data/lib/payments/models/payments_recipient_account.rb +81 -0
  160. data/lib/payments/models/payments_recipient_address.rb +72 -0
  161. data/lib/payments/models/payments_response.rb +69 -0
  162. data/lib/payments/models/payments_response202.rb +90 -0
  163. data/lib/payments/models/payments_response_payment_instrument.rb +158 -0
  164. data/lib/payments/models/payments_sequence.rb +69 -0
  165. data/lib/payments/models/payments_settle.rb +72 -0
  166. data/lib/payments/models/payments_shipping_address.rb +148 -0
  167. data/lib/payments/models/payments_social_network_account.rb +71 -0
  168. data/lib/payments/models/payments_sub_merchant.rb +108 -0
  169. data/lib/payments/models/payments_sub_merchant_address.rb +99 -0
  170. data/lib/payments/models/payments_subscription_customer_agreement.rb +106 -0
  171. data/lib/payments/models/payments_three_ds.rb +217 -0
  172. data/lib/payments/models/payments_transfer_address.rb +112 -0
  173. data/lib/payments/models/payments_unscheduled_customer_agreement.rb +87 -0
  174. data/lib/payments/models/payments_wallet_account.rb +70 -0
  175. data/lib/payments/models/placement_enum.rb +21 -0
  176. data/lib/payments/models/pq_querybydaterange200_response.rb +68 -0
  177. data/lib/payments/models/pq_querybypaymentid200_response.rb +230 -0
  178. data/lib/payments/models/pq_queryhistoricalpayments200_response.rb +72 -0
  179. data/lib/payments/models/preference_enum.rb +29 -0
  180. data/lib/payments/models/preferred_card_brand_enum.rb +51 -0
  181. data/lib/payments/models/purpose_enum.rb +78 -0
  182. data/lib/payments/models/query_action_list.rb +114 -0
  183. data/lib/payments/models/query_events_response.rb +71 -0
  184. data/lib/payments/models/reason_enum.rb +50 -0
  185. data/lib/payments/models/refund_failed.rb +94 -0
  186. data/lib/payments/models/refund_request_submitted.rb +94 -0
  187. data/lib/payments/models/refund_requested.rb +124 -0
  188. data/lib/payments/models/refund_response.rb +71 -0
  189. data/lib/payments/models/refund_timed_out.rb +94 -0
  190. data/lib/payments/models/result_enum.rb +29 -0
  191. data/lib/payments/models/reversal_failed.rb +94 -0
  192. data/lib/payments/models/reversal_request_submitted.rb +94 -0
  193. data/lib/payments/models/reversal_requested.rb +103 -0
  194. data/lib/payments/models/reversal_timed_out.rb +94 -0
  195. data/lib/payments/models/risk_enum.rb +29 -0
  196. data/lib/payments/models/risk_factor.rb +82 -0
  197. data/lib/payments/models/routing.rb +74 -0
  198. data/lib/payments/models/sale_failed.rb +103 -0
  199. data/lib/payments/models/sale_refused.rb +124 -0
  200. data/lib/payments/models/sale_requested.rb +94 -0
  201. data/lib/payments/models/sale_succeeded.rb +104 -0
  202. data/lib/payments/models/sale_timed_out.rb +94 -0
  203. data/lib/payments/models/scheme.rb +75 -0
  204. data/lib/payments/models/self1.rb +72 -0
  205. data/lib/payments/models/self2.rb +62 -0
  206. data/lib/payments/models/self3.rb +62 -0
  207. data/lib/payments/models/sent_for_cancellation_response.rb +185 -0
  208. data/lib/payments/models/sent_for_settlement_action_list.rb +76 -0
  209. data/lib/payments/models/sent_for_settlement_response.rb +195 -0
  210. data/lib/payments/models/session_payment_instrument.rb +119 -0
  211. data/lib/payments/models/settle_action_list.rb +76 -0
  212. data/lib/payments/models/settle_response.rb +81 -0
  213. data/lib/payments/models/settlement.rb +88 -0
  214. data/lib/payments/models/settlement_failed.rb +94 -0
  215. data/lib/payments/models/settlement_request_submitted.rb +94 -0
  216. data/lib/payments/models/settlement_requested.rb +125 -0
  217. data/lib/payments/models/settlement_timed_out.rb +94 -0
  218. data/lib/payments/models/shipping.rb +130 -0
  219. data/lib/payments/models/stored_card_usage1_enum.rb +24 -0
  220. data/lib/payments/models/stored_card_usage_enum.rb +24 -0
  221. data/lib/payments/models/time_frame_enum.rb +29 -0
  222. data/lib/payments/models/token.rb +168 -0
  223. data/lib/payments/models/token_creation.rb +95 -0
  224. data/lib/payments/models/token_payment_instrument.rb +118 -0
  225. data/lib/payments/models/token_response_conflicts.rb +90 -0
  226. data/lib/payments/models/transaction_history.rb +127 -0
  227. data/lib/payments/models/transaction_type1_enum.rb +26 -0
  228. data/lib/payments/models/transaction_type_enum.rb +26 -0
  229. data/lib/payments/models/type10_enum.rb +23 -0
  230. data/lib/payments/models/type12_enum.rb +35 -0
  231. data/lib/payments/models/type1_enum.rb +26 -0
  232. data/lib/payments/models/type2_enum.rb +23 -0
  233. data/lib/payments/models/type3_enum.rb +20 -0
  234. data/lib/payments/models/type4_enum.rb +20 -0
  235. data/lib/payments/models/type5_enum.rb +41 -0
  236. data/lib/payments/models/type6_enum.rb +29 -0
  237. data/lib/payments/models/type7_enum.rb +23 -0
  238. data/lib/payments/models/type8_enum.rb +23 -0
  239. data/lib/payments/models/type9_enum.rb +35 -0
  240. data/lib/payments/models/type_enum.rb +23 -0
  241. data/lib/payments/models/unsuccessful_authentication_response.rb +76 -0
  242. data/lib/payments/models/updated_payment_instrument.rb +159 -0
  243. data/lib/payments/models/updated_payment_instrument1.rb +93 -0
  244. data/lib/payments/models/user_type_enum.rb +35 -0
  245. data/lib/payments/models/value.rb +94 -0
  246. data/lib/payments/models/value1.rb +91 -0
  247. data/lib/payments/models/value2.rb +91 -0
  248. data/lib/payments/models/value3.rb +91 -0
  249. data/lib/payments/models/value4.rb +91 -0
  250. data/lib/payments/models/verification.rb +173 -0
  251. data/lib/payments/models/wallet_payment_instrument.rb +100 -0
  252. data/lib/payments/models/window_size_enum.rb +34 -0
  253. data/lib/payments/models/wp_api_version_enum.rb +20 -0
  254. data/lib/payments/utilities/date_time_helper.rb +11 -0
  255. data/lib/payments/utilities/file_wrapper.rb +28 -0
  256. data/lib/payments/utilities/union_type_lookup.rb +78 -0
  257. data/lib/payments.rb +280 -0
  258. data/test/controllers/controller_test_base.rb +29 -0
  259. data/test/controllers/test_payment_controller.rb +161 -0
  260. data/test/controllers/test_payment_queries_controller.rb +68 -0
  261. data/test/http_response_catcher.rb +19 -0
  262. metadata +374 -0
@@ -0,0 +1,139 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # An object containing details about the recipient of funds, including name
8
+ # and address information, as well as recipient account details. In many use
9
+ # cases, the recipient is the same person as the sender (for example if your
10
+ # customer uses their card to load funds into their own crypto exchange or
11
+ # investment account). __Although an optional object in the API schema,
12
+ # `recipient` is required for some regions and use cases.__
13
+ class PaymentsFundsRecipient < BaseModel
14
+ SKIP = Object.new
15
+ private_constant :SKIP
16
+
17
+ # An object for the account details of the recipient.
18
+ # @return [PaymentsRecipientAccount]
19
+ attr_accessor :account
20
+
21
+ # Recipient's first name.
22
+ # @return [String]
23
+ attr_accessor :first_name
24
+
25
+ # Recipient's middle name.
26
+ # @return [String]
27
+ attr_accessor :middle_name
28
+
29
+ # Recipient's last name.
30
+ # @return [String]
31
+ attr_accessor :last_name
32
+
33
+ # Sender's address.
34
+ # @return [PaymentsTransferAddress]
35
+ attr_accessor :address
36
+
37
+ # Recipient's date of birth
38
+ # @return [Date]
39
+ attr_accessor :date_of_birth
40
+
41
+ # Recipient's phone number
42
+ # @return [String]
43
+ attr_accessor :phone_number
44
+
45
+ # Required for domestic processing in some Latin American countries.
46
+ # @return [String]
47
+ attr_accessor :document_reference
48
+
49
+ # A mapping from model property names to API property names.
50
+ def self.names
51
+ @_hash = {} if @_hash.nil?
52
+ @_hash['account'] = 'account'
53
+ @_hash['first_name'] = 'firstName'
54
+ @_hash['middle_name'] = 'middleName'
55
+ @_hash['last_name'] = 'lastName'
56
+ @_hash['address'] = 'address'
57
+ @_hash['date_of_birth'] = 'dateOfBirth'
58
+ @_hash['phone_number'] = 'phoneNumber'
59
+ @_hash['document_reference'] = 'documentReference'
60
+ @_hash
61
+ end
62
+
63
+ # An array for optional fields
64
+ def self.optionals
65
+ %w[
66
+ account
67
+ first_name
68
+ middle_name
69
+ last_name
70
+ address
71
+ date_of_birth
72
+ phone_number
73
+ document_reference
74
+ ]
75
+ end
76
+
77
+ # An array for nullable fields
78
+ def self.nullables
79
+ []
80
+ end
81
+
82
+ def initialize(account = SKIP, first_name = SKIP, middle_name = SKIP,
83
+ last_name = SKIP, address = SKIP, date_of_birth = SKIP,
84
+ phone_number = SKIP, document_reference = SKIP)
85
+ @account = account unless account == SKIP
86
+ @first_name = first_name unless first_name == SKIP
87
+ @middle_name = middle_name unless middle_name == SKIP
88
+ @last_name = last_name unless last_name == SKIP
89
+ @address = address unless address == SKIP
90
+ @date_of_birth = date_of_birth unless date_of_birth == SKIP
91
+ @phone_number = phone_number unless phone_number == SKIP
92
+ @document_reference = document_reference unless document_reference == SKIP
93
+ end
94
+
95
+ # Creates an instance of the object from a hash.
96
+ def self.from_hash(hash)
97
+ return nil unless hash
98
+
99
+ # Extract variables from the hash.
100
+ account = PaymentsRecipientAccount.from_hash(hash['account']) if hash['account']
101
+ first_name = hash.key?('firstName') ? hash['firstName'] : SKIP
102
+ middle_name = hash.key?('middleName') ? hash['middleName'] : SKIP
103
+ last_name = hash.key?('lastName') ? hash['lastName'] : SKIP
104
+ address = PaymentsTransferAddress.from_hash(hash['address']) if hash['address']
105
+ date_of_birth = hash.key?('dateOfBirth') ? hash['dateOfBirth'] : SKIP
106
+ phone_number = hash.key?('phoneNumber') ? hash['phoneNumber'] : SKIP
107
+ document_reference =
108
+ hash.key?('documentReference') ? hash['documentReference'] : SKIP
109
+
110
+ # Create object from extracted values.
111
+ PaymentsFundsRecipient.new(account,
112
+ first_name,
113
+ middle_name,
114
+ last_name,
115
+ address,
116
+ date_of_birth,
117
+ phone_number,
118
+ document_reference)
119
+ end
120
+
121
+ # Provides a human-readable string representation of the object.
122
+ def to_s
123
+ class_name = self.class.name.split('::').last
124
+ "<#{class_name} account: #{@account}, first_name: #{@first_name}, middle_name:"\
125
+ " #{@middle_name}, last_name: #{@last_name}, address: #{@address}, date_of_birth:"\
126
+ " #{@date_of_birth}, phone_number: #{@phone_number}, document_reference:"\
127
+ " #{@document_reference}>"
128
+ end
129
+
130
+ # Provides a debugging-friendly string with detailed object information.
131
+ def inspect
132
+ class_name = self.class.name.split('::').last
133
+ "<#{class_name} account: #{@account.inspect}, first_name: #{@first_name.inspect},"\
134
+ " middle_name: #{@middle_name.inspect}, last_name: #{@last_name.inspect}, address:"\
135
+ " #{@address.inspect}, date_of_birth: #{@date_of_birth.inspect}, phone_number:"\
136
+ " #{@phone_number.inspect}, document_reference: #{@document_reference.inspect}>"
137
+ end
138
+ end
139
+ end
@@ -0,0 +1,120 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # An object containing details about the sender of funds, including name and
8
+ # address information. The sender account is always the card account declared
9
+ # within `instruction.paymentInstrument`. __Although an optional object in the
10
+ # API schema, `sender` is required for some regions and use cases.__
11
+ class PaymentsFundsSender < BaseModel
12
+ SKIP = Object.new
13
+ private_constant :SKIP
14
+
15
+ # Sender's first name. Must be supplied if `lastName` or `middleName` are
16
+ # provided.
17
+ # @return [String]
18
+ attr_accessor :first_name
19
+
20
+ # Sender's middle name.
21
+ # @return [String]
22
+ attr_accessor :middle_name
23
+
24
+ # Sender's last name. Must be supplied if `firstName` or `middleName` are
25
+ # provided.
26
+ # @return [String]
27
+ attr_accessor :last_name
28
+
29
+ # Sender's address.
30
+ # @return [PaymentsTransferAddress]
31
+ attr_accessor :address
32
+
33
+ # Sender's date of birth
34
+ # @return [Date]
35
+ attr_accessor :date_of_birth
36
+
37
+ # Sender's document reference (e.g. Tax ID). Required for domestic
38
+ # processing in some Latin American countries.
39
+ # @return [String]
40
+ attr_accessor :document_reference
41
+
42
+ # A mapping from model property names to API property names.
43
+ def self.names
44
+ @_hash = {} if @_hash.nil?
45
+ @_hash['first_name'] = 'firstName'
46
+ @_hash['middle_name'] = 'middleName'
47
+ @_hash['last_name'] = 'lastName'
48
+ @_hash['address'] = 'address'
49
+ @_hash['date_of_birth'] = 'dateOfBirth'
50
+ @_hash['document_reference'] = 'documentReference'
51
+ @_hash
52
+ end
53
+
54
+ # An array for optional fields
55
+ def self.optionals
56
+ %w[
57
+ first_name
58
+ middle_name
59
+ last_name
60
+ address
61
+ date_of_birth
62
+ document_reference
63
+ ]
64
+ end
65
+
66
+ # An array for nullable fields
67
+ def self.nullables
68
+ []
69
+ end
70
+
71
+ def initialize(first_name = SKIP, middle_name = SKIP, last_name = SKIP,
72
+ address = SKIP, date_of_birth = SKIP,
73
+ document_reference = SKIP)
74
+ @first_name = first_name unless first_name == SKIP
75
+ @middle_name = middle_name unless middle_name == SKIP
76
+ @last_name = last_name unless last_name == SKIP
77
+ @address = address unless address == SKIP
78
+ @date_of_birth = date_of_birth unless date_of_birth == SKIP
79
+ @document_reference = document_reference unless document_reference == SKIP
80
+ end
81
+
82
+ # Creates an instance of the object from a hash.
83
+ def self.from_hash(hash)
84
+ return nil unless hash
85
+
86
+ # Extract variables from the hash.
87
+ first_name = hash.key?('firstName') ? hash['firstName'] : SKIP
88
+ middle_name = hash.key?('middleName') ? hash['middleName'] : SKIP
89
+ last_name = hash.key?('lastName') ? hash['lastName'] : SKIP
90
+ address = PaymentsTransferAddress.from_hash(hash['address']) if hash['address']
91
+ date_of_birth = hash.key?('dateOfBirth') ? hash['dateOfBirth'] : SKIP
92
+ document_reference =
93
+ hash.key?('documentReference') ? hash['documentReference'] : SKIP
94
+
95
+ # Create object from extracted values.
96
+ PaymentsFundsSender.new(first_name,
97
+ middle_name,
98
+ last_name,
99
+ address,
100
+ date_of_birth,
101
+ document_reference)
102
+ end
103
+
104
+ # Provides a human-readable string representation of the object.
105
+ def to_s
106
+ class_name = self.class.name.split('::').last
107
+ "<#{class_name} first_name: #{@first_name}, middle_name: #{@middle_name}, last_name:"\
108
+ " #{@last_name}, address: #{@address}, date_of_birth: #{@date_of_birth}, document_reference:"\
109
+ " #{@document_reference}>"
110
+ end
111
+
112
+ # Provides a debugging-friendly string with detailed object information.
113
+ def inspect
114
+ class_name = self.class.name.split('::').last
115
+ "<#{class_name} first_name: #{@first_name.inspect}, middle_name: #{@middle_name.inspect},"\
116
+ " last_name: #{@last_name.inspect}, address: #{@address.inspect}, date_of_birth:"\
117
+ " #{@date_of_birth.inspect}, document_reference: #{@document_reference.inspect}>"
118
+ end
119
+ end
120
+ end
@@ -0,0 +1,108 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # Contains details of the funds transfer request, which is a money movement
8
+ # for a reason other than the purchase of goods or services (also known as
9
+ # Account Funding Transaction (AFT)). Read more on how to set it up under our
10
+ # [__Account Funding
11
+ # Transactions__](/products/payments/enable-features/account-funding-transacti
12
+ # ons) guide.
13
+ class PaymentsFundsTransfer < BaseModel
14
+ SKIP = Object.new
15
+ private_constant :SKIP
16
+
17
+ # Specifies the type of the funds transfer. {% admonition type="warning"
18
+ # name="Note" %} You may only submit the `fundsTransfer.type` values that
19
+ # relate to the use cases that you have been approved for by the schemes.{%
20
+ # /admonition %}
21
+ # @return [Type5Enum]
22
+ attr_accessor :type
23
+
24
+ # Specifies the purpose of the funds transfer. Required for some regions and
25
+ # use cases (eg crypto).
26
+ # @return [PurposeEnum]
27
+ attr_accessor :purpose
28
+
29
+ # An object containing details about the recipient of funds, including name
30
+ # and address information, as well as recipient account details. In many use
31
+ # cases, the recipient is the same person as the sender (for example if your
32
+ # customer uses their card to load funds into their own crypto exchange or
33
+ # investment account). __Although an optional object in the API schema,
34
+ # `recipient` is required for some regions and use cases.__
35
+ # @return [PaymentsFundsRecipient]
36
+ attr_accessor :recipient
37
+
38
+ # An object containing details about the sender of funds, including name and
39
+ # address information. The sender account is always the card account
40
+ # declared within `instruction.paymentInstrument`. __Although an optional
41
+ # object in the API schema, `sender` is required for some regions and use
42
+ # cases.__
43
+ # @return [PaymentsFundsSender]
44
+ attr_accessor :sender
45
+
46
+ # A mapping from model property names to API property names.
47
+ def self.names
48
+ @_hash = {} if @_hash.nil?
49
+ @_hash['type'] = 'type'
50
+ @_hash['purpose'] = 'purpose'
51
+ @_hash['recipient'] = 'recipient'
52
+ @_hash['sender'] = 'sender'
53
+ @_hash
54
+ end
55
+
56
+ # An array for optional fields
57
+ def self.optionals
58
+ %w[
59
+ purpose
60
+ recipient
61
+ sender
62
+ ]
63
+ end
64
+
65
+ # An array for nullable fields
66
+ def self.nullables
67
+ []
68
+ end
69
+
70
+ def initialize(type = nil, purpose = SKIP, recipient = SKIP, sender = SKIP)
71
+ @type = type
72
+ @purpose = purpose unless purpose == SKIP
73
+ @recipient = recipient unless recipient == SKIP
74
+ @sender = sender unless sender == SKIP
75
+ end
76
+
77
+ # Creates an instance of the object from a hash.
78
+ def self.from_hash(hash)
79
+ return nil unless hash
80
+
81
+ # Extract variables from the hash.
82
+ type = hash.key?('type') ? hash['type'] : nil
83
+ purpose = hash.key?('purpose') ? hash['purpose'] : SKIP
84
+ recipient = PaymentsFundsRecipient.from_hash(hash['recipient']) if hash['recipient']
85
+ sender = PaymentsFundsSender.from_hash(hash['sender']) if hash['sender']
86
+
87
+ # Create object from extracted values.
88
+ PaymentsFundsTransfer.new(type,
89
+ purpose,
90
+ recipient,
91
+ sender)
92
+ end
93
+
94
+ # Provides a human-readable string representation of the object.
95
+ def to_s
96
+ class_name = self.class.name.split('::').last
97
+ "<#{class_name} type: #{@type}, purpose: #{@purpose}, recipient: #{@recipient}, sender:"\
98
+ " #{@sender}>"
99
+ end
100
+
101
+ # Provides a debugging-friendly string with detailed object information.
102
+ def inspect
103
+ class_name = self.class.name.split('::').last
104
+ "<#{class_name} type: #{@type.inspect}, purpose: #{@purpose.inspect}, recipient:"\
105
+ " #{@recipient.inspect}, sender: #{@sender.inspect}>"
106
+ end
107
+ end
108
+ end
@@ -0,0 +1,81 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # If the order is being used to purchase a gift card.
8
+ class PaymentsGiftCardsPurchase < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # TODO: Write general description for this method
13
+ # @return [Value]
14
+ attr_accessor :total_value
15
+
16
+ # The number of gift cards being purchased.
17
+ # @return [Integer]
18
+ attr_accessor :quantity
19
+
20
+ # A mapping from model property names to API property names.
21
+ def self.names
22
+ @_hash = {} if @_hash.nil?
23
+ @_hash['total_value'] = 'totalValue'
24
+ @_hash['quantity'] = 'quantity'
25
+ @_hash
26
+ end
27
+
28
+ # An array for optional fields
29
+ def self.optionals
30
+ %w[
31
+ total_value
32
+ quantity
33
+ ]
34
+ end
35
+
36
+ # An array for nullable fields
37
+ def self.nullables
38
+ []
39
+ end
40
+
41
+ def initialize(total_value = SKIP, quantity = SKIP)
42
+ @total_value = total_value unless total_value == SKIP
43
+ @quantity = quantity unless quantity == SKIP
44
+ end
45
+
46
+ # Creates an instance of the object from a hash.
47
+ def self.from_hash(hash)
48
+ return nil unless hash
49
+
50
+ # Extract variables from the hash.
51
+ total_value = Value.from_hash(hash['totalValue']) if hash['totalValue']
52
+ quantity = Number.from_hash(hash['quantity']) if hash['quantity']
53
+
54
+ # Create object from extracted values.
55
+ PaymentsGiftCardsPurchase.new(total_value,
56
+ quantity)
57
+ end
58
+
59
+ # Validates an instance of the object from a given value.
60
+ # @param [PaymentsGiftCardsPurchase | Hash] The value against the validation is performed.
61
+ def self.validate(value)
62
+ return true if value.instance_of? self
63
+
64
+ return false unless value.instance_of? Hash
65
+
66
+ true
67
+ end
68
+
69
+ # Provides a human-readable string representation of the object.
70
+ def to_s
71
+ class_name = self.class.name.split('::').last
72
+ "<#{class_name} total_value: #{@total_value}, quantity: #{@quantity}>"
73
+ end
74
+
75
+ # Provides a debugging-friendly string with detailed object information.
76
+ def inspect
77
+ class_name = self.class.name.split('::').last
78
+ "<#{class_name} total_value: #{@total_value.inspect}, quantity: #{@quantity.inspect}>"
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,133 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ require_relative 'payments_customer_agreement'
7
+
8
+ module Payments
9
+ # PaymentsInstallmentCustomerAgreement Model.
10
+ class PaymentsInstallmentCustomerAgreement < PaymentsCustomerAgreement
11
+ # Set to `first` to store a card or `subsequent` to use a previously stored
12
+ # card. Mandatory for `merchant` installment type.
13
+ # @return [StoredCardUsage1Enum]
14
+ attr_accessor :stored_card_usage
15
+
16
+ # Defines the type of installments service.
17
+ # Read more on how to set up [__Latin America
18
+ # Installments__](/products/payments/enable-features/latam-installments)
19
+ # under our guide.
20
+ # @return [InstallmentTypeEnum]
21
+ attr_accessor :installment_type
22
+
23
+ # Required only for `latinAmerica` installment type. Not allowed for
24
+ # `merchant` installment type.
25
+ # @return [InstallmentPlan]
26
+ attr_accessor :installment_plan
27
+
28
+ # Optional field available only for `subsequent` storedCardUsage. Unique
29
+ # reference provided by card schemes used to link the `first` and
30
+ # `subsequent` payments. If a Worldpay token was created as part of the
31
+ # first payment, this value is bundled with the token and does not need to
32
+ # be provided again. If you manage multiple agreements for a single
33
+ # cardholder using a token, please use the `schemeReference` returned to
34
+ # you. This allows you to distinguish and manage each separate agreement
35
+ # appropriately.
36
+ # @return [String]
37
+ attr_accessor :scheme_reference
38
+
39
+ # A mapping from model property names to API property names.
40
+ def self.names
41
+ @_hash = {} if @_hash.nil?
42
+ @_hash['stored_card_usage'] = 'storedCardUsage'
43
+ @_hash['installment_type'] = 'installmentType'
44
+ @_hash['installment_plan'] = 'installmentPlan'
45
+ @_hash['scheme_reference'] = 'schemeReference'
46
+ @_hash = super().merge(@_hash)
47
+ @_hash
48
+ end
49
+
50
+ # An array for optional fields
51
+ def self.optionals
52
+ _arr = %w[
53
+ stored_card_usage
54
+ installment_plan
55
+ scheme_reference
56
+ ]
57
+ (_arr << super()).flatten!
58
+ end
59
+
60
+ # An array for nullable fields
61
+ def self.nullables
62
+ _arr = []
63
+ (_arr << super()).flatten!
64
+ end
65
+
66
+ def initialize(installment_type = nil, stored_card_usage = SKIP,
67
+ installment_plan = SKIP, scheme_reference = SKIP,
68
+ type = 'installment')
69
+ @stored_card_usage = stored_card_usage unless stored_card_usage == SKIP
70
+ @installment_type = installment_type
71
+ @installment_plan = installment_plan unless installment_plan == SKIP
72
+ @scheme_reference = scheme_reference unless scheme_reference == SKIP
73
+
74
+ # Call the constructor of the base class
75
+ super(type)
76
+ end
77
+
78
+ # Creates an instance of the object from a hash.
79
+ def self.from_hash(hash)
80
+ return nil unless hash
81
+
82
+ # Extract variables from the hash.
83
+ installment_type =
84
+ hash.key?('installmentType') ? hash['installmentType'] : nil
85
+ stored_card_usage =
86
+ hash.key?('storedCardUsage') ? hash['storedCardUsage'] : SKIP
87
+ installment_plan = InstallmentPlan.from_hash(hash['installmentPlan']) if
88
+ hash['installmentPlan']
89
+ scheme_reference =
90
+ hash.key?('schemeReference') ? hash['schemeReference'] : SKIP
91
+ type = hash['type'] ||= 'installment'
92
+
93
+ # Create object from extracted values.
94
+ PaymentsInstallmentCustomerAgreement.new(installment_type,
95
+ stored_card_usage,
96
+ installment_plan,
97
+ scheme_reference,
98
+ type)
99
+ end
100
+
101
+ # Validates an instance of the object from a given value.
102
+ # @param [PaymentsInstallmentCustomerAgreement | Hash] The value against the validation is performed.
103
+ def self.validate(value)
104
+ if value.instance_of? self
105
+ return APIHelper.valid_type?(value.installment_type,
106
+ ->(val) { InstallmentTypeEnum.validate(val) })
107
+ end
108
+
109
+ return false unless value.instance_of? Hash
110
+
111
+ APIHelper.valid_type?(value['installmentType'],
112
+ ->(val) { InstallmentTypeEnum.validate(val) })
113
+ end
114
+
115
+ # Provides a human-readable string representation of the object.
116
+ def to_s
117
+ class_name = self.class.name.split('::').last
118
+ super_string = super().sub(/^<[^ ]+ /, '').sub(/>$/, '')
119
+ "<#{class_name} #{super_string}, stored_card_usage: #{@stored_card_usage},"\
120
+ " installment_type: #{@installment_type}, installment_plan: #{@installment_plan},"\
121
+ " scheme_reference: #{@scheme_reference}>"
122
+ end
123
+
124
+ # Provides a debugging-friendly string with detailed object information.
125
+ def inspect
126
+ class_name = self.class.name.split('::').last
127
+ super_string = super().inspect.sub(/^<[^ ]+ /, '').sub(/>$/, '')
128
+ "<#{class_name} #{super_string}, stored_card_usage: #{@stored_card_usage.inspect},"\
129
+ " installment_type: #{@installment_type.inspect}, installment_plan:"\
130
+ " #{@installment_plan.inspect}, scheme_reference: #{@scheme_reference.inspect}>"
131
+ end
132
+ end
133
+ end