adyen-ruby-api-library 11.2.0 → 11.3.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 (131) hide show
  1. checksums.yaml +4 -4
  2. data/.github/CODEOWNERS +1 -1
  3. data/.github/workflows/codeql.yml +4 -4
  4. data/.github/workflows/release.yml +1 -1
  5. data/.github/workflows/ruby.yml +1 -1
  6. data/.github/workflows/rubygems_release.yml +1 -1
  7. data/.github/workflows/stale.yml +1 -1
  8. data/VERSION +1 -1
  9. data/lib/adyen/client.rb +4 -5
  10. data/lib/adyen/services/balanceControl/balance_control_api.rb +1 -3
  11. data/lib/adyen/services/balancePlatform/account_holders_api.rb +14 -18
  12. data/lib/adyen/services/balancePlatform/authorized_card_users_api.rb +4 -12
  13. data/lib/adyen/services/balancePlatform/balance_accounts_api.rb +10 -30
  14. data/lib/adyen/services/balancePlatform/balances_api.rb +5 -15
  15. data/lib/adyen/services/balancePlatform/bank_account_validation_api.rb +1 -3
  16. data/lib/adyen/services/balancePlatform/card_orders_api.rb +2 -6
  17. data/lib/adyen/services/balancePlatform/direct_debit_mandates_api.rb +48 -0
  18. data/lib/adyen/services/balancePlatform/grant_accounts_api.rb +1 -3
  19. data/lib/adyen/services/balancePlatform/grant_offers_api.rb +2 -6
  20. data/lib/adyen/services/balancePlatform/manage_card_pin_api.rb +3 -9
  21. data/lib/adyen/services/balancePlatform/manage_sca_devices_api.rb +6 -18
  22. data/lib/adyen/services/balancePlatform/network_tokens_api.rb +2 -6
  23. data/lib/adyen/services/balancePlatform/payment_instrument_groups_api.rb +3 -9
  24. data/lib/adyen/services/balancePlatform/payment_instruments_api.rb +9 -27
  25. data/lib/adyen/services/balancePlatform/platform_api.rb +3 -9
  26. data/lib/adyen/services/balancePlatform/sca_association_management_api.rb +3 -9
  27. data/lib/adyen/services/balancePlatform/sca_device_management_api.rb +3 -9
  28. data/lib/adyen/services/balancePlatform/transaction_rules_api.rb +4 -12
  29. data/lib/adyen/services/balancePlatform/transfer_limits_balance_account_level_api.rb +6 -18
  30. data/lib/adyen/services/balancePlatform/transfer_limits_balance_platform_level_api.rb +4 -12
  31. data/lib/adyen/services/balancePlatform/transfer_routes_api.rb +1 -3
  32. data/lib/adyen/services/balancePlatform.rb +5 -0
  33. data/lib/adyen/services/binLookup/bin_lookup_api.rb +2 -6
  34. data/lib/adyen/services/capital/dynamic_offers_api.rb +40 -0
  35. data/lib/adyen/services/capital/grant_accounts_api.rb +1 -3
  36. data/lib/adyen/services/capital/grant_offers_api.rb +4 -8
  37. data/lib/adyen/services/capital/grants_api.rb +6 -18
  38. data/lib/adyen/services/capital.rb +5 -0
  39. data/lib/adyen/services/checkout/donations_api.rb +2 -6
  40. data/lib/adyen/services/checkout/modifications_api.rb +6 -18
  41. data/lib/adyen/services/checkout/orders_api.rb +3 -9
  42. data/lib/adyen/services/checkout/payment_links_api.rb +3 -9
  43. data/lib/adyen/services/checkout/payments_api.rb +6 -18
  44. data/lib/adyen/services/checkout/recurring_api.rb +4 -12
  45. data/lib/adyen/services/checkout/utility_api.rb +4 -12
  46. data/lib/adyen/services/dataProtection/data_protection_api.rb +1 -3
  47. data/lib/adyen/services/disputes/disputes_api.rb +5 -15
  48. data/lib/adyen/services/legalEntityManagement/business_lines_api.rb +4 -12
  49. data/lib/adyen/services/legalEntityManagement/documents_api.rb +4 -12
  50. data/lib/adyen/services/legalEntityManagement/hosted_onboarding_api.rb +3 -9
  51. data/lib/adyen/services/legalEntityManagement/legal_entities_api.rb +7 -21
  52. data/lib/adyen/services/legalEntityManagement/pci_questionnaires_api.rb +5 -15
  53. data/lib/adyen/services/legalEntityManagement/tax_e_delivery_consent_api.rb +2 -6
  54. data/lib/adyen/services/legalEntityManagement/terms_of_service_api.rb +5 -15
  55. data/lib/adyen/services/legalEntityManagement/transfer_instruments_api.rb +4 -12
  56. data/lib/adyen/services/management/account_company_level_api.rb +3 -9
  57. data/lib/adyen/services/management/account_merchant_level_api.rb +4 -12
  58. data/lib/adyen/services/management/account_store_level_api.rb +8 -24
  59. data/lib/adyen/services/management/allowed_origins_company_level_api.rb +4 -12
  60. data/lib/adyen/services/management/allowed_origins_merchant_level_api.rb +4 -12
  61. data/lib/adyen/services/management/android_files_company_level_api.rb +6 -18
  62. data/lib/adyen/services/management/api_credentials_company_level_api.rb +4 -12
  63. data/lib/adyen/services/management/api_credentials_merchant_level_api.rb +4 -12
  64. data/lib/adyen/services/management/api_key_company_level_api.rb +1 -3
  65. data/lib/adyen/services/management/api_key_merchant_level_api.rb +1 -3
  66. data/lib/adyen/services/management/client_key_company_level_api.rb +1 -3
  67. data/lib/adyen/services/management/client_key_merchant_level_api.rb +1 -3
  68. data/lib/adyen/services/management/my_api_credential_api.rb +6 -18
  69. data/lib/adyen/services/management/payment_methods_merchant_level_api.rb +6 -18
  70. data/lib/adyen/services/management/payout_settings_merchant_level_api.rb +5 -15
  71. data/lib/adyen/services/management/split_configuration_merchant_level_api.rb +9 -27
  72. data/lib/adyen/services/management/terminal_actions_company_level_api.rb +2 -6
  73. data/lib/adyen/services/management/terminal_actions_terminal_level_api.rb +1 -3
  74. data/lib/adyen/services/management/terminal_orders_company_level_api.rb +10 -30
  75. data/lib/adyen/services/management/terminal_orders_merchant_level_api.rb +10 -30
  76. data/lib/adyen/services/management/terminal_settings_company_level_api.rb +4 -12
  77. data/lib/adyen/services/management/terminal_settings_merchant_level_api.rb +4 -12
  78. data/lib/adyen/services/management/terminal_settings_store_level_api.rb +8 -24
  79. data/lib/adyen/services/management/terminal_settings_terminal_level_api.rb +4 -12
  80. data/lib/adyen/services/management/terminals_terminal_level_api.rb +2 -6
  81. data/lib/adyen/services/management/users_company_level_api.rb +4 -12
  82. data/lib/adyen/services/management/users_merchant_level_api.rb +4 -12
  83. data/lib/adyen/services/management/webhooks_company_level_api.rb +7 -21
  84. data/lib/adyen/services/management/webhooks_merchant_level_api.rb +7 -21
  85. data/lib/adyen/services/payment/modifications_api.rb +8 -24
  86. data/lib/adyen/services/payment/payments_api.rb +5 -15
  87. data/lib/adyen/services/paymentsApp/payments_app_api.rb +5 -15
  88. data/lib/adyen/services/payout/initialization_api.rb +3 -9
  89. data/lib/adyen/services/payout/instant_payouts_api.rb +1 -3
  90. data/lib/adyen/services/payout/reviewing_api.rb +2 -6
  91. data/lib/adyen/services/posMobile/pos_mobile_api.rb +1 -3
  92. data/lib/adyen/services/recurring/recurring_api.rb +6 -18
  93. data/lib/adyen/services/service.rb +10 -2
  94. data/lib/adyen/services/sessionAuthentication/session_authentication_api.rb +1 -3
  95. data/lib/adyen/services/storedValue/stored_value_api.rb +6 -18
  96. data/lib/adyen/services/transfers/capital_api.rb +3 -9
  97. data/lib/adyen/services/transfers/transactions_api.rb +2 -6
  98. data/lib/adyen/services/transfers/transfers_api.rb +6 -18
  99. data/lib/adyen/utils/hmac_validator.rb +0 -1
  100. data/lib/adyen/version.rb +1 -1
  101. data/sdk-generation-log/balancecontrol.json +8 -0
  102. data/sdk-generation-log/balanceplatform.json +8 -0
  103. data/sdk-generation-log/binlookup.json +8 -0
  104. data/sdk-generation-log/capital.json +8 -0
  105. data/sdk-generation-log/checkout.json +8 -0
  106. data/sdk-generation-log/dataprotection.json +8 -0
  107. data/sdk-generation-log/disputes.json +8 -0
  108. data/sdk-generation-log/legalentitymanagement.json +8 -0
  109. data/sdk-generation-log/management.json +8 -0
  110. data/sdk-generation-log/payment.json +8 -0
  111. data/sdk-generation-log/paymentsapp.json +8 -0
  112. data/sdk-generation-log/payout.json +8 -0
  113. data/sdk-generation-log/posmobile.json +8 -0
  114. data/sdk-generation-log/recurring.json +8 -0
  115. data/sdk-generation-log/sessionauthentication.json +8 -0
  116. data/sdk-generation-log/storedvalue.json +8 -0
  117. data/sdk-generation-log/transfers.json +8 -0
  118. data/spec/balance_platform_spec.rb +111 -0
  119. data/spec/capital_spec.rb +82 -0
  120. data/spec/client_spec.rb +22 -0
  121. data/spec/mocks/requests/BalancePlatform/update_mandate.json +14 -0
  122. data/spec/mocks/responses/BalancePlatform/get_list_of_mandates.json +19 -0
  123. data/spec/mocks/responses/BalancePlatform/get_mandate_by_id.json +14 -0
  124. data/spec/mocks/responses/BalancePlatform/get_tax_form_summary.json +17 -0
  125. data/spec/mocks/responses/Capital/calculate-preliminary-offer-from-dynamic-offer.json +16 -0
  126. data/spec/mocks/responses/Capital/create-static-offer-from-dynamic-offer.json +9 -0
  127. data/spec/mocks/responses/Capital/get-all-dynamic-offers.json +18 -0
  128. data/spec/service_spec.rb +40 -0
  129. data/templates/api-small.mustache +1 -3
  130. data/templates/api.mustache +1 -3
  131. metadata +27 -1
