currency_cloud 1.7.0 → 2.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 (67) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/README.md +5 -6
  4. data/currency_cloud.gemspec +1 -1
  5. data/lib/currency_cloud/client.rb +2 -2
  6. data/lib/currency_cloud/payment.rb +21 -5
  7. data/lib/currency_cloud/{payment_submission.rb → payment_submission_info.rb} +1 -1
  8. data/lib/currency_cloud/payment_validation_result.rb +19 -0
  9. data/lib/currency_cloud/request_handler.rb +14 -3
  10. data/lib/currency_cloud/version.rb +1 -1
  11. data/spec/integration/errors_spec.rb +12 -4
  12. data/spec/integration/payments_spec.rb +30 -9
  13. data/spec/support/vcr_cassettes/Accounts/can_retrieve_account_payment_charges_settings.yml +2 -2
  14. data/spec/support/vcr_cassettes/Accounts/can_update_account_payment_charges_settings.yml +2 -2
  15. data/spec/support/vcr_cassettes/Conversions/can_cancel_conversion/with_notes/has_a_non-empty_notes_attribute.yml +3 -3
  16. data/spec/support/vcr_cassettes/Conversions/can_cancel_conversion/without_notes/has_a_empty_notes_attribute.yml +3 -3
  17. data/spec/support/vcr_cassettes/Conversions/can_cancellation_quote.yml +2 -2
  18. data/spec/support/vcr_cassettes/Conversions/can_date_change_conversion.yml +3 -3
  19. data/spec/support/vcr_cassettes/Conversions/can_retrieve_cancellation_quote.yml +3 -3
  20. data/spec/support/vcr_cassettes/Conversions/can_retrieve_date_change_quote.yml +3 -3
  21. data/spec/support/vcr_cassettes/Conversions/can_retrieve_profit_and_loss.yml +2 -2
  22. data/spec/support/vcr_cassettes/Conversions/can_split_conversion.yml +3 -3
  23. data/spec/support/vcr_cassettes/Conversions/can_split_history.yml +3 -3
  24. data/spec/support/vcr_cassettes/Conversions/can_split_preview.yml +3 -3
  25. data/spec/support/vcr_cassettes/FundingAccounts/can_find.yml +2 -2
  26. data/spec/support/vcr_cassettes/FundingAccounts/can_find_bad_request.yml +2 -2
  27. data/spec/support/vcr_cassettes/FundingAccounts/can_find_missing_currency.yml +2 -2
  28. data/spec/support/vcr_cassettes/FundingAccounts/can_find_unauthorized.yml +1 -1
  29. data/spec/support/vcr_cassettes/IBANs/can_IBANs_for_a_specific_subaccount.yml +2 -2
  30. data/spec/support/vcr_cassettes/IBANs/can_IBANs_for_subaccounts.yml +2 -2
  31. data/spec/support/vcr_cassettes/IBANs/can_find.yml +1 -1
  32. data/spec/support/vcr_cassettes/Payments/can_authorise/when_payment_ids_are_valid.yml +5 -5
  33. data/spec/support/vcr_cassettes/Payments/can_create.yml +3 -3
  34. data/spec/support/vcr_cassettes/Payments/can_create_bad_request.yml +2 -2
  35. data/spec/support/vcr_cassettes/Payments/{can_get_the_submission.yml → can_get_the_new_submission.yml} +6 -6
  36. data/spec/support/vcr_cassettes/Payments/can_retrieve_confirmation.yml +3 -3
  37. data/spec/support/vcr_cassettes/Payments/can_retrieve_payment_delivery_date.yml +2 -2
  38. data/spec/support/vcr_cassettes/Payments/can_retrieve_payment_tracking_info.yml +2 -2
  39. data/spec/support/vcr_cassettes/Payments/can_retrieve_quote_payment_fee.yml +2 -2
  40. data/spec/support/vcr_cassettes/Payments/can_validate.yml +160 -0
  41. data/spec/support/vcr_cassettes/Payments/can_validate_and_create_with_sca.yml +217 -0
  42. data/spec/support/vcr_cassettes/Rates/can_provided_detailed_rate_with_conversion_date_preference.yml +1 -1
  43. data/spec/support/vcr_cassettes/Reference/can_retrieve_bank_details.yml +2 -2
  44. data/spec/support/vcr_cassettes/Reference/can_retrieve_conversion_dates.yml +2 -2
  45. data/spec/support/vcr_cassettes/Reference/can_retrieve_currencies.yml +2 -2
  46. data/spec/support/vcr_cassettes/Reference/can_retrieve_payer_required_details.yml +2 -2
  47. data/spec/support/vcr_cassettes/Reference/can_retrieve_payment_dates.yml +2 -2
  48. data/spec/support/vcr_cassettes/Reference/can_retrieve_payment_fee_rules.yml +1 -1
  49. data/spec/support/vcr_cassettes/Reference/can_retrieve_payment_purpose_codes.yml +2 -2
  50. data/spec/support/vcr_cassettes/Reference/can_retrieve_settlement_accounts.yml +2 -2
  51. data/spec/support/vcr_cassettes/Reports/can_create_payments_report.yml +2 -2
  52. data/spec/support/vcr_cassettes/Reports/can_find_report_requests.yml +2 -2
  53. data/spec/support/vcr_cassettes/Reports/can_retrieve_report_request.yml +2 -2
  54. data/spec/support/vcr_cassettes/TermsAndConditions/can_accept_terms.yml +3 -3
  55. data/spec/support/vcr_cassettes/Transactions/can_retrieve_sender_details.yml +2 -2
  56. data/spec/support/vcr_cassettes/Transfers/can_cancel.yml +3 -3
  57. data/spec/support/vcr_cassettes/Transfers/can_create.yml +2 -2
  58. data/spec/support/vcr_cassettes/Transfers/can_find.yml +3 -3
  59. data/spec/support/vcr_cassettes/Transfers/can_retrieve.yml +3 -3
  60. data/spec/support/vcr_cassettes/VirtualAccounts/can_find.yml +2 -2
  61. data/spec/support/vcr_cassettes/VirtualAccounts/can_find_VANs_for_a_specific_subaccount.yml +2 -2
  62. data/spec/support/vcr_cassettes/VirtualAccounts/can_find_VANs_for_subaccounts.yml +2 -2
  63. data/spec/support/vcr_cassettes/WithdrawalAccounts/can_find_withdrawal_accounts.yml +3 -3
  64. data/spec/support/vcr_cassettes/WithdrawalAccounts/can_find_withdrawal_accounts2.yml +3 -3
  65. data/spec/support/vcr_cassettes/WithdrawalAccounts/can_pull_funds.yml +3 -3
  66. metadata +12 -8
  67. data/.travis.yml +0 -19
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 51d4fea8a3c90b42a1bcc51aa1576b371a7fb8921a821379d08fe5d4eed6a388
4
- data.tar.gz: d8b2e7d4a7492f292fbb7d3dee938932324bfc2a999c68a49b5de1224708777f
3
+ metadata.gz: 6497a8eed53ecabf70f1eae4cb03b1e1376628a5008a75edc680a0d8ec280840
4
+ data.tar.gz: ea5713880d06697d0d55f7a86ac19a9767bae1619d8ea310499311f3591ee009
5
5
  SHA512:
