currency_cloud 1.7.0 → 1.8.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.
- checksums.yaml +4 -4
- data/README.md +6 -4
- data/currency_cloud.gemspec +1 -1
- data/lib/currency_cloud/client.rb +2 -2
- data/lib/currency_cloud/payment.rb +21 -0
- data/lib/currency_cloud/payment_submission_info.rb +5 -0
- data/lib/currency_cloud/payment_validation_result.rb +19 -0
- data/lib/currency_cloud/request_handler.rb +14 -3
- data/lib/currency_cloud/version.rb +1 -1
- data/spec/integration/errors_spec.rb +12 -4
- data/spec/integration/payments_spec.rb +30 -0
- data/spec/support/vcr_cassettes/Accounts/can_retrieve_account_payment_charges_settings.yml +2 -2
- data/spec/support/vcr_cassettes/Accounts/can_update_account_payment_charges_settings.yml +2 -2
- data/spec/support/vcr_cassettes/Conversions/can_cancel_conversion/with_notes/has_a_non-empty_notes_attribute.yml +3 -3
- data/spec/support/vcr_cassettes/Conversions/can_cancel_conversion/without_notes/has_a_empty_notes_attribute.yml +3 -3
- data/spec/support/vcr_cassettes/Conversions/can_cancellation_quote.yml +2 -2
- data/spec/support/vcr_cassettes/Conversions/can_date_change_conversion.yml +3 -3
- data/spec/support/vcr_cassettes/Conversions/can_retrieve_cancellation_quote.yml +3 -3
- data/spec/support/vcr_cassettes/Conversions/can_retrieve_date_change_quote.yml +3 -3
- data/spec/support/vcr_cassettes/Conversions/can_retrieve_profit_and_loss.yml +2 -2
- data/spec/support/vcr_cassettes/Conversions/can_split_conversion.yml +3 -3
- data/spec/support/vcr_cassettes/Conversions/can_split_history.yml +3 -3
- data/spec/support/vcr_cassettes/Conversions/can_split_preview.yml +3 -3
- data/spec/support/vcr_cassettes/FundingAccounts/can_find.yml +2 -2
- data/spec/support/vcr_cassettes/FundingAccounts/can_find_bad_request.yml +2 -2
- data/spec/support/vcr_cassettes/FundingAccounts/can_find_missing_currency.yml +2 -2
- data/spec/support/vcr_cassettes/FundingAccounts/can_find_unauthorized.yml +1 -1
- data/spec/support/vcr_cassettes/IBANs/can_IBANs_for_a_specific_subaccount.yml +2 -2
- data/spec/support/vcr_cassettes/IBANs/can_IBANs_for_subaccounts.yml +2 -2
- data/spec/support/vcr_cassettes/IBANs/can_find.yml +1 -1
- data/spec/support/vcr_cassettes/Payments/can_authorise/when_payment_ids_are_valid.yml +5 -5
- data/spec/support/vcr_cassettes/Payments/can_create.yml +3 -3
- data/spec/support/vcr_cassettes/Payments/can_create_bad_request.yml +2 -2
- data/spec/support/vcr_cassettes/Payments/can_get_the_new_submission.yml +205 -0
- data/spec/support/vcr_cassettes/Payments/can_get_the_submission.yml +4 -4
- data/spec/support/vcr_cassettes/Payments/can_retrieve_confirmation.yml +3 -3
- data/spec/support/vcr_cassettes/Payments/can_retrieve_payment_delivery_date.yml +2 -2
- data/spec/support/vcr_cassettes/Payments/can_retrieve_payment_tracking_info.yml +2 -2
- data/spec/support/vcr_cassettes/Payments/can_retrieve_quote_payment_fee.yml +2 -2
- data/spec/support/vcr_cassettes/Payments/can_validate.yml +160 -0
- data/spec/support/vcr_cassettes/Payments/can_validate_and_create_with_sca.yml +217 -0
- data/spec/support/vcr_cassettes/Rates/can_provided_detailed_rate_with_conversion_date_preference.yml +1 -1
- data/spec/support/vcr_cassettes/Reference/can_retrieve_bank_details.yml +2 -2
- data/spec/support/vcr_cassettes/Reference/can_retrieve_conversion_dates.yml +2 -2
- data/spec/support/vcr_cassettes/Reference/can_retrieve_currencies.yml +2 -2
- data/spec/support/vcr_cassettes/Reference/can_retrieve_payer_required_details.yml +2 -2
- data/spec/support/vcr_cassettes/Reference/can_retrieve_payment_dates.yml +2 -2
- data/spec/support/vcr_cassettes/Reference/can_retrieve_payment_fee_rules.yml +1 -1
- data/spec/support/vcr_cassettes/Reference/can_retrieve_payment_purpose_codes.yml +2 -2
- data/spec/support/vcr_cassettes/Reference/can_retrieve_settlement_accounts.yml +2 -2
- data/spec/support/vcr_cassettes/Reports/can_create_payments_report.yml +2 -2
- data/spec/support/vcr_cassettes/Reports/can_find_report_requests.yml +2 -2
- data/spec/support/vcr_cassettes/Reports/can_retrieve_report_request.yml +2 -2
- data/spec/support/vcr_cassettes/TermsAndConditions/can_accept_terms.yml +3 -3
- data/spec/support/vcr_cassettes/Transactions/can_retrieve_sender_details.yml +2 -2
- data/spec/support/vcr_cassettes/Transfers/can_cancel.yml +3 -3
- data/spec/support/vcr_cassettes/Transfers/can_create.yml +2 -2
- data/spec/support/vcr_cassettes/Transfers/can_find.yml +3 -3
- data/spec/support/vcr_cassettes/Transfers/can_retrieve.yml +3 -3
- data/spec/support/vcr_cassettes/VirtualAccounts/can_find.yml +2 -2
- data/spec/support/vcr_cassettes/VirtualAccounts/can_find_VANs_for_a_specific_subaccount.yml +2 -2
- data/spec/support/vcr_cassettes/VirtualAccounts/can_find_VANs_for_subaccounts.yml +2 -2
- data/spec/support/vcr_cassettes/WithdrawalAccounts/can_find_withdrawal_accounts.yml +3 -3
- data/spec/support/vcr_cassettes/WithdrawalAccounts/can_find_withdrawal_accounts2.yml +3 -3
- data/spec/support/vcr_cassettes/WithdrawalAccounts/can_pull_funds.yml +3 -3
- metadata +12 -5
- data/.travis.yml +0 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 383eb1f56133c9410c17f17a38023ff9c63d820f5e10c1784f46e51fe0632556
|
4
|
+
data.tar.gz: 3cba7634d2cef99d4c741675ad096fe6b7e88c4f3fae5aecb1114d2351ac8af9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cb0ae5227d01960a94276ec5a01058221281085285a187b62f8e4600246d90e4e194a6e3963f7170ec8e82b0616a1b9e631fbe9132bb2a72377cd85328dfd0c5
|
7
|
+
data.tar.gz: e97f59d4c75d11459d6e9d35a017599f28f6607fe6fb5bac0dbff883343f34e9e0b969c57a105f9efe4e9c11e49e7a4dbda4bef32eb9775cec67da254ac2b39e
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
[](http://badge.fury.io/rb/currency_cloud) [](http://badge.fury.io/rb/currency_cloud) [](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
|
23
|
+
This library aims to support and is tested against the following Ruby
|
24
24
|
implementations:
|
25
25
|
|
26
26
|
* MRI 2.5
|
@@ -161,6 +161,9 @@ Once a feature has been marked as deprecated, we no longer develop the code or i
|
|
161
161
|
```
|
162
162
|
2025-05-13
|
163
163
|
- GET /payments/{id}/submission (to be removed 2025-10-01)
|
164
|
+
|
165
|
+
2025-07-07
|
166
|
+
- Remove support for Ruby versions 2.5, 2.6 and 2.7
|
164
167
|
```
|
165
168
|
|
166
169
|
# Security Consideration
|
@@ -174,8 +177,7 @@ We actively support the latest version of the SDK. We support the immediate prev
|
|
174
177
|
|
175
178
|
Copyright (c) 2016-2019 Currencycloud. See [LICENSE][license] for details.
|
176
179
|
|
177
|
-
[developer]: https://developer.currencycloud.com/
|
178
|
-
[travis]: https://travis-ci.org/CurrencyCloud/currencycloud-ruby
|
180
|
+
[developer]: https://developer.currencycloud.com/guides/getting-started/introduction/
|
179
181
|
[jruby]: http://jruby.org/
|
180
182
|
[rubinius]: http://rubini.us/
|
181
183
|
[httparty]: https://github.com/jnunemaker/httparty
|
data/currency_cloud.gemspec
CHANGED
@@ -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.
|
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')
|
@@ -39,5 +39,26 @@ module CurrencyCloud
|
|
39
39
|
result = client.get("#{id}/tracking_info")
|
40
40
|
PaymentTrackingInfo.new(result)
|
41
41
|
end
|
42
|
+
|
43
|
+
def self.validate(params, sca_to_authenticated_user = false)
|
44
|
+
headers = { 'x-sca-to-authenticated-user' => sca_to_authenticated_user.to_s }
|
45
|
+
opts = { headers: headers, return_response_headers: true }
|
46
|
+
body, response_headers = client.post("validate", params, opts)
|
47
|
+
PaymentValidationResult.new(body, response_headers)
|
48
|
+
end
|
49
|
+
|
50
|
+
def self.create(params = {}, sca_id = nil, sca_token = nil)
|
51
|
+
# If no SCA values are provided
|
52
|
+
return super(params) if sca_id.nil? && sca_token.nil?
|
53
|
+
|
54
|
+
headers = {}
|
55
|
+
headers['x-sca-id'] = sca_id unless sca_id.nil?
|
56
|
+
headers['x-sca-token'] = sca_token unless sca_token.nil?
|
57
|
+
|
58
|
+
opts = { headers: headers }
|
59
|
+
attrs = client.post("create", params, opts)
|
60
|
+
new(attrs)
|
61
|
+
end
|
62
|
+
|
42
63
|
end
|
43
64
|
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
|
-
|
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
|
-
|
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
|
|
@@ -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
|
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
|
-
|
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
|
@@ -145,4 +145,34 @@ describe 'Payments', vcr: true do
|
|
145
145
|
end
|
146
146
|
end
|
147
147
|
|
148
|
+
it "can #validate" do
|
149
|
+
payment_validation_result = CurrencyCloud::Payment.validate(payment_details, true)
|
150
|
+
expect(payment_validation_result).to be_a(CurrencyCloud::PaymentValidationResult)
|
151
|
+
expect(payment_validation_result.validation_result).to eq('success')
|
152
|
+
expect(payment_validation_result.response_headers).to have_key('x-sca-id')
|
153
|
+
expect(payment_validation_result.response_headers).to have_key('x-sca-required')
|
154
|
+
expect(payment_validation_result.response_headers['x-sca-id']).not_to be_empty
|
155
|
+
expect(payment_validation_result.response_headers['x-sca-required']).to eq('false')
|
156
|
+
end
|
157
|
+
|
158
|
+
it "can #validate and #create with sca" do
|
159
|
+
payment_validation_result = CurrencyCloud::Payment.validate(payment_details, false)
|
160
|
+
expect(payment_validation_result).to be_a(CurrencyCloud::PaymentValidationResult)
|
161
|
+
expect(payment_validation_result.validation_result).to eq('success')
|
162
|
+
expect(payment_validation_result.response_headers).to have_key('x-sca-id')
|
163
|
+
expect(payment_validation_result.response_headers).to have_key('x-sca-required')
|
164
|
+
expect(payment_validation_result.response_headers).to have_key('x-sca-type')
|
165
|
+
expect(payment_validation_result.response_headers['x-sca-id']).not_to be_empty
|
166
|
+
expect(payment_validation_result.response_headers['x-sca-required']).to eq('true')
|
167
|
+
expect(payment_validation_result.response_headers['x-sca-type']).to eq('SMS')
|
168
|
+
|
169
|
+
sca_id = payment_validation_result.response_headers['x-sca-id']
|
170
|
+
sca_token = '123456'
|
171
|
+
payment = CurrencyCloud::Payment.create(payment_details, sca_id, sca_token)
|
172
|
+
|
173
|
+
expect(payment).to_not be_nil
|
174
|
+
expect(payment).to be_a(CurrencyCloud::Payment)
|
175
|
+
expect(payment.reference).to eq("Testing SCA payments")
|
176
|
+
expect(payment.reason).to eq 'Testing SCA payments'
|
177
|
+
end
|
148
178
|
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.
|
11
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
61
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
11
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
61
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
11
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
63
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
115
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
11
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
63
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
115
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
11
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
61
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
11
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
63
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
115
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
11
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
40
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
69
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
11
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
40
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
69
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
11
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
40
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
11
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
63
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
115
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
11
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
40
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
69
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
11
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
40
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
69
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
11
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
67
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
11
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
67
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
11
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
67
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
11
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
11
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
63
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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/1.
|
11
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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.
|
63
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.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/1.
|
11
|
+
- CurrencyCloudSDK/2.0 Ruby/1.8.0
|
12
12
|
response:
|
13
13
|
status:
|
14
14
|
code: 200
|