adyen-ruby-api-library 11.3.0 → 12.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 (112) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +2 -2
  3. data/Gemfile +2 -2
  4. data/README.md +30 -7
  5. data/VERSION +1 -1
  6. data/adyen-ruby-api-library.gemspec +1 -1
  7. data/lib/adyen/client.rb +6 -11
  8. data/lib/adyen/deprecation.rb +34 -0
  9. data/lib/adyen/services/balanceControl/balance_control_api.rb +2 -0
  10. data/lib/adyen/services/balancePlatform/balance_accounts_api.rb +0 -40
  11. data/lib/adyen/services/balancePlatform/custom_payout_schedules_sweeps_api.rb +56 -0
  12. data/lib/adyen/services/balancePlatform/grant_accounts_api.rb +2 -0
  13. data/lib/adyen/services/balancePlatform/grant_offers_api.rb +4 -0
  14. data/lib/adyen/services/balancePlatform/managed_payout_schedules_api.rb +80 -0
  15. data/lib/adyen/services/balancePlatform/recurring_top_ups_api.rb +48 -0
  16. data/lib/adyen/services/balancePlatform/sca_device_management_api.rb +8 -0
  17. data/lib/adyen/services/balancePlatform.rb +15 -0
  18. data/lib/adyen/services/checkout/payments_api.rb +8 -0
  19. data/lib/adyen/services/checkout/utility_api.rb +2 -0
  20. data/lib/adyen/services/checkout.rb +1 -1
  21. data/lib/adyen/services/management/donation_campaigns_api.rb +64 -0
  22. data/lib/adyen/services/management.rb +5 -0
  23. data/lib/adyen/services/payment/modifications_api.rb +2 -0
  24. data/lib/adyen/services/posMobile/pos_mobile_api.rb +5 -0
  25. data/lib/adyen/services/posTerminalManagement.rb +10 -0
  26. data/lib/adyen/services/recurring/recurring_api.rb +4 -0
  27. data/lib/adyen/services/service.rb +2 -0
  28. data/lib/adyen/services/transfers/capital_api.rb +6 -0
  29. data/lib/adyen/services/transfers/cash_out_api.rb +24 -0
  30. data/lib/adyen/services/transfers.rb +5 -0
  31. data/lib/adyen/utils/hmac_validator.rb +15 -17
  32. data/lib/adyen/version.rb +1 -1
  33. data/sdk-generation-log/balanceplatform.json +4 -4
  34. data/sdk-generation-log/checkout.json +4 -4
  35. data/sdk-generation-log/management.json +4 -4
  36. data/sdk-generation-log/posmobile.json +4 -4
  37. data/sdk-generation-log/transfers.json +4 -4
  38. data/spec/balance_control_spec.rb +41 -0
  39. data/spec/balance_platform_spec.rb +498 -4
  40. data/spec/checkout-oauth_spec.rb +220 -10
  41. data/spec/checkout_spec.rb +245 -10
  42. data/spec/client_spec.rb +1 -5
  43. data/spec/deprecation_spec.rb +112 -0
  44. data/spec/management_spec.rb +184 -0
  45. data/spec/mocks/requests/BalancePlatform/apply_managed_schedule.json +14 -0
  46. data/spec/mocks/requests/BalancePlatform/begin_sca_device_registration.json +4 -0
  47. data/spec/mocks/requests/BalancePlatform/create_recurring_top_up.json +21 -0
  48. data/spec/mocks/requests/BalancePlatform/create_sweep.json +10 -0
  49. data/spec/mocks/requests/BalancePlatform/finish_sca_device_registration.json +3 -0
  50. data/spec/mocks/requests/BalancePlatform/submit_sca_association.json +8 -0
  51. data/spec/mocks/requests/BalancePlatform/update_balance_account_managed_schedule.json +5 -0
  52. data/spec/mocks/requests/BalancePlatform/update_recurring_top_ups.json +3 -0
  53. data/spec/mocks/requests/BalancePlatform/update_sweep.json +6 -0
  54. data/spec/mocks/requests/Checkout/amount_updates.json +1 -1
  55. data/spec/mocks/requests/Checkout/card_details.json +3 -0
  56. data/spec/mocks/requests/Checkout/create_stored_payment_method.json +10 -0
  57. data/spec/mocks/requests/Checkout/donation_campaigns.json +4 -0
  58. data/spec/mocks/requests/Checkout/donations.json +9 -0
  59. data/spec/mocks/requests/Checkout/orders.json +5 -3
  60. data/spec/mocks/requests/Checkout/payment-details.json +2 -14
  61. data/spec/mocks/requests/Checkout/payment_methods_balance.json +5 -2
  62. data/spec/mocks/requests/Checkout/payments.json +9 -10
  63. data/spec/mocks/requests/Checkout/paypal_update_order.json +5 -0
  64. data/spec/mocks/requests/Checkout/reversals.json +3 -0
  65. data/spec/mocks/requests/Checkout/update_session.json +7 -0
  66. data/spec/mocks/requests/Management/create_donation_campaign.json +7 -0
  67. data/spec/mocks/requests/Management/list_nonprofits.json +5 -0
  68. data/spec/mocks/requests/Management/update_donation_campaign.json +6 -0
  69. data/spec/mocks/requests/Transfers/initiate_cashout.json +12 -0
  70. data/spec/mocks/responses/BalancePlatform/apply_managed_schedule.json +17 -0
  71. data/spec/mocks/responses/BalancePlatform/begin_sca_device_registration.json +8 -0
  72. data/spec/mocks/responses/BalancePlatform/create_recurring_top_up.json +23 -0
  73. data/spec/mocks/responses/BalancePlatform/create_sweep.json +12 -0
  74. data/spec/mocks/responses/BalancePlatform/finish_sca_device_registration.json +7 -0
  75. data/spec/mocks/responses/BalancePlatform/get_all_sweeps_for_balance_account.json +31 -0
  76. data/spec/mocks/responses/BalancePlatform/get_balance_account_managed_schedule_by_id.json +17 -0
  77. data/spec/mocks/responses/BalancePlatform/get_balance_account_managed_schedules.json +26 -0
  78. data/spec/mocks/responses/BalancePlatform/get_balance_platform_managed_schedule_by_id.json +27 -0
  79. data/spec/mocks/responses/BalancePlatform/get_balance_platform_managed_schedules.json +31 -0
  80. data/spec/mocks/responses/BalancePlatform/get_payout_schedule_executions.json +21 -0
  81. data/spec/mocks/responses/BalancePlatform/get_recurring_top_ups.json +35 -0
  82. data/spec/mocks/responses/BalancePlatform/get_sweep.json +12 -0
  83. data/spec/mocks/responses/BalancePlatform/submit_sca_association.json +10 -0
  84. data/spec/mocks/responses/BalancePlatform/update_balance_account_managed_schedule.json +18 -0
  85. data/spec/mocks/responses/BalancePlatform/update_recurring_top_ups.json +23 -0
  86. data/spec/mocks/responses/BalancePlatform/update_sweep.json +12 -0
  87. data/spec/mocks/responses/Checkout/amount_updates.json +1 -1
  88. data/spec/mocks/responses/Checkout/card_details.json +5 -0
  89. data/spec/mocks/responses/Checkout/create_stored_payment_method.json +5 -0
  90. data/spec/mocks/responses/Checkout/donation_campaigns.json +1 -0
  91. data/spec/mocks/responses/Checkout/donations.json +5 -0
  92. data/spec/mocks/responses/Checkout/orders.json +6 -1
  93. data/spec/mocks/responses/Checkout/orders_cancel.json +1 -1
  94. data/spec/mocks/responses/Checkout/payment-details.json +2 -13
  95. data/spec/mocks/responses/Checkout/payment_links.json +3 -0
  96. data/spec/mocks/responses/Checkout/payment_methods.json +2 -2
  97. data/spec/mocks/responses/Checkout/payment_methods_balance.json +5 -1
  98. data/spec/mocks/responses/Checkout/payments.json +4 -94
  99. data/spec/mocks/responses/Checkout/paypal_update_order.json +4 -0
  100. data/spec/mocks/responses/Checkout/reversals.json +6 -0
  101. data/spec/mocks/responses/Checkout/update_session.json +3 -0
  102. data/spec/mocks/responses/Management/donation_campaign.json +13 -0
  103. data/spec/mocks/responses/Management/list_donation_campaigns.json +19 -0
  104. data/spec/mocks/responses/Management/list_nonprofits.json +34 -0
  105. data/spec/mocks/responses/Transfers/initiate_cashout.json +31 -0
  106. data/spec/spec_helper.rb +2 -2
  107. data/spec/transfers_spec.rb +28 -0
  108. data/spec/utils/consumer_smoke.rb +23 -0
  109. data/spec/utils/hmac_validator_spec.rb +55 -0
  110. data/templates/api-small.mustache +4 -2
  111. data/templates/api.mustache +4 -2
  112. metadata +58 -2