@@ -0,0 +1,19 @@
1
+ {
2
+ "mandates": [
3
+ {
4
+ "id": "MNDT7QXPLKT9R333640TX334709E",
5
+ "type": "bacs",
6
+ "balanceAccountId": "BA43EKD334339T6N8X655DW77",
7
+ "paymentInstrumentId": "PI43EKK334339T6N8X65688CS",
8
+ "status": "approved",
9
+ "counterparty": {
10
+ "accountHolder": {
11
+ "fullName": "Example Merchant Ltd"
12
+ }
13
+ },
14
+ "createdAt": "2026-02-23T13:04:15.683Z",
15
+ "updatedAt": "2026-02-23T13:04:15.683Z"
16
+ }
17
+ ],
18
+ "itemsTotal": 1
19
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "id": "MNDT7QXPLKT9R333640TX334709E",
3
+ "type": "bacs",
4
+ "balanceAccountId": "BA43EKD334339T6N8X655DW77",
5
+ "paymentInstrumentId": "PI43EKK334339T6N8X65688CS",
6
+ "status": "approved",
7
+ "counterparty": {
8
+ "accountHolder": {
9
+ "fullName": "Example Merchant Ltd"
10
+ }
11
+ },
12
+ "createdAt": "2026-02-23T13:04:15.683Z",
13
+ "updatedAt": "2026-02-23T13:04:15.683Z"
14
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "data": [
3
+ {
4
+ "legalEntityId": "LE123",
5
+ "taxYears": [
6
+ 2023
7
+ ]
8
+ },
9
+ {
10
+ "legalEntityId": "LE987",
11
+ "taxYears": [
12
+ 2024,
13
+ 2025
14
+ ]
15
+ }
16
+ ]
17
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "id": "DO00000000000000000000001",
3
+ "amount": {
4
+ "currency": "EUR",
5
+ "value": 10000
6
+ },
7
+ "fee": {
8
+ "amount": {
9
+ "currency": "EUR",
10
+ "value": 1000
11
+ }
12
+ },
13
+ "repayment": {
14
+ "basisPoints": 1000
15
+ }
16
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": "GO00000000000000000000002",
3
+ "accountHolderId": "AH00000000000000000000001",
4
+ "contractType": "cashAdvance",
5
+ "amount": {
6
+ "currency": "EUR",
7
+ "value": 10000
8
+ }
9
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "dynamicOffers": [
3
+ {
4
+ "id": "DO00000000000000000000001",
5
+ "accountHolderId": "AH00000000000000000000001",
6
+ "financing": {
7
+ "minimum": {
8
+ "currency": "EUR",
9
+ "value": 5000
10
+ },
11
+ "maximum": {
12
+ "currency": "EUR",
13
+ "value": 25000
14
+ }
15
+ }
16
+ }
17
+ ]
18
+ }
data/spec/service_spec.rb CHANGED
@@ -3,6 +3,30 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  RSpec.describe Adyen::Service do
6
+ describe '#build_endpoint' do
7
+ subject(:service) { described_class.new(nil, nil, 'Test') }
8
+
9
+ it 'strips the leading slash' do
10
+ expect(service.send(:build_endpoint, '/accountHolders')).to eq 'accountHolders'
11
+ end
12
+
13
+ it 'substitutes a single path parameter' do
14
+ expect(service.send(:build_endpoint, '/accountHolders/{id}', 'AH123')).to eq 'accountHolders/AH123'
15
+ end
16
+
17
+ it 'substitutes multiple path parameters' do
18
+ expect(service.send(:build_endpoint, '/merchants/{merchantId}/stores/{storeId}', 'M1', 'S2')).to eq 'merchants/M1/stores/S2'
19
+ end
20
+
21
+ it 'handles a path with no parameters' do
22
+ expect(service.send(:build_endpoint, '/companies')).to eq 'companies'
23
+ end
24
+
25
+ it 'preserves literal percent characters in the path' do
26
+ expect(service.send(:build_endpoint, '/path%20with/{id}/spaces', 'X')).to eq 'path%20with/X/spaces'
27
+ end
28
+ end
29
+
6
30
  describe '.action_for_method_name' do
