adyen-ruby-api-library 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (142) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +13 -0
  3. data/.travis.yml +14 -0
  4. data/Gemfile +12 -0
  5. data/LICENSE +21 -0
  6. data/README.md +140 -0
  7. data/Rakefile +6 -0
  8. data/adyen-ruby-api-library.gemspec +28 -0
  9. data/bin/console +13 -0
  10. data/bin/setup +8 -0
  11. data/docs/checkout.html +111 -0
  12. data/docs/index.html +50 -0
  13. data/docs/install-library.html +61 -0
  14. data/docs/javascripts/prism.js +5 -0
  15. data/docs/javascripts/scale.fix.js +17 -0
  16. data/docs/marketpay.html +169 -0
  17. data/docs/params.json +1 -0
  18. data/docs/payment.html +106 -0
  19. data/docs/payout.html +135 -0
  20. data/docs/recurring.html +113 -0
  21. data/docs/stylesheets/github-light.css +115 -0
  22. data/docs/stylesheets/prism.css +140 -0
  23. data/docs/stylesheets/styles.css +324 -0
  24. data/docs/using-library.html +67 -0
  25. data/lib/adyen-ruby-api-library.rb +21 -0
  26. data/lib/adyen/client.rb +174 -0
  27. data/lib/adyen/errors.rb +76 -0
  28. data/lib/adyen/services/checkout.rb +50 -0
  29. data/lib/adyen/services/checkout_utility.rb +16 -0
  30. data/lib/adyen/services/marketpay.rb +92 -0
  31. data/lib/adyen/services/payments.rb +23 -0
  32. data/lib/adyen/services/payouts.rb +21 -0
  33. data/lib/adyen/services/recurring.rb +19 -0
  34. data/lib/adyen/services/service.rb +19 -0
  35. data/lib/adyen/version.rb +4 -0
  36. data/spec/account_spec.rb +27 -0
  37. data/spec/checkout_spec.rb +94 -0
  38. data/spec/checkout_utility_spec.rb +27 -0
  39. data/spec/client_spec.rb +40 -0
  40. data/spec/fund_spec.rb +19 -0
  41. data/spec/mocks/requests/Account/close_account.json +3 -0
  42. data/spec/mocks/requests/Account/close_account_holder.json +3 -0
  43. data/spec/mocks/requests/Account/create_account.json +3 -0
  44. data/spec/mocks/requests/Account/create_account_holder.json +15 -0
  45. data/spec/mocks/requests/Account/delete_bank_accounts.json +6 -0
  46. data/spec/mocks/requests/Account/delete_shareholders.json +6 -0
  47. data/spec/mocks/requests/Account/get_account_holder.json +3 -0
  48. data/spec/mocks/requests/Account/get_uploaded_documents.json +4 -0
  49. data/spec/mocks/requests/Account/suspend_account_holder.json +3 -0
  50. data/spec/mocks/requests/Account/un_suspend_account_holder.json +3 -0
  51. data/spec/mocks/requests/Account/update_account.json +7 -0
  52. data/spec/mocks/requests/Account/update_account_holder.json +33 -0
  53. data/spec/mocks/requests/Account/update_account_holder_state.json +6 -0
  54. data/spec/mocks/requests/Account/upload_document.json +9 -0
  55. data/spec/mocks/requests/Checkout/payment-details.json +18 -0
  56. data/spec/mocks/requests/Checkout/payment-result.json +3 -0
  57. data/spec/mocks/requests/Checkout/payment_methods.json +3 -0
  58. data/spec/mocks/requests/Checkout/payment_session.json +15 -0
  59. data/spec/mocks/requests/Checkout/payments.json +17 -0
  60. data/spec/mocks/requests/Checkout/verify.json +3 -0
  61. data/spec/mocks/requests/CheckoutUtility/origin_keys.json +7 -0
  62. data/spec/mocks/requests/Fund/account_holder_balance.json +3 -0
  63. data/spec/mocks/requests/Fund/account_holder_transaction_list.json +16 -0
  64. data/spec/mocks/requests/Fund/payout_account_holder.json +10 -0
  65. data/spec/mocks/requests/Fund/refund_not_paid_out_transfers.json +4 -0
  66. data/spec/mocks/requests/Fund/setup_beneficiary.json +5 -0
  67. data/spec/mocks/requests/Fund/transfer_funds.json +9 -0
  68. data/spec/mocks/requests/Notification/create_notification_configuration.json +20 -0
  69. data/spec/mocks/requests/Notification/delete_notification_configurations.json +6 -0
  70. data/spec/mocks/requests/Notification/get_notification_configuration.json +3 -0
  71. data/spec/mocks/requests/Notification/get_notification_configuration_list.json +1 -0
  72. data/spec/mocks/requests/Notification/test_notification_configuration.json +4 -0
  73. data/spec/mocks/requests/Notification/update_notification_configuration.json +26 -0
  74. data/spec/mocks/requests/Payment/adjust_authorisation.json +12 -0
  75. data/spec/mocks/requests/Payment/authorise.json +28 -0
  76. data/spec/mocks/requests/Payment/authorise3d.json +6 -0
  77. data/spec/mocks/requests/Payment/cancel.json +4 -0
  78. data/spec/mocks/requests/Payment/cancel_or_refund.json +4 -0
  79. data/spec/mocks/requests/Payment/capture.json +8 -0
  80. data/spec/mocks/requests/Payment/refund.json +8 -0
  81. data/spec/mocks/requests/Payout/confirm_third_party.json +4 -0
  82. data/spec/mocks/requests/Payout/decline_third_party.json +4 -0
  83. data/spec/mocks/requests/Payout/store_detail.json +33 -0
  84. data/spec/mocks/requests/Payout/store_detail_and_submit_third_party.json +33 -0
  85. data/spec/mocks/requests/Payout/submit_third_party.json +22 -0
  86. data/spec/mocks/requests/Recurring/disable.json +5 -0
  87. data/spec/mocks/requests/Recurring/list_recurring_details.json +4 -0
  88. data/spec/mocks/requests/Recurring/store_token.json +15 -0
  89. data/spec/mocks/responses/Account/close_account.json +5 -0
  90. data/spec/mocks/responses/Account/close_account_holder.json +7 -0
  91. data/spec/mocks/responses/Account/create_account.json +7 -0
  92. data/spec/mocks/responses/Account/create_account_holder.json +116 -0
  93. data/spec/mocks/responses/Account/delete_bank_accounts.json +4 -0
  94. data/spec/mocks/responses/Account/delete_shareholders.json +4 -0
  95. data/spec/mocks/responses/Account/get_account_holder.json +71 -0
  96. data/spec/mocks/responses/Account/get_uploaded_documents.json +16 -0
  97. data/spec/mocks/responses/Account/suspend_account_holder.json +24 -0
  98. data/spec/mocks/responses/Account/un_suspend_account_holder.json +24 -0
  99. data/spec/mocks/responses/Account/update_account.json +9 -0
  100. data/spec/mocks/responses/Account/update_account_holder.json +95 -0
  101. data/spec/mocks/responses/Account/update_account_holder_state.json +27 -0
  102. data/spec/mocks/responses/Account/upload_document.json +77 -0
  103. data/spec/mocks/responses/Checkout/payment-details.json +14 -0
  104. data/spec/mocks/responses/Checkout/payment-result.json +4 -0
  105. data/spec/mocks/responses/Checkout/payment_methods.json +66 -0
  106. data/spec/mocks/responses/Checkout/payment_session.json +572 -0
  107. data/spec/mocks/responses/Checkout/payments.json +95 -0
  108. data/spec/mocks/responses/Checkout/verify.json +121 -0
  109. data/spec/mocks/responses/CheckoutUtility/origin_keys.json +7 -0
  110. data/spec/mocks/responses/Fund/account_holder_balance.json +47 -0
  111. data/spec/mocks/responses/Fund/account_holder_transaction_list.json +73 -0
  112. data/spec/mocks/responses/Fund/payout_account_holder.json +6 -0
  113. data/spec/mocks/responses/Fund/refund_not_paid_out_transfers.json +5 -0
  114. data/spec/mocks/responses/Fund/setup_beneficiary.json +5 -0
  115. data/spec/mocks/responses/Fund/transfer_funds.json +6 -0
  116. data/spec/mocks/responses/Notification/create_notification_configuration.json +41 -0
  117. data/spec/mocks/responses/Notification/delete_notification_configurations.json +23 -0
  118. data/spec/mocks/responses/Notification/get_notification_configuration.json +41 -0
  119. data/spec/mocks/responses/Notification/get_notification_configuration_list.json +65 -0
  120. data/spec/mocks/responses/Notification/test_notification_configuration.json +49 -0
  121. data/spec/mocks/responses/Notification/update_notification_configuration.json +47 -0
  122. data/spec/mocks/responses/Payment/adjust_authorisation.json +4 -0
  123. data/spec/mocks/responses/Payment/authorise.json +95 -0
  124. data/spec/mocks/responses/Payment/authorise3d.json +30 -0
  125. data/spec/mocks/responses/Payment/cancel.json +4 -0
  126. data/spec/mocks/responses/Payment/cancel_or_refund.json +4 -0
  127. data/spec/mocks/responses/Payment/capture.json +4 -0
  128. data/spec/mocks/responses/Payment/refund.json +4 -0
  129. data/spec/mocks/responses/Payout/confirm_third_party.json +4 -0
  130. data/spec/mocks/responses/Payout/decline_third_party.json +4 -0
  131. data/spec/mocks/responses/Payout/store_detail.json +5 -0
  132. data/spec/mocks/responses/Payout/store_detail_and_submit_third_party.json +8 -0
  133. data/spec/mocks/responses/Payout/submit_third_party.json +8 -0
  134. data/spec/mocks/responses/Recurring/disable.json +30 -0
  135. data/spec/mocks/responses/Recurring/list_recurring_details.json +62 -0
  136. data/spec/mocks/responses/Recurring/store_token.json +7 -0
  137. data/spec/notification_spec.rb +19 -0
  138. data/spec/payments_spec.rb +20 -0
  139. data/spec/payouts_spec.rb +18 -0
  140. data/spec/recurring_spec.rb +17 -0
  141. data/spec/spec_helper.rb +94 -0
  142. metadata +246 -0
