currency_cloud 4.4.1 → 4.5.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 (68) hide show
  1. checksums.yaml +4 -4
  2. data/currency_cloud.gemspec +2 -2
  3. data/lib/currency_cloud/session.rb +14 -1
  4. data/lib/currency_cloud/version.rb +1 -1
  5. data/lib/currency_cloud.rb +1 -1
  6. data/spec/currency_cloud_spec.rb +32 -0
  7. data/spec/support/vcr_cassettes/Accounts/can_retrieve_account_payment_charges_settings.yml +2 -2
  8. data/spec/support/vcr_cassettes/Accounts/can_update_account_payment_charges_settings.yml +2 -2
  9. data/spec/support/vcr_cassettes/Accounts/get_compliance_settings.yml +2 -2
  10. data/spec/support/vcr_cassettes/Accounts/update_compliance_settings.yml +2 -2
  11. data/spec/support/vcr_cassettes/CollectionsScreening/can_complete_with_accepted_false.yml +2 -2
  12. data/spec/support/vcr_cassettes/CollectionsScreening/can_complete_with_accepted_true.yml +2 -2
  13. data/spec/support/vcr_cassettes/Conversions/can_cancel_conversion/with_notes/has_a_non-empty_notes_attribute.yml +3 -3
  14. data/spec/support/vcr_cassettes/Conversions/can_cancel_conversion/without_notes/has_a_empty_notes_attribute.yml +3 -3
  15. data/spec/support/vcr_cassettes/Conversions/can_cancellation_quote.yml +2 -2
  16. data/spec/support/vcr_cassettes/Conversions/can_date_change_conversion.yml +3 -3
  17. data/spec/support/vcr_cassettes/Conversions/can_retrieve_cancellation_quote.yml +3 -3
  18. data/spec/support/vcr_cassettes/Conversions/can_retrieve_date_change_quote.yml +3 -3
  19. data/spec/support/vcr_cassettes/Conversions/can_retrieve_profit_and_loss.yml +2 -2
  20. data/spec/support/vcr_cassettes/Conversions/can_split_conversion.yml +3 -3
  21. data/spec/support/vcr_cassettes/Conversions/can_split_history.yml +3 -3
  22. data/spec/support/vcr_cassettes/Conversions/can_split_preview.yml +3 -3
  23. data/spec/support/vcr_cassettes/FundingAccounts/can_find.yml +2 -2
  24. data/spec/support/vcr_cassettes/FundingAccounts/can_find_bad_request.yml +2 -2
  25. data/spec/support/vcr_cassettes/FundingAccounts/can_find_missing_currency.yml +2 -2
  26. data/spec/support/vcr_cassettes/FundingAccounts/can_find_unauthorized.yml +1 -1
  27. data/spec/support/vcr_cassettes/FundingTransactions/can_retrieve.yml +2 -2
  28. data/spec/support/vcr_cassettes/IBANs/can_IBANs_for_a_specific_subaccount.yml +2 -2
  29. data/spec/support/vcr_cassettes/IBANs/can_IBANs_for_subaccounts.yml +2 -2
  30. data/spec/support/vcr_cassettes/IBANs/can_find.yml +1 -1
  31. data/spec/support/vcr_cassettes/Payments/can_authorise/when_payment_ids_are_valid.yml +5 -5
  32. data/spec/support/vcr_cassettes/Payments/can_create.yml +3 -3
  33. data/spec/support/vcr_cassettes/Payments/can_create_bad_request.yml +2 -2
  34. data/spec/support/vcr_cassettes/Payments/can_get_the_new_submission.yml +4 -4
  35. data/spec/support/vcr_cassettes/Payments/can_retrieve_confirmation.yml +3 -3
  36. data/spec/support/vcr_cassettes/Payments/can_retrieve_payment_delivery_date.yml +2 -2
  37. data/spec/support/vcr_cassettes/Payments/can_retrieve_payment_tracking_info.yml +2 -2
  38. data/spec/support/vcr_cassettes/Payments/can_retrieve_quote_payment_fee.yml +2 -2
  39. data/spec/support/vcr_cassettes/Payments/can_validate.yml +3 -3
  40. data/spec/support/vcr_cassettes/Payments/can_validate_and_create_with_sca.yml +4 -4
  41. data/spec/support/vcr_cassettes/Quotes/can_create_a_held_rate_quote.yml +2 -2
  42. data/spec/support/vcr_cassettes/Quotes/can_create_a_quote_with_conversion_date.yml +2 -2
  43. data/spec/support/vcr_cassettes/Quotes/can_create_a_quote_with_conversion_date_preference.yml +2 -2
  44. data/spec/support/vcr_cassettes/Rates/can_provided_detailed_rate_with_conversion_date_preference.yml +1 -1
  45. data/spec/support/vcr_cassettes/Reference/can_retrieve_bank_details.yml +2 -2
  46. data/spec/support/vcr_cassettes/Reference/can_retrieve_conversion_dates.yml +2 -2
  47. data/spec/support/vcr_cassettes/Reference/can_retrieve_currencies.yml +2 -2
  48. data/spec/support/vcr_cassettes/Reference/can_retrieve_payer_required_details.yml +2 -2
  49. data/spec/support/vcr_cassettes/Reference/can_retrieve_payment_dates.yml +2 -2
  50. data/spec/support/vcr_cassettes/Reference/can_retrieve_payment_fee_rules.yml +1 -1
  51. data/spec/support/vcr_cassettes/Reference/can_retrieve_payment_purpose_codes.yml +2 -2
  52. data/spec/support/vcr_cassettes/Reference/can_retrieve_settlement_accounts.yml +2 -2
  53. data/spec/support/vcr_cassettes/Reports/can_create_payments_report.yml +2 -2
  54. data/spec/support/vcr_cassettes/Reports/can_find_report_requests.yml +2 -2
  55. data/spec/support/vcr_cassettes/Reports/can_retrieve_report_request.yml +2 -2
  56. data/spec/support/vcr_cassettes/TermsAndConditions/can_accept_terms.yml +3 -3
  57. data/spec/support/vcr_cassettes/Transactions/can_retrieve_sender_details.yml +2 -2
  58. data/spec/support/vcr_cassettes/Transfers/can_cancel.yml +3 -3
  59. data/spec/support/vcr_cassettes/Transfers/can_create.yml +2 -2
  60. data/spec/support/vcr_cassettes/Transfers/can_find.yml +3 -3
  61. data/spec/support/vcr_cassettes/Transfers/can_retrieve.yml +3 -3
  62. data/spec/support/vcr_cassettes/VirtualAccounts/can_find.yml +2 -2
  63. data/spec/support/vcr_cassettes/VirtualAccounts/can_find_VANs_for_a_specific_subaccount.yml +2 -2
  64. data/spec/support/vcr_cassettes/VirtualAccounts/can_find_VANs_for_subaccounts.yml +2 -2
  65. data/spec/support/vcr_cassettes/WithdrawalAccounts/can_find_withdrawal_accounts.yml +3 -3
  66. data/spec/support/vcr_cassettes/WithdrawalAccounts/can_find_withdrawal_accounts2.yml +3 -3
  67. data/spec/support/vcr_cassettes/WithdrawalAccounts/can_pull_funds.yml +3 -3
  68. metadata +5 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: be45b1dd988f373c13fcdfb4bf45fad5a8f0fef437ccf69fcda5695fddecda73