@@ -33,6 +33,34 @@ RSpec.describe Adyen::Transfers, service: 'transfers' do
33
33
  .to eq(200)
34
34
  end
35
35
 
36
+ it 'makes a cashouts POST call' do
37
+ request_body = JSON.parse(json_from_file('mocks/requests/Transfers/initiate_cashout.json'))
38
+
39
+ response_body = json_from_file('mocks/responses/Transfers/initiate_cashout.json')
40
+
41
+ url = @shared_values[:client].service_url(@shared_values[:service], 'cashouts',
42
+ @shared_values[:client].transfers.version)
43
+ WebMock.stub_request(:post, url)
44
+ .with(
45
+ body: request_body,
46
+ headers: {
47
+ 'x-api-key' => @shared_values[:client].api_key
48
+ }
49
+ )
50
+ .to_return(
51
+ body: response_body
52
+ )
53
+
54
+ result = @shared_values[:client].transfers.cash_out_api.initiate_cashout(request_body)
55
+ response_hash = result.response
56
+
57
+ expect(result.status)
58
+ .to eq(200)
59
+ expect(response_hash).to eq(JSON.parse(response_body))
60
+ expect(response_hash).to be_a Adyen::HashWithAccessors
61
+ expect(response_hash).to be_a_kind_of Hash
62
+ end
63
+
36
64
  it 'makes a transactions GET call' do