@@ -0,0 +1,23 @@
1
+ require_relative 'service'
2
+
3
+ module Adyen
4
+ class Payments < Service
5
+ attr_accessor :version
6
+ DEFAULT_VERSION = 40
7
+
8
+ def initialize(client, version = DEFAULT_VERSION)
9
+ service = 'Payment'
10
+ method_names = [
11
+ :authorise,
12
+ :authorise3d,
13
+ :capture,
14
+ :cancel,
15
+ :refund,
16
+ :cancel_or_refund,
17
+ :adjust_authorisation
18
+ ]
19
+
20
+ super(client, version, service, method_names)
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,21 @@
1
+ require_relative 'service'
2
+
3
+ module Adyen
4
+ class Payouts < Service
5
+ attr_accessor :version
6
+ DEFAULT_VERSION = 30
7
+
8
+ def initialize(client, version = DEFAULT_VERSION)
9
+ service = 'Payout'
10
+ method_names = [
11
+ :store_detail,
12
+ :store_detail_and_submit_third_party,
13
+ :submit_third_party,
14
+ :confirm_third_party,
15
+ :decline_third_party
16
+ ]
17
+
18
+ super(client, version, service, method_names)
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,19 @@
1
+ require_relative 'service'
2
+
3
+ module Adyen
4
+ class Recurring < Service
5
+ attr_accessor :version
6
+ DEFAULT_VERSION = 25
7
+
8
+ def initialize(client, version = DEFAULT_VERSION)
9
+ service = 'Recurring'
10
+ method_names = [
11
+ :list_recurring_details,
12
+ :disable,
13
+ :store_token
14
+ ]
15
+
16
+ super(client, version, service, method_names)
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module Adyen
2
+ class Service
3
+ attr_accessor :service, :version
4
+
5
+ def initialize(client, version, service, method_names)
6
+ @client = client
7
+ @version = version
8
+ @service = service
9
+
10
+ # dynamically create API methods
11
+ method_names.each do |method_name|
12
+ define_singleton_method method_name do |request|
13
+ action = method_name.to_s.to_camel_case
14
+ @client.call_adyen_api(@service, action, request, @version)
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,4 @@
1
+ module Adyen
2
+ NAME = "adyen-ruby-api-library"
3
+ VERSION = "1.2.0".freeze
4
+ end
@@ -0,0 +1,27 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe Adyen::Payments, service: "marketpay account service" do
4
+ # client instance to be used in dynamically generated tests
5
+ client = create_client(:basic)
6
+
7
+ # methods / values to test for
8
+ # format is defined in spec_helper
9
+ test_sets = [
10
+ ["create_account_holder", "accountHolderCode", "TestAccountHolder781664"],
11
+ ["get_account_holder", "pspReference", "8815263414367329"],
12
+ ["update_account_holder", "pspReference", "9914762676580105"],
13
+ ["update_account_holder_state", "pspReference", "8515090175978108"],
14
+ ["suspend_account_holder", "pspReference", "9914762643560032"],
15
+ ["un_suspend_account_holder", "pspReference", "9914762644860159"],
16
+ ["close_account_holder", "pspReference", "9914713476670992"],
17
+ ["create_account", "status", "Active"],
18
+ ["update_account", "pspReference", "9914860311410009"],
19
+ ["close_account", "status", "Closed"],
20
+ ["upload_document", "pspReference", "9914762681460244"],
21
+ ["get_uploaded_documents", "pspReference", "9914694369860322"],
22
+ ["delete_bank_accounts", "pspReference", "9914694372670551"],
23
+ ["delete_shareholders", "pspReference", "9914694372990637"]
24
+ ]
25
+
26
+ generate_tests(client, "Account", test_sets, client.marketpay.account)
27
+ end
@@ -0,0 +1,94 @@
1
+ require "spec_helper"
2
+ require "json"
3
+
4
+ # rubocop:disable Metrics/BlockLength
5
+
6
+ RSpec.describe Adyen::Checkout, service: "checkout" do
7
+ before(:all) do
8
+ @shared_values = {
9
+ client: create_client(:api_key),
10
+ service: "Checkout",
11
+ }
12
+ end
13
+
14
+ # must be created manually because every field in the response is an array
15
+ it "makes a payment_methods call" do
16
+ parsed_body = create_test(@shared_values[:client], @shared_values[:service], "payment_methods", @shared_values[:client].checkout)
17
+ expect(parsed_body["paymentMethods"].class).
18
+ to be Array
19
+ end
20
+
21
+ # must be created manually due to payments/details format
22
+ it "makes a payments/details call" do
23
+ request_body = JSON.parse(json_from_file("mocks/requests/Checkout/payment-details.json"))
24
+ @shared_values[:client].add_application_info(request_body)
25
+
26
+ response_body = json_from_file("mocks/responses/Checkout/payment-details.json")
27
+
28
+ url = @shared_values[:client].service_url(@shared_values[:service], "payments/details", @shared_values[:client].checkout.version)
29
+ WebMock.stub_request(:post, url).
30
+ with(
31
+ body: request_body,
32
+ headers: {
33
+ "x-api-key" => @shared_values[:client].api_key
34
+ }
35
+ ).
36
+ to_return(
37
+ body: response_body
38
+ )
39
+ response = @shared_values[:client].checkout.payments.details(request_body)
40
+
41
+ expect(response.status).
42
+ to eq(200)
43
+ expect(response.body).
44
+ to eq(response_body)
45
+ expect((parsed_body = JSON.parse(response.body)).class).
46
+ to be Hash
47
+ expect(parsed_body["resultCode"]).
48
+ to eq("RedirectShopper")
49
+ end
50
+
51
+ # must be created manually due to payments/result format
52
+ it "makes a payments/result call" do
53
+ request_body = JSON.parse(json_from_file("mocks/requests/Checkout/payment-result.json"))
54
+ @shared_values[:client].add_application_info(request_body)
55
+
56
+ response_body = json_from_file("mocks/responses/Checkout/payment-result.json")
57
+
58
+ url = @shared_values[:client].service_url(@shared_values[:service], "payments/result", @shared_values[:client].checkout.version)
59
+ WebMock.stub_request(:post, url).
60
+ with(
61
+ body: request_body,
62
+ headers: {
63
+ "x-api-key" => @shared_values[:client].api_key
64
+ }
65
+ ).
66
+ to_return(
67
+ body: response_body
68
+ )
69
+ response = @shared_values[:client].checkout.payments.result(request_body)
70
+
71
+ expect(response.status).
72
+ to eq(200)
73
+ expect(response.body).
74
+ to eq(response_body)
75
+ expect((parsed_body = JSON.parse(response.body)).class).
76
+ to be Hash
77
+ expect(parsed_body["resultCode"]).
78
+ to eq("Authorised")
79
+ end
80
+
81
+ # create client for automated tests
82
+ client = create_client(:api_key)
83
+
84
+ # methods / fields to test on
85
+ # format is defined in spec_helper
86
+ test_sets = [
87
+ ["payment_session", "publicKeyToken", "8115054323780109"],
88
+ ["payments", "resultCode", "Authorised"]
89
+ ]
90
+
91
+ generate_tests(client, "Checkout", test_sets, client.checkout)
92
+ end
93
+
94
+ # rubocop:enable Metrics/BlockLength
@@ -0,0 +1,27 @@
1
+ require "spec_helper"
2
+ require "json"
3
+
4
+ # rubocop:disable Metrics/BlockLength
5
+
6
+ RSpec.describe Adyen::CheckoutUtility, service: "checkout utility" do
7
+ before(:all) do
8
+ @shared_values = {
9
+ client: create_client(:api_key),
10
+ service: "CheckoutUtility",
11
+ }
12
+ end
13
+
14
+ it "sets the correct service URL base" do
15
+ client = Adyen::Client.new(env: :test)
16
+ expect(client.service_url_base(@shared_values[:service])).to eq("https://checkout-test.adyen.com")
17
+ end
18
+
19
+ # must be created manually because every field in the response is an array
20
+ it "makes an origin_keys call" do
21
+ parsed_body = create_test(@shared_values[:client], @shared_values[:service], "origin_keys", @shared_values[:client].checkout_utility)
22
+ expect(parsed_body["originKeys"].class).
23
+ to be Hash
24
+ end
25
+ end
26
+
27
+ # rubocop:enable Metrics/BlockLength
@@ -0,0 +1,40 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe Adyen do
4
+ before(:all) do
5
+ @shared_values = {
6
+ client: nil
7
+ }
8
+ end
9
+
10
+ it "creates Adyen client" do
11
+ @shared_values[:client] = Adyen::Client.new
12
+ expect(@shared_values[:client]).is_a? Adyen::Client
13
+ end
14
+
15
+ it "sets env to :mock" do
16
+ @shared_values[:client].env = :test
17
+ expect(@shared_values[:client].env).
18
+ to eq(:test)
19
+ end
20
+
21
+ it "sets the version number" do
22
+ @shared_values[:client].checkout.version = @shared_values[:version]
23
+ expect(@shared_values[:client].checkout.version).
24
+ to eq(@shared_values[:version])
25
+ end
26
+
27
+ it "fails payments call without WS user and password" do
28
+ expect{ @shared_values[:client].payments.authorise("{}") }.
29
+ to raise_error(Adyen::AuthenticationError)
30
+ @shared_values[:client].ws_user = @shared_values[:ws_user]
31
+ expect{ @shared_values[:client].payments.authorise("{}") }.
32
+ to raise_error(Adyen::AuthenticationError)
33
+ end
34
+
35
+ it "fails a checkout call without api key" do
36
+ expect{ @shared_values[:client].checkout.payment_methods("{}") }.
37
+ to raise_error(Adyen::AuthenticationError)
38
+ @shared_values[:client].api_key = "api_key"
39
+ end
40
+ end
@@ -0,0 +1,19 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe Adyen::Payments, service: "marketpay fund service" do
4
+ # client instance to be used in dynamically generated tests
5
+ client = create_client(:basic)
6
+
7
+ # methods / values to test for
8
+ # format is defined in spec_helper
9
+ test_sets = [
10
+ ["payout_account_holder", "pspReference", "9915090894325643"],
11
+ ["account_holder_balance", "pspReference", "9914719436100053"],
12
+ ["account_holder_transaction_list", "pspReference", "9914721175530029"],
13
+ ["refund_not_paid_out_transfers", "pspReference", "9915090894215323"],
14
+ ["setup_beneficiary", "pspReference", "9914860354282596"],
15
+ ["transfer_funds", "pspReference", "9915090893984580"]
16
+ ]
17
+
18
+ generate_tests(client, "Fund", test_sets, client.marketpay.fund)
19
+ end
@@ -0,0 +1,3 @@
1
+ {
2
+ "accountCode": "CODE_OF_ACCOUNT"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "accountHolderCode": "CODE_OF_ACCOUNT_HOLDER"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "accountHolderCode": "CODE_OF_ACCOUNT_HOLDER"
3
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "accountHolderCode": "GENERATE_CODE",
3
+ "accountHolderDetails": {
4
+ "email": "tim@green.com",
5
+ "individualDetails": {
6
+ "name": {
7
+ "firstName": "Tim",
8
+ "gender": "MALE",
9
+ "lastName": "Green"
10
+ }
11
+ }
12
+ },
13
+ "legalEntity": "Individual",
14
+ "description": "Test Account Holder"
15
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "accountHolderCode": "CODE_OF_ACCOUNT_HOLDER",
3
+ "bankAccountUUIDs": [
4
+ "eeb6ed22-3bae-483c-83b9-bc2097a75d40"
5
+ ]
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "accountHolderCode": "CODE_OF_ACCOUNT_HOLDER",
3
+ "shareholderCodes": [
4
+ "9188218c-576e-4cbe-8e86-72722f453920"
5
+ ]
6
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "accountHolderCode": "CODE_OF_ACCOUNT_HOLDER"
3
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "accountHolderCode": "CODE_OF_ACCOUNT_HOLDER",
3
+ "bankAccountUUID": "EXAMPLE_UUID"
4
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "accountHolderCode": "CODE_OF_ACCOUNT_HOLDER"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "accountHolderCode": "CODE_OF_ACCOUNT_HOLDER"
3
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "accountCode": "CODE_OF_ACCOUNT",
3
+ "payoutSchedule": {
4
+ "schedule": "WEEKLY",
5
+ "action": "CLOSE"
6
+ }
7
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "accountHolderCode": "CODE_OF_ACCOUNT_HOLDER",
3
+ "accountHolderDetails": {
4
+ "address": {
5
+ "city": "Amsterdam",
6
+ "country": "NL",
7
+ "postalCode": "12345",
8
+ "stateOrProvince": "NH",
9
+ "street": "Teststreet 1"
10
+ },
11
+ "bankAccountDetails": [],
12
+ "email": "test@adyen.com",
13
+ "individualDetails": {
14
+ "name": {
15
+ "firstName": "First name",
16
+ "gender": "MALE",
17
+ "lastName": "Last Name"
18
+ },
19
+ "personalData": {
20
+ "dateOfBirth": "1970-01-01",
21
+ "idNumber": "1234567890",
22
+ "nationality": "NL"
23
+ }
24
+ },
25
+ "merchantCategoryCode": "7999",
26
+ "phoneNumber": {
27
+ "phoneCountryCode": "NL",
28
+ "phoneNumber": "0612345678",
29
+ "phoneType": "Mobile"
30
+ },
31
+ "webAddress": "http://www.accountholderwebsite.com"
32
+ }
33
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "accountHolderCode": "CODE_OF_ACCOUNT_HOLDER",
3
+ "disable": "true",
4
+ "reason": "test reason payout",
5
+ "stateType": "Payout"
6
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "documentContent": "dGVzdCBkb2N1bWVudCBjb250ZW50",
3
+ "documentDetail": {
4
+ "accountHolderCode": "CODE_OF_ACCOUNT_HOLDER",
5
+ "documentType": "PASSPORT",
6
+ "filename": "passport.png",
7
+ "description": "test passport description"
8
+ }
9
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "amount": {
3
+ "currency": "USD",
4
+ "value": 1000
5
+ },
6
+ "paymentMethod": {
7
+ "type": "ideal",
8
+ "idealIssuer": 1155
9
+ },
10
+ "paymentData": "Hee57361f99ddcf4!ZW5jcnlwdGVkPUJRQUJBZ0JvNGhIUnFUcUxwMVYxY0JJb0R2Sk5lWmQzVDZZckdGSTNRU2hrRnFkUGhzSiUyQmY3ZzJJd1hTa2hVYXZlUUFIT1ExZnNQbzRYVzV4YUFydnplRFdNYTQ5ZHhnbDNHbzNGM2RHTnAlMkJvSGhzM1hIQXZZNHc4UjhGMDVWdHNWR0hSek1qeW1TT291MGp6TnlqUU80cWpDeGNQQlF4bVVyUU1CeDhBVU9COXlWRlRhaFNwM1N5RlprZ3FOZkpjcTdxMVhycFJ3SENkamdZJTJCd1lWcmtMeEN3MmpuYmQ4N2JwazRicE45QjNJYXp0bkszY05USW5qWnZXQTc3MmdMTVRaTjJWTHgyNm4lMkI5ZDA3akdxSkpsUG5xSndBdkFEdzh2OXd4aHRyTXhXbGFYemxJejNuc2NWY05zR3JDNUFZVExtaXRTazB2eVRKUXNqRlNKTXltTG1IdmppcXFmR3JrY0glMkJzWWpiQ1M5dTB3TlN4OFQlMkJJRTN6a2VuMGZ3Ylo4RHE2M21NdGZ3WURkRDNGbjJMUnJvT0oxN3pTTWRXSmtoUjdLTVo1OXRERE1VWlBEajNWWHRMY29MNUF0dWtLTlFQTEFENWdBOEppdmZCc0h5YlBPY25ZOVpzc291TTJQVjBLcWtldk0xMUdHZlgwYiUyQmdHcjB6NHQxOE9LM25weHVIdXJoNzV0T3oyJTJGUHRTSnBkT2lKOGo2Z0F1Q1JQdFh4ZHZBT0NMaldwQ210Smg2Wmw5VGYwZXdFREhFelN6NnQ3N2pleWpnOTFMaVRZQkhHMDBvSkJyWk0lMkJvOVliJTJCM0JYcFFQVzNwVThKSGdKbWJJUVFEenpCNyUyQnFiMHBRQ1FDam1xelJkSUx1UDQzOW82ZHFNS1hyMFhjSEpkNkNxMmtRaUxNNk1xcmJUYjZkMmhDNUFlcE1ZSEs5NVFzJTJCS1dzNU1FajdBRXA3SW10bGVTSTZJa0ZHTUVGQlFURXdNME5CTlRNM1JVRkZSRGczUXpJMFJFUTFNemt3T1VJNE1FRTNPRUU1TWpORk16Z3lNMFEyT0VSQlEwTTVORUk1UmtZNE16QTFSRU1pZll0MWhDUUREenpiSiUyRkV6NGJXdHdSNEQ0VjZ5JTJCWVVuTHNVc1NsbGZsJTJGV1Fka2ZmU0t5d1E2Z0RKY2tJUlBuelpvREhZSHUwVDdPd2gycHk5VyUyQjBmMXRISTJRYnZvdnBNR0tQRHdndSUyQkUlMkZaM0JvTm9xYTlEMiUyRmNrcTdSZ0RXMmdqMFpiYXplbk5oQ2hMaTJ3YjBlampMYzR6cHJhJTJGellmUkVVM0ZCSUJmdzBKeEtWVzU1NENxUEJvSGlIU3c2Sml5MlE3cnhjSjJSc3FiJTJCR25zTnRIYjN4c3NyMiUyQjRMTjYyZXZ3ciUyQiUyQk5ITEVLejVHSWxKMERJdG1JT1VWR1U1YlA4a2M1a0ZGR1JQYzNNODh4MCUyRlpVVG54bVlscVR1MDg0Mm1MUlh3WnJPaUoySlVXY3QlMkIzdDNlb1p6UG1jV0VZdkhZRG1OJTJCd2J0WXVRcmhIdWFrTVpCeGdRWjczeGd4WUZoaUZUMnYyQmFDT2pSZyUyQjBiMGJhZ3BEU1R1dVJQRFg2b0txa3ZYb0h2MFhqcGRHWUR4VmMlMkZ5SWxtMXp0WmNVcmo3Z1FqTkVvNjE1b2F3UmhxZTJyOXlTdTdCZ2FLQXJ4UjEzSDBRZzVIQlJJT0g5Zk92MnV6Vk5zNFZGMEYzcDhmJTJGdnBsMXlBcnZaRzFkWm5VYkZ1c092bVdIM2hyRDgwQVdzczRlJTJGYW5HMUxOaXhYSEVlUyUyRmEyQUxIcXp6THVHakZsRHZXZ2prQjNrU2t5S3d4ZVlQb284dk03cHFhTEFKV010T2ZtbnZUd1pqUVJUTnp1V0NSbjBwbHU3QVF2Q3hPZXMzRFg5ZTR3WDZBd1FhaXhIUjRQbXM2TnJxMVFuRkZLNHNrMW5kRGZqRTdEaXhGdlVpWlhUOHklMkZGcEFFMENPR0VhRCUyQmpGR1ZDYVI0NkVuMEo2RmJkOGFyQVYxaGJSNGZ5cFlaMFFuNFF6dE1MTWtpWW4xR0NQeWZyTjJxZEJ1aExmNFBqeUtSeFRLa2x6JTJGTmVvSnM1Smc2dVJiNVA0eiUyQiUyQkhlMUZqWFlUMXBXRzBnaDZtSDNvakttQyUyRmdOSTV3cHFlWDRpY2ZIb2t3RVB0VXAyTDFKYWNjd2xlZkU5dGlMZGZlQXJEbVZGJTJGRGp6UjE2S0JPNW1VMUR4R2dnd09DRDMzRkVqSCUyRjVERDklMkZwSW5IU0lSZFpmZDlRN2E1b1VwYmFFbFdhV2dxZjBEQ3RwWmluU2ZCWUZMNFBKeTAlMkZEdWd0VWZuWHdCVFNJV045c1lVYmFxODRMZXhkbVBHeFBwWUUyVHFaUWluVmRMTmtLbEJhQUpjUDV0JTJGTWQ4Nk5HM0lLVDZzalozJTJCVWxkMXRyNWIxVW8xbThCaSZ2ZXJzaW9uPTI=",
11
+ "details": {
12
+ "key": "returnUrlQueryString",
13
+ "type": "text"
14
+ },
15
+ "returnUrl": "",
16
+ "reference": "Merchant Reference",
17
+ "merchantAccount": "TestMerchant"
18
+ }