4
- data.tar.gz: bdc279efaf078e84d5151613c1d446bfc555e5d0f87317fa869f51bfaf17350e
3
+ metadata.gz: 56ca7f573209f02aac8bce852b82f4f5405ba71cf80e4313e52fcf1c11e8c22f
4
+ data.tar.gz: e174fc25260c7693efea05dd6c8c504d4afcb85f00a2d1c846b980b88a438cd2
5
5
  SHA512:
6
- metadata.gz: 343cbcf1004ffcc0a1bb161a4a130fd9a9b96edcaa1f7f26a88cd6883b502d5cf9d24c0327972efafa0a3ce59e8cac368e5d8bb68b4fc5a73d55d4c9c1e5515b
7
- data.tar.gz: feeb1b3b312123100ca36ee969083732515a3147830c3ea2bce72acda5c599a69ab839e2b3f38876886751ea728f39ca740be4e56c005250c11393bd3877f0f0
6
+ metadata.gz: 549d645f4897dcceac6ce0a961c7acfdec09c337263539b51da2be5d1b65544b502029e095cce6ff882d32a12287bc4c45c7457710cd799ec6b631ebdfcc624f
7
+ data.tar.gz: 569781a5bd4a481ae2375520788c7e7de12890ee2aefe159b2d85e4a1d2521b42363df75e8d9c481af80258d44bb19ec0988b6964b6bd7a68e1417527e032266
@@ -14,11 +14,11 @@ Gem::Specification.new do |s|
14
14
  s.required_ruby_version = '>= 3.0'
15
15
 
16
16
  s.add_dependency('httparty', '~> 0.24')
17
- s.add_dependency('json', '>= 2.12.2', '< 2.19.0')
17
+ s.add_dependency('json', '>= 2.12.2', '< 2.22.0')
18
18
  s.add_dependency('base64', '~> 0.3.0')