37
65
  response_body = json_from_file('mocks/responses/Transfers/make_transfer.json')
38
66
 
@@ -0,0 +1,23 @@
1
+ # Consumer smoke test for the HMAC validator, run by hmac_validator_spec.rb.
2
+ # Executed in a clean Ruby process that only loads the library.
3
+ # Exits non-zero (via abort) when the library cannot be used standalone.
4
+
5
+ require 'adyen-ruby-api-library'
6
+
7
+ validator = Adyen::Utils::HmacValidator.new
8
+ key = '44782DEF547AAA06C910C43932B1EB0C71FC68D9D0C057550C48EC2ACF6BA056'
9
+ webhook_request_item = {
10
+ 'additionalData' => { 'hmacSignature' => 'coqCmt/IZ4E3CzPvMY8zTjQVL5hYJUiBRg8UU+iCWo0=' },
11
+ 'amount' => { 'value' => 1130, 'currency' => 'EUR' },
12
+ 'pspReference' => '7914073381342284',
13
+ 'eventCode' => 'AUTHORISATION',
14
+ 'merchantAccountCode' => 'TestMerchant',
15
+ 'merchantReference' => 'TestPayment-1407325143704',
16
+ 'paymentMethod' => 'visa',
17
+ 'success' => 'true'
18
+ }
19
+
20
+ abort 'valid_webhook_hmac? returned false' unless validator.valid_webhook_hmac?(webhook_request_item, key)
21
+
22
+ payload_sign = validator.calculate_webhook_payload_hmac('payload', key)
23
+ abort "unexpected payload hmac: #{payload_sign}" unless payload_sign == 'McjT0WKyyQ5Zqv3FC9sVNf14NYfSAZa1chxoXY3yIlE='
@@ -1,4 +1,5 @@
1
1
  require 'spec_helper'
2
+ require 'open3'
2
3
 
3
4
  RSpec.describe Adyen::Utils::HmacValidator do
4
5
  let(:validator) { described_class.new }
@@ -77,6 +78,60 @@ RSpec.describe Adyen::Utils::HmacValidator do
77
78
  expect(validator.valid_webhook_payload_hmac?(hmac_signature, key, payload)).to be true
78
79
  end
79
80
 