7
31
  it 'handles all methods that exist currently' do
8
32
  expect(described_class.action_for_method_name(:adjust_authorisation)).to eq 'adjustAuthorisation'
@@ -45,6 +69,22 @@ RSpec.describe Adyen::Service do
45
69
  expect(described_class.action_for_method_name(:get_onboarding_url)).to eq 'getOnboardingUrl'
46
70
  end
47
71
  end
72
+
73
+ describe '#create_query_string' do
74
+ let(:service) { described_class.new(double('client'), 'v1', 'TestService') }
75
+
76
+ it 'returns empty string when params are empty' do
77
+ expect(service.create_query_string({})).to eq ''
78
+ end
79
+
80
+ it 'returns query string with ? prefix when params are present' do
81
+ expect(service.create_query_string({ key: 'value' })).to eq '?key=value'
82
+ end
83
+
84
+ it 'encodes multiple params' do
85
+ expect(service.create_query_string({ a: '1', b: '2' })).to eq '?a=1&b=2'
86
+ end
87
+ end
48
88
  end
49
89
  # rubocop:enable Layout/LineLength
50
90
  # rubocop:enable Metrics/BlockLength
@@ -20,9 +20,7 @@ module Adyen
20
20
  # Deprecated {{#vendorExtensions.x-deprecatedInVersion}}since {{#appName}}{{{.}}}{{/appName}} v{{.}}{{/vendorExtensions.x-deprecatedInVersion}}{{#vendorExtensions.x-deprecatedMessage}}