19
19
  s.add_dependency('ostruct', '~> 0.6.3')
20
20
 
21
- s.add_development_dependency('rake', '~> 13.3.0')
21
+ s.add_development_dependency('rake', '~> 13.4.2')
22
22
  s.add_development_dependency('addressable', '<= 2.9.0')
23
23
  s.add_development_dependency('rspec', '~> 3.13.1')
24
24
  s.add_development_dependency('vcr', '~> 6.4.0')
@@ -7,7 +7,16 @@ module CurrencyCloud
7
7
  }.freeze
8
8
 
9
9
  attr_reader :environment, :login_id, :api_key
10
- attr_accessor :token, :on_behalf_of
10
+ attr_accessor :token
11
+
12
+ # Stored fiber-local so the shared session can't leak contact context across threads.
13
+ def on_behalf_of
14
+ Thread.current[obo_key]
15
+ end
16
+
17
+ def on_behalf_of=(value)
18
+ Thread.current[obo_key] = value
19
+ end
11
20
 
12
21
  def self.validate_environment(environment)
13
22
  return if ENVIRONMENTS.key?(environment)
@@ -48,6 +57,10 @@ module CurrencyCloud
48
57
 
49
58
  private
50
59
 
60
+ def obo_key
61
+ @obo_key ||= :"cc_on_behalf_of_#{object_id}"
62
+ end
63
+
51
64
  def validate
52
65
  self.class.validate_environment(environment)
53
66
  raise CurrencyCloud::GeneralError, 'login_id must be set using CurrencyCloud.login_id=' unless login_id
@@ -2,5 +2,5 @@
2
2
 
3
3
  module CurrencyCloud
4
4
  API_VERSION = "v2".freeze # API Version
5
- VERSION = "4.4.1".freeze # Gem Version
5
+ VERSION = "4.5.0".freeze # Gem Version
6
6
  end
@@ -8,7 +8,7 @@ lib_path = File.join(File.dirname(__FILE__), '**/*.*')
8
8
  Dir[lib_path].sort.each { |f| require f }
9
9
 
10
10
  module CurrencyCloud