81
+ it 'returns false when additionalData hmacSignature is nil' do
82
+ webhook_request_item['additionalData'] = { 'hmacSignature' => nil }
83
+
84
+ expect(validator.valid_webhook_hmac?(webhook_request_item, key)).to be false
85
+ end
86
+
87
+ it 'returns false when payload webhook hmac_signature is nil' do
88
+ payload = json_from_file('mocks/responses/Webhooks/mixed_webhook.json')
89
+
90
+ expect(validator.valid_webhook_payload_hmac?(nil, key, payload)).to be false
91
+ end
92
+
93
+ end
94
+
95
+ describe 'consumer-side regression' do
96
+ # Run the validator in a clean Ruby process that only loads the library, like
97
+ # a consumer application, so test dependencies cannot mask missing dependencies.
98
+ it 'computes HMAC signatures in a clean consumer process' do
99
+ lib_dir = File.expand_path('../../lib', __dir__)
100
+ smoke_test = File.expand_path('consumer_smoke.rb', __dir__)
101
+
102
+ stdout, stderr, status = Open3.capture3(Gem.ruby, '-I', lib_dir, smoke_test)
103
+
104
+ expect(status).to be_success,
105
+ "library must work in a clean consumer process.\nstdout: #{stdout}\nstderr: #{stderr}"
106
+ end
107
+ end
108
+
109
+ describe 'deprecated methods' do
110
+ around do |example|
111
+ previous = Warning[:deprecated]
112
+ Warning[:deprecated] = true
113
+ example.run
114
+ ensure
115
+ Warning[:deprecated] = previous
116
+ end
117
+
118
+ it 'valid_notification_hmac? emits a deprecation warning and still validates' do
119
+ result = nil
120
+ expect do
121
+ result = validator.valid_notification_hmac?(webhook_request_item, key)
122
+ end.to output(/\[DEPRECATED\] `valid_notification_hmac\?` is deprecated\. Use valid_webhook_hmac\?\(\) instead\.\n/).to_stderr
123
+
124
+ expect(result).to be true
125
+ end
126
+
127
+ it 'calculate_notification_hmac emits a deprecation warning and still calculates' do
128
+ result = nil
129
+ expect do
130
+ result = validator.calculate_notification_hmac(webhook_request_item, key)
131
+ end.to output(/\[DEPRECATED\] `calculate_notification_hmac` is deprecated\. Use calculate_webhook_hmac\(\) instead\.\n/).to_stderr
132
+
133
+ expect(result).to eq expected_sign
134
+ end
80
135
  end
81
136
  end
82
137
  # rubocop:enable Metrics/BlockLength
@@ -18,9 +18,11 @@ module Adyen
18
18
  # {{{summary}}}{{^summary}}{{operationId}}{{/summary}}{{#isDeprecated}}
19
19
  #
20
20
  # Deprecated {{#vendorExtensions.x-deprecatedInVersion}}since {{#appName}}{{{.}}}{{/appName}} v{{.}}{{/vendorExtensions.x-deprecatedInVersion}}{{#vendorExtensions.x-deprecatedMessage}}
