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.
- checksums.yaml +7 -0
- data/LICENSE +28 -0
- data/README.md +136 -0
- data/lib/payments/api_helper.rb +10 -0
- data/lib/payments/client.rb +78 -0
- data/lib/payments/configuration.rb +145 -0
- data/lib/payments/controllers/base_controller.rb +60 -0
- data/lib/payments/controllers/m3_ds_actions_controller.rb +97 -0
- data/lib/payments/controllers/manage_payments_controller.rb +272 -0
- data/lib/payments/controllers/payment_controller.rb +51 -0
- data/lib/payments/controllers/payment_queries_controller.rb +134 -0
- data/lib/payments/exceptions/api_exception.rb +21 -0
- data/lib/payments/exceptions/error_response_exception.rb +51 -0
- data/lib/payments/exceptions/header_error_response_exception.rb +58 -0
- data/lib/payments/exceptions/pq_querybydaterange400_response_exception.rb +51 -0
- data/lib/payments/exceptions/pq_querybypaymentid404_response_error_exception.rb +51 -0
- data/lib/payments/exceptions/pq_queryhistoricalpayments400_response_exception.rb +51 -0
- data/lib/payments/exceptions/validation_error_response_exception.rb +58 -0
- data/lib/payments/http/auth/basic_auth.rb +50 -0
- data/lib/payments/http/http_call_back.rb +10 -0
- data/lib/payments/http/http_method_enum.rb +10 -0
- data/lib/payments/http/http_request.rb +10 -0
- data/lib/payments/http/http_response.rb +10 -0
- data/lib/payments/http/proxy_settings.rb +13 -0
- data/lib/payments/models/accept_enum.rb +21 -0
- data/lib/payments/models/account_history.rb +110 -0
- data/lib/payments/models/account_updater_message1_enum.rb +44 -0
- data/lib/payments/models/account_updater_message_enum.rb +41 -0
- data/lib/payments/models/advice.rb +62 -0
- data/lib/payments/models/applepay_payments_instruction.rb +151 -0
- data/lib/payments/models/authentication.rb +161 -0
- data/lib/payments/models/authorization_action_list.rb +90 -0
- data/lib/payments/models/authorization_failed.rb +103 -0
- data/lib/payments/models/authorization_refused.rb +124 -0
- data/lib/payments/models/authorization_requested.rb +94 -0
- data/lib/payments/models/authorization_succeeded.rb +104 -0
- data/lib/payments/models/authorization_timed_out.rb +94 -0
- data/lib/payments/models/authorization_type1_enum.rb +23 -0
- data/lib/payments/models/authorization_type_enum.rb +23 -0
- data/lib/payments/models/avs_not_matched_enum.rb +25 -0
- data/lib/payments/models/base_model.rb +110 -0
- data/lib/payments/models/billing_address.rb +147 -0
- data/lib/payments/models/browser_color_depth_enum.rb +41 -0
- data/lib/payments/models/cancel_response.rb +71 -0
- data/lib/payments/models/cancellation.rb +88 -0
- data/lib/payments/models/cancellation_failed.rb +94 -0
- data/lib/payments/models/cancellation_request_submitted.rb +94 -0
- data/lib/payments/models/cancellation_requested.rb +94 -0
- data/lib/payments/models/cancellation_timed_out.rb +94 -0
- data/lib/payments/models/card.rb +159 -0
- data/lib/payments/models/card1.rb +106 -0
- data/lib/payments/models/card3.rb +72 -0
- data/lib/payments/models/card_authorized_payment_response.rb +195 -0
- data/lib/payments/models/card_payment_instrument.rb +76 -0
- data/lib/payments/models/card_payments_instruction.rb +164 -0
- data/lib/payments/models/category_enum.rb +23 -0
- data/lib/payments/models/challenge.rb +100 -0
- data/lib/payments/models/challenge_info.rb +91 -0
- data/lib/payments/models/challenge_response201.rb +75 -0
- data/lib/payments/models/challenge_response202.rb +62 -0
- data/lib/payments/models/challenged_action_list.rb +65 -0
- data/lib/payments/models/challenged_response.rb +96 -0
- data/lib/payments/models/channel1_enum.rb +27 -0
- data/lib/payments/models/channel_enum.rb +24 -0
- data/lib/payments/models/conflict_payment_instrument.rb +104 -0
- data/lib/payments/models/content_type_enum.rb +20 -0
- data/lib/payments/models/custom.rb +241 -0
- data/lib/payments/models/customer.rb +146 -0
- data/lib/payments/models/customer_agreement.rb +120 -0
- data/lib/payments/models/cvc_not_matched_enum.rb +24 -0
- data/lib/payments/models/detail_enum.rb +23 -0
- data/lib/payments/models/device_data.rb +200 -0
- data/lib/payments/models/device_data_collection.rb +79 -0
- data/lib/payments/models/device_data_request.rb +71 -0
- data/lib/payments/models/device_data_required_action_list.rb +66 -0
- data/lib/payments/models/device_data_required_response.rb +89 -0
- data/lib/payments/models/device_data_response201.rb +95 -0
- data/lib/payments/models/embedded.rb +71 -0
- data/lib/payments/models/embedded1.rb +71 -0
- data/lib/payments/models/error.rb +81 -0
- data/lib/payments/models/exemption.rb +106 -0
- data/lib/payments/models/expiry_date.rb +90 -0
- data/lib/payments/models/expiry_date1.rb +84 -0
- data/lib/payments/models/fraud.rb +73 -0
- data/lib/payments/models/fraud_high_risk_response.rb +88 -0
- data/lib/payments/models/funding_type_enum.rb +32 -0
- data/lib/payments/models/googlepay_payments_instruction.rb +151 -0
- data/lib/payments/models/identifier_type_enum.rb +26 -0
- data/lib/payments/models/installment_plan.rb +76 -0
- data/lib/payments/models/installment_type_enum.rb +26 -0
- data/lib/payments/models/issuer.rb +63 -0
- data/lib/payments/models/issuer1.rb +76 -0
- data/lib/payments/models/issuer_response_enum.rb +23 -0
- data/lib/payments/models/last_event_enum.rb +95 -0
- data/lib/payments/models/links.rb +123 -0
- data/lib/payments/models/links1.rb +70 -0
- data/lib/payments/models/links2.rb +60 -0
- data/lib/payments/models/links3.rb +97 -0
- data/lib/payments/models/merchant.rb +88 -0
- data/lib/payments/models/message_enum.rb +34 -0
- data/lib/payments/models/method_enum.rb +38 -0
- data/lib/payments/models/mnext.rb +62 -0
- data/lib/payments/models/mself.rb +62 -0
- data/lib/payments/models/name_enum.rb +51 -0
- data/lib/payments/models/narrative.rb +86 -0
- data/lib/payments/models/narrative1.rb +87 -0
- data/lib/payments/models/narrative2.rb +71 -0
- data/lib/payments/models/number.rb +85 -0
- data/lib/payments/models/number3.rb +62 -0
- data/lib/payments/models/outcome16_enum.rb +21 -0
- data/lib/payments/models/outcome17_enum.rb +21 -0
- data/lib/payments/models/outcome6_enum.rb +42 -0
- data/lib/payments/models/outcome7_enum.rb +26 -0
- data/lib/payments/models/outcome_enum.rb +50 -0
- data/lib/payments/models/partial_refund_action_list.rb +64 -0
- data/lib/payments/models/partial_refund_response.rb +81 -0
- data/lib/payments/models/partial_settle_action_list.rb +102 -0
- data/lib/payments/models/partial_settle_response.rb +81 -0
- data/lib/payments/models/payment.rb +192 -0
- data/lib/payments/models/payment1.rb +86 -0
- data/lib/payments/models/payment_instrument.rb +62 -0
- data/lib/payments/models/payment_instrument4.rb +81 -0
- data/lib/payments/models/payment_instrument6.rb +71 -0
- data/lib/payments/models/payment_instrument7.rb +171 -0
- data/lib/payments/models/payment_refused_response.rb +187 -0
- data/lib/payments/models/payment_request.rb +96 -0
- data/lib/payments/models/payments_action_cancel.rb +71 -0
- data/lib/payments/models/payments_action_complete3ds_challenge.rb +72 -0
- data/lib/payments/models/payments_action_partial_refund.rb +71 -0
- data/lib/payments/models/payments_action_partial_settle.rb +73 -0
- data/lib/payments/models/payments_action_refund.rb +71 -0
- data/lib/payments/models/payments_action_settle.rb +71 -0
- data/lib/payments/models/payments_action_supply3ds_device_data.rb +73 -0
- data/lib/payments/models/payments_bank_account.rb +119 -0
- data/lib/payments/models/payments_cancel.rb +72 -0
- data/lib/payments/models/payments_card_account.rb +69 -0
- data/lib/payments/models/payments_card_on_file_customer_agreement.rb +85 -0
- data/lib/payments/models/payments_card_plain_payment_instrument.rb +149 -0
- data/lib/payments/models/payments_customer_agreement.rb +79 -0
- data/lib/payments/models/payments_email_account.rb +69 -0
- data/lib/payments/models/payments_events.rb +72 -0
- data/lib/payments/models/payments_exemption.rb +102 -0
- data/lib/payments/models/payments_fraud.rb +107 -0
- data/lib/payments/models/payments_funds_recipient.rb +139 -0
- data/lib/payments/models/payments_funds_sender.rb +120 -0
- data/lib/payments/models/payments_funds_transfer.rb +108 -0
- data/lib/payments/models/payments_gift_cards_purchase.rb +81 -0
- data/lib/payments/models/payments_installment_customer_agreement.rb +133 -0
- data/lib/payments/models/payments_instruction.rb +309 -0
- data/lib/payments/models/payments_link.rb +62 -0
- data/lib/payments/models/payments_network_token_payment_instrument.rb +126 -0
- data/lib/payments/models/payments_partial_refund_request.rb +68 -0
- data/lib/payments/models/payments_partial_settle.rb +72 -0
- data/lib/payments/models/payments_partial_settle_request.rb +81 -0
- data/lib/payments/models/payments_payment_facilitator.rb +88 -0
- data/lib/payments/models/payments_payment_instrument.rb +78 -0
- data/lib/payments/models/payments_phone_account.rb +69 -0
- data/lib/payments/models/payments_recipient.rb +110 -0
- data/lib/payments/models/payments_recipient_account.rb +81 -0
- data/lib/payments/models/payments_recipient_address.rb +72 -0
- data/lib/payments/models/payments_response.rb +69 -0
- data/lib/payments/models/payments_response202.rb +90 -0
- data/lib/payments/models/payments_response_payment_instrument.rb +158 -0
- data/lib/payments/models/payments_sequence.rb +69 -0
- data/lib/payments/models/payments_settle.rb +72 -0
- data/lib/payments/models/payments_shipping_address.rb +148 -0
- data/lib/payments/models/payments_social_network_account.rb +71 -0
- data/lib/payments/models/payments_sub_merchant.rb +108 -0
- data/lib/payments/models/payments_sub_merchant_address.rb +99 -0
- data/lib/payments/models/payments_subscription_customer_agreement.rb +106 -0
- data/lib/payments/models/payments_three_ds.rb +217 -0
- data/lib/payments/models/payments_transfer_address.rb +112 -0
- data/lib/payments/models/payments_unscheduled_customer_agreement.rb +87 -0
- data/lib/payments/models/payments_wallet_account.rb +70 -0
- data/lib/payments/models/placement_enum.rb +21 -0
- data/lib/payments/models/pq_querybydaterange200_response.rb +68 -0
- data/lib/payments/models/pq_querybypaymentid200_response.rb +230 -0
- data/lib/payments/models/pq_queryhistoricalpayments200_response.rb +72 -0
- data/lib/payments/models/preference_enum.rb +29 -0
- data/lib/payments/models/preferred_card_brand_enum.rb +51 -0
- data/lib/payments/models/purpose_enum.rb +78 -0
- data/lib/payments/models/query_action_list.rb +114 -0
- data/lib/payments/models/query_events_response.rb +71 -0
- data/lib/payments/models/reason_enum.rb +50 -0
- data/lib/payments/models/refund_failed.rb +94 -0
- data/lib/payments/models/refund_request_submitted.rb +94 -0
- data/lib/payments/models/refund_requested.rb +124 -0
- data/lib/payments/models/refund_response.rb +71 -0
- data/lib/payments/models/refund_timed_out.rb +94 -0
- data/lib/payments/models/result_enum.rb +29 -0
- data/lib/payments/models/reversal_failed.rb +94 -0
- data/lib/payments/models/reversal_request_submitted.rb +94 -0
- data/lib/payments/models/reversal_requested.rb +103 -0
- data/lib/payments/models/reversal_timed_out.rb +94 -0
- data/lib/payments/models/risk_enum.rb +29 -0
- data/lib/payments/models/risk_factor.rb +82 -0
- data/lib/payments/models/routing.rb +74 -0
- data/lib/payments/models/sale_failed.rb +103 -0
- data/lib/payments/models/sale_refused.rb +124 -0
- data/lib/payments/models/sale_requested.rb +94 -0
- data/lib/payments/models/sale_succeeded.rb +104 -0
- data/lib/payments/models/sale_timed_out.rb +94 -0
- data/lib/payments/models/scheme.rb +75 -0
- data/lib/payments/models/self1.rb +72 -0
- data/lib/payments/models/self2.rb +62 -0
- data/lib/payments/models/self3.rb +62 -0
- data/lib/payments/models/sent_for_cancellation_response.rb +185 -0
- data/lib/payments/models/sent_for_settlement_action_list.rb +76 -0
- data/lib/payments/models/sent_for_settlement_response.rb +195 -0
- data/lib/payments/models/session_payment_instrument.rb +119 -0
- data/lib/payments/models/settle_action_list.rb +76 -0
- data/lib/payments/models/settle_response.rb +81 -0
- data/lib/payments/models/settlement.rb +88 -0
- data/lib/payments/models/settlement_failed.rb +94 -0
- data/lib/payments/models/settlement_request_submitted.rb +94 -0
- data/lib/payments/models/settlement_requested.rb +125 -0
- data/lib/payments/models/settlement_timed_out.rb +94 -0
- data/lib/payments/models/shipping.rb +130 -0
- data/lib/payments/models/stored_card_usage1_enum.rb +24 -0
- data/lib/payments/models/stored_card_usage_enum.rb +24 -0
- data/lib/payments/models/time_frame_enum.rb +29 -0
- data/lib/payments/models/token.rb +168 -0
- data/lib/payments/models/token_creation.rb +95 -0
- data/lib/payments/models/token_payment_instrument.rb +118 -0
- data/lib/payments/models/token_response_conflicts.rb +90 -0
- data/lib/payments/models/transaction_history.rb +127 -0
- data/lib/payments/models/transaction_type1_enum.rb +26 -0
- data/lib/payments/models/transaction_type_enum.rb +26 -0
- data/lib/payments/models/type10_enum.rb +23 -0
- data/lib/payments/models/type12_enum.rb +35 -0
- data/lib/payments/models/type1_enum.rb +26 -0
- data/lib/payments/models/type2_enum.rb +23 -0
- data/lib/payments/models/type3_enum.rb +20 -0
- data/lib/payments/models/type4_enum.rb +20 -0
- data/lib/payments/models/type5_enum.rb +41 -0
- data/lib/payments/models/type6_enum.rb +29 -0
- data/lib/payments/models/type7_enum.rb +23 -0
- data/lib/payments/models/type8_enum.rb +23 -0
- data/lib/payments/models/type9_enum.rb +35 -0
- data/lib/payments/models/type_enum.rb +23 -0
- data/lib/payments/models/unsuccessful_authentication_response.rb +76 -0
- data/lib/payments/models/updated_payment_instrument.rb +159 -0
- data/lib/payments/models/updated_payment_instrument1.rb +93 -0
- data/lib/payments/models/user_type_enum.rb +35 -0
- data/lib/payments/models/value.rb +94 -0
- data/lib/payments/models/value1.rb +91 -0
- data/lib/payments/models/value2.rb +91 -0
- data/lib/payments/models/value3.rb +91 -0
- data/lib/payments/models/value4.rb +91 -0
- data/lib/payments/models/verification.rb +173 -0
- data/lib/payments/models/wallet_payment_instrument.rb +100 -0
- data/lib/payments/models/window_size_enum.rb +34 -0
- data/lib/payments/models/wp_api_version_enum.rb +20 -0
- data/lib/payments/utilities/date_time_helper.rb +11 -0
- data/lib/payments/utilities/file_wrapper.rb +28 -0
- data/lib/payments/utilities/union_type_lookup.rb +78 -0
- data/lib/payments.rb +280 -0
- data/test/controllers/controller_test_base.rb +29 -0
- data/test/controllers/test_payment_controller.rb +161 -0
- data/test/controllers/test_payment_queries_controller.rb +68 -0
- data/test/http_response_catcher.rb +19 -0
- 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
|