6
- metadata.gz: 44c8f5d54f5f8a95b7001781e0696a760234c1bbdfd3832202c262dcaf44c753a17faf5908b86493ce28164ef97e9b30cdc5820af1a829ab2d0a710a2caeddce
7
- data.tar.gz: f0f637e7719b40b0e9dff06df8a82ad6b5166ab06736ba23cc5ca000c1e40321255b40c1e1e83b45b47ec0a4cdc34e701a299c334da6fc8b9ae0fc45253708fa
6
+ metadata.gz: 277c86730e268794eb35d85a4642e1458c0f8f38e1810e7913350b9d283dbada5feb4a27b96544ec18adc795eaf98a8cee38dcfe523218772b6d5b5b70140d9f
7
+ data.tar.gz: 6b245d853d1bedcb5a5df3646ef6c46bc5dc1e5500deeaf5fbfdbef336fdc04de0877fe6318c42c538fcc02401350476dd433ba1ac820ce11445f72f6083f03d
data/.gitignore CHANGED
@@ -1,4 +1,5 @@
1
1
  .DS_Store
2
+ .idea
2
3
 
3
4
  *.gem
4
5
  *.rbc
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- [![Gem Version](https://badge.fury.io/rb/currency_cloud.svg)](http://badge.fury.io/rb/currency_cloud) [![Build Status](https://travis-ci.org/CurrencyCloud/currencycloud-ruby.png?branch=master)](https://travis-ci.org/CurrencyCloud/currencycloud-ruby)
1
+ [![Gem Version](https://badge.fury.io/rb/currency_cloud.svg)](http://badge.fury.io/rb/currency_cloud) [![CodeQL](https://github.com/CurrencyCloud/currencycloud-ruby/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/CurrencyCloud/currencycloud-ruby/actions/workflows/github-code-scanning/codeql)
2
2
 
3
3
  # Currencycloud
4
4
 
@@ -20,7 +20,7 @@ If you want to build the gem from source:
20
20
 
21
21
  ## Supported Ruby versions
22
22
 
23
- This library aims to support and is [tested against][travis] the following Ruby
23
+ This library aims to support and is tested against the following Ruby
24
24
  implementations:
25
25
 
26
26
  * MRI 2.5
@@ -159,8 +159,8 @@ Once a feature has been marked as deprecated, we no longer develop the code or i
159
159
 
160
160
  ### List of features being deprecated
161
161
  ```
162
- 2025-05-13
163
- - GET /payments/{id}/submission (to be removed 2025-10-01)
162
+ 2025-07-07
163
+ - Remove support for Ruby versions 2.5, 2.6 and 2.7
164
164
  ```
165
165
 
166
166
  # Security Consideration
@@ -174,8 +174,7 @@ We actively support the latest version of the SDK. We support the immediate prev
174
174
 
175
175
  Copyright (c) 2016-2019 Currencycloud. See [LICENSE][license] for details.
176
176
 
177
- [developer]: https://developer.currencycloud.com/documentation/getting-started/introduction/
178
- [travis]: https://travis-ci.org/CurrencyCloud/currencycloud-ruby
177
+ [developer]: https://developer.currencycloud.com/guides/getting-started/introduction/
179
178
  [jruby]: http://jruby.org/
180
179
  [rubinius]: http://rubini.us/
181
180
  [httparty]: https://github.com/jnunemaker/httparty
@@ -16,7 +16,7 @@ Gem::Specification.new do |s|
16
16
  s.add_dependency('httparty', '~> 0.21')
17
17
 
18
18
  s.add_dependency('json', '>= 2.3', '< 2.7.6')
19
- s.add_development_dependency('rake', '~> 13.2.1')
19
+ s.add_development_dependency('rake', '~> 13.3.0')
20
20
 
21
21
  s.add_development_dependency('addressable', '<= 2.9.0')
22
22
  s.add_development_dependency('rspec', '~> 3.1')
@@ -8,8 +8,8 @@ module CurrencyCloud
8
8
  request.get(build_url(url), params)
9
9
  end
10
10
 
11
- def post(url, params = {})
12
- request.post(build_url(url), params)
11
+ def post(url, params = {}, opts = {})
12
+ request.post(build_url(url), params, opts)
13
13
  end
14
14
 
15
15
  def build_url(url)
@@ -5,11 +5,6 @@ module CurrencyCloud
5
5
  resource :payments
6
6
  actions :create, :retrieve, :find, :delete, :update
7
7
 
8
- def submission(params = {})
9
- result = client.get("#{id}/submission", params)
10
- PaymentSubmission.new(result)
11
- end
12
-
13
8
  def submission_info(params = {})
14
9
  result = client.get("#{id}/submission_info", params)
15
10
  PaymentSubmissionInfo.new(result)
@@ -39,5 +34,26 @@ module CurrencyCloud
39
34
  result = client.get("#{id}/tracking_info")
40
35
  PaymentTrackingInfo.new(result)
41
36
  end
37
+
38
+ def self.validate(params, sca_to_authenticated_user = false)
39
+ headers = { 'x-sca-to-authenticated-user' => sca_to_authenticated_user.to_s }
40
+ opts = { headers: headers, return_response_headers: true }
41
+ body, response_headers = client.post("validate", params, opts)
42
+ PaymentValidationResult.new(body, response_headers)
43
+ end
44
+
45
+ def self.create(params = {}, sca_id = nil, sca_token = nil)
46
+ # If no SCA values are provided
47
+ return super(params) if sca_id.nil? && sca_token.nil?
48
+
49
+ headers = {}
50
+ headers['x-sca-id'] = sca_id unless sca_id.nil?
51
+ headers['x-sca-token'] = sca_token unless sca_token.nil?
52
+
53
+ opts = { headers: headers }
54
+ attrs = client.post("create", params, opts)
55
+ new(attrs)
56
+ end
57
+
42
58
  end
43
59
  end
@@ -1,5 +1,5 @@
1
1
  module CurrencyCloud
2
- class PaymentSubmission
2
+ class PaymentSubmissionInfo
3
3
  include CurrencyCloud::Resource
4
4
  end
5
5
  end
@@ -0,0 +1,19 @@
1
+ module CurrencyCloud
2
+ class PaymentValidationResult
3
+ include CurrencyCloud::Resource
4
+ attr_reader :response_headers
5
+
6
+ def initialize(data, response_headers = {})
7
+ super(data)
8
+ @response_headers = response_headers
9
+ end
10
+
11
+ def to_yaml(options = {})
12
+ # Only exclude @response_headers from serialization
13
+ {
14
+ 'attributes' => @attributes,
15
+ 'changed_attributes' => @changed_attributes
16
+ }.to_yaml(options)
17
+ end
18
+ end
19
+ end
@@ -14,9 +14,18 @@ module CurrencyCloud
14
14
  end
15
15
 
16
16
  def post(route, params = {}, opts = {})
17
- retry_authenticate('post', route, params, opts) do |url, new_params, options|
17
+ return_response_headers = opts.delete(:return_response_headers) || false
18
+ raw_response = nil
19
+ response = retry_authenticate('post', route, params, opts) do |url, new_params, options|
18
20
  options[:body] = new_params
19
- HTTParty.post(url, options)
21
+ raw_response = HTTParty.post(url, options)
22
+ raw_response
23
+ end
24
+
25
+ if return_response_headers
26
+ [response, raw_response&.headers || {}]
27
+ else
28
+ response
20
29
  end
21
30
  end
22
31
 
@@ -47,7 +56,9 @@ module CurrencyCloud
47
56
  end
48
57
 
49
58
  def process_options(opts)
50
- options = { headers: headers }
59
+ # Add request specific headers
60
+ request_headers = opts.delete(:headers) || {}
61
+ options = { headers: headers.merge(request_headers) }
51
62
  options.merge(opts)
52
63
  end
53
64
 
@@ -2,5 +2,5 @@
2
2
 
3
3
  module CurrencyCloud
4
4
  API_VERSION = "v2".freeze # API Version
5
- VERSION = "1.7.0".freeze # Gem Version
5
+ VERSION = "2.0.0".freeze # Gem Version
6
6
  end
@@ -16,7 +16,8 @@ describe 'Error', vcr: true do
16
16
  CurrencyCloud.login_id = 'non-existent-login-id'
17
17
  CurrencyCloud.api_key = 'deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef'
18
18
 
19
- expected_error = %{CurrencyCloud::BadRequestError---
19
+ expected_error = %{CurrencyCloud::BadRequestError
20
+ ---
20
21
  platform: #{platform}
21
22
  request:
22
23
  parameters:
@@ -36,7 +37,11 @@ errors:
36
37
  length: 64
37
38
  }
38
39
 
39
- expect { CurrencyCloud.session }.to raise_error(CurrencyCloud::BadRequestError, expected_error)
40
+ expect { CurrencyCloud.session }.to raise_error(CurrencyCloud::BadRequestError) do |error|
41
+ # Normalize error msg to avoid differences in platform
42
+ normalized_error = error.to_s.sub('CurrencyCloud::BadRequestError---', "CurrencyCloud::BadRequestError\n---")
43
+ expect(normalized_error).to eq(expected_error)
44
+ end
40
45
  end
41
46
 
42
47
  it 'is raised on a bad request' do
@@ -88,7 +93,8 @@ errors:
88
93
  CurrencyCloud.session
89
94
  expect(0).to eq 1, 'expected exception that was not raised'
90
95
  rescue CurrencyCloud::UnexpectedError => error
91
- expected_error = %(CurrencyCloud::UnexpectedError---
96
+ expected_error = %(CurrencyCloud::UnexpectedError
97
+ ---
92
98
  platform: #{platform}
93
99
  request:
94
100
  parameters:
@@ -99,7 +105,9 @@ request:
99
105
  inner_error: Timeout::Error
100
106
  )
101
107
 
102
- expect(error.to_s).to eq(expected_error)
108
+ # Normalize error msg to avoid differences in platform
109
+ normalized_error = error.to_s.sub('CurrencyCloud::UnexpectedError---', "CurrencyCloud::UnexpectedError\n---")
110
+ expect(normalized_error).to eq(expected_error)
103
111
  expect(error.inner_error).to_not be_nil
104
112
  expect(error.inner_error.class).to eq(Timeout::Error)
105
113
  end
@@ -36,15 +36,6 @@ describe 'Payments', vcr: true do
36
36
  expect(payment.reason).to eq 'Testing payments'
37
37
  end
38
38
 
39
- it 'can get the submission' do
40
- payment = CurrencyCloud::Payment.create(payment_details)
41
- expect(payment).to_not be_nil
42
-
43
- submission = payment.submission
44
- expect(submission).to_not be_nil
45
- expect(submission).to be_a(CurrencyCloud::PaymentSubmission)
46
- end
47
-
48
39
  it 'can get the new submission' do
49
40
  payment = CurrencyCloud::Payment.create(payment_details)
50
41
  expect(payment).to_not be_nil
@@ -145,4 +136,34 @@ describe 'Payments', vcr: true do
145
136
  end
146
137
  end
147
138
 
139
+ it "can #validate" do
140
+ payment_validation_result = CurrencyCloud::Payment.validate(payment_details, true)
141
+ expect(payment_validation_result).to be_a(CurrencyCloud::PaymentValidationResult)
142
+ expect(payment_validation_result.validation_result).to eq('success')
143
+ expect(payment_validation_result.response_headers).to have_key('x-sca-id')
144
+ expect(payment_validation_result.response_headers).to have_key('x-sca-required')
145
+ expect(payment_validation_result.response_headers['x-sca-id']).not_to be_empty
146
+ expect(payment_validation_result.response_headers['x-sca-required']).to eq('false')
147
+ end
148
+
149
+ it "can #validate and #create with sca" do
150
+ payment_validation_result = CurrencyCloud::Payment.validate(payment_details, false)
151
+ expect(payment_validation_result).to be_a(CurrencyCloud::PaymentValidationResult)
152
+ expect(payment_validation_result.validation_result).to eq('success')
153
+ expect(payment_validation_result.response_headers).to have_key('x-sca-id')
154
+ expect(payment_validation_result.response_headers).to have_key('x-sca-required')
155
+ expect(payment_validation_result.response_headers).to have_key('x-sca-type')
156
+ expect(payment_validation_result.response_headers['x-sca-id']).not_to be_empty
157
+ expect(payment_validation_result.response_headers['x-sca-required']).to eq('true')
158
+ expect(payment_validation_result.response_headers['x-sca-type']).to eq('SMS')
159
+
160
+ sca_id = payment_validation_result.response_headers['x-sca-id']
161
+ sca_token = '123456'
162
+ payment = CurrencyCloud::Payment.create(payment_details, sca_id, sca_token)
163
+
164
+ expect(payment).to_not be_nil
165
+ expect(payment).to be_a(CurrencyCloud::Payment)
166
+ expect(payment.reference).to eq("Testing SCA payments")
167
+ expect(payment.reason).to eq 'Testing SCA payments'
168
+ end
148
169
  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/1.7.0
11
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
61
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
11
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
61
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
11
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
63
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
115
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
11
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
63
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
115
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
11
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
61
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
11
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
63
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
115
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
11
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
40
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
69
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
11
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
40
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
69
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
11
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
40
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
11
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
63
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
115
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
11
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
40
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
69
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
11
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
40
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
69
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
11
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
67
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
11
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
67
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
11
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
67
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
11
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
11
+ - CurrencyCloudSDK/2.0 Ruby/2.0.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/1.7.0
63
+ - CurrencyCloudSDK/2.0 Ruby/2.0.0
64
64
  response:
65
65
  status:
66
66
  code: 200