21
21
  # {{{.}}}{{/vendorExtensions.x-deprecatedMessage}}{{/isDeprecated}}
22
22
  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 = '{{path}}'.gsub(/{.+?}/, '%s')
24
- endpoint = endpoint.gsub(%r{^/}, '')
25
- endpoint = format(endpoint{{#pathParams}}{{#lambda.snakecase}}, {{paramName}}{{/lambda.snakecase}}{{/pathParams}})
23
+ endpoint = build_endpoint('{{path}}'{{#pathParams}}, {{#lambda.snakecase}}{{paramName}}{{/lambda.snakecase}}{{/pathParams}})
26
24
  {{#queryParams}}{{#-first}}endpoint += create_query_string(query_params){{/-first}}{{/queryParams}}
27
25
  action = { method: '{{#lambda.lowercase}}{{httpMethod}}{{/lambda.lowercase}}', url: endpoint }
28
26
  {{#bodyParams}}
@@ -19,9 +19,7 @@ module Adyen
19
19
  # Deprecated {{#vendorExtensions.x-deprecatedInVersion}}since {{#appName}}{{{.}}}{{/appName}} v{{.}}{{/vendorExtensions.x-deprecatedInVersion}}{{#vendorExtensions.x-deprecatedMessage}}
20
20
  # {{{.}}}{{/vendorExtensions.x-deprecatedMessage}}{{/isDeprecated}}
21
21
  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 = '{{path}}'.gsub(/{.+?}/, '%s')
23
- endpoint = endpoint.gsub(%r{^/}, '')
24
- endpoint = format(endpoint{{#pathParams}}, {{#lambda.snakecase}}{{paramName}}{{/lambda.snakecase}}{{/pathParams}})
22
+ endpoint = build_endpoint('{{path}}'{{#pathParams}}, {{#lambda.snakecase}}{{paramName}}{{/lambda.snakecase}}{{/pathParams}})
25
23
  {{#queryParams}}{{#-first}}endpoint += create_query_string(query_params){{/-first}}{{/queryParams}}
26
24
  action = { method: '{{#lambda.lowercase}}{{httpMethod}}{{/lambda.lowercase}}', url: endpoint }
27
25
  {{#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.2.0
4
+ version: 11.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adyen
@@ -115,6 +115,7 @@ files:
115
115
  - lib/adyen/services/balancePlatform/balances_api.rb
116
116
  - lib/adyen/services/balancePlatform/bank_account_validation_api.rb
117
117
  - lib/adyen/services/balancePlatform/card_orders_api.rb
118
+ - lib/adyen/services/balancePlatform/direct_debit_mandates_api.rb
118
119
  - lib/adyen/services/balancePlatform/grant_accounts_api.rb
119
120
  - lib/adyen/services/balancePlatform/grant_offers_api.rb
120
121
  - lib/adyen/services/balancePlatform/manage_card_pin_api.rb
@@ -132,6 +133,7 @@ files:
132
133
  - lib/adyen/services/binLookup.rb
133
134
  - lib/adyen/services/binLookup/bin_lookup_api.rb
134
135
  - lib/adyen/services/capital.rb
136
+ - lib/adyen/services/capital/dynamic_offers_api.rb
135
137
  - lib/adyen/services/capital/grant_accounts_api.rb
136
138
  - lib/adyen/services/capital/grant_offers_api.rb
137
139
  - lib/adyen/services/capital/grants_api.rb
@@ -216,6 +218,23 @@ files:
216
218
  - lib/adyen/utils/hmac_validator.rb
217
219
  - lib/adyen/version.rb
218
220
  - renovate.json
221
+ - sdk-generation-log/balancecontrol.json
222
+ - sdk-generation-log/balanceplatform.json
223
+ - sdk-generation-log/binlookup.json
224
+ - sdk-generation-log/capital.json
225
+ - sdk-generation-log/checkout.json
226
+ - sdk-generation-log/dataprotection.json
227
+ - sdk-generation-log/disputes.json
228
+ - sdk-generation-log/legalentitymanagement.json
229
+ - sdk-generation-log/management.json
230
+ - sdk-generation-log/payment.json
231
+ - sdk-generation-log/paymentsapp.json
232
+ - sdk-generation-log/payout.json
233
+ - sdk-generation-log/posmobile.json
234
+ - sdk-generation-log/recurring.json
235
+ - sdk-generation-log/sessionauthentication.json
236
+ - sdk-generation-log/storedvalue.json
237
+ - sdk-generation-log/transfers.json
219
238
  - spec/account_spec.rb
220
239
  - spec/balance_control_spec.rb
221
240
  - spec/balance_platform_spec.rb
@@ -255,6 +274,7 @@ files:
255
274
  - spec/mocks/requests/BalancePlatform/create_transfer_limit.json
256
275
  - spec/mocks/requests/BalancePlatform/create_webhook_setting.json
257
276
  - spec/mocks/requests/BalancePlatform/update_account_holder.json
277
+ - spec/mocks/requests/BalancePlatform/update_mandate.json
258
278
  - spec/mocks/requests/BinLookup/get_3ds_availability.json
259
279
  - spec/mocks/requests/BinLookup/get_cost_estimate.json
260
280
  - spec/mocks/requests/Checkout/amount_updates.json
@@ -351,11 +371,17 @@ files:
351
371
  - spec/mocks/responses/BalancePlatform/get_all_authorised_card_users.json
352
372
  - spec/mocks/responses/BalancePlatform/get_all_webhook_settings.json
353
373
  - spec/mocks/responses/BalancePlatform/get_balance_account.json
374
+ - spec/mocks/responses/BalancePlatform/get_list_of_mandates.json
375
+ - spec/mocks/responses/BalancePlatform/get_mandate_by_id.json
354
376
  - spec/mocks/responses/BalancePlatform/get_specific_transfer_limit.json
377
+ - spec/mocks/responses/BalancePlatform/get_tax_form_summary.json
355
378
  - spec/mocks/responses/BalancePlatform/get_transfer_limits.json
356
379
  - spec/mocks/responses/BalancePlatform/update_account_holder.json
357
380
  - spec/mocks/responses/BinLookup/get_3ds_availability.json
358
381
  - spec/mocks/responses/BinLookup/get_cost_estimate.json
382
+ - spec/mocks/responses/Capital/calculate-preliminary-offer-from-dynamic-offer.json
383
+ - spec/mocks/responses/Capital/create-static-offer-from-dynamic-offer.json
384
+ - spec/mocks/responses/Capital/get-all-dynamic-offers.json
359
385
  - spec/mocks/responses/Capital/get-grant-account-success.json
360
386
  - spec/mocks/responses/Capital/get-grant-disbursement-success.json
361
387
  - spec/mocks/responses/Capital/get-grant-disbursements-success.json