11
- UUID_REGEX = /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i
11
+ UUID_REGEX = /\A[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\z/i
12
12
 
13
13
  class << self
14
14
  attr_accessor :environment, :login_id, :api_key, :token
@@ -110,5 +110,37 @@ describe CurrencyCloud do
110
110
  end
111
111
  end.to raise_error(CurrencyCloud::GeneralError, 'contact id for on behalf of is not a UUID')
112
112
  end
113
+
114
+ it 'rejects a UUID embedded in a larger string' do
115
+ expect do
116
+ CurrencyCloud.on_behalf_of('junk-c6ece846-6df1-461d-acaa-b42a6aa74045-?x=1') do
117
+ raise 'Should raise exception'
118
+ end
119
+ end.to raise_error(CurrencyCloud::GeneralError, 'contact id for on behalf of is not a UUID')
120
+ end
121
+
122
+ it 'does not leak the contact context across concurrent threads' do
123
+ uuid_a = 'c6ece846-6df1-461d-acaa-b42a6aa74045'
124
+ uuid_b = 'f57b2d33-652c-4589-a8ff-7762add2706d'
125
+ observed = {}
126
+ errors = []
127
+
128
+ threads = { a: uuid_a, b: uuid_b }.map do |name, uuid|
129
+ Thread.new do
130
+ CurrencyCloud.on_behalf_of(uuid) do
131
+ sleep 0.05 # widen the window for a cross-thread write to be observed
132
+ observed[name] = CurrencyCloud.session.on_behalf_of
133
+ end
134
+ rescue StandardError => e
135
+ errors << e
136
+ end
137
+ end
138
+ threads.each(&:join)
139
+
140
+ expect(errors).to be_empty
141
+ expect(observed[:a]).to eq(uuid_a)
142
+ expect(observed[:b]).to eq(uuid_b)
143
+ expect(CurrencyCloud.session.on_behalf_of).to be_nil
144
+ end
113
145
  end
114
146
  end
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
11
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -58,7 +58,7 @@ http_interactions:
58
58
  X-Auth-Token:
59
59
  - deadbeefdeadbeefdeadbeefdeadbeef
60
60
  User-Agent:
61
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
61
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
62
62
  response:
63
63
  status:
64
64
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
11
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -58,7 +58,7 @@ http_interactions:
58
58
  X-Auth-Token:
59
59
  - deadbeefdeadbeefdeadbeefdeadbeef
60
60
  User-Agent:
61
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
61
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
62
62
  response:
63
63
  status:
64
64
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
11
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -58,7 +58,7 @@ http_interactions:
58
58
  X-Auth-Token:
59
59
  - deadbeefdeadbeefdeadbeefdeadbeef
60
60
  User-Agent:
61
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
61
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
62
62
  response:
63
63
  status:
64
64
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
11
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -58,7 +58,7 @@ http_interactions:
58
58
  X-Auth-Token:
59
59
  - deadbeefdeadbeefdeadbeefdeadbeef
60
60
  User-Agent:
61
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
61
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
62
62
  response:
63
63
  status:
64
64
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
11
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -33,7 +33,7 @@ http_interactions:
33
33
  X-Auth-Token:
34
34
  - deadbeefdeadbeefdeadbeef
35
35
  User-Agent:
36
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
36
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
37
37
  response:
38
38
  status:
39
39
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
11
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -33,7 +33,7 @@ http_interactions:
33
33
  X-Auth-Token:
34
34
  - deadbeefdeadbeefdeadbeef
35
35
  User-Agent:
36
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
36
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
37
37
  response:
38
38
  status:
39
39
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
11
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -60,7 +60,7 @@ http_interactions:
60
60
  X-Auth-Token:
61
61
  - deadbeefdeadbeefdeadbeefdeadbeef
62
62
  User-Agent:
63
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
63
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
64
64
  response:
65
65
  status:
66
66
  code: 200
@@ -112,7 +112,7 @@ http_interactions:
112
112
  X-Auth-Token:
113
113
  - deadbeefdeadbeefdeadbeefdeadbeef
114
114
  User-Agent:
115
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
115
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
116
116
  response:
117
117
  status:
118
118
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
11
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -60,7 +60,7 @@ http_interactions:
60
60
  X-Auth-Token:
61
61
  - deadbeefdeadbeefdeadbeefdeadbeef
62
62
  User-Agent:
63
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
63
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
64
64
  response:
65
65
  status:
66
66
  code: 200
@@ -112,7 +112,7 @@ http_interactions:
112
112
  X-Auth-Token:
113
113
  - deadbeefdeadbeefdeadbeefdeadbeef
114
114
  User-Agent:
115
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
115
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
116
116
  response:
117
117
  status:
118
118
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
11
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -58,7 +58,7 @@ http_interactions:
58
58
  X-Auth-Token:
59
59
  - deadbeefdeadbeefdeadbeefdeadbeef
60
60
  User-Agent:
61
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
61
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
62
62
  response:
63
63
  status:
64
64
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
11
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -60,7 +60,7 @@ http_interactions:
60
60
  X-Auth-Token:
61
61
  - deadbeefdeadbeefdeadbeefdeadbeef
62
62
  User-Agent:
63
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
63
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
64
64
  response:
65
65
  status:
66
66
  code: 200
@@ -112,7 +112,7 @@ http_interactions:
112
112
  X-Auth-Token:
113
113
  - deadbeefdeadbeefdeadbeefdeadbeef
114
114
  User-Agent:
115
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
115
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
116
116
  response:
117
117
  status:
118
118
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
11
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -37,7 +37,7 @@ http_interactions:
37
37
  X-Auth-Token:
38
38
  - deadbeefdeadbeefdeadbeefdeadbeef
39
39
  User-Agent:
40
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
40
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
41
41
  response:
42
42
  status:
43
43
  code: 200
@@ -66,7 +66,7 @@ http_interactions:
66
66
  X-Auth-Token:
67
67
  - deadbeefdeadbeefdeadbeefdeadbeef
68
68
  User-Agent:
69
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
69
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
70
70
  response:
71
71
  status:
72
72
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
11
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -37,7 +37,7 @@ http_interactions:
37
37
  X-Auth-Token:
38
38
  - deadbeefdeadbeefdeadbeefdeadbeef
39
39
  User-Agent:
40
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
40
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
41
41
  response:
42
42
  status:
43
43
  code: 200
@@ -66,7 +66,7 @@ http_interactions:
66
66
  X-Auth-Token:
67
67
  - deadbeefdeadbeefdeadbeefdeadbeef
68
68
  User-Agent:
69
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
69
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
70
70
  response:
71
71
  status:
72
72
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
11
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -37,7 +37,7 @@ http_interactions:
37
37
  X-Auth-Token:
38
38
  - deadbeefdeadbeefdeadbeefdeadbeef
39
39
  User-Agent:
40
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
40
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
41
41
  response:
42
42
  status:
43
43
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
11
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -60,7 +60,7 @@ http_interactions:
60
60
  X-Auth-Token:
61
61
  - deadbeefdeadbeefdeadbeefdeadbeef
62
62
  User-Agent:
63
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
63
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
64
64
  response:
65
65
  status:
66
66
  code: 200
@@ -112,7 +112,7 @@ http_interactions:
112
112
  X-Auth-Token:
113
113
  - deadbeefdeadbeefdeadbeefdeadbeef
114
114
  User-Agent:
115
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
115
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
116
116
  response:
117
117
  status:
118
118
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
11
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -37,7 +37,7 @@ http_interactions:
37
37
  X-Auth-Token:
38
38
  - deadbeefdeadbeefdeadbeefdeadbeef
39
39
  User-Agent:
40
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
40
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
41
41
  response:
42
42
  status:
43
43
  code: 200
@@ -66,7 +66,7 @@ http_interactions:
66
66
  X-Auth-Token:
67
67
  - deadbeefdeadbeefdeadbeefdeadbeef
68
68
  User-Agent:
69
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
69
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
70
70
  response:
71
71
  status:
72
72
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
11
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -37,7 +37,7 @@ http_interactions:
37
37
  X-Auth-Token:
38
38
  - deadbeefdeadbeefdeadbeefdeadbeef
39
39
  User-Agent:
40
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
40
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
41
41
  response:
42
42
  status:
43
43
  code: 200
@@ -66,7 +66,7 @@ http_interactions:
66
66
  X-Auth-Token:
67
67
  - deadbeefdeadbeefdeadbeefdeadbeef
68
68
  User-Agent:
69
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
69
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
70
70
  response:
71
71
  status:
72
72
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
11
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -64,7 +64,7 @@ http_interactions:
64
64
  X-Auth-Token:
65
65
  - deadbeefdeadbeefdeadbeefdeadbeef
66
66
  User-Agent:
67
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
67
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
68
68
  response:
69
69
  status:
70
70
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
11
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -64,7 +64,7 @@ http_interactions:
64
64
  X-Auth-Token:
65
65
  - deadbeefdeadbeefdeadbeefdeadbeef
66
66
  User-Agent:
67
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
67
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
68
68
  response:
69
69
  status:
70
70
  code: 400
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
11
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -64,7 +64,7 @@ http_interactions:
64
64
  X-Auth-Token:
65
65
  - deadbeefdeadbeefdeadbeefdeadbeef
66
66
  User-Agent:
67
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
67
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
68
68
  response:
69
69
  status:
70
70
  code: 400
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
11
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
12
12
  response:
13
13
  status:
14
14
  code: 401
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
11
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -33,7 +33,7 @@ http_interactions:
33
33
  X-Auth-Token:
34
34
  - deadbeefdeadbeefdeadbeef
35
35
  User-Agent:
36
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
36
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
37
37
  response:
38
38
  status:
39
39
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
11
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -60,7 +60,7 @@ http_interactions:
60
60
  X-Auth-Token:
61
61
  - deadbeefdeadbeefdeadbeefdeadbeef
62
62
  User-Agent:
63
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
63
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
64
64
  response:
65
65
  status:
66
66
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
11
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -60,7 +60,7 @@ http_interactions:
60
60
  X-Auth-Token:
61
61
  - deadbeefdeadbeefdeadbeefdeadbeef
62
62
  User-Agent:
63
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
63
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
64
64
  response:
65
65
  status:
66
66
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
11
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
11
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -60,7 +60,7 @@ http_interactions:
60
60
  X-Auth-Token:
61
61
  - deadbeefdeadbeefdeadbeefdeadbeef
62
62
  User-Agent:
63
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
63
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
64
64
  response:
65
65
  status:
66
66
  code: 200
@@ -115,7 +115,7 @@ http_interactions:
115
115
  X-Auth-Token:
116
116
  - deadbeefdeadbeefdeadbeefdeadbeef
117
117
  User-Agent:
118
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
118
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
119
119
  response:
120
120
  status:
121
121
  code: 200
@@ -166,7 +166,7 @@ http_interactions:
166
166
  string: login_id=development+authorisations%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
167
167
  headers:
168
168
  User-Agent:
169
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
169
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
170
170
  response:
171
171
  status:
172
172
  code: 200
@@ -218,7 +218,7 @@ http_interactions:
218
218
  X-Auth-Token:
219
219
  - deadbeefdeadbeefdeadbeefdeadbeef
220
220
  User-Agent:
221
- - CurrencyCloudSDK/2.0 Ruby/4.4.1
221
+ - CurrencyCloudSDK/2.0 Ruby/4.5.0
222
222
  response:
223
223
  status:
224
224
  code: 200