21
- # {{{.}}}{{/vendorExtensions.x-deprecatedMessage}}{{/isDeprecated}}
21
+ # {{{.}}}{{/vendorExtensions.x-deprecatedMessage}}
22
+ # @deprecated{{/isDeprecated}}
22
23
  def {{#lambda.snakecase}}{{#vendorExtensions.x-methodName}}{{.}}{{/vendorExtensions.x-methodName}}{{^vendorExtensions.x-methodName}}{{nickname}}{{/vendorExtensions.x-methodName}}{{/lambda.snakecase}}({{#bodyParams}}request, {{/bodyParams}}{{#requiredParams}}{{^isQueryParam}}{{#lambda.snakecase}}{{paramName}}{{/lambda.snakecase}}, {{/isQueryParam}}{{/requiredParams}}headers: {}{{#queryParams}}{{#-first}}, query_params: {}{{/-first}}{{/queryParams}})
23
- endpoint = build_endpoint('{{path}}'{{#pathParams}}, {{#lambda.snakecase}}{{paramName}}{{/lambda.snakecase}}{{/pathParams}})
24
+ {{#isDeprecated}}Adyen::Deprecation.warn(:{{#lambda.snakecase}}{{#vendorExtensions.x-methodName}}{{.}}{{/vendorExtensions.x-methodName}}{{^vendorExtensions.x-methodName}}{{nickname}}{{/vendorExtensions.x-methodName}}{{/lambda.snakecase}}{{#vendorExtensions.x-deprecatedInVersion}}, since: '{{#lambda.escapeSingleQuotedString}}{{#appName}}{{{.}}}{{/appName}} v{{.}}{{/lambda.escapeSingleQuotedString}}'{{/vendorExtensions.x-deprecatedInVersion}}{{#vendorExtensions.x-deprecatedMessage}}, message: '{{#lambda.escapeSingleQuotedString}}{{{.}}}{{/lambda.escapeSingleQuotedString}}'{{/vendorExtensions.x-deprecatedMessage}})
25
+ {{/isDeprecated}}endpoint = build_endpoint('{{#lambda.escapeSingleQuotedString}}{{{path}}}{{/lambda.escapeSingleQuotedString}}'{{#pathParams}}, {{#lambda.snakecase}}{{paramName}}{{/lambda.snakecase}}{{/pathParams}})
24
26
  {{#queryParams}}{{#-first}}endpoint += create_query_string(query_params){{/-first}}{{/queryParams}}
25
27
  action = { method: '{{#lambda.lowercase}}{{httpMethod}}{{/lambda.lowercase}}', url: endpoint }
26
28
  {{#bodyParams}}
@@ -17,9 +17,11 @@ module Adyen
17
17
  # {{{summary}}}{{^summary}}{{operationId}}{{/summary}}{{#isDeprecated}}
18
18
  #
19
19
  # Deprecated {{#vendorExtensions.x-deprecatedInVersion}}since {{#appName}}{{{.}}}{{/appName}} v{{.}}{{/vendorExtensions.x-deprecatedInVersion}}{{#vendorExtensions.x-deprecatedMessage}}
20
- # {{{.}}}{{/vendorExtensions.x-deprecatedMessage}}{{/isDeprecated}}
20
+ # {{{.}}}{{/vendorExtensions.x-deprecatedMessage}}
21
+ # @deprecated{{/isDeprecated}}
21
22
  def {{#lambda.snakecase}}{{#vendorExtensions.x-methodName}}{{.}}{{/vendorExtensions.x-methodName}}{{^vendorExtensions.x-methodName}}{{nickname}}{{/vendorExtensions.x-methodName}}{{/lambda.snakecase}}({{#bodyParams}}request, {{/bodyParams}}{{#pathParams}}{{#lambda.snakecase}}{{paramName}}{{/lambda.snakecase}}, {{/pathParams}}headers: {}{{#queryParams}}{{#-first}}, query_params: {}{{/-first}}{{/queryParams}})
22
- endpoint = build_endpoint('{{path}}'{{#pathParams}}, {{#lambda.snakecase}}{{paramName}}{{/lambda.snakecase}}{{/pathParams}})
23
+ {{#isDeprecated}}Adyen::Deprecation.warn(:{{#lambda.snakecase}}{{#vendorExtensions.x-methodName}}{{.}}{{/vendorExtensions.x-methodName}}{{^vendorExtensions.x-methodName}}{{nickname}}{{/vendorExtensions.x-methodName}}{{/lambda.snakecase}}{{#vendorExtensions.x-deprecatedInVersion}}, since: '{{#lambda.escapeSingleQuotedString}}{{#appName}}{{{.}}}{{/appName}} v{{.}}{{/lambda.escapeSingleQuotedString}}'{{/vendorExtensions.x-deprecatedInVersion}}{{#vendorExtensions.x-deprecatedMessage}}, message: '{{#lambda.escapeSingleQuotedString}}{{{.}}}{{/lambda.escapeSingleQuotedString}}'{{/vendorExtensions.x-deprecatedMessage}})
24
+ {{/isDeprecated}}endpoint = build_endpoint('{{#lambda.escapeSingleQuotedString}}{{{path}}}{{/lambda.escapeSingleQuotedString}}'{{#pathParams}}, {{#lambda.snakecase}}{{paramName}}{{/lambda.snakecase}}{{/pathParams}})
23
25
  {{#queryParams}}{{#-first}}endpoint += create_query_string(query_params){{/-first}}{{/queryParams}}
24
26
  action = { method: '{{#lambda.lowercase}}{{httpMethod}}{{/lambda.lowercase}}', url: endpoint }
25
27
  {{#bodyParams}}
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adyen-ruby-api-library
3
3
  version: !ruby/object:Gem::Version
4
- version: 11.3.0
4
+ version: 12.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adyen
@@ -103,6 +103,7 @@ files:
103
103
  - bin/setup
104
104
  - lib/adyen-ruby-api-library.rb
105
105
  - lib/adyen/client.rb
106
+ - lib/adyen/deprecation.rb
106
107
  - lib/adyen/errors.rb
107
108
  - lib/adyen/hash_with_accessors.rb
108
109
  - lib/adyen/result.rb
@@ -115,15 +116,18 @@ files:
115
116
  - lib/adyen/services/balancePlatform/balances_api.rb
116
117
  - lib/adyen/services/balancePlatform/bank_account_validation_api.rb
117
118
  - lib/adyen/services/balancePlatform/card_orders_api.rb
119
+ - lib/adyen/services/balancePlatform/custom_payout_schedules_sweeps_api.rb
118
120
  - lib/adyen/services/balancePlatform/direct_debit_mandates_api.rb
119
121
  - lib/adyen/services/balancePlatform/grant_accounts_api.rb
120
122
  - lib/adyen/services/balancePlatform/grant_offers_api.rb
121
123
  - lib/adyen/services/balancePlatform/manage_card_pin_api.rb
122
124
  - lib/adyen/services/balancePlatform/manage_sca_devices_api.rb
125
+ - lib/adyen/services/balancePlatform/managed_payout_schedules_api.rb
123
126
  - lib/adyen/services/balancePlatform/network_tokens_api.rb
124
127
  - lib/adyen/services/balancePlatform/payment_instrument_groups_api.rb
125
128
  - lib/adyen/services/balancePlatform/payment_instruments_api.rb
126
129
  - lib/adyen/services/balancePlatform/platform_api.rb
130
+ - lib/adyen/services/balancePlatform/recurring_top_ups_api.rb
127
131
  - lib/adyen/services/balancePlatform/sca_association_management_api.rb
128
132
  - lib/adyen/services/balancePlatform/sca_device_management_api.rb
129
133
  - lib/adyen/services/balancePlatform/transaction_rules_api.rb
@@ -171,6 +175,7 @@ files:
171
175
  - lib/adyen/services/management/api_key_merchant_level_api.rb
172
176
  - lib/adyen/services/management/client_key_company_level_api.rb
173
177
  - lib/adyen/services/management/client_key_merchant_level_api.rb
178
+ - lib/adyen/services/management/donation_campaigns_api.rb
174
179
  - lib/adyen/services/management/my_api_credential_api.rb
175
180
  - lib/adyen/services/management/payment_methods_merchant_level_api.rb
176
181
  - lib/adyen/services/management/payout_settings_merchant_level_api.rb
@@ -213,6 +218,7 @@ files:
213
218
  - lib/adyen/services/terminalCloudAPI.rb
214
219
  - lib/adyen/services/transfers.rb
215
220
  - lib/adyen/services/transfers/capital_api.rb
221
+ - lib/adyen/services/transfers/cash_out_api.rb
216
222
  - lib/adyen/services/transfers/transactions_api.rb
217
223
  - lib/adyen/services/transfers/transfers_api.rb
218
224
  - lib/adyen/utils/hmac_validator.rb
@@ -244,6 +250,7 @@ files:
244
250
  - spec/checkout_spec.rb
245
251
  - spec/client_spec.rb
246
252
  - spec/data_protection_spec.rb
253
+ - spec/deprecation_spec.rb
247
254
  - spec/disputes_spec.rb
248
255
  - spec/errors_spec.rb
249
256
  - spec/fund_spec.rb
@@ -270,16 +277,29 @@ files:
270
277
  - spec/mocks/requests/Account/update_account_holder_state.json
271
278
  - spec/mocks/requests/Account/upload_document.json
272
279
  - spec/mocks/requests/BalanceControl/balance_transfer.json
280
+ - spec/mocks/requests/BalancePlatform/apply_managed_schedule.json
281
+ - spec/mocks/requests/BalancePlatform/begin_sca_device_registration.json
273
282
  - spec/mocks/requests/BalancePlatform/create_account_holder.json
283
+ - spec/mocks/requests/BalancePlatform/create_recurring_top_up.json
284
+ - spec/mocks/requests/BalancePlatform/create_sweep.json
274
285
  - spec/mocks/requests/BalancePlatform/create_transfer_limit.json
275
286
  - spec/mocks/requests/BalancePlatform/create_webhook_setting.json
287
+ - spec/mocks/requests/BalancePlatform/finish_sca_device_registration.json
288
+ - spec/mocks/requests/BalancePlatform/submit_sca_association.json
276
289
  - spec/mocks/requests/BalancePlatform/update_account_holder.json
290
+ - spec/mocks/requests/BalancePlatform/update_balance_account_managed_schedule.json
277
291
  - spec/mocks/requests/BalancePlatform/update_mandate.json
292
+ - spec/mocks/requests/BalancePlatform/update_recurring_top_ups.json
293
+ - spec/mocks/requests/BalancePlatform/update_sweep.json
278
294
  - spec/mocks/requests/BinLookup/get_3ds_availability.json
279
295
  - spec/mocks/requests/BinLookup/get_cost_estimate.json
280
296
  - spec/mocks/requests/Checkout/amount_updates.json
281
297
  - spec/mocks/requests/Checkout/apple_pay_sessions.json
282
298
  - spec/mocks/requests/Checkout/capture.json
299
+ - spec/mocks/requests/Checkout/card_details.json
300
+ - spec/mocks/requests/Checkout/create_stored_payment_method.json
301
+ - spec/mocks/requests/Checkout/donation_campaigns.json
302
+ - spec/mocks/requests/Checkout/donations.json
283
303
  - spec/mocks/requests/Checkout/generic_cancel.json
284
304
  - spec/mocks/requests/Checkout/modifications_request.json
285
305
  - spec/mocks/requests/Checkout/orders.json
@@ -292,9 +312,12 @@ files:
292
312
  - spec/mocks/requests/Checkout/payment_methods_balance.json
293
313
  - spec/mocks/requests/Checkout/payment_session.json
294
314
  - spec/mocks/requests/Checkout/payments.json
315
+ - spec/mocks/requests/Checkout/paypal_update_order.json
295
316
  - spec/mocks/requests/Checkout/psp_cancel.json
296
317
  - spec/mocks/requests/Checkout/refund.json
318
+ - spec/mocks/requests/Checkout/reversals.json
297
319
  - spec/mocks/requests/Checkout/sessions.json
320
+ - spec/mocks/requests/Checkout/update_session.json
298
321
  - spec/mocks/requests/Checkout/verify.json
299
322
  - spec/mocks/requests/DataProtection/request_subject_erasure.json
300
323
  - spec/mocks/requests/Disputes/retrieve_applicable_defense_reasons.json
@@ -307,7 +330,10 @@ files:
307
330
  - spec/mocks/requests/Fund/transfer_funds.json
308
331
  - spec/mocks/requests/Hop/get_onboarding_url.json
309
332
  - spec/mocks/requests/LegalEntityManagement/create_business_line.json
333
+ - spec/mocks/requests/Management/create_donation_campaign.json
310
334
  - spec/mocks/requests/Management/create_store.json
335
+ - spec/mocks/requests/Management/list_nonprofits.json
336
+ - spec/mocks/requests/Management/update_donation_campaign.json
311
337
  - spec/mocks/requests/Notification/create_notification_configuration.json
312
338
  - spec/mocks/requests/Notification/delete_notification_configurations.json
313
339
  - spec/mocks/requests/Notification/get_notification_configuration.json
@@ -346,6 +372,7 @@ files:
346
372
  - spec/mocks/requests/TerminalCloudAPI/connected_terminals.json
347
373
  - spec/mocks/requests/TerminalCloudAPI/sync_payment.json
348
374
  - spec/mocks/requests/Transfers/get_transactions.json
375
+ - spec/mocks/requests/Transfers/initiate_cashout.json
349
376
  - spec/mocks/requests/Transfers/make_transfer.json
350
377
  - spec/mocks/responses/Account/check_account_holder.json
351
378
  - spec/mocks/responses/Account/close_account.json
@@ -365,18 +392,35 @@ files:
365
392
  - spec/mocks/responses/Account/update_account_holder_state.json
366
393
  - spec/mocks/responses/Account/upload_document.json
367
394
  - spec/mocks/responses/BalanceControl/balance_transfer.json
395
+ - spec/mocks/responses/BalancePlatform/apply_managed_schedule.json
396
+ - spec/mocks/responses/BalancePlatform/begin_sca_device_registration.json
368
397
  - spec/mocks/responses/BalancePlatform/create_account_holder.json
398
+ - spec/mocks/responses/BalancePlatform/create_recurring_top_up.json
399
+ - spec/mocks/responses/BalancePlatform/create_sweep.json
369
400
  - spec/mocks/responses/BalancePlatform/create_transfer_limit.json
370
401
  - spec/mocks/responses/BalancePlatform/create_webhook_setting.json
402
+ - spec/mocks/responses/BalancePlatform/finish_sca_device_registration.json
371
403
  - spec/mocks/responses/BalancePlatform/get_all_authorised_card_users.json
404
+ - spec/mocks/responses/BalancePlatform/get_all_sweeps_for_balance_account.json
372
405
  - spec/mocks/responses/BalancePlatform/get_all_webhook_settings.json
373
406
  - spec/mocks/responses/BalancePlatform/get_balance_account.json
407
+ - spec/mocks/responses/BalancePlatform/get_balance_account_managed_schedule_by_id.json
408
+ - spec/mocks/responses/BalancePlatform/get_balance_account_managed_schedules.json
409
+ - spec/mocks/responses/BalancePlatform/get_balance_platform_managed_schedule_by_id.json
410
+ - spec/mocks/responses/BalancePlatform/get_balance_platform_managed_schedules.json
374
411
  - spec/mocks/responses/BalancePlatform/get_list_of_mandates.json
375
412
  - spec/mocks/responses/BalancePlatform/get_mandate_by_id.json
413
+ - spec/mocks/responses/BalancePlatform/get_payout_schedule_executions.json
414
+ - spec/mocks/responses/BalancePlatform/get_recurring_top_ups.json
376
415
  - spec/mocks/responses/BalancePlatform/get_specific_transfer_limit.json
416
+ - spec/mocks/responses/BalancePlatform/get_sweep.json
377
417
  - spec/mocks/responses/BalancePlatform/get_tax_form_summary.json
378
418
  - spec/mocks/responses/BalancePlatform/get_transfer_limits.json
419
+ - spec/mocks/responses/BalancePlatform/submit_sca_association.json
379
420
  - spec/mocks/responses/BalancePlatform/update_account_holder.json
421
+ - spec/mocks/responses/BalancePlatform/update_balance_account_managed_schedule.json
422
+ - spec/mocks/responses/BalancePlatform/update_recurring_top_ups.json
423
+ - spec/mocks/responses/BalancePlatform/update_sweep.json
380
424
  - spec/mocks/responses/BinLookup/get_3ds_availability.json
381
425
  - spec/mocks/responses/BinLookup/get_cost_estimate.json
382
426
  - spec/mocks/responses/Capital/calculate-preliminary-offer-from-dynamic-offer.json
@@ -394,6 +438,10 @@ files:
394
438
  - spec/mocks/responses/Checkout/amount_updates.json
395
439
  - spec/mocks/responses/Checkout/apple_pay_sessions.json
396
440
  - spec/mocks/responses/Checkout/capture.json
441
+ - spec/mocks/responses/Checkout/card_details.json
442
+ - spec/mocks/responses/Checkout/create_stored_payment_method.json
443
+ - spec/mocks/responses/Checkout/donation_campaigns.json
444
+ - spec/mocks/responses/Checkout/donations.json
397
445
  - spec/mocks/responses/Checkout/generic_cancel.json
398
446
  - spec/mocks/responses/Checkout/get-payment-link.json
399
447
  - spec/mocks/responses/Checkout/modifications.json
@@ -407,11 +455,14 @@ files:
407
455
  - spec/mocks/responses/Checkout/payment_methods_balance.json
408
456
  - spec/mocks/responses/Checkout/payment_session.json
409
457
  - spec/mocks/responses/Checkout/payments.json
458
+ - spec/mocks/responses/Checkout/paypal_update_order.json
410
459
  - spec/mocks/responses/Checkout/psp_cancel.json
411
460
  - spec/mocks/responses/Checkout/refund.json
461
+ - spec/mocks/responses/Checkout/reversals.json
412
462
  - spec/mocks/responses/Checkout/sessions-success.json
413
463
  - spec/mocks/responses/Checkout/stored_payment_methods.json
414
464
  - spec/mocks/responses/Checkout/update-payment-link.json
465
+ - spec/mocks/responses/Checkout/update_session.json
415
466
  - spec/mocks/responses/Checkout/verify.json
416
467
  - spec/mocks/responses/DataProtection/request_subject_erasure.json
417
468
  - spec/mocks/responses/Disputes/retrieve_applicable_defense_reasons.json
@@ -426,7 +477,10 @@ files:
426
477
  - spec/mocks/responses/LegalEntityManagement/create_business_line.json
427
478
  - spec/mocks/responses/LegalEntityManagement/get_legal_entity.json
428
479
  - spec/mocks/responses/Management/create_store.json
480
+ - spec/mocks/responses/Management/donation_campaign.json
429
481
  - spec/mocks/responses/Management/get_companies.json
482
+ - spec/mocks/responses/Management/list_donation_campaigns.json
483
+ - spec/mocks/responses/Management/list_nonprofits.json
430
484
  - spec/mocks/responses/Notification/create_notification_configuration.json
431
485
  - spec/mocks/responses/Notification/delete_notification_configurations.json
432
486
  - spec/mocks/responses/Notification/get_notification_configuration.json
@@ -466,6 +520,7 @@ files:
466
520
  - spec/mocks/responses/TerminalCloudAPI/connected_terminals.json
467
521
  - spec/mocks/responses/TerminalCloudAPI/sync_payment.json
468
522
  - spec/mocks/responses/Transfers/get_transactions.json
523
+ - spec/mocks/responses/Transfers/initiate_cashout.json
469
524
  - spec/mocks/responses/Transfers/make_transfer.json
470
525
  - spec/mocks/responses/Webhooks/backslash_webhook.json
471
526
  - spec/mocks/responses/Webhooks/colon_webhook.json
@@ -483,6 +538,7 @@ files:
483
538
  - spec/stored_value_spec.rb
484
539
  - spec/terminal_cloud_api_spec.rb
485
540
  - spec/transfers_spec.rb
541
+ - spec/utils/consumer_smoke.rb
486
542
  - spec/utils/hmac_validator_spec.rb
487
543
  - templates/api-single.mustache
488
544
  - templates/api-small.mustache
@@ -502,7 +558,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
502
558
  requirements:
503
559
  - - ">="
504
560
  - !ruby/object:Gem::Version
505
- version: 2.7.0
561
+ version: 3.3.0
506
562
  required_rubygems_version: !ruby/object:Gem::Requirement
507
563
  requirements:
508
564
  - - ">="